: Dell is discontinuing the DX
10 laptops, and introduces the DX
20 instead. Just when (almost) everything in my laptop is supported, they stop selling it. Congratulations, Dell...
Dell Latitude D610 and Linux
A few experiences and tips with this laptop ... I got it in june, 2005, and it is a working tool ; so do not be surprised if I did not try every possible trick and hack to get everything working - I do not care if I lack a few features right now. I am pretty sure that the drivers and fixes will be available in a few weeks or months.
I run Debian sid (even with some experimental packages ; I love living dangerously)
, but most of those tips could apply to your favourite distro as well.
I have the SXGA (1400x1050) screen. It seems to be exactly the same screen that the D600 one. It is very decent (excellent angle of view) but has a couple of flaws :
1) when you change your vertical angle of view, the contrast is different ; and when you change your horizontal angle of view, the brightness changes. This is annoying if you need accurate color calibration (but you should not be using a laptop LCD panel, then). On the other hand, if you are playing a game and want to change the contrast/gamma, just tilt the screen a little bit, and voilą :-)
2) the casing of the laptop is not bullet-proof. Don't pack your laptop in a very tight bag, or apply heavy pressure on the cover ! It would crush the screen against the keyboard, and create little marks on the screen (not dead pixels, rather a couple of little dark-blue shadows, visible only on a all-black screen, in the middle of the screen). I saw a couple of D600 with that problem, and decided to be more careful with mine :-)
I had the choice between a "Intel UMA" and a "ATI X300" ; since the Intel was only 50 euros cheaper, I took the ATI.
- the ATI is a X300 "mobility", aka M22. It might
be slightly different from the "normal" X300, available as a PCI-Express board for desktop computers.
- it works with the "vesa" driver (no 3D, no xv, and 2D is not very fast, but it is perfectly usable for everyday work usage), just specify "1400x1050" manually in the Modes
line of the Screen
section of XF86Config-4
if your X server package does not offer this resolution.
- the xserver-xfree86
package of Debian sarge does not support the X300 chipset (or any X??? chipset), so the "radeon" driver will not work there. Bad news. (Newer version might support it.
- the xserver-xorg
package (which appeared late july 2005 in Debian sid, and already was in Ubuntu for a while) works with the "ati" driver without notable problem (but does not support 3D acceleration for this chipset).
- if you look at ATI's website, they say "ATI Customer Care is unable to offer drivers for notebooks." : https://support.ati.com/ics/support/default.asp?deptID=894&task=knowledge&folderID=27
... But their Linux driver, fglrx, does support X700 (a friend of mine has a Acer laptop with the X700 chipset, and it works with fglrx and some tweaking).
- Older fglrx
(ATI's proprietary driver) did not work (they would just give you a black screen, and sometimes the laptop would hang). With newer versions (I tried this in february 2006), 2D worked like a charm, but 3D caused a lot of trouble (kernel oopses, sometimes X servers crashes, and a couple of system freezes).
- The VGA output works well in clone mode (you don't need to configure anything, it will just work). I did not understand how the CRT/LCD button was supposed to work ; pressing it repeatedly gives random results. It seems to me, that it is more important to hook your external screen when starting X...
- You can easily output custom resolutions with the X300. For instance, I used a 26 inch LCD TV (with VGA input) just by putting Modes "1366x768"
. If you need a really strange resolution, use gtf
to create a custom modeline.
- N.B.: users of the Intel graphic chipset might have to use 915resolution to make it work ; it is a common problem with other laptops using an Intel-based video chipset.
- I did not test TV Output.
Hard disk and CD drive
- with a 2.4 kernel, the HD should be hda and the CD hdc, using the piix driver.
- with a 2.6 kernel, libata kicks in, and the HD will be recognized as sda (libata makes everything a SCSI device) and the CD will still be hdc.
- if your CD is not recognized anymore, try loading the piix and ide-generic modules before
ata_piix, since it seems that ata_piix will lock all the I/O ports it needs, but will not handle the CD drive. If you load piix and ide-generic first, it should work (it did for me). But, I cannot enable DMA on the CD (that means slow read speed, and cd-burning might be impaired - I did not try it yet).
(to load the modules in good order, I modified /etc/mkinitrd/modules - just list the modules there, one per line ; then run "mkinitrd -o /boot/initrd-yourkernelversion")
- if you want correct CD performance, and have a kernel before 2.6.15, you have to recompile your kernel. In the kernel source tree, modify include/linux/libata.h
and change #undef ATA_ENABLE_ATAPI
with #define ATA_ENABLE_ATAPI
. It is not enabled by default because the ATAPI implementation of libata is supposed to be incomplete (I might be wrong about that, I cannot find back the post which stated it). Recompile after this modification, reboot, and voilą, you will see a second SCSI adapter with your CD-ROM drive. Remember to load sr_mod
(SCSI removable devices module). Your drive should be available with /dev/sr0
- if you want correct CD performance, and have a kernel 2.6.15 and above : if your SATA drivers are built into the kernel, add libata.enable_atapi=1
on the kernel command-line ; if you use a modularized kernel with an initrd, add options libata enable_atapi=1
and rebuild the initrd (with something like mkinitrd -o /boot/initrd-2.6.15-1-686
; newer kernels might require the use of mkinitramfs
instead ; read the documentations if needed!). Reboot with the new initrd, enjoy.
- the chipset should work with the ahci
driver, but the chipset should then be put in "native" mode by the BIOS, and the BIOS does not allow to change (or even see) this setting. If you try to load the ahci
module, you get this error :
ahci version 1.00
ACPI: PCI interrupt 0000:00:1f.2[B] -> GSI 17 (level, low) -> IRQ 201
ahci: probe of 0000:00:1f.2 failed with error -12
Broadcom BCM5751 (PCI Express), works fine with tg3 driver (or bcm5700
driver in recent 2.6 kernels, if tg3 is not available anymore ; bcm5700
did build fine with module-assistant
I have the Intel Pro Wireless 2200 board. It works fine with the ipw2200
driver (I used to compile with module-assistant
, since I am a very lazy guy when it comes to hardware concerns ; but since kernel version 2.6.14 or so, the driver is included. WARNING
however, you still need to download a firmware (google ipw2200 firmware), which looks like a tarball and must be decompressed under /usr/lib/hotplug/firmware
With "latest" (as of July 2005) driver (ipw2200-1.0.4) and kismet (2005.04.R1), you can do some monitoring (I compiled those without module-assistant
, it was quite easy).
that the driver does not support sending packets when it is in monitor mode.
Until recently, I had to reset the driver (rmmod all modules, re-modprobe ipw2200) to get "normal" operation after running kismet. But there might be an easier way to put the interface back into usable state ; I am no iwconfig guru. The 2.6.16 kernel almost solved the problem : now, the driver resets itself, so I just get disconnected from the network during a few seconds.
I tested an Atheros board, the Gigabyte GA-WIAG, and am quite happy with it : much better RF quality (I can now pick up radio signals in places where I could not before), supposedly better monitoring support (not tested yet)... I got mine for ~30 EUR in Germany at http://www.pczocker.de/
; since then, I also found some french distributors who can sell it cheap (contact me if you need more information about that).
ACPI support (standby etc)
S3 (suspend to ram) only works since kernel 2.6.16 ; if you really need to use a earlier kernel, check Santiago Canez website
, you can find a few patches (libata-suspend, mainly) which should fix the problem.
Works like a charm with linuxant drivers. With the free drivers, you can do 14400 bps operation. If you need 56K, get a license (it's cheap).
By the way, their installer is impressive (it will generate .debs for you, and automatically recompile the kernel modules when you boot with a new module - as long as the sources are in the location pointed in /lib/modules/$(uname -r)/build
). Congratulations !
with 2.6.15 kernel, the old drivers do not build anymore. I got newer linuxant drivers, but they oopsed my kernel. So, modem does not work anymore...
Works. Many people report hiss problems when using a headset. I did not notice that since I do not use a headset. But I can hear very low static noise (which, interestingly, disappears when the video chipset is busy - for instance, when I move a window). On Santiago Canez website, I read this : If you have a high sharp pitched sound coming from the laptop, try booting the kernel with the idle=halt option.
I did not try it yet, but I bet it will do the trick ...
The PCMCIA slot works (I used it with a nozomi
card ; it is a GSM/GPRS/EDGE/3G network card). The Smartcard reader does not have a driver available, however. Try googling for OZSCR ; O2Micro released a GPL driver, but it only works with kernels 2.6.15 and older (because 2.6.16 removed the old PCMCIA interfaces, breaking quite a few proprietary and unsupported drivers). I sometimes use some Ssmartcards, so if you manage to compile the driver for 2.6.16, I would be quite happy to hear about it.
Works. Actually, the bluetooth module is hidden inside the battery bay, and connected thru what seems to be a USB connector in disguise. When you press Fn+F2 (disabling wireless devices), it disconnects the USB device.
I had reports of people dualbooting Linux and XP, who could no longer use bluetooth in Linux if they disabled it from XP. If you experience strange bluetooth behaviour (like, being able to receive frames, but being unable to transmit, or vice-versa) check that you did not disable bluetooth in XP.
The special keys to set the volume work ; the simplest way to enable them is to go to gnome Desktop Preferences -> Keyboard, and pretend that you have a inspiron8k keyboard. Then you can go to Desktop Preferences -> Keyboard Shortcuts, and in the sound section, set the Volume Up/Down/Mute shortcuts. The Shortcut column will display XF86Audio(something) when you press the special keys.
By the way, the keyboard has a very good layout (compared to other laptops I could put my fingers on). The "special" keys (Ctrl, Esc, Enter, <>, etc) are located where you expect them.
If you use your laptop a lot, chances are, that some crap will accumulate under the keys. If a key seems a bit sloppy, you can remove it quite easily, remove the dirt under it, and install it back. You need a bit of patience, because the mechanisms are very small ; but do not be afraid -- although not unbreakable, they are very sturdy and I still did not break any key yet.
To do a full cleansing of the keyboard, you can remove it (see next paragraph).
Taking the beast apart
You can get access to the first SO-DIMM slot by unscrewing a cover under the laptop. If you want to get access to the second SO-DIMM slot, or to the mini-PCI wireless NIC, you need to remove the keyboard (this allows to clean the keyboard, too). To do that, insert the tip of a screwdriver under the little edge (just near the "Page Up" key, at the right of the light grey surface) to remove the led cover (the whole LED cover must be removed). This will reveal two keyboard screws. You can then remove the keyboard (you have to go around the two little notches located left and right of the keyboard, between the Escape and Square keys for the left one, and between Page Down and Backspace for the right one).
If that can help ... (I swapped the crappy Intel wireless nic for an Atheros one, but I kept the Intel line in italics for reference)
0000:00:00.0 Host bridge: Intel Corporation Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (rev 03)
0000:00:01.0 PCI bridge: Intel Corporation Mobile 915GM/PM Express PCI Express Root Port (rev 03)
0000:00:1c.0 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (rev 03)
0000:00:1d.0 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (rev 03)
0000:00:1d.1 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (rev 03)
0000:00:1d.2 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (rev 03)
0000:00:1d.3 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (rev 03)
0000:00:1d.7 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (rev 03)
0000:00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev d3)
0000:00:1e.2 Multimedia audio controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (rev 03)
0000:00:1e.3 Modem: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem Controller (rev 03)
0000:00:1f.0 ISA bridge: Intel Corporation 82801FBM (ICH6M) LPC Interface Bridge (rev 03)
0000:00:1f.2 IDE interface: Intel Corporation 82801FBM (ICH6M) SATA Controller (rev 03)
0000:00:1f.3 SMBus: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (rev 03)
0000:01:00.0 VGA compatible controller: ATI Technologies Inc M22 [Radeon Mobility M300]
0000:02:00.0 Ethernet controller: Broadcom Corporation NetXtreme? BCM5751 Gigabit Ethernet PCI Express (rev 01)
0000:03:01.0 CardBus? bridge: Texas Instruments PCI6515 Cardbus Controller
0000:03:01.5 Communication controller: Texas Instruments PCI6515 SmartCard? Controller
0000:03:03.0 Ethernet controller: Atheros Communications, Inc. AR5212 802.11abg NIC (rev 01)
0000:03:03.0 Network controller: Intel Corp. PRO/Wireless 2200BG (rev 05)