HOWTO: Run Ubuntu 8.10 On the Asus Eee PC 1000
For many years I’ve been wanting a laptop but I’ve never been able to justify spending $2000 for one, so the emergence of the “netbook” category — lightweight laptops with limited power for a lower price — has been welcome.
After evaluating the current netbook options I finally pulled the trigger and bought myself an Asus Eee PC 1000, on which I’m typing this entry. It’s a little larger than the original crop of netbooks, which I liked because it meant it came with a near-full-size keyboard. I touch type so super-cramped keyboards are a pain.
The Eee 1000 comes preloaded with a special customized version of Xandros Linux, but since I run Ubuntu at home I wanted to do the same on my Eee. This turned out to be a little more complicated than I’d hoped it would be, since the bundled Xandros has been tuned by Asus to work with the Eee’s hardware, and generic Ubuntu has not. Now that I’ve got these issues resolved, I thought I’d write up how I did it in case it might help others who want to do the same thing.
The current version of Ubuntu when this was written was Ubuntu 8.10, “Intrepid Ibex“. Some or all of the steps below may be different if you use a different Ubuntu release. I’m told the process with Ubuntu 8.04 (“Hardy Heron”) is pretty much the same, but I can’t speak to that from experience.
Warning: geekery follows. If you’re not into that sort of thing, here is a video of a cat riding a Roomba.
Start with stock Ubuntu, not Ubuntu Eee
There is a special modified version of Ubuntu out there called Ubuntu Eee (update: since I wrote this, Ubuntu Eee’s name has changed to “Easy Peasy“, but it’s the same product) that claims to be a one-step solution to running Ubuntu on your Eee. My advice: skip it. I started this process by wiping the Eee’s disk and installing Ubuntu Eee; I then spent several days trying to fix a range of problems, mostly related to connecting wireless networks, without success.
Frustrated with this process, I wiped the disk again and replaced with the “stock” Ubuntu distribution rather than the “customized” Ubuntu Eee. Surprisingly, this proved to cause fewer headaches than Ubuntu Eee did. So my advice is to not even bother with Ubuntu Eee; whatever good points it brings to the table are outweighed by its problems.
The Eee doesn’t come with an optical drive, so you’ll need to get the Ubuntu base files onto a USB stick in order to install it. There’s a tool called UNetBootin that makes this stupid easy. If you have an ISO image of the Ubuntu CD, it can take the files from there; if you don’t, it can download them for you automatically. Either way you end up with a USB stick you can boot and install Ubuntu from. (Note: you’ll need a stick with at least 1GB of free space.)
Once you’ve prepared your USB stick, just plug it into the Eee and reboot. When you see the Asus splash screen, start hitting Esc until you get a menu of available disks to boot from. One of these will be your USB stick. Select that one and you’ll see the familiar Ubuntu loading screens. From there, just follow the menu prompts to reformat your drives and install Ubuntu.
One note on installation — the sales literature for the Eee 1000 say it comes with a 40GB solid-state disk, but this is, strictly speaking, not true; it comes with a fixed 8GB solid state disk, and a 32GB flash memory card. In practical terms this is no big deal since you do in fact have 40GB of usable storage, but for maximum performance you want to ensure you install the OS onto the 8GB SSD rather than the flash card. To simplify keeping track of what files went where, I set the mount point for the 8GB SSD (/dev/sda1) as / and the mount point for the flash card (/dev/sdb1) as /home. This lets me put all my media files on the flash card just by dumping them in my home directory, while installed applications and the base OS go on the SSD.
Install customized kernel
Once you’ve got Ubuntu installed, you’ll find it runs OK but that some of the Eee’s hardware components, like the wifi radio, don’t work, because the stock Ubuntu kernel doesn’t include support for them.
Thankfully, a helpful fellow named Adam McDaniel has taken on maintaining a version of the Ubuntu kernel that does include support for these devices. So your next step will be to replace your stock kernel with Adam’s souped-up version.
This may sound like a frighteningly technical task but it’s actually really easy — and it leverages the APT packaging system, so it’s easy to undo if you should ever want to, and updates will automatically flow to your system as they are released. Just follow Adam’s clearly written instructions for your Ubuntu release (Intrepid instructions, Hardy instructions) and you’ll be all set.
Note: once you’ve got the kernel installed you may find your webcam and Bluetooth radio still don’t work. This is because some Eees leave the factory with these devices disabled in the BIOS. Switch them on in the BIOS menu and you’ll be good to go.
At this point you’ll notice that your Eee is able to reliably connect to some, but not all, wireless access points. Why should this be, you will wonder.
The answer is that Ubuntu sets up your wireless radio to use IPv6 by default. The problem is that lots of access points in places like airports and coffee shops — you know, the sorts of places that were the reasons you bought the damn laptop in the first place — are IPv4 only.
Defaulting to IPv6 is sensible from a future-proofing perspective, but it means that you will have problems connecting to access points that are IPv4 only. Don’t ask me why, I have no idea, it just appears to be The Way Things Are. (I have had the same problem on some new Windows laptops that are configured to default to IPv6, so no bitching about Linux, please.)
Follow the instructions here to turn off IPv6 on your Eee. There are other methods described on that page, but these are the ones that worked for me.
Install Eee Control Panel
The default Linux that comes with the Eee has a bunch of nifty options to let you do things like throttle down the CPU to conserve battery power. Unfortunately, stock Ubuntu doesn’t come with anything like that, so we need an add-on to bring those features back.
I use Grigori Goronzy’s eee-control-tray for this, as it’s easy to install and provides an easy-to-use tray menu for these functions. Here’s how to install eee-control-tray.
And you’re done!
There’s other customizations you can make (like, for example, replacing Ubuntu’s anemic network manager with WICD to make it easier to browse and log on to local wireless networks), but the steps above should get all the core hardware working for you in Ubuntu.
Enjoy your Eee!