Linux on Dell Latitude D800

Linux on Dell Latitude D800

Introduction

This is a short How-To on using Linux on a Dell Latitude D800. The good news at the beginning: (nearly) all hardware is supported.

However, I won't take any responsibility if something won't work, or your notebook gets damaged...

Hardware

Since it's a Dell Laptop this list reflects the configuration I choose. If you want to have an overview of possible hardware choices, visit the Dell site.

CPU
Intel Pentium M processor 2.00GHz (2MB L2 Cache) (Centrino)
IDE
Intel ICH4 IDE
  • FUJITSU MHT2080AT PL, ATA DISK drive, (80026 MB) w/8192KiB Cache, CHS=65535/16/63, UDMA(100)
  • _NEC DVD+RW ND-6100A, ATAPI CD/DVD-ROM drive, 2048kB Cache, UDMA(33)
Modem
Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 01)
Ethernet
Broadcom Corporation NetXtreme BCM5705M Gigabit Ethernet (rev 01)
Sound
Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01)
Mouse
ALPS Dualpoint
Graphics
nVidia Corporation NV31M [GeForce FX Go5650] (rev a1) (128MB)
USB
Intel Corp. 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 01)
Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller (rev 01)
ACPI
Infrared
SMsC IrDA Controller
PCMCIA
Texas Instruments PCI7510
Bluetooth
Dell Wireless 300
FireWire
Texas Instruments PCI4510
Wireless
Intel PRO/Wireless 2200
Sensors
SMM BIOS
Smartcard Reader
(no idea)

Drivers

Most hardware is supported by standard drivers that should come with every up-to-date Linux distribution. Currently I'm using Gentoo.

CPU
The CPU is both supported by current kernels (choose architecture Pentium-M) and current compilers (add -march=pentium-m to your CFLAGS). You can upgrade the microcode of your CPU using the microcode device of 2.4.x kernels. A utility including latest microcode is available from http://www.urbanmyth.org/microcode/.
The CPU supports extended speedstep (EST) which is supported by the speedstep-centrino driver.
Kernel
To make sure all your devices are supported you should be using a current 2.6 kernel. At the time of writing I'm using linux 2.6.10.
Modem
The modem is supported by the (binary) HSF driver from linuxant.
Infrared
The infraread device can be operated both in SIR and FIR mode. It is supported by the smsc-ircc2 driver. In order to make this module work, you have to pass the IO/IRQ/DMA settings to it: ircc_dma=3 ircc_irq=3 ircc_fir=0x280 ircc_sir=0x278.
Ethernet
Works with the tg3 driver.
Sound
Works with the ALSA intel8x0 driver.
Mouse
The touchpad is a normal PS/2 device, so use /dev/psaux. Whether the touch or an external mouse or both should be used can be controlled in the BIOS.
For X11 there is a special driver available which lets you configure a lot of parameters of the touchpad, and what is best, it detects when you are sliding on the edges and translates these movements to scroll wheel events. The driver is available at http://w1.894.telia.com/~u89404340/touchpad/index.html. For configuring the driver, see the file README.alps
Keyboard
Most of the keys (even the Fn keys) generate ordinary keycodes. I had to register the scancodes for the battery (Fn+F3) and the CD key (Fn+F10):

/usr/bin/setkeycodes e007 121
/usr/bin/setkeycodes e009 123

The suspend button (Fn+ESC) generates the ACPI button/sleep event, the WLAN (Fn+F2) and display brightness (Fn+cursors) keys work out of the box (but do not generate any keypress event). The volume keys generate ordinary keycodes, which you can map to whatever you need.
Only the LCD/CRT key (Fn+F8) is neither generating any event nor really working...
Graphics
The graphic card is supported both by the nv driver from XOrg and the (binary - but accelerated) nvidia driver from nvidia. To get all the fancy modes of your WUXGA display working, you'll need to add the following modlines:

ModeLine "1920x1200" 162 1920 1984 2176 2480 1200 1201 1204 1250 +hsync +vsync
ModeLine "1680x1050" 147.14 1680 1784 1968 2256 1050 1051 1054 1087 +hsync +vsync
Modeline "1600x1024" 198.832 1600 1712 1888 2176 1024 1027 1030 1075 +hsync +vsync
ModeLine "1440x900" 130 1440 1452 1572 1896 900 901 904 937 +HSync +VSync
ModeLine "960x600" 60 960 968 1048 1264 600 601 603 625 +HSync +VSync
USB
The USB controller is supported by the ehci and uhci drivers, whether the devices you connect to it are supported is another question...
ACPI
Appears to be fully functional.
PCMCIA
PCMCIA support works with the yenta_socket module. This module is included in late 2.4.x and 2.5.x kernels and in the pcmcia-cs package.
Bluetooth
Supported by the hci_usb driver.
Firewire
Supported by the ohci1394 driver.
Sensors
You can read out and control the temperature, fan speed, and special keys using the i8k driver and related utilties.

General

The Dell Latitude D800 is a very elegant and nice laptop. It works fine with linux and I haven't experienced any problems so far which couldn't be solved.

The notebook comes with a slot for the Kensignton MicroSaver. Information is available at http://www.kensignton.com/.

I'm planning to add support for the smartcard reader, if you have any information about it, please let me know.

Links

Contact

If you have questions, comments, bug reports, suggestions, or if you just wish to send me some nice greetings, feel free to contact me: jochen@penguin-breeder.org.