This post comes via my 10-year-old laptop, a Toshiba Satellite 2065CDS. It has quite a pedigree — it was my business laptop for a while, then my personal laptop for working on Angband and playing Diablo, and then went to work as a file server, and now continues to work tirelessly away as a utility server, automating tasks like checking uptime on websites or making sure that the Clog picks up my latest emailed vignette.
When I bought the laptop in 1998, it was top-of-the-line, and came with Windows 98 on it. Even then though, the performace felt pretty subpar compared to a desktop computer running the same OS. Over time, W98 became slower and slower, until the laptop was barely usable.
At that time, I was interested in learning to use Linux, so I got a copy of Ubuntu Linux (I think it was Edgy) and installed it. There were issues with installing and getting the video to work quite right, but it was a fun experience. I stored the laptop in the closet and let it act as a file server for my home network. I found Linux to be an excellent OS for this purpose; I had zero downtime, and I think I had the laptop running for six months straight with no reboots or memory leaks.
Recently I decided to press the laptop into being more than a file server; I wanted it to monitor my webites, update the Clog, notify me via email when certain events I was interested in happened, and so forth. But a lot has changed since I installed Ubuntu — the version I had was no longer supported and so I was unable to download some of the software I needed (like sendmail).
Installing the latest version of Ubuntu Linux was not an option — it’s gotten so big now that it needs 384MB of RAM just to install (much more than my paltry 160MB), and its CPU requirements would bring my little laptop to its knees.
So I set out to find a distro of Linux that would meet the following criteria:
- It had to run acceptably well on my laptop. That means being able to run inside of 128MB of RAM, needing no more than 3.5GB of hard drive space, and not pegging the CPU just to display the windowing environment (I’m looking at you, Gnome).
- It had to detect and use my PCMCIA network card. Network access is a must, obviously, and the Toshiba uses a non-standard PCMCIA bus. I had three cards to choose from, two wired and one wireless.
- It had to be easy to install new packages such as sendmail, python, and xemacs. These are not usually part of a standard distro and I needed to be able to add them without a big headache. I didn’t realize this was one of my requirements until part way through the process.
After doing a little research, I decided to first try Damn Small Linux. This is a tiny tiny distro (less than 50MB!) that is designed for older hardware, so it seemed like a good fit. I ran the live CD without installing, so it was running entirely within my RAM. The windowing system (Fluxbox?) was very zippy on the Toshiba; windows moved quickly and cleanly, and the overall responsiveness was quite nice. Unfortunately, it was not able to detect any of my network hardware cards. After trying a few tweaks to get it to work with my network, I gave up.
I read a couple of success stories about getting Puppy Linux to run on Toshiba laptops, so that was the next distro to try. To my delight, the live CD detected my wireless card and connected me to the Internet. The interface was not as zippy as DSL, but it was quite acceptable and I was able to navigate around the OS without any problems. The non-standard apps took a little getting used to (I’m accustomed to Firefox, Open Office, etc.) but worked just fine.
I was so pleased I installed Puppy Linux to my laptop’s hard drive. The installation was a bit of a pain, but was very well documented (I love Puppy Linux’s conversational help style) and before long I was booting from my hard drive with no problems. Then, as I started to set up the laptop to do the work I had intended for it, I realized I would need to install a few tools; I would need sendmail, python, and xemacs to develop the scripts I would be running on the box.
This turned out to be a showstopper. To my surprise, there was no easy way to get these tools installed. No apt-get, no package manager, not even a C compiler for me to compile them myself. I didn’t mind doing the work to get them onto the machine, but I didn’t want to spend days trying to figure out how to do it. In frustration, I returned to the Internet to see if I had any other options.
I found a post on a Linux forum mentioning that someone had successfully installed Xubuntu on their Toshiba laptop. I had originally passed over Xubuntu, assuming it to be a just a flavor of Ubuntu that, like the original, didn’t have a prayer of running on my laptop. But as it turns out, Xubuntu is a specialized distribution of Ubuntu designed for low-end, low-memory machines. The thought of having my favorite things about Ubuntu (great support, package manager, familiar apps) running acceptably on my Toshiba made me determined to give it a try.
I burned a copy of the Xubuntu Live CD and tried to boot from it. It got partway through and then consistently halted, claiming it couldn’t read the CD. Thinking that perhaps it was just a bad burn, I made a second copy; it had exactly the same problem. I still have no idea why — the download itself was good and had a valid md5. Maybe something about the format of the CD couldn’t be read by the 20th century CD-ROM in the Toshiba?
So I downloaded and burned the Xubuntu “alternate install” CD. This is for use when you just want to install Xubuntu rather than try the live CD, or for machines that are really memory-strapped (e.g., less than 128MB). I didn’t mind committing to a hard drive install, since it’s easy enough to reformat the drive if it didn’t work out.
To my delight, the install CD didn’t have any read errors, and got right down to the business of putting Xubuntu on my hard drive. I ran into a couple of issues during the install where a particular step failed, but simply re-running the step allowed it to complete successfully. Within a couple of hours, Xubuntu was up and running.
Xubuntu is definitely a much heavier-weight OS than either DSL or PL. The user interface is less responsive, and the windowing system eats up about 20% of my CPU time. Even so, its performance is quite acceptable. Typing in a Web form in Firefox 3.0 has a slight lag, for example, but interacting with the terminal is zippy. Heavyweight apps such as Firefox take a while to load. Being an Ubuntu flavor, I have access to its software repositories, so getting my xemacs will be easy. sendmail and python are included right out of the box.
I had one major issue with Xubuntu that was almost a showstopper. Like DSL, it couldn’t find my network cards at all. Since Ubuntu Edgy had been able to detect my cards, I was pretty sure that Xubuntu would be able to, if only I could figure out how.
Fortunately, it wasn’t too hard to solve. I noticed on startup a message that said somethign like “BIOS date is before the cutoff (2000), ACPI disabled. Use acpi=force to enable ACPI.” Frankly, I had no idea what ACPI was, but the cutoff date made me wonder it had to do with talking to certain kinds of devices.
Turns out the “acpi=force” is a boot parameter to the kernel. I had to go to the GRUB menu, select the boot image, and press ‘e’ to edit the kernel command. I added “acpi=force” to the end of the command, pressed ‘enter’, and then pressed ‘b’ to begin booting the OS. To my delight, Xubuntu started ACPI, and within moments the signal lights on my network card turned on! After logging in, I was able to access the Internet and my local network. Huzzah! Editing boot/grub/menu.lst and running update-grub made the change permanent.
So far, I am very pleased with Xubuntu. I’m running the latest version of an operating system on a 10-year-old laptop, and it runs just as well (if a little more slowly) as my more powerful machines running the full version of Ubuntu. I’m considering putting Xubuntu on my other Ubuntu laptop as well; although it runs Ubuntu acceptably, it will soon no longer meet the minimum hardware requirements and it gets slower with each system update.
Thanks for reading.