Linux on the Dell Latitude D800

If you're looking for any notes on getting the D800 going with Redhat 9 and/or 2.4.x kernels, I've archived the old version of this page that deals with that software.

Its been very hard for me to keep this page up to date, as the D800 has a lot of new hardware from a Linux perspective, and Linux itself has just made a major change from 2.4.x to 2.6.x. While the laptop works very well (and is very high performance) in general, the support for it has been pretty volatile. Case in point is suspend-to-disk and suspend-to-ram, which still doesn't quite work out of the box, which means that data on this page goes out of date very quickly.

In light of that, I started a Yahoo group a while back, where everyone can post their own information to an archived mailing list, and people can post files, etc. This is the group homepage: Linux on Latitude D800s. I strongly encourage you to join the group and check the archives for the most recent information. You'll notice that the status page here is nearly completely green now - everything works, but the most bleeding edge capabilities only have instructions in the mailing list, and I'm not sure when I'll get a chance to update my cookbook here.

On the other hand, if you do follow these instructions here, I promise that you will quickly have a working laptop, with nearly all features working (just no suspend states). Doing that first (so you can use the laptop) and then using it as a base for experimentation with the mailing list information might be a good way to go. Either way, good luck, and please post any success stories or questions to the mailing list.

--Mike


Subsystem
Status
Updated
Info
Hard Disk - IDE/(U)DMA

5/20/2003 ~29MB/s throughput with 2.6.x kernels
Optical - DVD-ROM/CD-RW

6/8/2003
Works great, burns fine, hot-swapping works
Audio

5/23/2003 Fully functional with 2.6.x kernels
Keyboard - special keys

5/1/2003 fully functional after configuration
ACPI / Power Management

5/23/2003 works reasonably well, requires some configuration
ACPI / Suspend/Resume

3/5/2004 Suspend-to-ram and suspend-to-disk working - check the Yahoo list archives! Thanks to Christoph Lukas among others for instructions
Xserver

5/23/2003 working very well - nvidia proprietary or open source driver
Firewire

5/20/2003 Reported as working great by others, out of the box
Ethernet

5/2/2003 5705M chip has two drivers that should work
Modem

6/2/2003 binary drivers work if you need it
USB
5/23/2003 USB1.0 and USB2.0 work great
Infrared

8/18/2003 Works well
Mini-PCI

11/6/2003 Careful! Intel chips work great but Broadcom chips (TrueMobile 1300/1400) require a proprietary driver setup
PCMCIA
4/30/2003 works out of the box
Bluetooth

5/1/2003
works with configuration
Smartcardreader

8/18/2003
Reportedly has no driver for linux.

[ Green - Working/tested ] [ Yellow - Partly working / tested ] [ Orange - Untested ] [ Red - Not working ]

Acknowledgements

First, let me acknowledge that this page is almost a direct rip off of Graeme Wilford's page for RedHat 9 on Inspiron 8500 laptops. In grand Free Software tradition I liked his format a lot so I blatantly copied it. The data has been altered where necessary for D800 laptops (obviously), but his page was a fabulous starting point for what is basically very similar hardware. Not just the style, but some of the words are definitely still his, so he should get a ton of credit. Thanks Graeme!

Andrew Fritz is working on Gentoo specific instructions that work well as an add-on to this page. If you use Gentoo, you should check out his page and maybe work with him to make the Gentoo experience a happy one.

I just found a D600 page from Martin List-Petersen (the D600 has very similar hardware to the D800) that may be interesting, check it out. Of special interest is the bluetooth section - he's done the work to get bluetooth working with his cell phone for GPRS internet access. He's also got the Truemobile 1150 card working (since the 1300 and 1400 have no drivers). I also just got a report from a mostly anonymous "ewcp" on the yahoo mailing list that the D600 works well with all the instructions posted below, so those machines probably work pretty well too.

Summary

Update 5/25/2005: I just re-organized the page to reflect how the D800 works with 2.6.x distributions. The assumption here is that you are using a distribution based on the 2.6.x kernel, and you fully patch it up once you have done the basic install. I'm using Fedora Core 3, though SuSE and Ubuntu have both been recommended on the D800 list. Gentoo and Debian have been recommended as well, but if you're using those, you probably don't need me to tell you how to work things, you're just reading this page to see how other people do it ;-).

Update 5/16/2003: I was getting lots of information from people via email, but felt it would be best if everyone could communicate through each other instead of just through me, so I created a yahoo group to get a free mailing list with archives etc. If you'd like to join in the conversation, here's the group homepage: Linux on Latitude D800s.

With the exception of the suspend power management states, this laptop works very well.

Introduction

This guide (currently a work in progress) might help you to get the most out of your Inspiron D800. Mine arrived with Windows 2000 installed which was for the most part, useless to me. I installed Fedora Core 3 but most of this is distribution-independent and will work with any modern distribution.

The D800 is a huge machine due to it's wide aspect-ratio screen, but it's relatively light, looks good, comes packed with technology, and is supposed to run well on a battery. Mine has these configurable components:
These are the main on-board components:

Preparing for installation

This was easy for me - I really didn't care for windows at all, and knew what the hardware on the machine was, so I simply started installing linux...

Installing Fedora Core 3 (FC3)

The first thing you notice is the ieee1394 driver being loaded. Then it boots anaconda and you're in X. The graphical install works fine. Don't panic if you see horrible lines across the screen for a few seconds, it takes a little while for the vesa graphics driver to kick in and initialise properly.

I did a custom install of all packages, with a very simple (clean, in my opinion) partitioning scheme. I used ext3 for all mountable filesystems.

Hard disk IDE interface:

The laptop's DMA modes work great out of the box, though that wasn't the case in the middle 2.4.x kerrnel days. However, many newer disk drives enable write-caching out of the box. It should be noted that this isn't that safe, as you could potentially lose data in a power outage. I usually turn this setting off with hdparm ('hdparm -W 0 /dev/hda')

Optical Drive - DVD-ROM/CD-RW

I have a secondary battery (I can get 5.5 to 6 hours on battery now running full blast, with wireless running, sweet) and discovered after some trial and error that the optical drive is actually hot-swappable, with full operating system support from what I can tell. You need the idectl script that normally comes with hdparm but doesn't come with FC3. You just tell it `idectl 1 off` to take the optical drive out and put the battery in, and you tell it `idectl 1 on` to get the optical drive working again. This was an unexpected bonus from this laptop, I'm pretty happy about it.

One annoying thing about the optical drive in FC3 is that with udev dynamically making and destroying the device entries, hotswapping won't work that well. So as root I went into /dev/ and did a './MAKEDEV hdc', then a 'cp /dev/hdc* /etc/udev/devices/'. Now the device entries are persistent across reboots, even if the optical drive isn't there when I boot. I just hotswap it in, and it works.

Finally, I get annoyed with all the clicky-clicky it takes to burn ISO files, so I have a shortcut to do the trick. Might be useful for you. In my shell I have this 'burncd' alias: 'cdrecord -v speed=8 dev=ATA:1,0,0 -data !*'. Instant ISO burnage.

Audio - Sigmatel 9750

It used to be a pain to set this up in the 2.4.x days, but ALSA is in the main kernel now, and its blissfully working out of the box.

Keyboard - special keys



Interestingly (and Graeme notes this about the the I8500 as well), with ACPI enabled the Fn+F3 and Fn+F8 keys combinations no longer have any effect. I have no idea why that's the case, but it is.

There are a lot of ways to get the special multimedia keys working. Many users on the D800 list find "acme" or "lineakd" to be extremely easy and highly recommend it. I haven't tried it.

Updated 5/27/2005: Mark Taylor (from the D800 group) writes in with this: "you can run gnome-keyboard-properties, select layout, then choose the 'laptop Dell inspiron 8xxx' option. Then those keys will produce X11 scan codes and they can be mapped by any window manager."

I just changed to using this, then, I modified my sawfish keybindings so that the new key mappings were picked up and were used to execute external commands. I used amixer for the volume commands and eject for the eject command.

Updated 5/23/2003: The main problem with controlling the mixers is that the mixer chip will mute the main channel if you have headphones plugged in and then take the volume down to zero. That means that if you use the "toggle" mixer command for mute, you may end up in an undefined state where main is muted and headphone isn't (or vice versa) and you'll no longer be controlling the channels the way you want. Additionally, it will take the main channel down to zero volume if you mute it with headphones in.

To work around that behavior, I just set the volume to zero and mute headphone and main speaker channels for any mute key event, and then use the volume up and down commands to move the headphone and main volume and unmute both. It seems a little strange and somewhat, but its the only way I found to make the behavior 100% reliable. Now both channels are guaranteed to be in sync and unmuted when moving volume around, and muting is guaranteed to shut down all audio - it just doesn't work like a toggle.

Here's my ~/.sawfish/custom so you can see the mappings (the important ones are in the "custom-set-keymap" entry at the top of the file).

Here's the shell commands if you want try them out:

volume down: amixer sset Headphone,0 5%- unmute; amixer sset Master,0 5%- unmute
volume up:   amixer sset Headphone,0 5%+ unmute; amixer sset Master,0 5%- unmute
mute button: amixer sset Headphone,0 0% mute; amixer sset Master,0 0% mute

Power/voltage/frequency/temperature Management

ACPI

You need a relatively new BIOS and kernel to work well with ACPI. Updating the BIOS on a D800 with no floppy drive can be annoying, so here's a BIOS update ISO you can burn onto a CD that contains a bootable DOS image, and the BIOS update file in one shot. Just pop it in your optical drive, reboot, wait, type 'd:', then run the update .exe in that directory. It'll take you up to A12.

The D800 does not support APM. It only supports the newer standard of ACPI. This is important not only for suspend+resume but also for thermal management and battery life.

What works? The power buttons and lid switch, CPU temperature, CPU power usage, AC status, and battery level. Everything but the fans, actually, and those are programmatically controllable by the i8kutils, so they work too, just separately. What more could you want?

I'm using acpid from acpid.sourceforge.net to automate the use of ACPI on my system, in combination with some nicely done scripts from the oft-mentioned Markus Gutschke. Here's the package of scripts here, they simply need to be expanded from the root ('/') of the filesystem. Another take on scripts to handle sleeping on lid events is available at Andrew Fritz's Gentoo D800 page.

If I turn the LCD down all the way, take out my PCMCIA card, take out the USB mouse, turn off the wireless and turn down my music, I can get around 3.5 hours of real work (Java server work with full CPU use and database access) out of it on one primary battery. It charges in 1.5 hours. Not as good as the top of the line Thinkpads, but not bad.

Suspend+Resume

Not working very well yet. Here are what the states are supposed to be: http://acpi.sourceforge.net/documentation/sleep.html

Please report any success you've had via the Yahoo newsgroup, including exact BIOS versions (video BIOS and main BIOS), video driver version, kernel version, and what devices were in use when you suspended and resumed.

CPU frequency and voltage scaling

I'm using cpufreqd to manage my frequency scaling. I think I got it as a package from the Dag yum repository. It works very well.

i8k - Inspiron 8k SMM BIOS driver (temperature management)


Information can be found here. The i8k driver is included in the default FC3 kernel but has to be force loaded on the D800 (modprobe i8k force=1). It provides BIOS, CPU temperature, fan and button status under /proc/i8k. The i8k utilities package allows manual/programmed control of fans and volume control button status.

I've followed the instructions in the i8k package and sent the maintainer all the information to put the d800 in the list of supported BIOSes for the i8k package. He has acknowledged receipt fo the information, and hopefully it will be mainstream soon and work out of the box. Note that the right/left fan control is reversed on the D800.

As a tangent, it should be said that the temperature control on this machine appears to be excellent. The fans turn on and off intermittently with or without i8k, ACPI, or anything at all. They are generally off or on very low, making it quiet, but they do spin right up when the hardware is really working. This part of the laptop, at least, seems perfect.

X @ 1920x1200 - AGP4x: Nvidia Geforce4 4200 Go

Update 5/13/2003: Be very careful with the brightest setting on this laptop. My LCD panel now has a light but noticable burn in from the bright parts of my desktop (window frames, etc). I haven't worked with Dell on this yet, but given the brightest LCD setting's ability to burn the screen in, I'd rather have a BIOS setting that let made that brightness unavailable. No brightness is worth burn-in potential. I frequently work on emacs for hours at a stretch, and I'm sure this will happen again. Malcolm Caldwell has confirmed that this is an issue for him, and his Gnome panel has burnt in as well. Igor Fedulov has had this issue using Windows, so its not a Linux-specific thing. Dell replaced Igor's LCD screen already, so the support is there, but its best if it just doesn't happen. Do be careful, and watch that brightness setting...

There are lots of ways to configure this beast. Most people are downloading the binary NVidia driver (from nvidia.com) and using that. That's what I'm doing. There are lots of configuration files in the files section of the Yahoo newsgroup. Update 5/13/2003: To get screen blanking to work when you close the lid you can integrate the command 'xset dpms force off' into the lid.sh script for acpid. I think my scripts do that. The only thing to do is to make sure that the user running acpid (root) has permission to access the local X session. This usually requires an 'xhost +local:0

Firewire - TI PCI4510

Joachim Kieferle reports that this works great. I don't have any devices myself, though if you have a digital video cam you'd like to send me ...

Ethernet - Broadcom 5705M

Works out of the box on 2.6.x kernels. There is a driver from broadcom, but the tg3 module is in the kernel and works.

Modem - Conexant D480MDC

It appears the manufacturer of the modem chip, Conexant, has taken notice of the linux community. I'm guessing the percentage of people using the chip and linux together isn't very big, so that's neat. If you go here, you can grab the modem drivers that I've heard works for this laptop.



USB - 82801DB USB UHCI Controller

Works fine with USB 1.0 devices (USB mouse). I don't have any USB2.0 devices, but Eddie Gonzales-Solares has a USB2 hard drive and reports that with USB1.0 he gets ~1MB/s while on this laptop he gets 13.8MB/s out of it, so that indicates its working wonderfully. Thanks Eddie!

Infrared


I've used infrared to sync my old Palm Vx, and I almost got it to work with my Polar S625X exercise watch/computer, so I know this works. The Polar didn't work for other reasons, but the IR was working.

Mini-PCI


Works great out of the box - it shows up as a device on another PCMCIA bus. Don't get Broadcom chips though. Get the Intel wireless cards. The Intel 2915 a/b/g card specifically is very cheap, works well, and is supported out of the box, and with an open source project. Thanks Intel!

PCMCIA

Default kernel yenta-socket works great. I'm using an 802.11b card in it for network connectivity, and it worked out of the box and without any errors.

Bluetooth

I've heard it works fine, and I just got a Treo 650 that can do bluetooth, so this section will be updated soon with how to get it working on FC3.

Smartcard Reader


Interestingly, there is a smartcard reader hooked in with the PCMCIA card. I think it might be an o2micro module card, but that's a wild guess. Its totally untested right now

May 2005 - Mike Hardy<d800 - @ - mikehardy.net>