Gentoo Linux on the Dell Latitude C400

This guide started off some time after I upgraded the 10Gb drive on the C400 to an 80Gb Hitachi and replaced the Debian installation. Gentoo has a wealth of documentation so this is intended as an installation specific supplement.

Disclaimer: This document comes with no guarantees. The steps I followed worked for me but may not necessarily work for you or your hardware.

Configuration

Gentoo
linux-2.6.18-suspend2-r1 kernel
no Windows installation
PIII-M 866MHz CPU
768 Mb RAM (256Mb + 512Mb)
A12 BIOS
Crystal 4205 audio
3c905C-TX FastEthernet adapter (built-in)
80Gb 5400rpm Hitachi 5K80
TrueMobile 1150 wireless (disabled)
Netgear MA401 PCMCIA adapter
Netgear WAG511 PCMCIA adapter

Post-install

genkernel

Thinking the genkernel built kernels to be a little bloated I resorted to using the more traditional make menuconfig and make bzlilo. After much fiddling, recompiling & rebooting every time I needed another driver it was time to give genkernel another shot. I was pleasantly surprised - it actually built most of what I needed! I'm now a genkernel convert.

Custom settings are as follows:

CONFIG_ACPI
is not set
CONFIG_APM
= y
CONFIG_USB_KBD
= m
CONFIG_USB_MOUSE
= m

Xorg

Xorg has replaced XFree86 as the default X server and the Intel i830 chipset is supported out of the box with no extra configuration required.

Starting from an upgrade to Modular Xorg (6.9?) there seems to be a problem with repainting the screen correctly after an APM suspend/resume. I haven't yet taken the time to find out exactly what is at fault but am using suspend2 instead.

i8kutils

The i8kutils package is a collection of tools which can control various Dell specific functionality such as the fan(s) and custom keyboard buttons when used in conjunction with the i8k kernel module. They were initially created for the Inspiron 8000 series but will work with most other Dell laptops. A list is provided in the package.

The module is compiled by default and installed at startup by adding it to the list in /etc/modules.autoload.d/kernel-2.6.

Some other very useful utilities are i810switch and i810rotate from the app-misc/i810switch package which do a better job of switching to an external display than Fn-F8.

Sound

emerge alsa-drivers followed by alsaconf

Wireless network

The factory installed TrueMobile 1150 wireless mini-PCI card tends to lock up following a suspend/resume so I reverted to using an old Netgear MA401 PCMCIA card with the hostap drivers. This driver is WPA capable using wpa_supplicant but that is a work in progress.

The Netgear WAG511 is an Atheros based 802.11a/b/g card which uses the madwifi-ng drivers. A Gentoo package is available but I've stuck to the recommended method of using the subversion source for now. I'm having some problems getting this code to compile with the suspend2-sources but that, too, is a work in progress.

USB

USB on the C400 does not work properly after a suspend to ram and resume. For some time I assumed this was a kernel problem that would eventually be resolved but as my USB usage increased and the drivers improved through 2.6 it begged the question that perhaps the C400 hardware or BIOS was at fault (surely not!)

I eventually got around to re-installing the original supplied W2K on my now defunct 10Gb Toshiba disk and lo! USB failed to work after standby/resume. A quick perusal of the Dell support forums (very useful) has confirmed this to be an issue going back some years to the A08 or A09 BIOS upgrades and Dell (bless them) have not yet stepped forward with a fix.

It is not all bad news though. The workaround is to suspend to disk (hibernate) and then resume and voila - all is well with USB. Not an ideal solution but it works. It has meant though that I get my feet wet with suspend2.

suspend2

This was refreshingly easy to set up using suspend2-sources instead of gentoo-sources for genkernel and following the instructions in the HOWTO. I use a 1000Mb /suspend_file instead of a partition.

Memory Upgrade

The memory upgrade was interesting. The 512Mb SODIMM was bought from Crucial Technology. I tried installing it in the expansion slot under the inspection hatch underneath the C400. The boot failed to recognise the extra memory claiming some sort of parity failure.

I reseated the SODIMM and ended up with a unsupported memory error. Thinking this to be some sort of peculiar SODIMM ordering problem I switched the modules around. This is not a straightforward process and required some disassembly. The Dell User Guide proved quite useful. Switching the 256Mb and 512Mb SODIMMs around worked and I now have a full 768Mb.

While compiling this web page I was unable to remember the exact error messages so I opened the C400 up again and switched the SODIMMs back only to find that everything still worked. I can only conclude that the original problem must have been due to dirty contacts in the memory expansion slot which only really cleared up after reseating the SODIMMs.

Ongoing

IrDA

Not used now that I have a Sony Ericsson V600 with a USB cable.

PCTel Modem

I've no real requirement for this and have removed it. Try the latest PCTel drivers and their instructions.

Fn-Z

The infamous all-fans-on mode is well documented on the linux-dell-laptops mailing list. Also noticed after the upgrade to A04 and persisting in A12. This afflicts a number of different laptop models. Occasionally, after a resume from standby, the indicated CPU temperature will shoot up to 85 and the single fan will spin at full speed. All that is required is to simply reset the on-chip temperature sensor using Fn-Z.

posted by James Gemmell on Wed, 24 May 2006 at 17:09 | permalink | tags: gentoo, laptop, linux