Nearly Straight Ten


Update: Miscellaneous tweaks and notes.

A couple of nights ago I grabbed my Eee PC 901, which so far had been running a variant of Ubuntu 8.04, and installed vanilla 8.10.

As a side-effect, I also ended up drafting the notes for this post. Here’s why I did it, in five paragraphs:

  1. I wasn’t very comfortable with the idea of running Ubuntu-Eee or a netbook-tweaked version. As much as I like the idea of a tight-fitting, fully optimized distribution, my money would be on the Acer Aspire One’s Linpus and not on Ubuntu – plus I don’t really like using a sub-niche of a niche OS.
  2. In flaky and opinionated environments like Linux there is more security in numbers, and even though I have had very poor experiences with Ubuntu (and hate Debian), the fact is that it’s pretty popular right now.
  3. I had plenty of independent confirmation that it would a) be painless and b) work with all the built-in hardware (this bit turned out to be only 99% correct, which just goes to show you how much Linux folk actually test things).
  4. It was that or XP, and, to be honest, I wasn’t keen on having to tweak XP for SSD use.
  5. I was watching Oprah (no, seriously) and realized that if I didn’t try to do something technology-related my head would explode.

Plus I don’t really use the Eee for much more than browsing and the occasional e-mail. It’s a weekend/casual use machine, not something I rely on, so I can fool around with it without fear of wasting time.

Even then, I was parsimonious with the time I had – the whole thing took around an hour, and most of it was idle time watching TV and reading while stuff installed (actual keyboard time for the initial install was more like 15 minutes)

Basically, I went through this piece, which was fairly comprehensive and had a non-sucky and short list of steps.

The Steps

I’m reproducing them here for my own reference (even though the likelihood of my doing this again for 8.10 is remote), since I did a few minor changes.

What I actually did was:

1. created a USB boot disk on another machine (around 20 minutes, including grabbing the ISO).

2. Set up Ubuntu using my current partition scheme (root and a few MB swap1 on the 4GB SSD, /home on the 16GB one). That took another 20 minutes or so.

3. Added the array.org repository key:

wget http://www.array.org/ubuntu/array-apt-key.asc
sudo apt-key add array-apt-key.asc

4. Added the following software source with the GUI tool:

deb http://www.array.org/ubuntu intrepid eeepc

5. Installed linux-eeepc-lean and eee-control:

sudo apt-get install linux-eeepc-lean eee-control

6. I also tried to remove all the junk associated with the standard kernels:

sudo apt-get remove linux-generic linux-image-generic linux-source-generic linux-restricted-modules-generic

This, despite the original claims, does not prevent you from getting the stock kernel updates – you still get security updates sent to you2.

I then went through this other piece and did a few of the tweaks (I skipped some things because I like browser cache to be persistent and would rather save RAM).:

7. Replaced relatime with noatime on all /etc/fstab entries.

Update: Later, I changed fstab to have:

... defaults,noatime,nodiratime,errors=remount-ro,commit=15

As per this link (via Filipe Correia, in comments). I had googled for the delayed commit syntax but couldn’t find it offhand that evening.

8. Added a tmpfs line to /etc/fstab:

tmpfs /tmp tmpfs defaults,noatime,mode=1777,size=250m 0 0

I don’t really like this much (since I sometimes need to have fairly large temporary files), but it’s fairly harmless for web surfing.

Update: I later limited tmpfs to 250MB since, like Filipe, I found it rather wasteful of RAM.

9. Added elevator=deadline to the kopt line in /boot/grub/menu.lst to change the disk access policy.

10. Followed the instructions here to set up the Private encrypted folder (which, by some asinine reason, isn’t set up by default). I’d much rather have full home folder encryption, but that’s OSS consistency for you:

sudo apt-get install ecryptfs-utils 
ecryptfs-setup-private 

I then moved most of my “dot” files and configurations (including Firefox and Thunderbird profiles) into Private and symlinked them. I haven’t noticed any performance degradation whatsoever.

The rest was humdrum stuff (reinstalling a couple of local apps plus Citrix, setting up eee-control for sane hardware management, etc.).

UNIX diehards have always known that keeping your home partition separate ensures that 99% of the stuff you had running previously will find and use your old settings, so in practice I’ve had to re-configure, um… pretty much nothing on my desktop, browser, or mail client.

The Results

So far, things feel marginally faster than 8.04.1 (probably due to the disk tweaks), and suspend/resume seems to be cleaner. All the hardware seems to be properly set up, and 3G support mostly works out of the box, too – I still have issues with our custom APN and username format setup, but haven’t really looked into it and it shouldn’t affect “normal” users3.

The Catch

I do have some issues with audio (I had to fiddle with “Line In” to get decent audio playback, of all things, and seem to be unable to set audio gain for recording and Skype) which are nagging but not critical in day-to-day use (i.e., I don’t use Skype for anything but testing).

Afer a couple of days of some research and poking around these audio issues seem to be a consequence of the (recurring) flakiness of Linux audio, so I filed a bug on it. A month later, it’s still broken.

More on this later, if I find the time.

P.S.: for reference, here is the full contents of /etc/fstab:

# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
# /dev/sda1
UUID=50143e80-0961-4a94-a17d-92aebec34e0f /               ext3    noatime,nodiratime,errors=remount-ro,commit=15 0       1
# /dev/sdb1
UUID=0791b78d-93a3-4448-ac57-e86f8063cf88 /home           ext3    noatime,nodiratime,commit=15	0       2
# /dev/sda5
UUID=07ae3539-574b-66a8-f148-c9d4ddcc4e4e none            swap    sw              0       0
tmpfs /tmp tmpfs defaults,noatime,nodiratime,mode=1777,size=250m 0 0

…and the current partition scheme for the 4GB SSD (the 16GB one is a single partition):


Disk /dev/sda: 4034 MB, 4034838528 bytes
255 heads, 63 sectors/track, 490 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xdd28dd28 Device Boot Start End Blocks Id System /dev/sda1 * 1 462 3710983+ 83 Linux /dev/sda2 463 490 224910 5 Extended /dev/sda5 463 490 224878+ 82 Linux swap / Solaris

I have around 600MB free on the system partition without removing anything, which (considering I need little to no extra software) means I still have quite a bit of breathing room. If necessary, I can remove the swap partition and get rid of random junk…

1 Yes, yes, I know. Swap is supposed to be evil on SSDs, etc., etc. But I don’t buy into that.

2 In the end I decided it wouldn’t hurt to keep the stock kernel around in case of flakiness, but it bears mentioning.

3 I fixed this by installing the Vodafone Betavine “driver” (i.e., a proper 3G aware dialer that actually understands about custom APNs and usernamerealm@ authentication. Network Manager has been updated a couple of times since I installed the system, but at the time of the last update (Dec 23rd) there have been no fixes for this specific issue.