Linux on the Compaq Armada M300

First, a bit of humor to put you in the right frame of mind....
      m300


Updates


System specs

The M300 comes in a variety of configurations; this is AM3-P3500T1X12C6458 (Compaq part no. 152546-002): This is an amazing machine; about 3.3 lbs, 0.9" thick, nearly full-sized keyboard (95%, 18 mm pitch), beautiful screen, full set of built-in system ports, magnesium case, very quiet. About the only thing I don't like about it is that the Fn key is in the lower-left corner instead of Ctrl (and Fn is the one key that can't be remapped by xmodmap).

For more information, see the Armada M300 QuickSpecs and Reference Guide.


Keep Windows?

The M300 came with a choice of Windows 95 or 98 (although simply turning on the power switch booted into Win95). I originally intended to remove Windows entirely but recanted for the following reason: the M300 has extremely limited BIOS control independent of the operating system (i.e., accessible by pressing F10 during boot-up). In particular, there is no control for any sort of power management (e.g., hibernation, standby, various time-outs for screen blanking and disk spin-down, etc.). I haven't figured out how to do all of this via Linux (or whether it's even possible) so for the time being I'm stuck with keeping a small Windows partition.

Shrinking the Windows partition

If you're going to keep Windows, the first thing to do is to shrink the Windows partition to make room for Linux. This is done with a DOS utility called FIPS, which can be found under dosutils/fips20/ in the RedHat 6.2 distribution. See the plain-text file fips.doc in that directory for specific instructions. Basically, you do the following:


Installing Linux (RedHat 6.2)

If you have a Mobile Expansion Unit with a CD reader, you can boot straight off a RedHat 6.2 CD. Otherwise, if you have an ethernet connection, you can install via the net (NFS, HTTP, or FTP) using the bootnet.img floppy image in the images/ subdirectory of the distribution. Just write the image file to a floppy (e.g., by running dd if=bootnet.img of=/dev/fd0 under Linux on another machine) and boot off it. The ethernet adaptor is recognized fine by the initialization procedure. It might be possible to install via the built-in modem if you have the binary Lucent PCI winmodem module on a floppy (see the Modem section below) but I haven't tried it. (In any case, do you really have the patience to install over a 56K modem?)

The RH6.2 installation was completely straightforward. I deleted the second Windows (FAT32) partition generated by FIPS and created four partitions:

  1. / (2 Gb)
  2. /usr/local/ (1 Gb)
  3. swap partition (330 Mb)
  4. /home (rest of disk)
The idea is that future installations/upgrades of RedHat (or another distribution) can overwrite / without disturbing my own stuff in /home or additional software I've installed in /usr/local/.

I had no problems with the configuration of XFree86 (although some people have reported having some trouble---here are XF86Config files [/etc/X11/XF86Config under RH6.2] for XGA (1024x768) and SVGA (800x600) LCD panels for XFree86 version 3.x, and for XGA (1024x768) under XFree86 version 4.x).

Audio works fine for me, although others have reported some problems. Information on the ES1978 PCI audio card can be displayed by:
  # lspci
  # lspci -s 00:08.0 -vv
The essential maestro.o and souncdcore.o modules may not be recognized on bootup. They are simply loaded by:
  # modprobe maestro
for a stock Debian 2.4.18-686 Debian kernel and use /dev/sequencer.


Modem

The built-in modem doesn't work "out-of-the-box" because it's a software modem (a.k.a. "winmodem"). There is, however, a driver that can be built for 2.2.x and 2.4.x kernels that works fine. Test your system with the scanModem tool at http://linmodems.technion.ac.il/ which will recommend the optimal support package for the Lucent/Agere DSP chip modem, downloadable from http://ltmodem.heby.de (with support up to 2.6.0-test7 as of 30oct03).


Hibernation

If you kept Windows, hibernation (a.k.a. save-to-disk) works fine, by writing to the file hibrn8.dat in the Windows partition. With 320 Mb of RAM, however, it is very slow (about 1.5 min to save and nearly 3 min to restore). As it takes only about a minute to boot and login, this is not a huge win.

If you removed the Windows partition, or if you don't want to wait 3 minutes to restore from hibernation, or if you're just the adventurous sort, there is a patch to >=2.2.14 kernels that enables hibernation to the Linux swap partition; here are patches for 2.2.18 and 2.2.19. (If you don't know how to patch, configure, compile and install a kernel then you probably don't want to try this; take a look at the Kernel HOWTO to get started.) The "software suspend" patch works by saving/restoring individual processes rather than the entire contents of RAM; it shuts down in about 15 sec and restores in about 30 sec. There are, however, a few additional things that I had to do to get it to work:

I now run a 2.4.x kernel (2.4.14 as of 7 Nov 01) and I have not yet managed to get the current swsusp patch to work.


Other Customizations/Details


Things that don't (yet?) work

If anyone has any suggesting on how to make these things work I'd love to hear them.
David Plaut
Last modified: Fri Aug 12 10:22:48 EDT 2005