Getting linux 2.6 to work on a Dell Latitude D800

I recently bought a Dell Latitude D800, which was a little reckless in hindsight as it is stuffed with hardware that is not very well supported under Linux, or at least, Linux 2.5. Recent Linux 2.6 is lots better!

These are my experiences getting it to work. If you have things working I don't have yet, please email me and I'll update the page. Update: This page is getting shorter and shorter, which is very good. Perhaps one day it'll disappear altogether.

Update: as of 2.6.7-mm7, resume and suspend work! To suspend, echo 4 > /proc/acpi/sleep

Other resources

Mike Hardy has a page focussed on running Linux 2.4 on the Dell D800. He also runs the mailinglist for users of this laptop.

Ethernet

Update!As of 2.6.0-test9-bk26 the native tg3 driver works! Previously an out of kernel driver from Broadcom was needed.

Video

There are two choices, either use the Nvidia kernel module and driver, which you can find on this page, or use a recent version of XFree86, like 4.3.0 which works very well, but does not support 3d acceleration. The native X driver is called 'nv'.

The wide screen resolution of 1280x800 needs a modeline, here is a snippet of XF86Config-4 that works:

 Section "Monitor"
        Identifier      "Generic Monitor"
        HorizSync       30-107
        VertRefresh     50-185
        Option          "DPMS"
        Modeline        "1280x800"      159.74 1280    1296    1552    1664 800     800 815 835
EndSection

Wireless

Update! Thanks to the wonderful ndiswrapper project, this now works!

See their page for details.

It is hoped that the ndiswrapper will allow the reverse engineering of the Broadcom card, which would make native operation possible.

Modem

The driver is written by Linuxant, and can be found here. Getting this to compile for 2.5 is non-trivial, haven't managed it yet. For 2.4 it should just work.

Sound

Works as advertised, very good speakers too! 'Intel 810 audio'. There are some issues with the mixer and not getting the speaker audio (the 'beep') output.

Mouse

Reportedly, gpm has problems with the mouse. Not confirmed.

Firewire

Haven't gotten round to it yet (don't have any firewire gear to test).

PCMCIA

Haven't gotten round to it yet.

USB

Just Works, even USB 2, very fast.

Google-bait

The contents of /proc/pci, so google will find this site when people look for PCI ids:
PCI devices found:
  Bus  0, device   0, function  0:
    Host bridge: PCI device 8086:3340 (Intel Corp.) (rev 3).
      Prefetchable 32 bit memory at 0xec000000 [0xefffffff].
  Bus  0, device   1, function  0:
    PCI bridge: PCI device 8086:3341 (Intel Corp.) (rev 3).
      Master Capable.  Latency=32.  Min Gnt=12.
  Bus  0, device  29, function  0:
    USB Controller: Intel Corp. 82801DB USB (Hub #1) (rev 1).
      IRQ 11.
      I/O at 0xbf80 [0xbf9f].
  Bus  0, device  29, function  1:
    USB Controller: Intel Corp. 82801DB USB (Hub #2) (rev 1).
      IRQ 11.
      I/O at 0xbf40 [0xbf5f].
  Bus  0, device  29, function  2:
    USB Controller: Intel Corp. 82801DB USB (Hub #3) (rev 1).
      IRQ 11.
      I/O at 0xbf20 [0xbf3f].
  Bus  0, device  29, function  7:
    USB Controller: Intel Corp. 82801DB USB EHCI Con (rev 1).
      IRQ 11.
      Non-prefetchable 32 bit memory at 0xf4fffc00 [0xf4ffffff].
  Bus  0, device  30, function  0:
    PCI bridge: Intel Corp. 82801BAM/CAM PCI Bri (rev 129).
      Master Capable.  No bursts.  Min Gnt=4.
  Bus  0, device  31, function  0:
    ISA bridge: PCI device 8086:24cc (Intel Corp.) (rev 1).
  Bus  0, device  31, function  1:
    IDE interface: PCI device 8086:24ca (Intel Corp.) (rev 1).
      IRQ 11.
      I/O at 0xbfa0 [0xbfaf].
      Non-prefetchable 32 bit memory at 0x40000000 [0x400003ff].
  Bus  0, device  31, function  5:
    Multimedia audio controller: Intel Corp. 82801DB AC'97 Audio (rev 1).
      IRQ 11.
      I/O at 0xb800 [0xb8ff].
      I/O at 0xbc40 [0xbc7f].
      Non-prefetchable 32 bit memory at 0xf4fff800 [0xf4fff9ff].
      Non-prefetchable 32 bit memory at 0xf4fff400 [0xf4fff4ff].
  Bus  0, device  31, function  6:
    Modem: Intel Corp. 82801DB AC'97 Modem (rev 1).
      IRQ 11.
      I/O at 0xb400 [0xb4ff].
      I/O at 0xb080 [0xb0ff].
  Bus  1, device   0, function  0:
    VGA compatible controller: PCI device 10de:0286 (nVidia Corporation) (rev 161).
      IRQ 11.
      Master Capable.  Latency=248.  Min Gnt=5.Max Lat=1.
      Non-prefetchable 32 bit memory at 0xfc000000 [0xfcffffff].
      Prefetchable 32 bit memory at 0xf0000000 [0xf3ffffff].
  Bus  2, device   0, function  0:
    Ethernet controller: Broadcom Corporation NetXtreme BCM5705M G (rev 1).
      IRQ 11.
      Master Capable.  Latency=32.  Min Gnt=64.
      Non-prefetchable 64 bit memory at 0xfaff0000 [0xfaffffff].
  Bus  2, device   1, function  0:
    CardBus bridge: PCI device 104c:ac47 (Texas Instruments) (rev 1).
      IRQ 11.
      Master Capable.  Latency=32.  Min Gnt=64.Max Lat=7.
      Non-prefetchable 32 bit memory at 0x40001000 [0x40001fff].
  Bus  2, device   1, function  1:
    CardBus bridge: PCI device 104c:ac4a (Texas Instruments) (rev 1).
      IRQ 11.
      Master Capable.  Latency=32.  Min Gnt=64.Max Lat=3.
      Non-prefetchable 32 bit memory at 0x40002000 [0x40002fff].
  Bus  2, device   1, function  2:
    FireWire (IEEE 1394): PCI device 104c:802b (Texas Instruments) (rev 0).
      IRQ 11.
      Master Capable.  Latency=32.  Min Gnt=2.Max Lat=4.
      Non-prefetchable 32 bit memory at 0xfafef800 [0xfafeffff].
      Non-prefetchable 32 bit memory at 0xfafe8000 [0xfafebfff].
  Bus  2, device   1, function  3:
    System peripheral: PCI device 104c:8204 (Texas Instruments) (rev 0).
      I/O at 0xecf8 [0xecff].
  Bus  2, device   3, function  0:
    Network controller: PCI device 14e4:4320 (Broadcom Corporation) (rev 2).
      IRQ 11.
      Master Capable.  Latency=32.  
      Non-prefetchable 32 bit memory at 0xfafec000 [0xfafedfff].