I figured I'd get Linux running on my P1/MMX laptop just so that I'd have something to carry around while my other laptop is in the clutches of HP Tech Support. Debian 5 now includes LXDE in the main repository, so setting it up is a breeze: apt-get install lxde took care of not only LXDE but the installation and configuration of the entire X server, and I did a net-install so no CD burning was required.
The next order of business didn't go so well: getting Wi-Fi to work acceptably well. This particular laptop has trouble with Plug-and-Play on the PCMCIA slots in both Windows and Linux, so I have to disable the "Plug-and-Play OS" option in the BIOS, which makes hardware installation difficult. I have an old Orinoco card which is very well supported by Linux, so using modprobe orinoco_cs worked fine.
It took me about two hours to get NetworkManager installed properly. The system service portion of it worked fine, but I couldn't get the nm-applet utility to run in LXDE. There turned out to be a D-Bus permissions nightmare that took almost two hours to sort out, before I could start nm-applet without being root.
After finally getting that to work, I found out that the orinoco_cs driver doesn't support WPA out of the box although the card is capable of it. I tried the HostAP driver instead but found out after an hour of messing with config files that it doesn't support the earlier revision of the card I have (it works with the later Prism2/2.5/3 chipsets whereas I still have the original one with the Hermes-I chipset - there was a Hermes-II and I believe a Hermes-III in the mix of chipsets, too!).
My next idea was to use ndiswrapper and the Windows WPA-enabled driver to do things instead. I got ndiswrapper to install the driver fine, but couldn't actually get the kernel to load the ndiswrapper module. Another hour later I figured out that this was due to there being no ndiswrapper kernel module in the Debian ndiswrapper package - defeats the purpose of having it, I'd say. It seemed that the only way to get the kernel module was to build it from source, and I wasn't about to do that on such a low-spec machine.
Finally I found out that you could use the regular orinoco_cs driver along with alternate firmware to enable WPA, and managed to pull the firmware from a Git repository I found on the Ubuntu forums. I saved it to /lib/firmware and dmesg told me that I still had no WPA support. I did a lot of digging and found something in the pcmcia_cs mailing list, where the drivers included in Debian 5 were actually outdated and didn't support loading firmware from a file, and I needed to build a new kernel. Ugh.
Thankfully I managed to get a proper, pre-built i486 kernel image (Debian doesn't do i586 builds) from Debian's "experimental" repository that included the updated driver. Booted into LXDE and it worked beautifully - configuration with nm-applet was a bit slow, but that's to be expected with something this old, I suppose.
Epiphany ran too slow for my patience, so I found a slightly faster Gecko-based browser called Kazehakase. They haven't hit a version 1.0 yet, but they're in Debian's main branch (Debian typically doesn't move things out of experimental unless they're solid), so it should be alright. I'm using other lightweight apps like AbiWord and Ayttm in place of bigger things like OpenOffice.org and Pidgin. Here's some relevant statistics with LXDE, LXTerminal, Kazehakase, and Ayttm open:
donhh2k@ascentia:~$ free
total used free shared buffers cached
Mem: 158676 155736 2940 0 144 65236
-/+ buffers/cache: 90356 68320
Swap: 524120 2976 521144
donhh2k@ascentia:~$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/hda5 1585184 976964 608220 62% /
tmpfs 79336 8 79328 1% /lib/init/rw
udev 10240 76 10164 1% /dev
tmpfs 79336 0 79336 0% /dev/shm
I'd say having the entire system fit into 160MB of RAM and less than 1GB of disk space is pretty nice. It's amazing that I can still suck some life out of a 13-year-old laptop.