Ubuntu-eee on the eee PC 901

So a new year’s gift to myself for 2009: an Asus eee PC 901. After a quick play with the Xandros-based operating system that came pre-installed I decided to give the eee-specific Ubuntu distro a whirl. Despite the claim on their wiki that it would work ‘out of the box’ for the 901, there were a few issues with my installation (Ubuntu Hardy Heron v 8.04.1 on Asus model no. EEEPC-BK006) that I’ve resolved with the help of posts on the wiki and the eeepc users’s forum. So, largely because I might need to do it again, here’s my step-by-step guide on how to get the thing running as I like it:

UPDATE: ubuntu-eee, used in the description below, has rebranded itself as easy peasy. It seems to contain more license restricted software than the standard ubuntu installation and looks pretty swish. But ubuntu are clearly pushing their own netbook-remix so I’ve installed v9.04 (Jaunty Jackalope) from Ubuntu’s main site. Where necessary I’ve updated the advice below for that, and added tips on Firefox and Mobile Broadband. Incidentally, Ubuntu Netbook Remix on the eee-pc absolutely rocks.

Another UPDATE: As the Ubuntu versions have rolled on and got a bit bigger and slower I’ve now moved to lubuntu 11.04 for the occasional-use eeePC. It feels nice and quick for the kinds of simple jobs I’m doing with it.

N.B. I’ve mostly included eee-pc specific things here – there are other necessary steps with Ubuntu (like making flash work properly, and getting drivers to play .mp3 files). These all relate to using software with restricted licenses, but that software is available and works very well and Ubuntu now generally offers wizards to do these things which should pop up when you need them.

  1. Install the OS
  2. Recognise removable drives (N.B. Not necessary since Ubuntu 9.10)
  3. Wifi (N.B. Not necessary since Ubuntu 9.04)
  4. Webcam
  5. Make bluetooth work and enable other devices to push files via bluetooth
  6. Password lock after standby (N.B. Not necessary since Ubuntu 9.04)
  7. Make ‘home’ key show desktop
  8. Install eee-control
  9. Install Launchy (N.B. Gnome Do is probably preferable since 9.04)
  10. New fonts
  11. Firefox 3.5 (N.B. Not necessary since Ubuntu 9.10)
  12. Mobile Broadband

Install the OS

I first attempted to dual boot Ubuntu and Xandros by installing Ubuntu on an additional SDHC card plugged into the card reader. In principle, this is achievable. However, the installation messes up the boot loader so I ran into an error at the grub that meant that I just couldn’t run either operating system. There are some hints on solving the grub error 21 issue but I decided just to go for a clean install. The following method requires a windows or linux PC with an internet connection and a blank USB flash drive. NB Doing the following will completely remove your standard Xandros installation and any files you have saved!

  1. You’ll need to enter the Asus’s BIOS several times, but its quickboot mode, on by default, makes this tricky. So, first enter the BIOS to turn quickboot off. After hitting the on button you’ll have to tap Esc and/or F2 very quickly to get to the BIOS settings. It took me about five attempts of rapid and repeated tapping to get in. Now you’re in, use cursor keys to navitage to ‘Boot’, then ‘Boot Settings Configuration’ then set both the ‘Quick Boot’ entries to ‘Disabled’. Hit F10 to save, exit and reboot.
  2. On another PC download the ubuntu-eee iso file and the appropriate utility (called unetbootin) for making a USB flash drive bootable from the Ubuntu eee website.
  3. Run unetbootin and use the interface to select the source file (i.e. the iso just downloaded) and the destination (i.e. a blank USB flash drive).
  4. Insert USB drive to Asus, turn on, and hit F2 to enter BIOS.
  5. Change boot priorities to boot from USB drive. First navigate to Boot->Hard Disk Drives; select 1st Drive, hit enter, and select USB. Second, Boot->Boot Device Priority; select 1st Boot Device and choose ‘Removable Dev.’
  6. Hit F10 to save changes, exit and reboot.
  7. You should now be presented with Ubuntu’s live CD boot loader. You can run the operating system to test it without affecting your current Xandros installation, but don’t expect everything to work straight off. To bite the bullet and actually install ubuntu over the top of Xandros select the option to install.
  8. Most of the following screens should be very straightforward, except partitioning. Select manual partitioning.
  9. Select the 4GB drive (probably sda) and choose to use the whole drive as the root filesystem (labelled ‘/’). I selected Ext 2.
    N.B Ext 3 is the standard for linux now, and may be more stable through its journalling system – but that system requires very frequent disk writes which may noticably shorten the life of the SSD.
  10. Select the larger SSD drive, 8 or 16GB depending on model. This is probably labelled sdb. Choose to use this as the user’s home filesystem (labelled ‘/home’) – this is where all of your local files will be stored. Again I chose Ext 2, although Ext 3 is the more standard option.
    NB most linux installations would also include a ‘swap’ partition – equivalent to Windows’ ‘virtual memory’ – but again to reduce the frequency of writes to disc most people seem to recommend not having a swap on the eeePC. If you’re intended to use very memory-heavy applications for which 1GB ram is not enough you might like to reconsider this and put a swap partition (1GB?) on the larger SSD drive.
  11. Finish working through the installation wizard and wait while it installs. Choose to reboot. I had an issue here where the machine wouldn’t turn off properly, I think because it had been tricked into thinking it was installing from a CD and wanted me to remove the CD. So, I used a hard turn off (press and hold the power button), removed the flash drive and turned on again.

Hey presto – working ubuntu. And doens’t it look so much more natty than the grey of Asus’s custom Xandros? But, it doens’t work in entirity. So I had to apply the following fixes…

Make Ubuntu recognise removable drives

UPDATE: This is not necessary on the Ubuntu 9.10 release.

As explained on Tombuntu, something about installing from a flash drive messes with Ubuntu’s ability to recognise and mount new removable media. To solve it, simply do this:

    1. Open a terminal window (Accessories->Terminal) and type the following:

$ gksudo gedit /etc/fstab

  1. In the text editor window that should’ve opened, go to the line that references a CD drive (something like ‘/dev/sdc1     /media/cdrom0 …’. Comment out that line by putting a # at the beginning).
  2. Save, close, reboot. Sorted.

N.B. If it is important that a particular device can be referenced in the same location, no matter what combination of things you have plugged in, you can set a specific mount point Right click the device in the file manager to get its properties. Unfold settings and change mount point to whatever you want – it should still be located in /media though, unless there’s a good reason why not.

Make Wifi work

UPDATE: This is not necessary with Ubuntu 9.04 or 9.10 – simply go to System->Administration->Network Connections and put the relevant information in the ‘Wireless’ tab.

I used the ndiswrapper method explained here, plus info about the driver from here. Specifically…

  1. Using another PC download ndiswrapper-common, ndiswrapper-utils and ndisgtk. Copy them to a USB flash drive. (Full version numbers from link above, you could install these programmes through Administration->Synaptic if you have a working wired internet connection.)
  2. Also download the Windows wifi driver for the hardware. (ndiswrapper is a utility for running windows wifi drivers on linux.) Download the driver here. Unpack the .zip folder – you’ll just need the file rt2860.inf – copy it over to your USB drive.
  3. Insert the USB drive into your Asus, navigate to the files you just downloaded. The three ndiswrapper files are .deb format, meaning you can just click to install. You’ll get a warning that there are other versions in your software repositories. Don’t worry about it. The status should be marked as ‘all dependencies met’ or similar. (If not, and there are dependencies listed, you’ll have to download these as .deb files and install them first.) All being well, install each in turn.
  4. Now go to Administration->Windows Wireless Drivers. Click ‘Install New Driver’ and navigate to the rt2860.inf file. Select and you’re done. To configure your wireless network go to Administration->Network. Or, if in roaming mode, just click the network icon in the taskbar.

Make Webcam work

I had to change a BIOS setting for this, but that was all.

  1. Restart and hit F2 on boot.
  2. Navigate to Advanced->Onboard Devices. Go to Onboard Camera and mark as enabled. (While you’re there you might want to do the same for bluetooth.)
  3. F10 to save and reboot.

While the Cheese application does work to take snapshots and short videos it is, perhaps, not quite as it should be. Taking pics or video should result in a thumbnail turning up at the bottom of the app window. On mine it doesn’t. But then closing and restarting the app does display the previously taken pics and video. There appears to be an issue with the sound recording level as well, although it is doing something.

Make bluetooth work

I had to change a BIOS setting for this, but that was all.

  1. Restart and hit F2 on boot.
  2. Navigate to Advanced->Onboard Devices. Go to Onboard Bluetooth and mark as enabled.
  3. F10 to save and reboot.

N.B. the second of the special silver keys at the top of the keyboard (marked with arrows pointing out of a screen) is a quick way to enable/disable bluetooth.

Enable devices to push files over bluetooth

The built in bluetooth utility is good for pairing up devices and for browsing files on other devices, but doesn’t allow for other devices to push files to your eeePC. For this you need the package gnome-user-share. So,

  1. Open a terminal and type: sudo apt-get install gnome-user-share. (Or use the Synaptic Package Manager)
  2. Go to the System->Preferences->Personal File Sharing
  3. Select ‘Receive files in Downloads folder over Bluetooth’ and any other options that seem appropriate. NB I accept files only for bonded devices, which means you need to use the standard bluetooth utility (System->Preferences->Bluetooth->Set up a new device) to bond your device to the PC. It has to be this way around, bonding from the device to the eee isn’t the same thing.

Password lock after standby/screensaver etc

UPDATE: No issues with this in Ubuntu 9.04. I just used Preferences->Power Management to ensure that the computer goes to standby on shutting the lid, and the power button immediately shuts down. The first silver button now turns off the screen and has a password lock.

Having previously had problems with this, its great that standby works as it should. Using Preferences->Power Management accesses settings for what to do when shutting lid, hitting power button etc. (Note that if you haven’t got a swap partition you probably can’t use hibernate.) But no options in the GUI for password locks. Point 1 below is a reasonable method, but runs into a seemingly common ubuntu bug, for which a quick fix follows.

    1. Use the terminal command: gconf-editor
    2. Navigate apps->gnome-power-manager->lock.
    3. Select appropriate option. I seem to be having problems with the screensaver so have gone just for ticking ‘suspend’.
    4. Using this, though, results in ubuntu not recognising the password. Choosing ‘switch user’ gets you to the gdm login screen which should allow logging in as usual.
    5. For me, the quick fix on this bug report worked, i.e. use a terminal to run:

$ sudo chown root:shadow /sbin/unix_chkpwd
$ sudo chmod 2755 /sbin/unix_chkpwd

  1. I had previously tried the solution posted on this other report of the same bug, although it didn’t work for me. But hey, it clearly works on some systems.

N.B. The first of the silver keys at the top of the keyboard turns off the screen. It’s not a standby though, so no password.

Make the ‘Home’ key show desktop/home

Info from the ubuntu-eee wiki.

  1. From Home, select the Preferences menu, followed by Keyboard Shortcuts
  2. Scroll down and click on Hide all windows and focus desktop (it’s in the Windows Management section)
  3. Press the ‘Home’ button (shown as ‘Super’)

N.B. As of Ubuntu 9.10 this no longer works as the Super key is recognised as ‘Mod3’, presumably standing for modifier. That means that only key combinations are accepted in the Keyboard Shortcuts tool, not the single Mod3 key. I feel a bug report coming on…

Install eee-control

eee-control is a small utility that sits in the system tray and gives you quick access to turning on and off bluetooth, wifi etc, as well as allowing you to set the performance mode of your CPU. This package is not in the repositories, but for Ubuntu 9.04 instructions and a download are available here. As yet there’s no download for Ubuntu 9.10 – I’ll have a go at building it from source and report further.

This can now be installed from an optional added repository:

$ sudo apt-add-repository ppa:eee-control/eee-control
$ sudo apt-get update
$ sudo apt-get install eee-control

Install Launchy

UPDATE: Launchy is not currently included in the repositories for Ubuntu 9.04 and installing from the Launchy .deb file caused conflicts on keyboard shortcuts that I couldn’t solve. Instead I’ve gone for gnome-do from the repositories which works just as well. Just replace ‘launchy’ with ‘gnome-do’ in the below code to install.

Gotta love this application launcher, whatever the OS. Now included in ubuntu repositories, so:

$ sudo apt-get update
$ sudo apt-get install launchy

Installing new fonts

UPDATE: The microsoft core fonts are now included in the ‘ubuntu-restricted-extras’ package, that also includes support for flash and various audio and video formats. Go to Favourites->Ubuntu Software Centre and use the quick search box to find ‘restricted extras’ for the appropriate package. Bingo.

Info on fonts from the Ubuntu Wiki.

    1. Make a directory to store them in.

$ sudo mkdir /usr/share/fonts/truetype/new-fonts

    1. Copy the font file to the new directory.

$ sudo cp ~/Downloads/new-font-file.ttf

    1. Refresh the fonts list.

$ sudo fc-cache -f -v

N.B. Some apps may not recognise the new fonts until after a reboot.

Firefox 3.5

UPDATE: Firefox 3.5 is included in 9.10 by default. These instructions may be adaptable if a big new Firefox release comes along before the next version of Ubuntu.

Ubuntu 9.04 includes Firefox 3 by default. For the latest and greatest it is possible to install Firefox 3.5 from the repositories. But, note that it will be installed as ‘Shiretoko’ without the usual branding, which is the Ubuntu way until 3.5 becomes the officially supported browser (which will happen in version 9.10). When using 9.04 do not uninstall Firefox 3.

  1. Administration->Synaptic Package Manager
  2. Search for ‘firefox-3.5’
  3. From the long list of related applications I just marked the packages ‘firefox-3.5’, ‘firefox-3.5-gnome-support’, and ‘firefox-3.5-branding’ for installation.
  4. Click ‘Apply’.

You’ll find ‘Shiretoko’ with a generic icon in the ‘Internet’ section. You can always right-click the icon and choose ‘Add to Favourites’ to make it more quickly available.

Mobile Broadband

Well this is a pretty exciting development for netbook users. Ubuntu now has built in, ‘out of the box’ support for mobile broadband dongles. Using an O2 dongle this was pretty straightforward.

  1. If testing this somewhere where you usually have a wifi connection simplify things by right-clicking your signal strength icon and uncheck the ‘enable wireless’ option.
  2. Plug in the dongle
  3. A wizard should open up, select your network operator and follow on-screen instructions.
  4. This resulted in incorrect settings for me, but easily fixed.
  5. Right-click the signal strength icon and select ‘Edit Connections’
  6. Go to the ‘Mobile Broadband’ tab.
  7. Select your connection and click ‘Edit’.
  8. Fill in the right details from the bumf you got with the dongle. For me this required changes to the Username, Password and APN fields. (For other O2 users, the username might be ‘o2bb’ and the APN might be m-bb.o2.co.uk – the username you will have chosen yourself.)
  9. And then… it just works!

N.B. For more functionality (like sending texts) I’ve seen the UMTSmon package recommended. Not tested it though and generally prefer not to install software that is not in the repositories.

UPDATE: It is possible to get mobile broadband through a bluetooth-enabled 3G phone, provided you have a sensible data plan with your mobile company. See this post for info.