Ubuntu Mobile Edition (UME) and the Asus EeePC

Ubuntu Mobile Edition is a version of Ubuntu made for MIDs (Mobile Internet Devices). The EeePC is not really a MID, but rather a sub-laptop or netbook. Notably the EeePC does not have a touchscreen and the intended input method is through a traditional keyboard and touchpad.

My plan had been to add a touchscreen, but I failed I soldered one of the screen's input to the wrong pin.

This project isn't dead, only resting. I'm working on fixing my touchscreen and trying a new install of UME soon

Overview

See the disclaimer at the bottom of this page before starting!

Normal instructions will be in normal text. All commands are run as root until I say otherwise.

Commands which should be run as-is, or 
other code will be in pre-formatted text.

Advanced and alternative routes will be in a grey box with a red border. Don't follow these unless you know what you're doing.

Install Ubuntu JeOS

Download the JeOS ISO and install it to your SDHC card. I used Qemu so I didn't have to burn the ISO. Under Ubuntu, your qemu comand will be something like

qemu -hda /dev/sdg -cdrom jeos-8.04-jeos-i386.iso -boot d -m 1024
When the install is done, insert the SDHC card into your EeePC and reboot. At the BIOS screen, press escape to reach the boot chooser screen, and select the SDHC card. When it boots, you should reach a login prompt.

Many of the following steps could be done within Qemu, or by mounting and chrooting into the SDHC install.

Get an updated sources.list

Update your sources.list file to include the Ubuntu Mobile PPA sources. You can also comment out all the deb-src lines if you're not going to compile stuff.

# My sources.list
# Normal
deb http://us.archive.ubuntu.com/ubuntu/ hardy main restricted universe multiverse
#deb-src http://us.archive.ubuntu.com/ubuntu/ hardy main restricted universe multiverse

# Backports
deb http://us.archive.ubuntu.com/ubuntu/ hardy-backports main restricted universe multiverse
#deb-src http://us.archive.ubuntu.com/ubuntu/ hardy-backports main restricted universe multiverse

# Updates
deb http://us.archive.ubuntu.com/ubuntu/ hardy-updates main restricted universe multiverse
#deb-src http://us.archive.ubuntu.com/ubuntu/ hardy-updates main restricted universe multiverse

# Security
deb http://security.ubuntu.com/ubuntu hardy-security main restricted universe multiverse
#deb-src http://security.ubuntu.com/ubuntu hardy-security main restricted universe multiverse

# Ports
#deb http://ports.ubuntu.com/ubuntu-ports hardy main restricted universe multiverse
#deb http://ports.ubuntu.com/ubuntu-ports hardy-security main restricted universe multiverse
#deb http://ports.ubuntu.com/ubuntu-ports hardy-updates main restricted universe multiverse

# Partner
#deb http://archive.canonical.com/ubuntu hardy partner
#deb-src http://archive.canonical.com/ubuntu hardy partner

# UME PPA 
deb http://ppa.launchpad.net/ubuntu-mobile/ubuntu hardy main
#deb-src http://ppa.launchpad.net/ubuntu-mobile/ubuntu hardy main

Now update apt-get.

apt-get update

Now we'll install the packages we'll need.

apt-get install ubuntu-mobile libterm-readkey-perl acpi-support librpc-xml-perl libgl1-mesa-dri gnome-volume-manager ume-config-common usplash-theme-ubuntu

Download and installneeded packages

Download the kernel, the modules, the madwifi modules, the eee modules, and the apparmor packages. Get theme here.

linux-ubuntu-modules-2.6.24-2-generic_2.6.24-2.5_i386.deb
linux-image-2.6.24-2-generic_2.6.24-2.4_i386.deb
madwifi-modules-2.6.24-2-generic.tar.gz
eeepc-eee.ko_v.2-kernel-2.6.24.tar.gz 
apparmor-utils_2.1+1075-0ubuntu2_i386.deb
apparmor_2.1+1075-0ubuntu2_i386.deb

Install the kernel, modules and apparmor with a:

dpkg -i *.deb
Create a directory for the extra modules (madwifi and eee). Un-tar the two archives, and copy the kernel modules to that directory.
mkdir /lib/modules/2.6.24-2-generic/kernel/custom
for i in *tar.gz;do tar xzf $i;done
cp `find . -name "*.ko"` /lib/modules/2.6.24-2-generic/kernel/custom

Run depmod to generate all the dependencies for the modules you just installed:

depmod 2.6.24-2-generic

Edit /etc/modules and append the following to the bottom of the file:

uvcvideo
atl2
i2c_i801
eee

Lastly, comment out the line containing 'i2c_i801' in /etc/modprobe.d/blacklist.

Autostart the GUI

Copy event.d/session to /etc/event.d/session

Edit /boot/grub/menu.lst

Find the line that says: defoptions=


Append the following 
capability.disable=1 clocksource=hpet
And if you want to suspend to disk, also add
resume=UUID=
Now run update-grub
update-grub

Edit your /etc/fstab file

Comment out or remove the cdrom line.

Download the Hildon Startup Script

This is the script from https://wiki.ubuntu.com/MobileAndEmbedded. You can get it from http://stuporglue.org/downloads/eee/start-hildon.sh. Download it as your non-root user, and save it in your home directory as .xinitrc. Make its permissions 755.

chmod 755 ~/.xinitrc

Install apparmor

Download the apparmor and apparmor-utils packages and install them (apparmor-utils_2.1+1075-0ubuntu2_i386.deb, apparmor_2.1+1075-0ubuntu2_i386.deb).
dpkg -i apparmor*deb

Configure Xorg

Do a dpkg-reconfigure, it will produce a usable xorg.conf.

dpkg-reconfigure -phigh xserver-xorg

Copy event.d files

Download event.d.tar.gz.

tar xzf event.d.tar.gz 
cp  event.d/* /etc/event.d/
chmod 755 /etc/event.d/*

Start Ubuntu Mobile

As your non-root user, run startx from a console.

startx
Enjoy!

Reboot and finish up

Now reboot. At the grub prompt, press ESC and find the 2.6.24-2-generic kernel. Press 'e' to edit, and add the word 'profile' to the end of the kernel line.

A bit more apt-get fun

apt-get remove --purge linux-image-2.6.24-16-virtual linux-ubuntu-modules-2.6.24-16-virtual linux-image-virtual

Make the Network Manager Applet work

Edit /etc/dbus-1/system.d/NetworkManager.conf and /etc/dbus-1/system.d/nm-applet.conf. Change the default permissions from deny to allow. "A default of allow?", you ask. Yes. When did we ever let security stand in the way of fun.

# NetworkManager.conf
<policy context="default">
	<allow own="org.freedesktop.NetworkManager"/>
	<allow send_destination="org.freedesktop.NetworkManager"/>
	<allow send_interface="org.freedesktop.NetworkManager"/>
</policy>

# nm-applet.conf
<policy context="default">
	<allow own="org.freedesktop.NetworkManagerInfo"/>

	<allow send_destination="org.freedesktop.NetworkManagerInfo"/>
	<allow send_interface="org.freedesktop.NetworkManagerInfo"/>
</policy>
On next reboot, the network manager applet (nm-applet) should start correctly.

To-do / In progress

This leaves a lot not quite working correctly, but should be sufficient to get you playing around. There are several things which can be done to speed up boot time, improve battery life, decrease disk writes etc. For now search the forums, I'll post them here soon.

I don't have the following working correctly yet, but am working on them.

Suspend to RAM, Suspend to SDHC
Network manager applet
Screen brightness applet
Auto starting the Ubuntu Mobile GUI

License / Disclaimer

These instructions are a work in progress. Ubuntu Mobile Edition is a work in progress. This tutorial is provided as-is. Follow it at your own risk. I claim no responsibility for what happens to your computer, free time, or anything else if you follow these directions.

This tutorial is in the public domain, originally posted at http://stuporglue.org/ume-on-eeepc.php. Feel free to improve it, mirror it, etc. If you mirror the tutorial, please consider mirroring the files which need to be downloaded as well. Last updated May 4, 2008 by Michael Moore <stuporglue@gmail.com>.

Sources and Credits

And of course Asus for this fun little machine.


Google
Web Stuporglue.org