Dell Latitude C600

Hardware
The Dell Latitude C600 features the following CPU:

processor      : 0 vendor_id      : GenuineIntel cpu family     : 6 model          : 8 model name     : Pentium III (Coppermine) stepping       : 6 cpu MHz        : 751.732 cache size     : 256 KB fdiv_bug        : no hlt_bug         : no f00f_bug        : no coma_bug        : no fpu             : yes fpu_exception  : yes cpuid level    : 2 wp             : yes flags          : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat pse36 mmx fxsr sse bogomips       : 1504.55 clflush size   : 32

The PCI bus looks like this:

00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 03) 00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03) 00:03.0 CardBus bridge: Texas Instruments PCI1420 00:03.1 CardBus bridge: Texas Instruments PCI1420 00:07.0 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 02) 00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01) 00:07.2 USB Controller: Intel Corporation 82371AB/EB/MB PIIX4 USB (rev 01) 00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03) 00:08.0 Multimedia audio controller: ESS Technology ES1983S Maestro-3i PCI Audio Accelerator (rev 10) 00:10.0 Ethernet controller: 3Com Corporation 3c556 Hurricane CardBus [Cyclone] (rev 10) 00:10.1 Communication controller: 3Com Corporation Mini PCI 56k Winmodem (rev 10) 01:00.0 VGA compatible controller: ATI Technologies Inc Rage Mobility M3 AGP 2x (rev 02)

Framebuffer
The rage128 frame buffer may not work, although vesa-tng works well, as long as you don't pass it any boot options. Compile it in, and do not pass it any options in, and you'll have a nice high resolution view of green "[OK]"'s going by at boot.

With kernel 2.6.19-gentoo-r5 "ATI Rage128 Display support" compiled into the kernel works well. Use the following option in :

grub.conf

Setting up DRI
If you want to use Suspend-to-Ram or Suspend-to-Disk, you have to disable the DRI Module, or your notebook won't wake up properly. The r128 driver can not be reactivated properly while DRI is enabled. Maybe the driver/DRI get's updated in the future so it'll work, but for now it won't, at least with modular xorg 7.

Using the external VGA connection
Plug a monitor into the VGA connector on the side of the laptop, and add the following line to your xorg.conf in the Device section:

/etc/xorg.conf

You can also use "BIOS", see http://www.xfree86.org/current/r128.4.html for more detail on the Display option. You will also need to add configuration information for the external display to your xorg.conf.

APM
APM is works fairly well. Here is how to do it:

Update your BIOS
This laptop had BIOS A03 on it when I got it. Dell has had 20 BIOS releases since then, and you will need them so that APM works properly. With an old bios, the suspend button just crashed the system, the monitor would freeze, and pressing the power button made the laptop reboot. It works just fine fith the new bios.

The latest bios version is A23. get it straight from Dell here.

If you're like me, there is no Windows system on your machine and you wonder how you are going to run that .exe file. I used this .iso file. According to diff the executable is the same as the one on the Dell FTP site. I burned it to CD on my desktop with cdrecord, using the options explained here. The command will look something like:

Now pop that CD in and reboot.

Set up your kernel
Here are my power options in the kernel configuration:

Add the APM module to your auto load list:

apmd
Next, apmd is needed:

As of writing, there is a bug with the apmd ebuild described here. if you have this trouble,

and then try again:

and add it too your environment.

This should get you going. Try suspending. There seem to be some problems: on occasion, USB mouse support is lost and/or DRM. Any tips here are welcome.

My solution to these little problems so far is to venture into ACPI.

ACPI
I've started looking into ACPI, because of certain quirks with APM. I'm probably just going to get into trouble and make do with APM, but I'm curious.

Intel ACPI Component Architecture ASL Optimizing Compiler version 20060127 [Apr 30 2006] Copyright (C) 2000 - 2006 Intel Corporation Supports ACPI Specification Revision 3.0a dsdt.dsl  705:     Method (\_WAK, 1, NotSerialized) Warning 2078 -                 ^ Reserved method must return a value (_WAK) ASL Input: dsdt.dsl - 3424 lines, 114387 bytes, 1092 keywords AML Output: DSDT.aml - 10277 bytes 393 named objects 699 executable opcodes Compilation complete. 0 Errors, 1 Warnings, 0 Remarks, 340 Optimizations

Well I can't blame it on the dsdt.

A closer look at my kernel config revealed that sleep states where not enabled. So remember, kids, you must disable SMP in the processor before the sleep options will become available. So now echo -n mem > /sys/power/state does something at least. The screen gets real bright and the computer get zombified. but hey, that's a little better than nothing. :) when finals are over I'll get this thing straightened out.

Well, thanks to [1] my machine now wakes up from both hibernate-mem and hibernate! The only thing left is to get this screen to turn itself off when hibernating... It's still getting all bright white and all.

Got it. thanks to the guys at #gentoo-laptop on freenode.

then in /etc/hibernate/hibernate.conf and /etc/hibernate/mem.conf, uncomment this line:

use radeontool yes

Now my backlight turns off on both suspend-ram and suspend-disk. to configure these events to happen when you shut the lid or push Fn-Suspend, see [TIP_ACPI_basic_configuration] or read the script comments in /etc/acpi.

NIC and modem
The NIC works with the 3Com kernel module 3c59x. No luck with the modem, though. I don't see anyone claiming to have gotten this one working. looks like it's a winmodem, not a linmodem. The sad part is, the NIC and the modem are on the same little expansion card. So you can't just swap out the modem. :-(

PCMCIA
Turns out this card bridge is yenta-compatible. go figure. My kernel version is > 2.6.13, so i did:

not:

I don't have any PCMCIA cards to test this with right now, so I'll get back to you and let you know if it works when i pick up a Wi-Fi card.

Synaptics
This laptop also comes with a Synaptics touchpad. I followed the Synaptics guide and used the preconfigured xorg from the 2006.1 live dvd. My xorg.conf has the following:

/etc/X11/xorg.conf

Some people seem to notice a problem with regards to mouse drift. This is a known hardware problem present on the Dell Latitude C600. It can be 'fixed' by using either of two methods; [METHOD 1] Remove the keyboard, locating the flat cable to the nipple, and cut it. Note that this means that you will not be able to use the nipple again, however, the touchpad still works. [METHOD 2] Follow the instructions given on this page http://www.laptopsunlimited.com/dellmouse/dellmouse.htm which shows how to overcome the hardware glitch by taking apart the laptop and inserting a plastic bag between two metal surfaces (the cause of the mouse drift). Giving you full functionality of both the touchpad and nipple.

Sound
Getting sound working is easy. The Card is a Maestro3. It shows up with lspci as: 00:08.0 Multimedia audio controller: ESS Technology ES1983S Maestro-3i PCI Audio Accelerator (rev 10)

Enable sound support in your kernel:

then go to: Device-Drivers -> Sound -> Advanced Linux Sound Architecture -> PCI-Devices -> enable ESS Allegro/Maestro3 CONFIG_SND_MAESTRO3=y should then be set in your kernel .config

Links

 * This blog post discusses the mouse problem extensively: Gimboland: Fixing mouse drift on a Dell Latitude C600 with a Sledgehammer.