Debian, wait, no, Ubuntu Linux on the Dell Latitude D810

by Brian Elliott Finley
(brian at thefinleys dot com)
Created: 2005.04.18
Last updated:
- 2005.07.01 - Mods to WiFi section, and general comments.
- 2005.06.28 - Got the multi-head bit figured out. See xorg.conf.
- 2005.05.22 - Misc.

Also see Bill Giannikos Linux on the Dell D810 page.


Brief disclaimer: I have spent very little time verifying the information here, but figured it was more valuable to get what I have done up quickly. If you find errors or omissions, please let me know, and I'll update this document. You can reach me at: brian at thefinleys.com.

I have had very nice success with Linux on this laptop, even with it's new hardware, and it's performance is really quite nice. Below you will find anectodes as well as the details on getting it installed and working.

I have been a Debian user for years, and have run Debian on my last couple of notebooks (starting in the year 2000), and am running it on my Wife's notebook as well. I started out with this notebook by installing Debian testing (Sarge at the time of this writing) and got the base OS installed just fine with the default 2.4 kernel. I needed a 2.6, but no biggie -- just did an "apt-get install kernel-image-2.6-686".

Now with my fresh 2.6 kernel I should have cpufreq_ondemand, and would have a baseline from which I could take the next step to re-compile my own with the software suspend patches. But the darned thing wouldn't boot, and I got the following error message.

    pivot_root: No such file or directory
    /sbin/init: 431: cannot open dev/console: No such file
    Kernel panic - not syncing: Attempted to kill init!
Why wouldn't it boot? Well, it's kinda funny, actually. But it took me a bit of <shift>+<Page Up> action to see what was causing this kernel panic.

Turns out, this thing has SATA. When I saw the SATA drivers loading, I went and looked at the 2.6 kernel source, and learned that while the 2.4 series kernel was presenting the drive as IDE (/dev/hda), the 2.6 series kernel was presenting it as SCSI (/dev/sda). Bingo!

So then I changed my /dev/hdaX entries to /dev/sdaX in /etc/fstab, and did the same for the 2.6 series kernel entry in /boot/grub/menu.lst. I rebooted, and blammo! It worked!

Then I started futzing with getting the graphics working. I failed. The ATI website (which sucks) only claims their proprietary driver works with non-notebook chipsets, and the driver provided with the latest XFree86 in Debian didn't recognize the chipset either. So I found a page where someone else had success with X.Org, and learned that Ubuntu Linux (based on Debian) included X.Org. I figured I could maybe get the debs from them, and install it that way. Then I thought, "Hey, it's a brand new computer, may as well just try installing Ubuntu and see what happens." So I did.

After downloading and burning a copy of the ISO (Ubuntu 5.04, The Hoary Hedgehog), I booted from it. After booting from the CD, here are the keystrokes that I made:

(I may have missed one or two, but you get the gist of it.)

After that, the computer crunched away for a bit, then rebooted. When it came up, it went right into X, with my beautiful new display running at it's proper 1920x1200 resolution. It even made happy "You can log in now." noises at me (through the speakers). I logged in and saw that cpufreq_ondemand was already working. Nice. And upon logging out, one of my options was "Hibernate the computer?" Double-nice. Software Suspend style hibernate already configured _and_ working!

Ok, enough prose, now on to the miscellany.


Subsystem
Status
Updated
Info
Hard Disk (SATA)

2005.04.18 Mine is the 7200 RPM variety. hdparm -Tt /dev/sda shows: Timing buffered disk reads: 114 MB in 3.02 seconds = 37.70 MB/sec.
WiFi 802.11 a/b/c
(back to top)

2005.07.01

This part has been a pain in the butt. Dell calls it the "Dell Wireless 1450". "lspci -v" reveals that it's a "Broadcom Corporation BCM4309 802.11a/b/g (rev 03)". There is no Linux driver for this chipset (to my knowledge) so I'm using ndiswrapper, which is pretty cool in that it allows you to use NDIS compliant Windows XP drivers for network devices under Linux. The part that sucks is that the Windows XP driver keeps locking up the kernel. Heh. Otherwise, it works great. ;-) I'll update as things improve (I hope).

Best solution so far seems to be to compile your own kernel with the CONFIG_16KSTACKS patch. Then, after booting the computer, make it do something like 30 seconds of a kernel compile prior to loading the ndiswrapper module. This is the _only_ combination I've found that consistently avoids lockups.

Oh yeah, be sure to "ifconfig wlan0 down ; rmmod ndiswrapper" prior to shutting down or hibernating, as the driver fails to unload if it is sustaining any activity or is in a configured state. If you fail to do this (I often forget -- you shouldn't have to do such a thing!), your machine will get to a point where you can no longer de-configure the interface and unload the module, but will fail to shutdown any further, and you have to crash it. Bah.


Ok, for those of you interested in the saga, please read below, however, I have (or should I say Joe has) recently resolved the wireless issues I was having. Joe Barnett sent me an email, I took his advice, and ndiswrapper is now working fine with the stock Ubuntu kernel. I repeat -- After implementing Joe's advice, I did _not_ have to re-compile my kernel with the CONFIG_16KSTACKS patch mentioned below. What was Joe's advice?

If you edit the bios settings on your D810 to do a full POST rather than a fast POST, it might fix your random wireless freezes (http://thefinleys.com/dell_d810/). At least, it's helped me with mine (BCM4306 b/g, not BCM4309 a/b/g).

Hope it helps,
-Joe

Captain's log 2005.07.01 -- Joe's advice was most helpful, but wireless remains the biggest pain in the butt on this notebook. I've found that under heavy network load, that she just can't take it, and the machine locks up hard. I also have been told that Dell has stopped selling this wireless chipset. Good. Get the Intel if you have a choice. It's even got open source drivers for it, but they're fairly new, and relatively untested, so I can't say as to what kind of quality to expect.

DVD+/-RW/CD-RW

2005.04.18
This is Dell's 8X max DVD+/-RW Combination Drive. "dmesg" reveals the following info on this drive: "Vendor: _NEC Model: DVD+-RW ND-6500A Rev: 202C". Working just peachy. Haven't burned a DVD yet, but have viewed DVDs and have burned many CDs.
Audio

2005.04.18

Working just fine. I was even able to go into the Gnome Keyboard Shortcuts panel, and map the volume up, down, and mute buttons (just above the keyboard) to the Gnome functions of the same name. Uses the "intel8x0" driver, and can only support one open connection at a time, so "esd" or "artsd" is a must.

Speakers are OK, but nothing to write home about. My last notebook was a Thinkpad A31p -- those speakers were nice. These are just kind of, eh, well they work.

ACPI / Power Management

2005.04.18

Working just fine as far as I can tell. Ubuntu even has the power button mapped such that hitting it performs a graceful shutdown of the system. Closing the lid automatically locks the screen and invokes the screensaver. They've even got Software Suspend hibernate configured, so that when you choose to log out of your Gnome session, one of your options is "e;So buddy, you wanna hibernate this box or what?" (paraphrased).

CPU Frequency scaling. XXX

Video

2005.04.18 ATI Mobility Radeon X600. 2D works great as configured by Ubuntu. Have to use the Gnome Screen resolution change applet to switch to 1600x1200 when connecting to my external display. No 3D accelleration, though. Using X.Org 6.8.2 as installed by Ubuntu.
Ethernet

2005.04.18 Broadcom 10/100/1000 Ethernet. Using the Tigon3 driver "tg3". Works like a champ. No complaints here.
Modem

2005.04.18 This thing has something called a "modem". I have no idea what it's for, but it's supposed to work if you use binary only drivers.
USB
2005.04.18 It just works. Both 1.x and 2.0.
PCMCIA
4/30/2003 It just works.
Bluetooth

5/1/2003
The device was detected and the driver loaded. I haven't tested it yet, but I have high confidence that it will work just fine.
Smartcard reader

8/18/2003
Unknown.

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

General Comments


(back to top)

Ok, my last notebook was a ThinkPad A31p. In comparison, there are 3, no 4 things that I like better about this one:

On the other hand, I like most everything else about the ThinkPad better. Such as:

Acknowledgements


First, let me acknowledge that this page is almost a direct rip off of Mike Hardy's page, which is 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, but his page was a fabulous starting point.

lspci -v



0000:00:00.0 Host bridge: Intel Corp. Mobile Memory Controller Hub (rev 03)
	Subsystem: Dell: Unknown device 0186
	Flags: bus master, fast devsel, latency 0
	Capabilities: [e0] #09 [2109]

0000:00:01.0 PCI bridge: Intel Corp. Mobile Memory Controller Hub PCI Express Port (rev 03) (prog-if 00 [Normal decode])
	Flags: bus master, fast devsel, latency 0
	Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
	I/O behind bridge: 0000d000-0000dfff
	Memory behind bridge: dfd00000-dfefffff
	Prefetchable memory behind bridge: d0000000-d7ffffff
	Capabilities: [88] #0d [0000]
	Capabilities: [80] Power Management version 2
	Capabilities: [90] Message Signalled Interrupts: 64bit- Queue=0/0 Enable-
	Capabilities: [a0] #10 [0141]

0000:00:1c.0 PCI bridge: Intel Corp. 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (rev 03) (prog-if 00 [Normal decode])
	Flags: bus master, fast devsel, latency 0
	Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
	Memory behind bridge: dfc00000-dfcfffff
	Capabilities: [40] #10 [0141]
	Capabilities: [80] Message Signalled Interrupts: 64bit- Queue=0/0 Enable-
	Capabilities: [90] #0d [0000]
	Capabilities: [a0] Power Management version 2

0000:00:1d.0 USB Controller: Intel Corp. 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (rev 03) (prog-if 00 [UHCI])
	Subsystem: Dell: Unknown device 0186
	Flags: bus master, medium devsel, latency 0, IRQ 16
	I/O ports at bf80 [size=32]

0000:00:1d.1 USB Controller: Intel Corp. 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (rev 03) (prog-if 00 [UHCI])
	Subsystem: Dell: Unknown device 0186
	Flags: bus master, medium devsel, latency 0, IRQ 17
	I/O ports at bf60 [size=32]

0000:00:1d.2 USB Controller: Intel Corp. 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (rev 03) (prog-if 00 [UHCI])
	Subsystem: Dell: Unknown device 0186
	Flags: bus master, medium devsel, latency 0, IRQ 18
	I/O ports at bf40 [size=32]

0000:00:1d.3 USB Controller: Intel Corp. 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (rev 03) (prog-if 00 [UHCI])
	Subsystem: Dell: Unknown device 0186
	Flags: bus master, medium devsel, latency 0, IRQ 19
	I/O ports at bf20 [size=32]

0000:00:1d.7 USB Controller: Intel Corp. 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (rev 03) (prog-if 20 [EHCI])
	Subsystem: Dell: Unknown device 0186
	Flags: bus master, medium devsel, latency 0, IRQ 16
	Memory at ffa80800 (32-bit, non-prefetchable) [size=1K]
	Capabilities: [50] Power Management version 2
	Capabilities: [58] #0a [20a0]

0000:00:1e.0 PCI bridge: Intel Corp. 82801 PCI Bridge (rev d3) (prog-if 01 [Subtractive decode])
	Flags: bus master, fast devsel, latency 0
	Bus: primary=00, secondary=03, subordinate=04, sec-latency=32
	Memory behind bridge: dfb00000-dfbfffff
	Capabilities: [50] #0d [0000]

0000:00:1e.2 Multimedia audio controller: Intel Corp. 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (rev 03)
	Subsystem: Dell: Unknown device 0186
	Flags: bus master, medium devsel, latency 0, IRQ 16
	I/O ports at ed00 [size=256]
	I/O ports at ec40 [size=64]
	Memory at dffffe00 (32-bit, non-prefetchable) [size=512]
	Memory at dffffd00 (32-bit, non-prefetchable) [size=256]
	Capabilities: [50] Power Management version 2

0000:00:1f.0 ISA bridge: Intel Corp. 82801FBM (ICH6M) LPC Interface Bridge (rev 03)
	Subsystem: Dell: Unknown device 0186
	Flags: bus master, medium devsel, latency 0

0000:00:1f.2 IDE interface: Intel Corp. 82801FBM (ICH6M) SATA Controller (rev 03) (prog-if 80 [Master])
	Subsystem: Dell: Unknown device 0186
	Flags: bus master, 66MHz, medium devsel, latency 0, IRQ 17
	I/O ports at 
	I/O ports at 
	I/O ports at 
	I/O ports at 
	I/O ports at bfa0 [size=16]
	Capabilities: [70] Power Management version 2

0000:00:1f.3 SMBus: Intel Corp. 82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (rev 03)
	Subsystem: Dell: Unknown device 0186
	Flags: medium devsel, IRQ 10
	I/O ports at 10c0 [size=32]

0000:01:00.0 VGA compatible controller: ATI Technologies Inc: Unknown device 3150 (prog-if 00 [VGA])
	Subsystem: Dell: Unknown device 2002
	Flags: bus master, fast devsel, latency 0, IRQ 11
	Memory at d0000000 (32-bit, prefetchable) [size=128M]
	I/O ports at de00 [size=256]
	Memory at dfdf0000 (32-bit, non-prefetchable) [size=64K]
	Expansion ROM at dfe00000 [disabled] [size=128K]
	Capabilities: [50] Power Management version 2
	Capabilities: [58] #10 [0001]
	Capabilities: [80] Message Signalled Interrupts: 64bit+ Queue=0/0 Enable-

0000:02:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5751 Gigabit Ethernet PCI Express (rev 01)
	Subsystem: Dell: Unknown device 0186
	Flags: bus master, fast devsel, latency 0, IRQ 16
	Memory at dfcf0000 (64-bit, non-prefetchable) [size=64K]
	Capabilities: [48] Power Management version 2
	Capabilities: [50] Vital Product Data
	Capabilities: [58] Message Signalled Interrupts: 64bit+ Queue=0/3 Enable-
	Capabilities: [d0] #10 [0001]

0000:03:01.0 CardBus bridge: Texas Instruments: Unknown device 8036
	Subsystem: Dell: Unknown device 0186
	Flags: bus master, medium devsel, latency 168, IRQ 19
	Memory at 40000000 (32-bit, non-prefetchable) [size=4K]
	Bus: primary=03, secondary=04, subordinate=07, sec-latency=176
	Memory window 0: 40400000-407ff000 (prefetchable)
	Memory window 1: 40800000-40bff000
	I/O window 0: 00004000-000040ff
	I/O window 1: 00004400-000044ff
	16-bit legacy interface ports at 0001

0000:03:01.5 Communication controller: Texas Instruments: Unknown device 8038
	Subsystem: Dell: Unknown device 0186
	Flags: medium devsel, IRQ 7
	Memory at dfbfc000 (32-bit, non-prefetchable) [size=4K]
	Memory at dfbfd000 (32-bit, non-prefetchable) [size=4K]
	Capabilities: [44] Power Management version 2

0000:03:03.0 Network controller: Broadcom Corporation BCM4309 802.11a/b/g (rev 03)
	Subsystem: Dell: Unknown device 0003
	Flags: bus master, fast devsel, latency 64, IRQ 17
	Memory at dfbfe000 (32-bit, non-prefetchable) [size=8K]

xorg.conf

(back to top)
# /etc/X11/xorg.conf (xorg X Window System server configuration file)
#
# This file was generated by dexconf, the Debian X Configuration tool, using
# values from the debconf database.
#
# Edit this file with caution, and see the /etc/X11/xorg.conf manual page.
# (Type "man /etc/X11/xorg.conf" at the shell prompt.)
#
# This file is automatically updated on xserver-xorg package upgrades *only*
# if it has not been modified since the last upgrade of the xserver-xorg
# package.
#
# If you have edited this file but would like it to be automatically updated
# again, run the following commands:
#
#   cp /etc/X11/xorg.conf /etc/X11/xorg.conf.custom
#   sudo sh -c 'md5sum /etc/X11/xorg.conf >/var/lib/xfree86/xorg.conf.md5sum'
#   sudo dpkg-reconfigure xserver-xorg

Section "Files"
	FontPath	"unix/:7100"			# local font server
	# if the local font server has problems, we can fall back on these
	FontPath	"/usr/lib/X11/fonts/misc"
	FontPath	"/usr/lib/X11/fonts/cyrillic"
	FontPath	"/usr/lib/X11/fonts/100dpi/:unscaled"
	FontPath	"/usr/lib/X11/fonts/75dpi/:unscaled"
	FontPath	"/usr/lib/X11/fonts/Type1"
	FontPath	"/usr/lib/X11/fonts/CID"
	FontPath	"/usr/lib/X11/fonts/100dpi"
	FontPath	"/usr/lib/X11/fonts/75dpi"
        # paths to defoma fonts
	FontPath	"/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
	FontPath	"/var/lib/defoma/x-ttcidfont-conf.d/dirs/CID"
EndSection

Section "Module"
	Load	"bitmap"
	Load	"dbe"
	Load	"ddc"
	Load	"dri"
	Load	"extmod"
	Load	"freetype"
	Load	"glx"
	Load	"int10"
	Load	"record"
	Load	"type1"
	Load	"vbe"
EndSection

Section "InputDevice"
	Identifier	"Generic Keyboard"
	Driver		"keyboard"
	Option		"CoreKeyboard"
	Option		"XkbRules"	"xorg"
	Option		"XkbModel"	"pc104"
	Option		"XkbLayout"	"us"
EndSection

Section "InputDevice"
	Identifier	"Configured Mouse"
	Driver		"mouse"
	Option		"CorePointer"
	Option		"Device"		"/dev/input/mice"
	Option		"Protocol"		"ImPS/2"
	Option		"Emulate3Buttons"	"true"
	Option		"ZAxisMapping"		"4 5"
EndSection

Section "Device"
    # See "man radeon" for details.
	Identifier	"ATI Technologies, Inc. Radeon Mobility X600 (M24)"
	Driver		"ati"
	Option  	"MonitorLayout" "LVDS, CRT"
	Option 		"CRT2Position" 	"Clone"
	# For my desktop, with my 1600x1200 flat screen external, I use this:
	Option 		"MetaModes" 	"1920x1200-1600x1200 1920x1200-1024x768"
	# For presentations on a 1024x768 projector, I use this:
	#Option 		"MetaModes" 	"1024x768-1024x768"
EndSection

Section "Monitor"
	Identifier	"Laptop Display"
	Option		"DPMS"
EndSection

Section "Monitor"
	Identifier 	"External Display"
EndSection

Section "Screen"
	Identifier	"Laptop Screen"
	Device		"ATI Technologies, Inc. Radeon Mobility X600 (M24)"
	Monitor		"Laptop Display"
	DefaultDepth	24
	SubSection "Display"
		Depth	24
		Modes	"1920x1200" "1600x1200" "1024x768"
	EndSubSection
EndSection

Section "ServerLayout"
	Identifier	"Desktop Layout"
	Screen		"Laptop Screen"
	InputDevice	"Generic Keyboard"
	InputDevice	"Configured Mouse"
	# We don't want no stinkin' touchpad -BEF- 
    # (Note: this doesn't actually make it go away.  To be continued...)
	#InputDevice	"Synaptics Touchpad"
EndSection

Section "DRI"
	Mode	0666
EndSection