This Christmas it was my turn to meet my partner's extended family. To cope with spending a week with many new people in a strange new land, I created a creature comfort to take with me-- A Linux laptop. Geeks read on.
I was able to borrow an abandoned Acer 760ic laptop for this purpose. Here are the basic specs of the machine as I received it:
I soon discovered the model could accommodate a whole 20 Megs of RAM. I found the RAM upgrade at Kahlon.com for $12 and ordered it. However, I went ahead and setup the machine with the eight Megs I have. (As of this writing, I haven't received and installed the new memory yet.)
I was also fortunate enough to receive a PCMCIA Ethernet card in my loan-- The SMC 8040tx. This required no additional configuration to work with my distribution choice.
I was pleased to discover that once setup, the machine performs all the basic functions I hoped it would. With 8 Megs of rams, it performs comfortable and competently for console-based text editing, e-mail, web-browsing, and ssh connections.
Besides that the machine works "good enough" for many functions, I had another motive for spending the time to set it up. I'm well aware that the process of creating computers is toxic: hazardous to the health of humans and the environment. Keeping on old computer running not only saves money, it also delays or eliminates the need to purchase a new one. I also got a particular satisfaction out of the challenge and learning experience.
Old laptops seem particularly worthwhile. Besides the space savings, they have energy-saving power-management features. The LCD screens can age well. This 10 year old laptop screen is much brighter and easier to read than much younger CRTs. The PCMCIA standard is still in use today, allowing modern enhancements to be added easily such as modems, network cards, and USB ports. With USB, a whole host of modern devices could be connected including external drives, printers, card readers, etc.
Here's a description how I use it. Then I'll explain how I got it installed.
I'm using Mutt 1.4, my favorite e-mail client,to read and send and mail
off-line. Masqmail appears to be a great
sendmail replacement in this case. It's small and is built to support sending mail "off-line", and to
connecting to the SMTP servers of several ISPs. When I return to the networked world, I plan to use a tool like offlineimap to synchronize my laptop and server mail trees. This might mean compiling offlineimap on the laptop--
the first piece of software I will have needed to compile so far.
Mutt launches quickly and is very responsive. The folder listing takes a little longer to appear, but that's the only slow down I've noticed.
I'm happily using Vim 5.6, my favorite editor, for
text editing. Performance is great here as well. The only downside is
that I miss a few features that Vim 6.x provides, and that my .vimrc and plug-in files expect to
exist. However, I suspect that I could compile a "light" version of Vim 6.x and have much the same performance.
I'm enjoying using w3m as a text based web browser. Performance is great with this application as well. It loads almost instantly. When connected with a high-speed connection the pages render instantly, with table-based layouts preserved.
w3m has a feel that reminds of vi. It lacks an interface that makes it easy to learn. However, it's
very efficient and powerful to use if you invest a little time to do so. It has some neat tricks up it's sleeve,
including tabbed-browsing, mouse support, and even support for rendering images when displaying through X11. The
package I was found was version "0.2.1". It would be nice to upgrade to a newer version (current 0.4.1) which I
imagine would also be "small enough" to run comfortably.
I also highly recommend links as a console web browser. links
has more of the feel of a Macintosh experience. It has an interface that is easy to use immediately and supports
powerful features. It also renders tables and has a version that runs under X. A "links2" package was
available for my system. It won't yet run because it depends on "X". So that will have to wait until the memory
upgrade is installed. :)
Using either w3m or links, the old standby lynx console browser seems
antiquated by comparison.
I installed the perl package, which contained version 5.004. This is OK to tinker with, but as a
professional Perl programmer, I expect I'll want to upgrade this if I keep using the machine. I was disappointed
that "perl Makefile.PL" didn't work when I tried to build a module. It complained a missing "perl.h" file which
didn't appear to come as part of the Perl package.
I installed the DeliLinux package for ncftp-3.0.1. This is my favorite FTP client. It has an excellent balance of being easy to learn and use while supporting powerful features. It supports book-marking sites, recursive downloads, and resuming downloads. It's one of those console programs that's so nice that I prefer to use it over more graphical options. It also performs quit well under the memory constraints. I wish this program appeared as the default FTP program in more Linux and FreeBSD distributions.
I did considerable research to see what free Unix options were available for low-memory laptops. Slackware showed up over and over as the distribution that other people had chosen for their low memory machines.
The reasons for choosing Slackware are not just technical, they are cultural. Slackware has made an effort over the years to provide options and documentation to support low resource systems. This has included low-memory boot disks, floppy-sized installer chunks and special documentation.
Once installed, it's also a benefit that the Slackware-specific system administration tools are all console-based rather than X-based. Other options have that trait as well, including {Free,Open,Net}BSD. (One late night I tried some BSD install floppies from all three variants, but they all failed dramatically at some point.)
Finally, I found a distribution based on Slackware that is targeted at using machine's of this caliber as a modern desktop machine. This is DeliLinux. It's based on Slackware 7.1. By choosing this older base, a number of the core components are smaller. DeliLinux adds extra value to the base distribution by creating select additional packages, and updating key packages to the most reasonable current version.
My installation process ended up being a little different than every other "HOWTO" I found, so I'll bother to document it here.
The Slackware installer expects more than 8 megs of ram to work. I found creating a swap disk wasn't enough of a boost. With a swap disk, the installer would run, but the kernel would eventually kill enough key processes before they finished. To make it work I had to install the installer onto the hard-drive to install the full operating system on the drive. Here's how that worked.
Thankfully I had a 400 Meg drive to work with, which is plenty of room for a small Linux system.
The first step was getting the drive partitioned. This is accomplished using a floppy based Linux distribution. I choose and was impressed with tomsrtbt. It worked easily under the memory constraints and provided all the tools I need. Here's what I did:
fdisk to create three partitions:
hda1 will be used to house the root file-system for the installer. Later it could be
re-claimed for use as a mount-point for the main OS, or more swap disk space. Before going further, you might
as well start making use of the swap space that's been created: $ mkswap /dev/hda2; swapon /dev/hda2
$ mke2fs /dev/hda1 $ mke2fs /dev/hda3 $ mkdir /hd3 $ mount /dev/hda3 /hd3 $ dd if=/dev/fd0 of=/hd3/color.gz $ cd /hd3 $ gzip -d color.gz $ dd if=color of=/dev/hda1 bs=1k $ rm color
Now it's time to run the installer from the hard disk. After booting off the 7.1 "bareapm.i" boot disk, I used the initial boot prompt to have the system use the the new hard drive as the root for the installer:
mount root=/dev/hda1
Even with this extra boost, I still activated the swap space as soon as I got the command prompt in the slackware installer.
Since I had an Ethernet card and a desktop Linux machine already on my home network, I choose to use the NFS
install option. While I won't detail setting up an NFS server, I'll say that it was fairly easy with Mandrake 9.2.
The Slackware installer made it easy enough to use. I just typed pcmcia at the prompt. It then
detected my network card and no other "hacks" were needed.
To start with I selected a minimal amount of software to get the system running and network-aware. I could always install more later. This meant setting up the "a" "ap" and "n" software distributions on my NFS server. Here's a list of of my first round picks for installation. It includes a few package from DeliLinux, which I'll discuss more later.
. As of this writing, DeliLinux is at version 0.5 and describes itself as "beta" I found this to be an accurate description. The base installation package is 20 Megs. Yet, the project doesn't document how to get this onto your machine over NFS, which should be possible as a Slackware-based system.
It also doesn't current document the low-memory installation trick above, which seems essential for some of the systems it targets.
Finally, it's own installation disk just didn't seem to work. I got a kernel version mis-match error between the boot disk and modules on the hard drive image.
The good news is DeliLinux uses the standard Slackware 7.1 package format. So I simply added a few DeliLinux
packages I wanted to my standard Slackware 7.1 installation. To do this, this the packages can simply be
down-loaded and then installed like this: installpkg pkgname.tgz.
Once DeliLinux gets its kinks worked out, I might consider 'upgrading' the system to be completely based on DeliLinux. It includes an updated 2.2 kernel and other niceties in the base system.
DeliLinux offers upgraded packages, such as mutt and also has some of it's own packages that are
nice to have on a low memory desktop system. masqmail is one such utility.
I was pleased to find that the "Standby" and "Sleep" functions on the laptop worked without any configuration. The functions can triggered manually with a key on the keyboard, or by closing the lid. Left alone, the hard drive will spin down, making the machine fully silent. As it boots, the BIOS alerts me that there is no "Suspend" partition. (It did this even when the Other OS was installed). I suspect that with some research, this function could be made work as well.
I expected I would be using the screen program to run multiple console programs at once. With the
virtual terminals and gpm mouse program that come standard with Slackware, there was no need.
Alt-F2 switchings the second console, and gpm allows me to highlight, copy and paste
using the track-ball with the console applications. Not needing to run screen was another nice memory
savings.
A simple modern Unix distro such as a Slackware can clearly run well with 8 Megs of Ram and a 75 Mhz processor. Before I installed Slackware 7.1 to use with DeliLinux, I installed Slackware 8.0 using the same technique and things worked fine with that newer version.
Although DeliLinux has a focus on machines of this vintage, I'm left to wonder: Now that I know the low memory installation trick above, could other current distributions work as well? In particular I'm curious about the BSDs since I'm already familiar with FreeBSD and I know it also uses console-based install and maintenance utilities.
No comments posted yet for this item.
Login to post your own comment