Debian, wait, no, Ubuntu Linux on the Dell Latitude D810by Brian Elliott Finley
(brian at thefinleys dot com)
- 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.)
- I hit <Enter>
- Then <Enter>
- Then <Enter> again
- Typed in my hostname, then hit <Enter>
- Then <Enter>
- Left arrow to say "Yes" to the partition layout, then <Enter>
- Down arrow to choose "Central" timezone, then <Enter>
- Then <Enter>
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.
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)
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,
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.
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
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
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
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
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
[ Green - Working/tested ] [ Yellow - Partly working / tested ] [ Orange - Untested ] [ Red - Not working ]
(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:
- battery life (~3 hours vs. 1.5)
- minimally wider screen (1920x1200 vs. 1600x1200)
- faster disk (7200rpm SATA in this one)
- USB 2.0
- DVD Writer. Haven't used it yet, but I like knowing it's there.
On the other hand, I like most everything else about the ThinkPad better. Such as:
- The port replicator was actually useable with Linux. With the d810, the port replicator expects a software driver to do something before you can undock. Effectively this means that I have to shutdown. Bah! The Dell port replicator sits under my desk now. With my last 3 IBM notebooks, I could undock at anytime, without doing anything in software and it just worked. Go IBM! Also, the Dell port replicator doesn't have a normal headphone output. That sucks too.
- Sound quality was _much_ better with the ThinkPad A31p. Like you couldn't believe it was actually coming out of the notebook.
- The Dell has an eraser head joystick mouse-thingy, which is good, but it also has a touchpad, which is bad, and gets in the way. I haven't made the effort to completely disable it yet, but it's still annoying.
- The Dell has no "middle-click" button, which is essential to quick Linux cut and paste. I end up trying to balance my thumb across the two mouse buttons and use the emulate-middle-click feature, but it's just not fast, and requires more dexterity than I apparently have in my thumb. The ThinkPad had a middle-click button. Sigh.
- The Dell has two sets of mouse buttons. But the ones up top, to go with the joy-pointer, have to be pushed so far down to register, that you can't really "click" them, so they're effectively useless to me, and I end up using the lower pair, even though it means letting go of the pointer alltogether.
- On the Dell, the LCD/CRT switch button is a software switch, which means you have to map it to something in order to make it useful. On the IBM, it's a hardware switch, and it just does what it say's it's going to do. Nice. :-)
- The widescreen is nice, but can be problematic when switching between a projector for a presentation, or a normal aspect monitor on your desk, and the widescreen on the notebook. This one's more of a time problem (other devices will catch up eventually) than a Dell problem, but it's another one I didn't have with the IBM. However, I think I'd still go for it again as it's easier to look more left and right than it is to look further up or down.
- Have I mentioned that the WiFi in the Dell is flaky? The WiFi in the IBM was absolutely rock solid. It wasn't a/b/g, and it used the Orinoco driver, which doesn't support all the wireless extentions, like scanning, but it just stinkin' worked. And because of the gain, antennae size, etc, I often got solid signal with it when others could not even connect to the net.
- I don't like having the headphone output on the right side (on the Dell) -- right where I do all my mousing with my external mouse. The IBM's was in the back.
- The volume buttons map to software functions on the Dell. They're easy enough to map, but they only work when the software functions are available. Like, when you turn on your computer while you're waiting for the current presenter to finish, before you get up to talk, and you've just booted your notebook because the WiFi crashed it, and sound _was_ on, and you can't turn it off until after your notebook has made a number of happy, and loud, boot-up sounds. However, on the IBM, the volume and mute buttons were hardware switches -- they just worked. I like that. :-)
- I've only had this Dell a couple of months now, but the display is already wobbly on the hinges. After 2.5 years with the IBM, it was still *tight*, man!
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.
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  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:  #0d  Capabilities:  Power Management version 2 Capabilities:  Message Signalled Interrupts: 64bit- Queue=0/0 Enable- Capabilities: [a0] #10  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:  #10  Capabilities:  Message Signalled Interrupts: 64bit- Queue=0/0 Enable- Capabilities:  #0d  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:  Power Management version 2 Capabilities:  #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:  #0d  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:  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:  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:  Power Management version 2 Capabilities:  #10  Capabilities:  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:  Power Management version 2 Capabilities:  Vital Product Data Capabilities:  Message Signalled Interrupts: 64bit+ Queue=0/3 Enable- Capabilities: [d0] #10  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:  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