Perfect Ubuntu Jaunty on the Asus eeePC 1005HA (and 1008HA)

Standard

The 1005HA is one of the brand new Asus eeePC netbooks, and it is a great little machine — aside from the fact that it comes with Windows XP or a dumbed-down customised Xandros (allegedly — as time goes on, Asus seem to be selling out to Microsoft).

As the 1005HA is pretty new, it has a few odd hardware quirks that won’t be fully supported out of the box until the next release of Ubuntu.

Here I run through what I did to end up with a 100% working install — including all Fn hotkeys. The good news is that it is very easy!

My perfect Ubuntu setup on the 1005HA

My perfect Ubuntu setup on the 1005HA

If you followed these instructions before, and now want to upgrade to Karmic, see my notes here.

Step 1: Installing Ubuntu

Start off with Ubuntu Netbook Remix. It is designed for netbooks and comes with a customised kernel. Even if you don’t like the special netbook interface, it can be easily reverted to the default Ubuntu look with a single click.

Download it here
, and follow the simple instructions here to create an installer on a USB stick.

Power on your netbook, and repeatedly tap F2 to bring up the BIOS configuration.

Under “Boot settings”, disable “Boot Booster”, and hit F10 to save settings. We do this so that we can specify our USB installer as the boot device, and can re-enable it later.

When the machine reboots, hit “Esc” repeatedly to being up the boot menu. Choose the USB key, and away you go.

I wouldn’t bother with the “live preview”, and jump straight into the install.

The Ubuntu install process is straightforward.

Partitioning during install

Partition the disk however you like.

I created separate partitions for / (20gb), /boot (1gb), swap (4gb), bootbooster efi partition (16MB), and /home (the remainder), but how you do it is really up to you. I favour the above partitioning scheme to serve me really well over the years.

I set /home, /boot and / to format as ext4, and found performance to be great.

Don’t forget to create a swap partition of around 2x the amount of RAM if you want hibernation to work!

The EFI partition is for the Asus Boot Booster feature. It needs to be 8MB — I made it 16 just to be sure. At boot time, BIOS information is cached in this little partition so that the power-on self test can be bypassed. It speeds up the boot process by several seconds, which I think is great.

You can leave the EFI that comes pre-created. However, I wanted to blow away all partitions and start from scratch with my own partitioning scheme, so I recreated it. It must be a primary partition. It must be labelled as type “EFI”, which I was not able to do using the installer. See below for instructions on how to set it after the install is completed. Leave this partition unformatted.

Wired networking

After install, the first thing you’ll notice is that ethernet and wireless networking aren’t working. Fortunately, they’re easy to fix.

On a computer with working networking, download this file:

atheros-wired-driver-1005ha-linux

Open the zip file (double-click it), and extract it to the location of your choice. Then, in a terminal, navigate (‘cd’) to the ‘src’ directory of the unpacked files, and type:

make
sudo make install
sudo insmod atl1e.ko

If you receive an error after the first line, and you’re not running Ubuntu Jaunty UNR, ensure you have the linux headers package installed for your kernel — you’ll need to find and download the appropriate .deb and install it. Information is here.

Until Ubuntu Karmic is released, every time you do a kernel update, you will need to re-run the last two steps (preceded by a sudo rmmod atl1e.ko).

You now have ethernet network — so plug yourself in to a network cable and set up wireless…

Wireless networking

This is easy — you just need to install the driver back-ported from the next Ubuntu release.

First, enable the backports repository: Administration > Software Sources > Updates and enable “Unsupported Updates (jaunty-backports)”.

Then, open Synaptic Package Manager, find the package linux-backports-modules-jaunty, and install it.

Getting rid of the Netbook Remix interface

While the netbook remix interface is innovative, I prefer having a desktop and a normal panel with window switcher. To kill the netbook interface, Just go to Preferences > Switch Desktop Mode.

Gnome panels can take up too much space on a netbook screen — you can set them to auto-hide by right-clicking them and choosing Properties. To speed up the auto-hide behaviour, fire up gconf-editor, and navigate to apps > panel > toplevels, and reduce hide_delay and unhde_delay for each panel.

Super Hybrid Engine, Installing an eeePC tray utility, and getting all hotkeys to work

An eeePC tray utility is useful in order to utilise Asus’ so-called “Super Hybrid Engine”, which is really just marketing lingo for adjusting processor speed for different power:performance profiles. It also enables you to switch on/off all the eeePC’s integrated peripherals with a click or two, or using the hotkeys.

After a bit of trial and error, I found that the best tool for the job is “eeepc-tray”. It can be installed from a repository, which means that it will be automatically kept up to date.

Follow these simple instructions to add the statux.org repository.

When done, fire up Synaptic Package Manager, and find and install the packages eeepc-tray and eeepc-laptop-dkms. When done, reboot.

Now, all your hotkeys, apart from Fn+Space, Fn+F3, and the top-left touchpad enable/disable buttons,will be working.

Finishing off: Final hotkeys

First off, we need to make the touchpad addressable by other applications. The safest way to do that is through a rather cumbersome SHMConfig policy XML file.

Create a new plain text file, with the following content:

<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
<device>
<match key="info.product" string="SynPS/2 Synaptics TouchPad">
<merge key="input.x11_options.SHMConfig" type="string">True</merge>
<merge key="input.x11_driver" type="string">synaptics</merge>
</match>
</device>
<device>
<match key="info.linux.driver" string="psmouse">
<merge key="input.x11_options.SHMConfig" type="string">True</merge>
</match>
</device>
</deviceinfo>

and save it as /etc/hal/fdi/policy/shmconfig.fdi.

Then reboot, or restart X (right-alt – SysRq – k), and the touhpad will now be addressable. When you type, it will briefly disable to prevent accidental mousing.

All we need to do now is enable the outstanding hotkeys. Right-click the eeepc-tray icon, click “Edit Configuration”, and paste the following in the empty file:

#Touchpad control
KEY_TOUCHPAD="00000037"
# Fn + space
KEY_FSB="00000039"

And there you go… all working!

Sound and microphone

The sound works perfectly out of the box. However, the microphone input is set to the microphone jack, rather than the internal mic by default. To change it, open Volume Control, hit Preferences, and enable all the Mic and Input Source options. Then, set the input source to “Int Mic” under the Options tab.

In skype, set your Sound In device to be HDA Intel (hw:Intel, 0). (Sound Out and Ringing should be set to ‘pulse’)

Setting the EFI partition for boot booster

As mentioned above in the partitioning section, for boot booster to work if you removed the default Asus EFI partition during install, you’ll need to set your new 8MB primary partition as type “EFI”. Doing that is simple:

open a terminal, and type sudo fdisk -l to list your partitions. Look for the little Boot Booster partition you set aside. My EFI partition was on device /dev/sda3.

Then, to set the appropriate partition as “EFI”, type sudo sfdisk --change-id /dev/sda 3 ef, replacing “3″ with the device name you found in the previous step (e.g. “2″ for /dev/sda2).

Just be sure you do it to the right partition — back up your data first if you’re unsure!

When you reboot, hit F2, and re-enable boot booster in the BIOS.

229 thoughts on “Perfect Ubuntu Jaunty on the Asus eeePC 1005HA (and 1008HA)

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>