Gallium: the old laptop, once more.

Gallium has been running with Slackware 11 now for quite some time. Yet, I had bigger plans for it. To name the most important points of improvement:

So I bought some new Kingston memory at an electronic market ( and a 4 GB solid state disk at But first see what distro could be used instead of Slackware 11. To cut a long story short, I tried to install and after all that I changed back to Slackware 11 since that is what I like and what runs best on this machine. More on this below.

Property Value Unit
Brand Dell CPi A366XT  
Processor Mobile Intel Pentium II  
Frequency 366 Megahertz
Linux Slackware 11  
RAM 256 Megabytes
Drives /dev/hda = 4 GB SSD
/dev/hdc = CD ROM
/dev/fd0 = FDD (on a seperate cable)
Ethernet TP Link WN510G at 54 Mbps
IP address Via DHCP from Fonera  
Running since July 2008  

Below, you will find my experiences with the SSD-ification of Gallium and the contents of the most important files for Gallium. These files are important for all computers and the settings are extremely hardware dependent. Read the files and use the things you want to try out on your machine. These settings are meaningful to you, ONLY if you have another Dell Lattitude CPi A366 XT. In all other cases: consider these lines of text as guidelines or reasons for experimentation.

Slackware 11

Slackware 11 used one of the last 2.4 kernels. It has version 2.4.33 as default and you may opt to install a 2.5 kernel as well. I chose for the matured 2.4 kernel. It is recent enough for the MadWiFi driver (which needs at least 2.4.22), it has GTK+2 libraries so it's good enough for the latest Seamonkey.

The wireless card

I definitely wanted to have this laptop disconnected from the internet via a UTP able. You can walk around with a laptop. So you don't want to be tethered to a router via a piece of cable. So I searched the web for the 'best' ethernet adapters for running with Linux. In general this boiled down to 'any adapter that is based on an Atherso chipset'. So I chose for the TP-Link that was for sale at a local mail order company (I order via the web and then collect at their storefront, thereby saving on shipping costs).

Anyway, installation was easy thanks to the documentation included in the MadWifi package. The MadWiFi driver seems to work with all true 802.11 compliant NIC's. So get your copy at and see how far you come. I came a long way!

The trick is to download the madwifi driver, extract it with

   tar zxf madwifi-version.tar.gz
and then installing it by typing on the command line:
   modprobe ath_pci
It wil load lots of small loadable modules for various system tasks. If your card is based on a true Atheros chipset, the devices ath0 and wlano will be setup, as you can check by entering the command 'ifconfig'.

If this works, add this line to your /etc/rc.d/rc.local file.

Power management

A laptop is portable. It is not tethered to a power outlet. So it runs on it's own power source: batteries. And batteries get depleted. And when the battery is empty, you loose your work.... So it is a good idea to have the laptop itself keep track of it's batteries. This is done with the ACPI and APM modules. By default, Slackware 11 did not install these modules, so I took command and did as follows:

	# modprobe apm
	# modprobe acpi
	# apmd
	# acpid
So I started KDE to see what happened. Not much. So I ran the Control Center and went to the Power Managemnt tab and choose Laptop battery. There I enabled some thingies (as root) and suddenly an icon appeared in the task bar in the shape of a battery! When I plug in the PSU, a power cord is added! It seems to work! Now my 10 year old laptop acts like the brand spanking new Toshiba Satellite A210! Albeit a tad slower.

For a further test I shut down KDE and entered in the console: poweroff. Yesterday this shut down the machine but the screen remained on. Today the machine powered itself down completely. Black screen and all.

The above commands better be placed in the file '/etc/rc.d/rc.local'.

Solid state disk

This machine will be using a solid state disk (SSD). SSD's are fast, energy efficient and reliable, yet they have a finite number of writecycles. On average something between 100k and 1M. For normal files there is never a problem. Perhaps for the swap file but that is covered in a seperate section.

I bought a 4 GB solid state disk at, and to be precise, this one: . This is a comfort disk. It is housed in a metal container similar to a standard 2.5" HDD. Very convenient. Yet a bit pricy, but that's normal to being the first in a field.

The other day I was browsing Ebay for something else when I ran into this shop: where I found the little gem in the picture on the right. Search the shop for the phrase

   Compact FLASH CF TO 44 PIN IDE Adapter Card
(costing around €6). Combine this with a CompactFlash card like this one: and you have a SSD for a fraction of what I bought. Plus, if you wear out ernough cells, just replace the CF card with a new one, which undoubtedly will be cheaper and bigger then, than it is now.
It is possible to mount this kind of adapter card inside a 2.5" drive tray but you need to be careful for short circuits.

And while your at it, also look for a 'PCMCIA 6in1 Adapter- SM MS MS-PRO SD MMC RS-MMC' in the same shop. I bought one for a single euro and Gallium will be equipped with it, for just in case... :o)

In the same Ebay shop I found the little gimmick on the right. It also is an interface between a cheap memory card and a 44 pin IDE interface. It was affordable so I bought one as well to do some tests. For some reason I assume this will be a lot slower than the CF to IDE interface, but it could prove handy for an older laptop that is used for an older operating system in a slower computer.

Visit the Ebay shop mentioned above and search for the phrase

   SD MMC TO 44 PIN IDE Adapter Card for NB laptop
At the moment of making this webpage the price was slightly less than €9. Combine it with a cheap SD card (2 GB is on sale sometimes for less than € 10) and you got the cheapest SSD you can imagine.

No swap?

On average, an SSD will perform 100.000 sector writes guaranteed. For normal operation this is more than enough. Unless you house a swap partition on the SSD. So this machine runs swapless. It has 256 MB of memory and relies on software being correct, i.e. no memory leaks.

If your graphical browser is decoding nice video or flash movies, sometimes the program evaporates from the desktop: an OOM (Out Of Memory) occurred. Normally the system starts sending data to swap instead. But with no swap installed, the OOM kicks in, aborting the villain.
In itself this is not bad. Especially with data intensive websites with lots of unshrinken photo's the Linux browsers go haywire and end up in enless swappingf sessions. In most cases you need to kill X or even perform a hardware reset. Running without swap prohibits this. So in fact it is better....

On the other hand, I found a source on the internet that claims that SSD's have wear leveling algorithms and combined with the 100.000 to 1.000.000 guaranteed write cycles, even a swap partition will practically never wear out.


I like to abide to Professor Wirth's motto: make a working model and then use stepwise refinement to reach the final goal. So the roadmap to my ultimate goal is as follows:

Select the Linux version to install
Increase the main memory and find an acceptable SSD
See how stable the system is without a swap partition
Select and configure a wireless network card
Tune Slackware 11 using the HDD installed version


Install Slackware 11 on the SSD
Perform post install optimisations
Perform final tuning and tweaks
Publish the results below


# /etc/rc.d/rc.local:  Local system initialization script.
# Put any local startup commands in here.  Also, if you have
# anything that needs to be run at shutdown time you can
# make an /etc/rc.d/rc.local_shutdown script and put those
# commands in there.

/sbin/modprobe ath_pci
/sbin/insmod apm



# /etc/modules.conf (Linux 2.4 modules config file)
# This file is for setting module options when using a 2.4 kernel.
# For more information, see "man modules.conf".


/dev/hda1        /                reiserfs    defaults         1   1
/dev/cdrom       /mnt/cdrom       auto        noauto,users,ro  0   0
/dev/fd0         /mnt/floppy      auto        noauto,owner     0   0
devpts           /dev/pts         devpts      gid=5,mode=620   0   0
proc             /proc            proc        defaults         0   0


# /etc/rc.d/rc.inet1.conf
# This file contains the configuration settings for network interfaces.
# If USE_DHCP[interface] is set to "yes", this overrides any other settings.
# If you don't have an interface, leave the settings null ("").

# You can configure network interfaces other than eth0,eth1... by setting
# IFNAME[interface] to the interface's name. If IFNAME[interface] is unset
# or empty, it is assumed you're configuring eth<interface>.

# Several other parameters are available, the end of this file contains a
# comprehensive set of examples.

# =============================================================================

# Config information for eth0:

# Default gateway IP address:

# Change this to "yes" for debugging output to stdout.  Unfortunately,
# /sbin/hotplug seems to disable stdout so you'll only see debugging output
# when rc.inet1 is called directly.

## Example config information for wlan0.  Uncomment the lines you need and fill
## in your info.  (You may not need all of these for your wireless network)


# LILO configuration file
# generated by 'liloconfig'
# Start LILO global section
boot = /dev/hda
#compact        # faster, but won't work on all systems.
timeout = 50
# VESA framebuffer console @ 1024x768x256
vga = 773
# Normal VGA console
# vga = normal
# VESA framebuffer console @ 1024x768x64k
# vga=791
# VESA framebuffer console @ 1024x768x32k
# vga=790
# VESA framebuffer console @ 1024x768x256
# vga=773
# VESA framebuffer console @ 800x600x64k
# vga=788
# VESA framebuffer console @ 800x600x32k
# vga=787
# VESA framebuffer console @ 800x600x256
# vga=771
# VESA framebuffer console @ 640x480x64k
# vga=785
# VESA framebuffer console @ 640x480x32k
# vga=784
# VESA framebuffer console @ 640x480x256
# vga=769
# ramdisk = 0     # paranoia setting
# End LILO global section
# Linux bootable partition config begins
image = /boot/vmlinuz
  root = /dev/hda1
  label = Slack-11
  read-only # Non-UMSDOS filesystems should be mounted read-only for checking
# Linux bootable partition config ends


OK, now I told just about anything that is specific and that can be hairy when your machine will not boot upto an inlog prompt. If your system uses a comparable Linux, these settings might help.
System settings are so machine specific that I cannot help you, unless you happen to live around the corner. If that is the case, this magic number '5012' should ring a bell. If the number is just a number to you, please find someone near your place to help you out.

Page created on February 14, 2007 and