Debian (testing) on Dell XPS M1210

The XPS M1210 is a small (12") lappy which has a lot of bells and whistles for a moderate price. It (almost) fully compatible with GNU/Linux. This page contains a bunch of notes on how to configure stuff. Although its written with debian in mind it should be possible to use these hints for almost any other distro.

Index:

  1. Compatibility Matrix
  2. Kernel Configuration/Installation
  3. Additional Driver Configuration/Installation
  4. Xorg (i915 & debian)
  5. Media Buttons
  6. ACPI (lid hack)
  7. Suspend2 (userspace) (I915 hack)
  8. WPA supplicant (Debians new implementation of configs)
  9. Pealing windows stickers.
  10. Files of interest: lspci, /proc/cpuinfo, .config
  11. Special thanks.
  12. Contact Me

Compatibility Matrix

Device Status Notes
Processor Core 2 Duo (T7200) OK Make sure you have SMP
RAM 1GB OK Use high memory support (4GB) for better utilization if you have >=880MB.HIGHMEM4G
Ethernet IEEE802.3 (BCM4401) OK B44 driver is in the kernel
Wifi IEEE802.11 (IPW3945ABG) OK Use IPW3945 intel drivers. WPA also works.
BlueTooth OK I've been able to detect bluetooth devices but havent tried connecting yet.
IDE (SATA) OK Using SCSI_ATA_PIIX driver
Intel Graphics Media Accelerator 950 (i945GM) OK Using AGP, AGP_INTEL, DRM_I915, and i915resolution daemon
VGA port OK Picture on external monitor is a bit distorted. Most likely because of the 915resolution daemon.
svideo port Almost After some tinkering I got svideo to kind of work, the only problem is that it does not display the whole screen and xorg does not want to switch to 640x480.
ACPI OK Works for the most part, suspend to ram is a bit touchy. See Lid script below.
Suspend2 OK Works great using my I915 scriplet
Card Reader OK Was able to mount an SD card. Drivers: MMC, MMC_BLOCK, MMC_SDHCI, MMC_WBSD.
FireWire IEEE1394 OK Tested with dv1394, Freezes machine when camera is plugged in at times.
Media Keys OK (Mute, Vol-Up, Vol-Down, Play-Pause, FF, Rew, Stop)Using toms scripts.
ExpressCard Untested Does anyone know of good ExpressCard wifi cards with antenna port?

Kernel/Module Configuration:

I never use the Debian kernels for anything but to compile my own kernels, simply because if you want more hardware to work better its a good idea to compile your kernel. On the XPS M1210 there are several things you should pay attention to SMP (to use both cores), High Memory Support (for better utilization of the gig of ram), i915 driver.

Compiling your own kernel:

There are many ways to compile a kernel. Here is my brief "compiling and installing kernel the debian way" tutorial.

Using my pre-packaged kernel:

If you dont want to compile your own kernel but want some of the benefits you can use my package. But it does not include the ipw3945 driver. Download one of my kernel packages and install it using # dpkg -i linux-image-XXXXXX_i386.deb

Drivers

The ipw3945 driver is straight forward to compile/install, refer to its documentation.

UPDATE I've had some problems compiling ipw3945-1.1.0 with 2.6.18 kernel. ipw does not properly recognize the version of ieee802.11 stuff in the kernel. A quick hack is to change "EXTRA_CFLAGS += -DIEEE80211_API_VERSION=$(IEEE80211_API)" to "EXTRA_CFLAGS += -DIEEE80211_API_VERSION=2" on line 96 of Makefile.

Xorg (i915)

I had the hardest time trying to get DRI to work with the i810 driver. Turns out there is a bug bug in the mesa package and the driver. So if when you are reading this and debian i8XX, i9XX display driver is still at version 1:1.5.1.0-2 I recomend you use the following workaround. Download this i915 driver and overwrite the /usr/lib/xorg/modules/drivers/i810_drv.so and /usr/lib/dri/i915_dri.so with the ones located in i915-20060403-linux.i386/i915/. Note this workaround enables DRI but there are still some problems with mesa and so you wont get all the possible eyecandy from the gfx card.

To use the native resolution of the display you need to install (# aptitude install 915resolution) the 915resolution daemon you can use my configuration file /etc/default/915resolution

My xorg.conf file can be found here, it works quite well for me but milage might vary.

I've noticed that mplayer did not like not having libxxf86vm1 libraries and if you are compiling yourself you should probably install libxv1 libxvmc-dev libxvmc1 libxxf86vm-dev

Media Buttons

I am using toms configuration for the Media buttons it works great(refer to compatibility matrix)! basically you need to install xkeycaps (# aptitude install xkeycaps). Then download my xmodmaprc file to ~/.xmodmaprc and do $ xmodmap ~/.xmodmaprc. It might be a good idea to have this run anytime you start x (in kde you can: $ printf "#!/bin/bash\nxmodmap ~tox/.xmodmaprc" > ~/.kde/Autostart/xmodmap and $ chmod 755 ~/.kde/Autostart/xmodmap).

ACPI

You might have noticed that when you close and open the lid computers screen goes black. Again I am using toms script to fix this. Install acpid (# aptitude install acpid) if you have problems starting the daemon make sure hal is not using /proc/acpi (remove hal with # aptitude remove --purge hal). Download my lid.sh script to /etc/acpi/ and my lid event script to /etc/acpi/events/ restart acpid daemon (/etc/init.d/acpid restart). I also use this script to lock kde when the lid is closed, if you use kde and want similar behavior uncomment lines 31 and 32 (ones which start with "dcop").

With the 2.6.18 kernel suspend to ram works under some circumstances. I havent had the time to track down what the problem is, yet.

Suspend2

Suspend2 and hibernate script (# aptitude install hibernate) work almost perfectly out of the box. With one problem if you suspend from X (chvt 7) it will get restarted on resume. The problems is behind the i915 driver and the fact that we are using a non standard resolution. I've written a scriplet called I915 which takes care of this problem by switching to text terminal on hibernate and on resume it restart 915resolution and goes back to gui terminal. When the 915resolution is built into the i830/i915 xorg driver this might not longer be needed but untill then: download my I915 scriplet to /etc/hibernate/scriptlets.d/ and add "EnableI915Hack 1" to /etc/hibernate/suspend2.conf (echo "EnableI915Hack 1" >> /etc/hibernate/suspend2.conf). Now run # hibernate to test the new config.

wpa_supplicant (Debians new implementation of wpa configuration)

Comming soon

Peeling Windows Stickers

Now that your laptop is no longer running windows you should remove the windows sticker. Unfortunatelly (as good as it is) aptitude remove --purge does not work on this. I suggest you feel it off with your nail and remove any of the remaining glue by rubbing it with a pice of paper towel with some mineral on it (olive/extra virgin olive/sunflower/corn all work).

Files which may be of interest:

Special Thanks to: