Home
Debian Sarge on Compaq Armada 100s
Contents
1. Introduction
2. The hardware
3. SCU (BIOS) settings
4. Installing Debian Sarge (netinstall)
4.1. Connecting to network
4.2. Some useful packages to install
4.2.1. hotplug
4.2.2. ifplugd
4.2.3. apmd
4.2.4. isapnptools
4.2.5. xfree86-driver-synaptics
4.2.6. mp3blaster
4.3. XFree86 configuration
4.4. Kernel configuration
5. Enabling powersaving features
5.1. APM support
5.2. CPU frequency scaling
5.3. Reducing the speed of the CD-rom drive
6. Upgrading the hardware and connecting external devices
6.1. Getting more memory
6.2. Cardbus cards
6.3. Using external mouse
7. Problems and troubleshooting
7.1. USB overcurrent change
7.1.1. Getting rid of kernel messages
7.1.2. Using USB memory sticks
7.1.3. Connecting a digital camera
1. Introduction
Before I go on with introduction, I encourage you to consider installing
FreeBSD instead of Linux on this laptop. It is very similar to Gentoo Linux, so if
you are comfortable with that, you should have no problem switching to FreeBSD. Even
Debian users should feel quite at home - at least after reading the FreeBSD install guide and the user
guide.
So what are my reasons for the switch? Well, none of the distros I tried (Debian, Mandrake,
Fedora Core 2) were able to make the USB port functional. For me USB support was essential, as I stored
my personal documents in an usb thumbdrive. See section 7.1. below for more information. Once I got a
newer laptop (a Armada M700) my Armada 100s was left more or less useless. So I decided to try FreeBSD 5.4,
because there was no real risk involved anymore.
At first everything in FreeBSD 5.4 just worked. In a weekend I was able to tweak all the necessary
settings and install all required programs. Of course I had gained much useful information from using
Linux on this computer - without it my road to victory would have been much rockier. For example,
starting X.org with wrong settings simply turned the display off. Using settings from my XF86Config-4
(below) I was able to make X.org working.
In time - however - the laptop started booting all by itself. I suppose that there is really something
terribly wrong with the hardware. Due to these unpredictable boots - which I had not experienced to same
extent when using Debian Testing - I gave FreeBSD the boot. Nowadays I have given up hopes of using USB on
this laptop, and have installed Ubuntu Linux 5.1 (Breezy Badger) on this laptop. Check out
this
link to see how. So far it has worked without problems, though I use it only to listen to internet radios.
If you want USB support that works well, not just kind of, go for FreeBSD. As you can see from
the troubleshooting section, for some reason USB is flakey with Linux. Especially 2.6 kernels
are troublesome and unreliable on that area. I've encountered no problems with usb on FreeBSD.
I have not - however - tried any powermanagement featyres in FreeBSD, nor CPU Frequency scaling.
I bought this laptop in 2004. It was manufactured in 2000 or 2001, but
it seemed like a good purchase. It was cheap, reasonably powerful, and
the battery was (as the guy selling it told me) in mint condition. It
does actually last about 2 hours and 15 minutes on low load (viewing
pdf-files with xpdf).
Immediately after purchase I wiped out all existing partitions (including the "Suspend-to-Disk"-partition).
Byebye Windows 98. As I had downloaded full Debian Woody (3.0) CD-set before, it seemed
like a good idea to try it out. It installed fine, and everything was pretty much ok.
I was not satisfied, however. I knew that 2.4.18 kernel that came with
the distro did not support CPU frequency scaling. So I tried upgrading
woody to 2.6 kernel. It was not as easy as I thought. In addition to the
kernel-source packages I needed lots of other packages, which stepped on
the toes of several other from the Woody distribution. So, in the end,
the whole system was more or less broken.
After reinstall I managed to get plip link working. This made everything
easier. I actually managed to upgrade the system to Debian Testing
(sarge). But there were problems still. It seemed to me that the 2.6
kernels were extremely unstable on this machine. In maybe 15 seconds -
if the system was on heavy load - the machine froze and did not recover.
Later I found out the reason, but it did not help me at that time. In
addition console and logs were filled with USB over-current messages
(see Problems and troubleshooting).
After Debian Stable, I tried Knoppix 3.4 HD-install. It worked, but the
unstability was not solved. After Knoppix I tried Mandrake 10. All worked
- partly because I now knew the reason for unstability: I had CPU frequency
scaling enabled in SCU (BIOS) settings. In addition, it cluttered the
logs with the over-current messages, like Debian stable.
Mandrake worked quite well, but the distro was a pain in the ass, because
I could not even compile a custom kernel. The system was thus pretty much
useless. Most of all, it was slow, and I did not want to waste precious CPU
power. It did not, however, produce any over-current messages, and USB devices
worked even under 2.6.x.
Last distro I tried before Debian Sarge was Fedora Core 3. It was even slower
than Mandrake, and I used it for maybe 4 hours. It also produced over-current
messages.
All these distros I had chosen because I did not have any decent solution to
connect the laptop to the outside world. After Fedora Core 3 I had had enough.
I went to a hardware store and bough a D-link Cardbus ethernet card (rtl8139-based).
It worked flawlessly, and so I wiped out Fedora and started Debian Sarge netinstall...
2. The hardware
This laptop seems to be from the cheapest end of Compaq Armada family.
For example, the refresh rate of the display is low, causing lost mouse
pointers and horrible video playback. I wouldn't use this machine for
image manipulation, either: colors are displayed poorly. The viewing
angle of the display is also very small.
The powerbutton is too sensitive and sometimes causes the laptop to power
up while in backpack causing filesystem damage. This problem can be
circumvented by keeping the laptop and the battery separated.
Luckily this laptop uses quite standard hardware, however. Besides the USB
port everything works as it is supposed to. I have not tried out IRDA so I'm
not sure if it is functional.
You can obtain all technical information from
here
or try googling with "Compaq Armada 100s"
Below I have a listing of all PCI hardware Debian sees. In this case, a ethernet card is
inserted.
localhost:/home/samuli# lspci
0000:00:00.0 Host bridge: VIA Technologies, Inc. VT8501 [Apollo MVP4] (rev 04)
0000:00:01.0 PCI bridge: VIA Technologies, Inc. VT8501 [Apollo MVP4 AGP]
0000:00:07.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super South] (rev 22)
0000:00:07.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 10)
0000:00:07.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 10)
0000:00:07.4 Bridge: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] (rev 30)
0000:00:07.5 Multimedia audio controller: VIA Technologies, Inc. VT82C686 AC97 Audio Controller (rev 20)
0000:00:07.6 Communication controller: VIA Technologies, Inc. Intel 537 [AC97 Modem] (rev 20)
0000:00:0a.0 CardBus bridge: Texas Instruments PCI1211
0000:01:00.0 VGA compatible controller: Trident Microsystems CyberBlade/i7d (rev 5d)
0000:02:00.0 Ethernet controller: D-Link System Inc DFE-690TXD CardBus PC Card (rev 10)
Following modules are loaded on my custom 2.6.7 kernel. With these loaded pretty much
everything should work. You might want to load snd-mixer-oss and snd-pcm-oss -modules also, if
you want Open Sound System support besides ALSA support.
localhost:/home/samuli# lsmod
Module Size Used by
8139too 19872 0
mii 3680 1 8139too
ds 13604 2
snd_via82xx 22084 0
snd_ac97_codec 60740 1 snd_via82xx
snd_pcm 80840 1 snd_via82xx
snd_timer 20292 1 snd_pcm
snd_page_alloc 8584 2 snd_via82xx,snd_pcm
snd_mpu401_uart 5696 1 snd_via82xx
snd_rawmidi 19396 1 snd_mpu401_uart
snd_seq_device 6216 1 snd_rawmidi
snd 45892 7 snd_via82xx,snd_ac97_codec,snd_pcm,snd_timer,snd_mpu401_uart,snd_rawmidi,snd_seq_device
soundcore 7136 1 snd
via_agp 6464 1
irtty_sir 5632 0
sir_dev 13420 1 irtty_sir
irda 114364 1 sir_dev
floppy 52496 0
psmouse 17096 0
pcspkr 3080 0
evdev 6944 0
yenta_socket 16832 1
pcmcia_core 55204 2 ds,yenta_socket
parport_pc 21248 0
parport 33448 1 parport_pc
agpgart 26696 1 via_agp
powernow_k6 3016 0
cpufreq_userspace 3800 2
ide_generic 928 0
ide_cd 36576 0
cdrom 34428 1 ide_cd
rtc 9880 0
3. SCU (Bios) settings
This laptop's BIOS is rather limited. You can only customize very
basic things.
To start with, disable all powersaving features from BIOS. You can
always turn them on when the system is otherwise stable.
NOTE: You must disable the CPU frequency scaling from the SCU!
If you do not disable it, your laptop will freeze if you use 2.6 kernel and CPU frequency
scaling kernel support. Even with 2.4 kernels it's a good idea to turn it of
from the SCU. It does not scale the frequency without additional
(windows) software, and probably makes the system less stable.
4. Installing Debian Sarge (netinstall)
4.1. Connecting to network
This laptop has only limited means to connect to outside world. Only
built-in possibilities are the modem (winmodem, slow...), paraller port (plip,
about 30KB/s) and the USB 1.1 port (~400KB/s). As the USB works poorly
with 2.6.x kernels (see Problems and troubleshooting), use of USB-to-USB
network cable could be problematic.
I recommend getting a decent Cardbus Ethernet Adapter and connecting the
machine to the internet. Wireless adapters are much trickier to get
working (like mine, a ra2400 adapter). Sarge netinstall should detect
standard cardbus ethernet cards without problems.
I will not go into details of netinstall, as it is documented better elsewhere.
4.2. Some useful packages to install
4.2.1. hotplug
I suggest installing "hotplug" because it makes life much easier. It detects
inserted usb-devices and cardbus cards automatically.
4.2.2. ifplugd
Ifplugd is very useful package. It monitors ethernet link status and
brings up interfaces on demand. Be sure to install "etherconf" before this:
ifplugd does not have any way to configure the interfaces in first
place. Word of warning, though... if your ISP requires identification by
network adapter's MAC-address, ifplugd can't fake it. Troublesome if you
want to connect the laptop temporarily to such a connection.
4.2.3. apmd
To monitor battery status you should install "apmd". It also makes possible
to put laptop to "suspend" or "standby" modes manually. Without "apmd"
only the BIOS can turn on powersaving modes.
4.2.4. isapnptools
This package is useful if you want to use a serial mouse, for example.
Serial mouse is somewhat easier to use on this laptop than a ps2-mouse.
4.2.5. xfree86-driver-synaptics
This driver makes the touchpad much more pleasant to use.
4.2.6. mp3blaster
Even though it is possible to use "xmms" or similar graphical player on this
laptop, I prefer "mp3blaster". Unless you have cpu frequency scaling enabled
after a while "xmms" will warm the CPU which in turn will turn on the (very)
loud fan. After a while (30 secs) it turns off, but quite soon it turns on again.
This is annoying, especially when you wan't to listen music at low volume levels.
Mp3blaster, however, uses only so little CPU that fan does not usually turn on at all.
Of course if you do something else also (browse the web, for example) the fan may turn
on every now and then. Mp3blaster is also much easier to use with the keyboard than
xmms.
4.3. XFree86 configuration
There are some quirks in XFree86 Configuration. If I remember correctly,
unless you explicitly specify "VideoRam 8192" (or whatever amount you
have) the Xserver will freeze. Here are my (two) XF86Configs for
reference:
XF86Config-4.ps2mouse
and
XF86Config-4.synaptics
4.4. Kernel configuration
Compiling a custom kernel for this laptop is as easy as on any laptop or
desktop. I've had several kernels compiled for my 100s, but nowadays I
only have one left, a Debian patched 2.6.7. It has all basic things plus
support for realtek 8139 network cards - I have one. You can download my
2.6.7 kernel config from
here.
5. Enabling powersaving features
This laptop supports all basic powersaving features. It has APM and ACPI
support, although linux disables ACPI by default (too old bios). I have
not tried to enable ACPI support, as APM works perfectly. CPU (AMD
k6-3) also supports CPU frequency scaling.
5.1. APM support
APM should work out of the box. Suspend and standby both work.
Suspend-to-disk might work, but I have not tried it. The laptop has
a hidden OS/2 partition designed for suspend-to-disk. You should not
delete that partition if you want to try it out.
It should be possible to use program "hibernate" with appropriate kernel patches. I'm
going to try it out myself.
The laptop has problems recovering from reset. After a reset the
computer hang to the "Compaq"-screen. If I remember correctly, this can
be fixed with right kernel options in "APM support". I managed to fix this on
some of my custom kernels. I don't think it's that big a problem; shutdown
works like it should.
5.2. CPU frequency scaling
CPU frequency scaling means modifying the CPU frequency (speed), usually
depending on system load. Low load means slow frequency: less heat - less
power consumption - less need for the fan - more battery life.
Main advantage that can be gained with CPU frequency scaling is that the small
and noisy fan turns on only under heavy load (long compilations for example).
In ordinary (office) use the fan does not turn on at all.
CPU frequency scaling in kernel 2.6.x works perfectly with
modules "cpufreq_userspace" and "powernow_k6". In addition, you need the
"powernowd"-daemon. It is available as a Debian package.
NOTE: You will have to disable CPU frequency scaling in SCU (BIOS).
Otherwise the machine _WILL_ hang at random.
5.3. Reducing the speed of the CD-rom drive
I suggest you to reduce the speed of the CD-rom drive. It saves power but
more importantly reduces resonance and thus noise. You can run
this in some startup script:
hdparm -E 8 /dev/your_cdrom_device
This limits cdrom speed to 8x, which will result in very quiet operation. Most of the time you won't notice
the difference between 8x and full speed. If you need the cdrom drive mostly for file transfer then set
the limit higher or remove it altogether.
6. Upgrading the hardware and connecting external devices
6.1. Getting more memory
This computer - depending on the model - has only 32 or 64MB of RAM
installed. Of this, 4MB (of 32) or 8MB (of 64) is given to the Trident
Cyberblade graphics adapter.
Obviously the amount of memory is way too low for many programs today.
OpenOffice is unusable, as are Gnome and KDE. Windowmaker works fine,
but even the my 64MB model swapped continuously even when switching
between light programs, such as Mozilla Firefox & Thunderbird, Gnumeric and
Abiword. Difference between 64MB and 128MB, for example, can really be
felt. Memory upgrade at least doubled my machine's perfomance.
Fortunately this laptop uses standard SO-DIMMs clocked at 100Mhz. Used
ones can be purchased quite cheaply (I bought a 64MB chip for 16
euros, or rougly $18). New ones cost 3-4 times as much.
6.2. Cardbus cards
The system uses standard cardbus bridge. If "hotplug" is installed,
cards should be detected automagically and required modules are loaded.
Check that the card you are buying complies to standards and uses a
chipset that is well supported by Linux.
6.3. Using external mouse
This laptop has one ps2 port that is used for a mouse or a keyboard.
Both have to be inserted before the power is turned on; otherwise they
are not detected.
When a ps2 mouse is inserted, it is detected automatically. Serial mice
are detected only if "isapnptools" is installed.
Ps2 mice can cause a little headache, especially if you want to use the
synaptics touchpad driver. If a ps2-mouse is inserted, it overrides
the touchpad. This is no problem if touchpad uses basic ps2-mouse driver
in xfree86. If you use "synaptics"-driver, however, X will refuse to
start. If you use touchpad regularly, the ps2mouse -driver will drive
you crazy.
Only way I managed to fix this was creating two separate configs
(XF86Config-4.psmouse and XF86Config-4.synaptics) to /etc/X11. Then I
edited my .bash_profile to ask if ps2-mouse is connected. This makes sure
X is started with the appropriate settings. Just make sure you don't lie
:)
# ~/.bash_profile: executed by bash(1) for login shells.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.
-- cut ---
echo "Is ps/2 mouse connected? (y/n)"
read yn
if [ "$yn" = "y" ]; then
xps2
else
xsyn
fi
xsyn
echo "XFree86 with ps2mouse: xps2"
echo "XFree86 with touchpad: xsyn"
--- end of file ---
You don't have to create the xps2 and xsyn scripts; instead, you could add
appropriate startx line straight to .bash_profile. You'd just have to
logout each time you end a X session and want to start another.
Making a serial mouse to work is easier. Just plug it in, add another
pointerdevice to XF86Config-4 and start X. It should work, and no queries
on login are needed. You could even use a login manager like xdm with a
serial mouse.
7. Problems and troubleshooting
7.1. USB Overcurrent-change
When using a 2.6.x kernel, system logs (and the console) are cluttered
with these messages:
:Dec 29 16:31:32 localhost kernel: >hub 1-0:1.0: over-current change on
port 2
These messages can be turned off by loading the uhci_hci module with ignore_oc=1 parameter, e.g. by doing
rmmod uhci_hci
modprobe uhci_hci ignore_oc=1
Thanks to Clemens Hafner for letting me know of this workaround! With kernel 2.4.x no error messages are produced to start with.
7.1.1. Getting rid of the kernel messages
This can be circumvented (if using hotplug) by adding uhci_hcd to
/etc/hotplug/blacklist. Of course, if the module is loaded, problem will
appears again.
It is possible to filter the messages by adding switch "-c 2" to kernel
logging daemon. Just edit /etc/init.d/klogd:
Change
KLOGD=""
to
KLOGD="-c 2"
Unfortunately this filters also many other useful kernel messages.
7.1.2. Using USB memory sticks
Above mentioned problem does affect normal usb usage. At least with my USB
memory sticks hotplug gets confused. It cannot release the device correctly,
meaning that USB port does not work after the device is unmounted.
There was another problem with the USB, which is unrelated to this machine.
My solutions fixes them both. The second problem is that /proc/partitions
maintains partition tables of disks inserted to the system. It does not,
however, release the disk from partition table.
So, if several different usb disks are inserted one after each other, you
can't tell which device (sda,sdb,sdc, etc.) to use.
My "solution" fixes both usb port lockup and the partition problem.
First, edit /etc/sudoers:
samuli ALL = NOPASSWD: /sbin/modprobe
Second, add these scripts to /usr/local/sbin or whereever:
---
#!/bin/bash
# This mounts usb stick
sudo /sbin/modprobe uhci_hcd
/bin/sleep 1
/bin/mount /media/usbstick
---
#!/bin/bash
# This unmounts usb stick
/bin/umount /media/usbstick
/bin/sleep 1
sudo /sbin/modprobe -r uhci_hcd
---
Removing uhci_hcd is necessary because of the usb port lockups. On
standard usb ports I simply remove the usb-storage module to get rid
of the partition table.
7.1.3 Connecting a digital camera
I tried connecting a "Canon Digital Ixus 400" to this machine. With
2.6.7 kernel no luck. With stock 2.4.26 I did manage to download some
photos, but then "gtkam" halted. I did not try it again.
I've had no problems with the camera on desktop systems with custom
2.4. kernels. I suppose there is really something wrong with the USB
port.
Author: Samuli Sepp?en, University of Turku, Finland