What this article is about
This article provides some technical details on the Linpus Linux distribution and the way it is implemented on the Acer Aspire One `netbook’ PC. It is intended for people who want to customize and extend the Linux implementation on that device, with a view to making it more useful. Some people have reported good results replacing the entire Linux implemention with a different one (typically Ubuntu). That’s certainly possible, but it’s not what this article is about, and I doubt it would offer much benefit over tweaking the supplied Linpus Linux. This article is written for people who are basically knowledgeable about Linux — you don’t need to know much (anything?) about Linux to use Linpus, but if you don’t, it’s probably Lest to leave your One as it is 🙂
The Aspire One
The One is a rather nifty little sub-notebook computer. It has an 8.9″ screen, a laptop-style keyboard, and weighs about 1 kg. It is an x86-compatible machine based on the Intel Atom chipset. The One is available with a 160Gb hard disk or an 8Gb solid-state disk. I am using the 8Gb machine, which I believe will be more rugged and therefore more suitable for travelling. The lack of a hard disk probably makes the machine a bit more responsive in use, and quicker to start up. The One has enough grunt to play movies in full-screen mode, although it’s a bit big to use as a portable media player. It’s just up to the job of running OpenOffice, but don’t expect snappy performance. There is only 512Mb RAM on the 8Gb models, backed by 1Gb of swap on the solid-state disk.
The One is available with Linux or Windows XP pre-installed. The Windows versions are, of course, more expensive, and I believe that Windows is available only on the hard disk versions (because I suspect it’s too bloated to fit comfortably in 8Gb).
Running Linux on a machine like this makes a lot of sense. Not only is it cheap, it is light on machine resources (or, at least, can be made to be), and easily customized. And if you want to run Linux on a portable computer, it’s reassuring to buy one that was built to run Linux. At least you know all the hardware is going to be supported.
The Linpus distribution
The Linpus distribution is fairly sustantial desktop-style Linux, based on Fedora Core 8. So it’s modern, but not cutting-edge. It’s very different from the reduced versions of Linux found on, for example, Sharp Zaurus units. On the Aspire, the basic distribution plus OpenOffice and some Acer-specific software takes up about 2.8Gb of the 8Gb solid state disk. Swap takes a further 1Gb, leaving a meagre 4Gb or so for user files. It’s interesting to see which bits of a standard distribution are included, when there is no immediately-obvious reason for them in a machine of this sort. Bear in mind that the machine is not intended to be used with its Linux workings exposed, and it’s not obvious even how to get a terminal or prompt up (Alt-F2, as it happens). So why the distribution includes what it does, and yet unaccountably leaves out some fundamental Linux stuff (e.g., NFS support) is not immediately obvious.
Among the components that are included, but don’t seem to be useable by any of the built-in apps, are:
- A java JVM (IcedTea)
- Full CUPS/IPP printer support
- compiz (!)
Of course, this is potentially good news for the Linux hacker, but perhaps not so good for somebody who would rather save the disk space for something else. Most likely these inclusions are a result of the way the Fedora distribution is packaged — because it’s designed for desktop Linux, many packages are much larger than they really need to be. For example, although the Aspire needs GhostScript for printer support, it certainly doesn’t need the whole (30Gb) GhostScript distribution. But that’s how it’s packaged, and it’s difficult for anybody except a GhostScript expert to pick out the exact bits that are likely to be used. This is fine on a desktop machine with a 160Gb disk, but not so marvellous on a mini-Linux like this.
Another example: there are many man pages in
/usr/share/man, but no `man’ utility to read them with! Other disk hogs include: the complete printer database (30Mb), Japanese and Chinese fonts (60Mb), OpenOffice language packs (100Mb), and the `Frozen Bubbles’ game (30Mb, amazingly). And the Acer PIM applications, of which more later. I presume that the IcedTea JVM is there purely to make the Firefox browser support Java applets.
There is no straightforward solution to this problem except to build a highly-customized Linux with nothing but files that you know are necessary. But this is a huge job, and not one that any of the standard commericial Linux distributions will help with. It’s easy to save about 300Mb of space by removing the Acer stuff (see below), most of the OpenOffice language packs, and some other assorted small bits and pieces that don’t seem to be used. But beyond that it would take specialist knowledge and a fair bit of time to figure out what could safely be removed.
You might think that doing a minimal install of some other Linux distribution, and then adding the bits you need, would be a way to make better use of the space on this device. But I suspect not — although a minimal Fedora 8 is about 600 Mb, as soon as you start adding packages for X, printing, desktop, etc., you’ll very quickly rack up the space.
The stock Linpus provides the
XFCE window/desktop manager and utilities. This is somewhat lighter and much faster than the usual Gnome/KDE stuff, and probably accounts for why the unit can cold-boot to a workable GUI in about fifteen seconds (more on this point later). Rather surprisingly, the Compiz compositing window manager is included, and it even works. The display device on the Aspire One is an Intel i910 and the stock driver includes all the necessary direct rendering support. You can get all the window shading and seasickness-inducing animations you like. I presume that this isn’t enabled by default because it would increase the startup time.
One notatable ommission from Linpus is any kind of Bluetooth support. It’s easy enough to install the missing Bluetooth apps, but there’s no support in the kernel, which will mean building new kernel modules, etc. Happily somebody has already done that and made the necessary bits available. See this post on the Aspire One user forum for details. With these modules and a bit of tinkering I was able to connect my One to the Internet using my Nokia phone.
Users and permissions
By default the One has one non-privileged user account, whose name is
user (uid=gid=500). The root account has a password which is not generally known, and which Acer won’t distribute. However, you can get a terminal and do
% sudo su
and then do whatever you want as root, including changing the password.
As supplied, the One starts up in runlevel 5 (i.e., managed X display) but with with the user `user’ logged in. You can make this behaviour more unix-like by editing
/etc/rc.d/rc.S and changing the
xinit command to
gdm, which will run the Gnome display manager and give you a login page. Personally, I consider the One to be a single-user device and I prefer to be logged in automatically.
The Linpus distribution makes certain assumptions about where user files are located. Circumventing these assuptions (by adding new users, for example, or changing the standard username) won’t break it — but it will mean that some of the built-in software won’t work as intended. See the section below on storage management for more on this subject.
Despite being a single-user device, the One deals with user accounts in a Unix-like way. That is, you’re expected to operate the unit as an unprivileged user, not an administrator. I’m pleased to see that Microsoft Windows is finally going the same way — Vista seems to be much happier running desktop tasks as an unprivileged user than pervious versions were — but, regrettably, many small Linux computers seem to neglect the Unix principle of `minimum permissions for the task.’
It’s slightly odd, nonetheless, that the One provides users with no administrative access at all. Well, no documented administrative access, anyway. There are statements in the manual such as `Contact your printer vendor for a Linux printer driver’; but how you’re supposed to install such a driver without admin rights and without terminal access is beyond me. Happily,
sudo works for the default user account, even though it isn’t documented.
The boot process
Linpus on the Acer One starts up in a rather odd way, compared to most desktop Linux distributions. On most Unix/Linux implementations, the graphical user interface (X) is the last thing to start up. There are various reasons for this. The most fundamental is that X requires a working network interface for interprocess communication, so networking (at least) needs to be stable before X starts. In addition, we’d expect all filesystems to be mounted — including network filesystems — so that your X apps will actually work when you come to use them.
But with Linpus X startup is almost the first thing that gets done. Most of the other services start up at the same time as, or after, X initialization. This has the effect of getting the X desktop (XFCE) on the screen really quickly, which is attractive to users. However, some compromises have been made to get this to work. For example, because X needs a working network interface, some network settings which ought to be user-configurable are not user-configurable. The hostname is permanently set as `localhost’, and the
/etc/hosts file is overwritten at boot. I assume that this is done because the developers don’t want to take the risk of the user ending up with a hostname/IP number combination that won’t be up when X starts. This can be got around with a bit of tinkering, but you have to be careful.
The built-in apps, and how to add to them
The Linpus distribution includes a complete OpenOffice installation. It also has the FireFox browser (not a particularly recent version), and all the stuff that comes with the XFCE desktop/window manager. This latter includes the perfectly serviceable `Thunar’ file manager, which does all the usual drag-n-drop stuff.
The Aspire also comes with some Acer-specific apps, which are rudimentary but useable. In particular, there is the Acer Communications Suite which provides an e-mail client, calendar, contacts list, RSS viewer, and instant messenger. These apps are pretty tightly integrated into the desktop environment, and difficult to extricate, except by the rather brutal expedient of uninstalling them. They aren’t bad applications, but there doesn’t seem to be any way to synchronize the data with anything else, which limits their usefulness. In fact, short of exporting as iCal files, there is not even a documented way to back up your data. In case anybody needs to know, the data from these apps lives in /home/user/.PIMDS, so copying the contents of this directory would be a straightforward way of making a backup. Oddly, there isn’t an ordinary `todo list’ app apart from the calendar. The Aspire also has another calendar called `orage’, which I imagine is a hangover from the Linpus distribution.
The tight integration between Communication Suite and the desktop is necessary to ensure that, for example, calendar reminders get serviced even when the calendar app itself is not running. However, unlike a `real’ hand-held PIM, the Aspire won’t wake up out of a sleep to remind you of an event, which renders it pretty useless for alarms unless you have the unit switched on all the time. This is odd, because the One does have the hardware and drivers to provide the necessary wake-up machinery — just poke a time into
/proc/acpi/alarm and it will wake up. But I’m not aware of any end-user software that can make use of this feature.
In the end, I removed all the Acer stuff, and installed Mozilla Thunderbird for PIM stuff. This synchonizes quite nicely with Google mail, calendar, and contacts, although a number of separate bits of software are required to do this. I installed Zindus for the contact sync, which is supplied as a Thunderbird extension. To sync the calendars I use GCalDaemon (which, despite the name, works perfectly well on a run-it-after-making-changes basis as well). GCalDaemon is a Java app, and I was pleased to find that the supplied IcedTea JVM was up to the job of running it.
Because Linpus is Fedora-based, you can readily use
rpm to add new software. There are plenty of Fedora 8 repositories around. Of course, because you’re working with a root filesystem limited to 8GB, of which 4Gb is already taken, you’ve got to be a bit careful about using
yum install with automatic dependency checking. You can easily end up downloading hundreds of megabytes of cruft that way.
One of the built-in apps you’ll probably want to upgrade or replace is
mplayer. The built-in version seems to be broken in some way — it won’t play very common video formats, like MPEG4. This isn’t because it’s particularly out of date, or even because the codecs are missings. It’s been speculated that uncertainty about software patents is the problem here, that Acer have shipped a deliberately limited version of mplayer. In any event, it’s easy enough to install
vlc, but I preferred to grab a later
The built-in wifi adapter is based on the Atheros device, which is one of the few that is well-supported by Linux. In the standard Linpus distribution, configuration is by means of the network settings applet (NetworkManager) integrated into the XFCE window manager. Presumably standard Fedora tools could be used as well, but I’m not sure how well connections managed that way would fit into the XFCE desktop. Connections can be changed on the fly using the applet, but if you just want to enable or disable the current connection (to save battery power, for example) it’s easier just to hit the little switch on the front of the case.
Interestingly, support for CIFS (SMB, Microsoft network shares) is supplied in the stock distribution, but there’s little or no support for NFS. There doesn’t seem to be any way to mount a CIFS share from any of the graphical tools supplied with the unit, so the only way to do it is at the command line, e.g.,
# mount -t cifs -o user=myremoteuser //server/share /mnt/someplace
Then you can browse the share using the stock file manager. I presume that the reason for supporting CIFS (at least in part) is for sharing files with Windows machines — but since there’s no built-in way to mount them except at the command line, I don’t know how `ordinary’ users are supposed to do that.
As already mentioned, Internet connection via bluetooth to a mobile phone is possible, although considerable tweaking is required. It’s not clear to me why such support wasn’t included in the stock Linpus, but it wasn’t. What [i]is[/i] supported, tantalisingly, is HSPDA. But there is, as yet, no hardware. There are rumours that a 3G modem will fit inot one of the blanked-off expansion slots, but at the time of writing nobody is sure. A USB 3G modem might work, but I haven’t tried it. I’m happy enough with GPRS (mobile phone) Internet on the rare occasions I need that sort of thing.
The One also has a wired ethernet socket, which might be useful if you want to copy huge amounts of data to or from it.
User files and storage management
The Aspire One rather cleverly uses a union filesystem (AUFS) to manage SD cards that are plugged into the SD card slot. It’s worth pointing out that this is intended to be a storage expansion slot, and not a general-purpose card reader. When a card is plugged in, the defaut action is to create a proprietary directory structure on it, and then merge this with the ordinary user home directory using AUFS. If this successful, a message pops up indicating the new total storage available. It’s a clever idea, but one that could be irritating if you just want to read a card. However, there is also a general-purpose card reader slot, which just gets mounted as
/media/disk-1, and doesn’t take part in storage expansion.
The way the storage expansion works is that the card gets mounted at
/media/disk, and the raw user home directory is
/home/user. The union of these two directories mounted at
/mnt/home. So you can, if you wish, get to the card and the built-in storage separately. But it’s not a good idea to plug in the card from your digital camera, unless you don’t mind having a lot of unwanted stuff written on it.
Oddly, the environment variable $HOME still points to
/home/user, even with a card plugged in, and so software that finds the home directory from $HOME is going to go to the wrong place. The built-in apps (OpenOffice, etc) have been configured to use
/mnt/home by default, and this shows up as `My Disk’ in the menus.
If you plug a USB drive into the one, it gets auto-mounted in the usual way, and appears to the XFCE file manager as
external://. You can unmount a USB drive from the file manager, or the old-fashioned way using the
The built-in webcam is a UVC device, supported by the
uvcvideo driver module. The Aspire is supplied with a utility
uvcview to capture images from this camera. The driver is V4L-compliant, so I guess any V4L capture app would work with the camera.
The CPU appears to be an Atom N270 running at 1.6GHz. However, frequency scaling is enabled which has the effect of bringing the frequency down to 800 MHz at idle (the lowest it supports, I think). This is good for power saving. What you can’t easily do is to restrict the CPU frequency to a low value in situations of high load where you still want to reduce battery consumption. To do that you’d need to unload the `ondemand’ CPU governer and load, say, the `userspace’ governer, and drive the CPU freqnuency in software (e.g., using
cpufreq). To Linux the One appears to have dual CPUs, but I don’t think the N270 is a true dual-core device — I think this is just an illusion caused by hyperthreading.