Ubuntu on the Eee PC 900

I’ve had an Eee PC 900 for several weeks now, and really like it. I definitely couldn’t use it as a machine on which to do major programming or web development; however, it’s great to have for traveling. For the lower price and slightly larger amount of storage, I opted to go with the Linux model. The distribution of Linux that ships with the device, a customed Xandros installation, isn’t bad, but I wasn’t a huge fan of it so I installed Ubuntu in place of it.

There were a few things that needed customization after the installation, so I’ve attempted to summarize them all here. In the future, I may add some additional posts on this topic as there are a couple of things that still don’t work quite right. Overall, it’s fine for now.

Prerequisites

Pre-installation

After installing Ubuntu, my ethernet card didn’t work. To fix this, I turned off the Eee PC, removed the battery, replaced the battery, and turned the machine back on. It worked fine and has ever since. Obviously, this resets something internally. Additionally, not everyone has experienced this issue, but for the sake of completeness I wanted to include it here.

Installation

I’m assuming that you have access to an ethernet connection. Wireless isn’t supported out of the box and there are numerous updates that are required after initially installing Ubuntu 8.04. If you don’t have access to an ethernet cable, skip down to the Wireless section for instructions on how to get Wireless working - you’ll need to obtain the driver on a USB key or flash drive. You can still perform all of the steps listed here, but you’re going to have to re-install the Wireless card after some of the updates complete.

When performing the installation, most of the default operations will suffice; however, there are a couple of things to modify with respect to partitioning that may ultimately increase performance. First off, do not create a swap partition. For the amount of RAM in the machine, you’re not likely to need a swap partition. Additionally, a swap partition is subject to many read/write operations and the frequency of these operations can decrease the lifetime of solid-state drives. Secondly, opt to use the ext2 file system. Apparently, the ext2 file system requires fewer read/writes than the ext3 file system.

Post-installation Updates

Following the initial installation of the operating system, it’s best to grab all of the most recent updates. Connect the Eee PC to an ethernet cable and, permitting you’re connected to the internet, Synaptic should automatically detect and list all of the updates required. Install every one of them (this step will take sometime), and then reboot the machine.

Important Note

If, after any update, the wireless card stops working, simply reinstall it as per the directions here. The card will stop working if a new kernel is installed, so its simply a matter of reinstalling the module.

The Major Fixes

Getting the device to correctly shutdown

Initially, Ubuntu will not shutdown correctly. Though the screen blanks and the device appears to be off, it still holds power. This is a result of the operating system failing to correctly disable the sound card. To fix this, open the halt script in your favorite text editor:

$ sudo gedit /etc/init.d/halt

Find the function do_stop() and then find the line that reads if [ "$INIT_HALT" = "" ]. Right after the functions signature and right above the conditional, add this line so that the script appears like this:

do_stop() {

rmmod snd-hda-intel
if [ "$INIT_HALT" = "" ]

}

The Eee PC should now properly shutdown.

How to configure the wireless card

To get the wireless card working, a couple of packages need to be removed because they conflict with the wireless drivers that will be used. To remove these packages, do this:

$ sudo update-rc.d -f linux-restricted-modules-common remove

and update the packages list:

$ sudo apt-get update

Now install the wireless driver. First, download the driver by issuing these commands:

$ sudo apt-get install build-essential
$ wget http://snapshots.madwifi.org/special/madwifi-hal-0.10.5.6-r3698-20080604.tar.gz

Secondly, untar the archive and enter the directory. Compile the driver and install the kernel module:

$ tar zxvf madwifi-hal-0.10.5.6-r3698-20080604.tar.gz
$ cd madwifi-hal-0.10.5.6-r3698-20080604
$ make clean
$ make
$ sudo make install

Finally, reboot the machine. Once you log back into Ubuntu, you should see wireless networks available in Network Manager.

Installing ACPI

ACPI will enable better power management by conserving energy when the system is idle. Some custom modules have been created to help with this so it’s a simple matter of downloading the modules and installing them. Here are the commands:

$ sudo apt-get update
$ sudo apt-get install -y -f build-essential module-assistant eeepc-acpi-source –force=yes
$ sudo m-a a-i eeepc-acpi
$ sudo cp /etc/modules ~/modules.tmp
$ sudo chmod 777 ~/modules.tmp
$ sudo chmod 644 ~/modules.tmp
$ sudo mv ~/modules.tmp /etc/modules

Restoring HotKey Functionality

The following fix will restore the functionality from the hot keys as well as restore the on-screen display for each of the actions. For example, you’ll be able to disable wireless (Fn+F2), control volume, (Fn+F7), or suspend the device (Fn+F1). Again, much of the work has already been done. Issue the following commands to download the package and install it:

$ wget http://eee-osd.googlecode.com/files/eee-osd_2.1-0eeeXubuntu1_i386.deb
$ sudo dpkg -i eee-osd_2.1-0eeeXubuntu1_i386.deb

Restoring Webcam Functionality

The webcam is broken after an initial installation; however, as with the past couple of scripts, some modules have already been written that make it really easy to restore functionality. Before grabbing the necessary modules to fix the webcam, you need to make sure you’ve got subversion installed so that you can pull files from the module’s repository. To install subversion, do this:

$ sudo apt-get install subversion

Next, download and install the necessary modules by issuing the following commands to fix the webcam:

$ svn co svn://svn.berlios.de/linux-uvc/linux-uvc/trunk linux-uvc
$ cd linux-uvc
$ sudo make
$ sudo make install
$ sudo modprobe -r uvcvideo
$ sudo mv /lib/modules/$(uname -r)/ubuntu/media/usbvideo/uvcvideo.ko /lib/modules/$(uname -r)/ubuntu/media/usbvideo/uvcvideo.ko.original
$ sudo cp uvcvideo.ko /lib/modules/$(uname -r)/ubuntu/media/usbvideo/uvcvideo.ko
$ sudo modprobe uvcvideo

I myself don’t use Skype, so I’ve little use for Ekiga. I still wanted to use my webcam, so I downloaded and installed the Cheese application. To download Cheese, do this:

$ sudo apt-get install cheese

Once it has been installed, you should be able to access it via the Applications | Graphics menu.

Restoring sound after suspend

Suspending the Eee PC works fine; however, once the machine resumes, sound no longer works. The tweak I’m providing isn’t perfect - Gnome sounds still do not work after resuming from suspend, but all other sounds (MP3s, etc) work fine.

Open the alsa configuration file by doing this:

$ sudo gedit /etc/default/alsa

and modify the force_unload_modules line to read like this:

force_unload_modules_before_suspend=”snd_hda_intel”

If you know how to restore Gnome sounds, please leave a comment.

The Minor Tweaks

Reducing the amount of read/writes in swap

If you ended up going with a swap partition, you can reduce the swappiness by modifying one of the configuration files on your file system. To reduce the amount of operations, do this:

$ sudo gedit /etc/sysctl.conf

and add this line to the very bottom of the file:

$ vm.swappiness=0

Unconstrain windows to the top of the screen

With a 1024×600 resolution, some applications are going to be ‘taller’ than others. In order to access some of the options hidden via the bottom of the screen, it helps to make the windows draggable so that you can move them upwards. By default, windows cannot be dragged higher than the top of the screen. To remove this constrait, enter this into a terminal:

$ gconftool-2 –set /apps/compiz/plugins/move/allscreens/options/constrain_y –type bool 0

Hide the battery warning

Although Gnome correctly reports the status of the battery, it shows a warning about 0% being available right after installation. To hide this message, enter this into a terminal:

$ gconftool-2 –set /apps/gnome-power-manager/notify/low_capacity –type bool 0

After rebooting, the message should no longer appear.

My Suggestions

Hide the volume control applet

The volcume control applet doesn’t correctly reflect the state of the audio hardware if it has been manipulated via the hot keys. I personally use the hotkeys to control the sound, so I removed the volume control applet from my panel. Now there’s one less thing cluttering my tray.

Unused applications

Because I don’t use Skype and I tend to use web-based email clients, I uninstalled Ekiga and and Evolution. I don’t need them and this frees up a little bit more space on the hard disk.

What Doesn’t Work

It’s broken - why?

At the time of this post, hibernate nor the microphone work. Because I don’t really need these two features, it doesn’t really bother me; however, if a fix does exist, please leave a comment - I’d like to keep this as complete as possible and having a fully working system (regardless of if I use the features or not) is always nice.

References

These fixes are a collection of my own fixes and tweaks as well as those gathered from several other sources throughout the internet. For more information on the Eee PC 900 and Ubuntu, check out the following sites, as well.


 
 
 

27 Responses to “Ubuntu on the Eee PC 900”

  1. Al
    15. July 2008 at 07:20

    Hi,

    Thanks for sharing these!

    I think that

    $ sudo apt-get install -y -f build-essential module-assistant eeepc-acpi-source –force-yes

    should read

    $ sudo apt-get install -y -f build-essential module-assistant eeepc-acpi-source –force=yes

    Cheers

  2. Tom
    15. July 2008 at 07:23

    Hey Al,

    Thanks for the comment - you’re right and I’ve updated the post.

    Tom

  3. Al
    15. July 2008 at 07:35

    I’m still trying to decide between Ubuntu eee (http://www.ubuntu-eee.com/index.php5?title=Main_Page) and vanilla ubuntu 8.04 with tweaks. Suggestions?

  4. Tom
    15. July 2008 at 08:43

    I heavily considered Ubuntu Eee, but there were a few reasons that I ended up wanting to go with the vanilla version and my own customizations.

    Ubuntu Eee, as of now, uses the ext3 file system versus ext2. ext2 is supposed to perform fewer read/write operations and I’m one of those guys that wants to squeeze every possible form of optimization out of an installation.

    Along those same lines, the default Ubuntu Eee installation doesn’t reduce swappiness out of the box. Though it’s a simple fix, I can just as easily do that myself on a vanilla installation.

    The windows are still constrained along the y-axis by default, wireless doesn’t always work after suspend, the machine doesn’t turn all the way off (until you apply the shutdown fix), there is limited hotkey functionality, and no on-screen display for the brightness.

    After all is said and done, I really applaud the team for working on a distribution of Ubuntu tailored for the Eee, but at the end of the day you’re primarily getting an installation of Ubuntu with reduced visual elements. All of the tweaks that were important to me could be done on a vanilla installation so I went with that.

    Of course, this is just my opinion. What works best for me isn’t necessarily what’s best for anyone else. Over the coming months, as development if Ubuntu Eee progresses and permitting they address the issues listed above, I’d gladly use it instead of a manually modified vanilla install.

  5. Al
    16. July 2008 at 20:45

    Hi Tom,

    Thanks for your advice. I ended up using vanilla Ubuntu 8.04.1 because the initial vanilla 8.04 ISO was giving me problems when getting software updates.

    It’s now running well. I need to still work out a few things like how to suspend when closing the lid, but generally I am very happy.

    I’m a little suprised that there still is a fair amount of effort (hence your blog post) in getting it running well considering how popular eee pc’s and ubuntu are becoming.

    I hope future releases such as 8.10 will be smoother for eee users ‘out of the box’.

    Cheers,
    Al

  6. My new netbook with Ubuntu 8.04 « WatirMelon
    17. July 2008 at 03:52

    [...] flash drive. You need to then perform quite a few tweaks, all of which are made easy due to many helpful instructions from others who have already been [...]

  7. Vadim P.
    21. July 2008 at 08:03

    Thanks for the “Unconstrain Windows to the top of the screen” suggestion, although the -2 should be together with the word and the - -’s got converted into a -

  8. andrew
    26. July 2008 at 13:09

    Hi, this is going to seem really stupid but, I can’t access my bios? i have a 4g eee pc by asus, i have installed ubuntu 8.04 onto a memory stick and everything is brilliant, except i can’t get the webcam to work. i notice everyone says to access the bios and make sure it’s switched on but i can’t work out how to get into the bios??!
    please help.
    Thanks for taking the time to read this
    andrew

  9. Tom
    27. July 2008 at 10:06

    Hey Andrew,

    As soon as the machine boots up and you see the ASUS Eee PC splash screen, press F2. This will bring up the BIOS.

    Hope this helps,
    Tom

  10. andrew
    27. July 2008 at 18:57

    Hi, thanks for the bios help, I thought there was a different bios for ubuntu than the original OS :S
    Im having another problem, but it’s not on ubuntu, so not sure if I can post this here, but, when trying to get updates etc.. on original eee pc 701 OS, it won’t let it happen, it comes up with a lot of errors, and I can’t work out whats wrong? some people have suggested bypassing the DNS?

    Im really, REALLY new to linux, but I love it already and have a couple of books ordered to teach me all the basics, but I have to say everyone on here is a huge help. Thank you.
    sorry for taking up all this space.
    Andrew

  11. Rob
    29. July 2008 at 19:26

    first of all i have to say Thanks…..and God Bless you guys!
    i have never used ubuntu until yesterday…..i removed windows off my Eee PC 900 and switched to ubuntu. found the terminal and was lost till i found this page :D
    everything is going great although i still understand much. mot sure if acpi is working and im sure that my hotkeys are not working. as you can tell im kinda clueless…sorry
    also can i get yahoo messenger on ubuntu?

  12. Tom
    29. July 2008 at 20:24

    Andrew,

    When you are trying to update the system, I am assuming that you’ve had a successful installation and that you’re just using Synaptic to update the system, right?

    What are some of the errors that you are getting?

    Tom

  13. Tom
    29. July 2008 at 20:26

    Rob,

    You can’t get Yahoo! Messenger specifically on Ubuntu, but you can get an application called Pidgin. It’s installed by default on a standard Ubuntu installation and can be found by navigation to Applications | Internet | Pidgin Internet Messenger.

    If, for whatever reason, it is not installed, you can find it at http://www.pidgin.im.

    Thanks for the comments,
    Tom

  14. andrew
    30. July 2008 at 05:36

    Hi again :)
    well, I’ve been playing around with my asus eee pc 4gb surf for the last week or so now and, after a couple of hitches, i’ve got it working exactly, almost anyway, how i want it! I decided just to go with ubuntu hardy and not bother with the standard OS as I don’t think the customer support is any good from asus themselves, whereas the support amongst the ubuntu community is amazing!!!! people, as in friends family and workmates, have been so impressed with the way my eee pc runs i’ve already ordered two more for other people, and have been asked to install ubuntu on their machines as well. Thanks for all your help, i think the support you,and the rest of the ubuntu community, iss absoulutly brilliant.
    thanks
    andrew

  15. Kalle
    8. September 2008 at 15:04

    Hi!

    I cant get the wireless to work..
    the install goes great no problems at all but without results..
    After i reboot theres no change in my system at all.

    Any ideas?
    Sorry if my English is bad.

    Kalle

  16. Tom
    9. September 2008 at 12:22

    Hey Kalle,

    A few questions…
    - You are connected to the internet via an ethernet cable when trying to install the madwifi drivers for the wireless card, right?
    - You’ve not updated your kernel after trying to install the drivers, have you? Most kernel upgrades require that you reinstall the wifi drivers.

    Let me know,
    Tom

  17. Jim Remington
    6. October 2008 at 15:46

    Tom:

    Thanks for posting these hints.

    After a fresh install of Ubuntu 8.04 on my new 900 eee-pc, I encountered several errors. First, the command m-a failed. I did not know what the command “m-a” stood for but after a bit of searching I discovered that it stands for module-assistant, which was not included by default. I got that via the synaptics package manager.

    Second, the command

    $ sudo apt-get install -y -f build-essential module-assistant eeepc-acpi-source –force=yes

    did not work. I got:
    E: Couldn’t find package -force

    What apparently did work was
    $ sudo apt-get install -y -f build-essential module-assistant -force=yes eeepc-acpi-source

    The rest went well.

    Cheers, Jim

  18. hog
    7. October 2008 at 07:31

    Hi Tom,
    I tried u’re suggestion to fix wireless thing:

    wget http://snapshots.madwifi.org/special/madwifi-hal-0.10.5.6-r3698-20080604.tar.gz

    but it says that madwifi-hal-0.10.5.6….. can not be found
    How could i get the update address for this,

    Thx,

  19. Tom
    7. October 2008 at 07:45

    Hey Hog,

    I just tried the URL myself and was able to download it. Try once more and see if you are able to download it.

    If that doesn’t work, perhaps you can download it on another machine, put it on a USB stick, and then transfer it to your Eee.

    Tom

  20. eric
    24. October 2008 at 03:32

    Hello great little tutorial I appreciate the time you spent my sound is now working properly. However I got a question I am fairly good at linux and enjoy learning more so I was trying to figure this out without google. I monitored log files, looked around but could not figure out what was causing problem. I would receive an audio alert when putting laptop into suspend I saw the option to toggle this feature in power management but nowhere did it tell me what the problem was?

    Maybe for those who have other problems or maybe just for the geeks that like to do more then copy and paste how might someone figure these problems out and fix them on there own? Where are the log files etc.

    Not that I am complaining about free open source software but why didn’t ubuntu making a distribution for a specific laptop not do these things themselves?

  21. Tom
    24. October 2008 at 07:38

    Hey Eric,

    I’m not sure if I completely understand your question, but was the audio notification that you heard a sound indicating a problem, or a sound indicating that the system was just going into another state?

    If you’re interested in seeing some information on hardware at certain times, it might be worth checking out lspci. Pipe the output into grep and filter based on your sound card and see if you can see anything about the state.

    If that doesn’t work, I also urge you to check out Ubuntu Forums as it’s a pretty good resource with a helpful community.

    Lastly, Ubuntu making a distribution for a specific laptop would be a lot of work - especially considering how many laptops are out there. Apple doesn’t do it nor does Microsoft. Honestly, Linux is one of those operating systems that we’re lucky enough to have the diversity that we do have - there are enough distributions for almost anything you could want.

    In my opinion, Ubuntu is the easiest distribution for an Eee.

    Anyway, hope this points you in the right direction - good luck!
    Tom

  22. eric soukenka
    24. October 2008 at 12:27

    Hey thank you for the tips I just enjoy figuring stuff out myself when I look things up on web I feel like I am giving up haha.
    In ubuntu EEE if you goto preferences then power management on the last tab called general there is the option to receive an audible alarm in the event of an error with power management. I couldn’t figure out why after shutting my lid the laptop would make a loud sound was embarassing the first few times and at first I had no idea why it was making a sound.
    I am just suprised with this nice option there wasn’t a box I could select or any notification on what the problem was.

    My understanding was ubuntu Eee was made for the Eee so I was shocked how many people were having problems with all the same fixes. It doesn’t bother me though I have tracked all down and customized it the way I like. This truly is a nice distribution but people that don’t know linux well might be upset when they install ubuntu EEE and so many things don’t work.

    For those googling fixes this site is great and there is a huge wiki for just the EEE and all the variants of linux for it and other useful tips.

  23. jofant
    1. November 2008 at 03:17

    hi tom.

    i cant follow you intruction, i get error when type make…………

    I cant get the wireless to work..?

    any ideas?

  24. Tom
    1. November 2008 at 08:12

    It sounds like you don’t have the proper packages installed for compiling source. Try doing this:

    sudo apt-get update
    sudo apt-get install make

    See if that works. If not, let me know!
    Tom

  25. William
    6. November 2008 at 13:35

    I tried to do the wget http://snapshots.madwifi.org/special/madwifi-hal-0.10.5.6-r3698-20080604.tar.gz
    also and had no luck. At least you go into detail. So many people seem to think they are helping by doing some sort of ego boost saying “check the BIOS flags” without saying how. All they are doing is making it difficult to find anything actually useful via a search.

  26. Tom
    6. November 2008 at 13:56

    Hey William,

    I’m not sure why you’re having issues downloading the wifi driver. I just tested the link and it works. If you’re connected to the internet via an ethernet cable, you can always point your browser to the address of the file, download, then unpack it.

    Thanks for the comment!
    Tom

  27. Ubuntu and the Asus Eee PC 900 « G to the Square
    12. November 2008 at 17:39

    [...] http://www.tommcfarlin.com/2008/07/11/ubuntu-on-the-eee-pc-900/ [...]

Leave a Reply