« back to index

Linux (Ubuntu) on Asus EeePC 1005P

Published on 16 February 2010
Updated on 23rd July 2010


UPDATE (23rd July 2010)
If you are using Ubuntu Lucid (10.04), you don't have to compile anything. Just install the package linux-backports-modules-wireless-lucid-generic and reboot. If you are using Ubuntu Karmic (9.10), I don't know if the equivalent linux-backports-modules-karmic-generic would work, just try before trying to compile this. If it doesn't work, remember to uninstall it before doing this procedure.

When using Ubuntu 9.10 (Karmic Koala), the wireless card was not recognized. This netbook uses a AR2427 wireless chip. It looks like it is the same chip from Asus 1005PE (AR9285), but with 802.11n disabled. Because of that, it uses the same ath9k drivers, but has a different ID, so you must use the bleeding edge version, that you can get from here. You will need to download a version of compat-wireless newer than the 2010-02-01 version, because that's when it was patched to be compatible with this chip. I used the 2010-02-13 version, and installed it:

wget http://wireless.kernel.org/download/compat-wireless-2.6/compat-wireless-2010-02-13.tar.bz2
tar -xf compat-wireless-2010-02-13.tar.bz2
cd compat-wireless-2010-02-13
./scripts/driver-select ath9k
sudo make unload
sudo make install

After a reboot, a new 'wlan0' device should be available and wireless networking should be working fine. I tried it with WPA2 and it was working OK.

UPDATE (29 march 2010)
It turns out that some days later I had some problems with the 2010-02-13 version of ath9k drivers, the connection was unstable, it fell to 1mbps even when being very close of the AP, and the performance in general was not good. I updated to a more recent version and it's working great now.


The brightness keys do work, but in an erratical manner. The brightness can definitely be changed, but somehow the levels behave in a random way: if the brightness is set at 50%, pressing the "more brightness" hotkey can get you 100% or 20% or 42%, but not the expected 60%.

To fix this, edit /etc/default/grub as root, and locate the line starting with GRUB_CMDLINE_LINUX_DEFAULT:


It may look different. Just add acpi_osi=Linux at the end:

GRUB_CMDLINE_LINUX_DEFAULT="something acpi_osi=Linux"

Run update-grub, reboot and it's done. Brightness should be working perfectly now, no more crazy changes :)

UPDATE (29 march 2010)
If you get random changes of the brightness level when being idle, it's not a hardware issue. It turns out that Gnome has some kind of ambient light sensor detection, but when it doesn't find it, it does weird things. You just have to disable all the automatic control of brightness in the energy config panel.

Boot Boster

This is a funny one. There is a very useful option in the BIOS, called Boot Booster. What it does is that when powering on the netbook, it jumps directly to the MBR of the disk, avoiding the POST, shaving off some precious seconds to the boot process. Surely you remember it worked great in the past, but then you ditched Windows to install Linux, and it disappeared!

Here's why: there was a little partition in the hard disk that came from factory, that the BIOS uses to cache its settings and make Boot Booster work. Probably you erased it when repartitioning to make room for Linux. But it's easy to make it work again:

  1. Create the smallest possible partition (usually 8 MB). I like to boot from a USB flash drive and use GParted to do this. Mark it as unformatted.
  2. Change the type of the partition to 0xEF (EFI). You can use cfdisk with the 'type' option.
  3. Reboot so that the BIOS can 'see' the new partition.
  4. Reboot again, enter the BIOS, and Boot Boster is there again :)

Note that even the placement or size of the partition don't matter at all, it must be a primary partition. Logical/extended won't work. And although you are marking the partition as EFI, it has nothing to do with that. It's just a 'special place' so that the BIOS can cache its settings and some data. I have read some reports that the video BIOS is stored there.