Turning the Asus Eee X101H into a mean lean hacking machine

I love netbooks. They’re the mopeds of computing: small, cheap, lightweight and actually kinda cute. They’re also fitted with an actual proper keyboard and therefore my favorite choice when it comes to a portable hacking station. Recently I got my hands on a sweet little Asus Eee X101H and decided to replace its hard disk with a spare SSD I had lying around, and simultaneously ditch Windows 7 Starter in favor of a Debian-flavored Linux. Here’s how that went down.

Replacing the hard disk with a SSD

The X101H comes with a 320GB 2.5” SATA hard disk, and replacing it is pretty straightforward. Unscrew the screws on the bottom of the Eee, under the memory lid (you’ll need to break the warranty seal to get to one of the screws), and on the side where the battery sits. There are no screws under the rubber thingies, so no need to pry those off. To open the Eee you’ll need to push the small pins at the hinges of the screen so they pop inside. Now the keyboard-segment can be pried loose with a screwdriver — you’ll hear it snap out at the various click points.

You can unplug and remove the keyboard, but I just flipped it over so it was out of the way. Removing the original HDD is also pretty straightforward: unscrew, unplug and remove. My 80GB Intel SSD X25-M had some sort of black plastic padding screwed to the top, which made it too big to fit in the X101H interiors. I simply removed it, re-attached the placeholders on the side, connected the drive and stuck it back in place. After that you can close your Eee, and you’re good to go.

You’ll certainly notice the absence of a noisy, spinning disk, and the X101H just turned into a quiet, speedy little work horse. Well, work pony, as there’s still that slow Atom CPU inside.

Picking a Linux flavor

With a blazing fast SSD installed, it’s time for a proper OS. Windows 7 Starter, the original OS for the X101H, admittedly ran pretty well. It boots up reasonably fast and has a big advantage of having optimized drivers for the Eee’s hardware, which’ll squeeze about an hour more life out of the battery. But since this was going to be my little hackbox, the obvious choice was Linux. Having no particular preference, and a lazy sunday afternoon on my hands, I decided to experiment with a few distros.

The checklist for this experiment:

Experiment one — Debian and Xfce

I decided to try my own custom install of Debian and Xfce, a combination which served me well on the ol’ Asus Eee 701. It has proven to be a small, fast and sturdy and seemed exactly like what the X101H would need.

I downloaded Debian’s minimal netins image, which is a mere 16MB, and put it on an USB stick. This image contains nothing but the basics to get the installer running, and downloads the rest from the net. This way you avoid downloading a 700MB image with slightly outdated packages you won’t even need.

I’m not worried about putting everything in separate partitions, but I do like a fully encrypted disk so I chose guided partitioning on an encrypted LVM. The Debian installer uses ext3 by default for the root partition, which I changed to ext4 as it supports some SSD-specific tweaks.

After downloading and installing the base system, you’ll drop into the tasksel dialog which offers an easy way to install multiple packages that belong to the “task” of the new system: desktop environment, web server, etc. I deselected the “graphical desktop environment” option as I don’t need Gnome and the kitchen sink. Just the laptop stuff and the base system will leave us with a very lean, basic system.

After installing Xfce with some basic applications this fully functional Linux setup ended up taking around 280MB, which is no problem on a 80GB SSD. It took a lean 15 seconds to boot, minus the time to enter the password for the encryption, and I was pretty happy with that. There were a couple of small hardware issues though: I needed to hook up the Fn volume keys to alsa-mixer, which I didn’t get to work in 5 minutes and gave up on. Worse though was the fact that vertical scrolling didn’t work for the touchpad. Checking the recognized devices with cat /proc/bus/input/devices | grep -i pad told me

N: Name="FSPPS/2 Sentelic FingerSensingPad"

and cat /var/log/Xorg.0.log | grep -i pad said

(II) config/udev: Adding input device FSPPS/2 Sentelic FingerSensingPad (/dev/input/event10)
(**) FSPPS/2 Sentelic FingerSensingPad: Applying InputClass "evdev pointer catchall"
(**) FSPPS/2 Sentelic FingerSensingPad: always reports core events
(**) FSPPS/2 Sentelic FingerSensingPad: Device: "/dev/input/event10"
(II) FSPPS/2 Sentelic FingerSensingPad: Found 11 mouse buttons
(II) FSPPS/2 Sentelic FingerSensingPad: Found scroll wheel(s)
(II) FSPPS/2 Sentelic FingerSensingPad: Found relative axes
(II) FSPPS/2 Sentelic FingerSensingPad: Found x and y relative axes
(II) FSPPS/2 Sentelic FingerSensingPad: Configuring as mouse
(**) FSPPS/2 Sentelic FingerSensingPad: YAxisMapping: buttons 4 and 5
(**) FSPPS/2 Sentelic FingerSensingPad: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
(II) XINPUT: Adding extended input device "FSPPS/2 Sentelic FingerSensingPad" (type: MOUSE)
(II) FSPPS/2 Sentelic FingerSensingPad: initialized for relative axes.
(II) config/udev: Adding input device FSPPS/2 Sentelic FingerSensingPad (/dev/input/mouse1)

which looks like the touchpad gets initialized under the generic “evdev pointer catchall”. There is a 50-synaptics.conf in /usr/share/X11/xorg.conf.d/, but these settings don’t get picked up, presumably because the system already assigned the touchpad to “evdev pointer catchall” in 10-evdev.conf.

Eventually I was to conclude that the touchpad can offer only basic mouse functionality, which is a deal breaker for me. After some research, I found that Debian’s current kernel (2.6.32-5) simply doesn’t support the X101H’s Sentelic touchpad.

One way to fix this would be to patch the kernel and recompile it, another would be to install the Debian testing branch (Wheezy, at this moment), which user a newer kernel. Both solutions kinda went against my “hassle-free netbook install” principle, so decided to ditch Debian and find a distro with a newer kernel.

Experiment two — Linux Mint

Never having played with this distro before, I tried both versions of Linux Mint Nadia (a.k.a. version 14): the normal version based on Ubuntu with the MATE desktop, and LMDE, the Debian-based edition with Xfce.

Both versions ran surprisingly well and offered a well rounded Linux desktop experience. Linux Mint 14 LMDE booted in about 30 seconds when it was installed on the SSD, which is pretty acceptable. All of the hardware seemed to work right out of the box. I didn’t need most of the software it came with though, which made Mint feel a little bloaty.

I also ran into the annoying problem of the touchpad not being recognized in the LMDE version (what with it being Debian under the hood and all), and I missed the option to go for full disk encryption during install.

The Ubuntu-based version seemed pretty much flawless, though, but I still felt the urge to look for something a little leaner, so I decided to run one more experiment.

Experiment three — Xubuntu and Lubuntu

In my mind, a naked version of Mint translated to “get yourself a lightweight Ubuntu”, and the two candidates I found were Xubuntu (with the Xfce desktop) and Lubuntu (with the Lxde desktop). I have no real preference for either, but since I’m used to Xfce I tried Xubuntu first. The install went smoothly, but while fiddling with the OS I had some issues with spontaneous reboots and eventually a fucked up GRUB, so I cursed the gods and tried again — this time Lubuntu.

The install process is exactly the same as for Xubuntu, and fifteen minutes later I had a lightweight and stable Linux running on my Asus EEE X101H. There were some hardware issues though: I don’t think the webcam got recognized (something I don’t use at all anyway), and he touchpad wasn’t configurable through the “Mouse and keyboard” GUI — in fact, nothing I changed there seemed to do anything, including keyboard setting. I want to turn off tap-to-click, so I had to do that manually. To disable tap-to-click, copy /usr/lib/X11/xorg.conf.d/50-synaptics.conf to /etc/X11/xorg.conf and add the MaxTapTime option:

Section "InputClass"
        Identifier "touchpad catchall"
        Driver "synaptics"
        MatchIsTouchpad "on"
# This option is recommend on all Linux systems using evdev, but cannot be
# enabled by default. See the following link for details:
# http://who-t.blogspot.com/2010/11/how-to-ignore-configuration-errors.html
        MatchDevicePath "/dev/input/event*"
        Option "MaxTapTime" "0"
EndSection

I poked around the system to see if there were any obvious changes I could make to increase battery life, but ended up doing nothing. The Atom processor and SSD drive consume little energy, and the I keep the other usual suspects in check myself, dimming the screen and turn network devices on and off as I need them.

Here’s a video of the X101H booting up, which takes 26 seconds from the moment you push the power button:

Conclusion

Granted, Windows 7 Starter ran pretty smoothly and still has the best battery life (a relatively whopping 4 hours) as opposed to any of the Linux distros. If you prefer Linux, Mint will offer an excellent, easy and fully functional install with all the programs you’ll ever need. If you like a little less fat, and don’t mind getting your hands dirty to get all the hardware to work, Lubuntu is a good choice. In any case, combined with the fast, silent and energy efficient SSD, you’ll end up with a sweet, cheap little hacking machine.

blog comments powered by Disqus