HARDWARE Dell XPS M1210

From Gentoo Linux Wiki

Jump to: navigation, search
This article is part of the Hardware series.
Laptops TV Tuner Cards Wireless Servers Storage Other Hardware Motherboards Related

Contents

[edit] General

The Dell XPS M1210 is a small notebook with muscle.

The M1210 measures 11.7x8.7x1.2 inches/297x239x30mm (W x D x H) and weighs in at 4.5 pounds/2kg.

The display is 12.1 inches diagonal, with a high-gloss finish. Its native resolution is 1280x800.

One of the features of the M1210 is MediaDirect. MediaDirect boots into a small special purpose partition containing software for DVD, MP3 and picture playback. This is accessed via a special button to the left of the power button.

[edit] BIOS

There are a couple of important settings hidden under the "POST" heading in the BIOS:

  • Virtualization This needs to be enabled in order to allow the new KVM (Kernel Virtual Machine) features of the 6.20+ kernel. This feature will enable Linux to run another operating system (or another instance of Linx itself) as a "guest" OS on one of the CPU cores. The default is "OFF", so you'll need to enable this.
  • Blue lights Personally, I'm tired of every electronic gadget I buy being bathed in the cool blue light of Cherenkov radiation. This turns off the lights on the media control buttons on the front of the machine.

[edit] Partitioning

This is less straightforward than it would seem. Dell ships the M1210 with a number of ill-documented special-purpose partitions.

These seem to consist of a partition for the Dell MediaDirect software (likely /dev/sda1, formatted FAT32), a partition for utilities (likely /dev/sda3, formatted FAT16) and a larger backup partition to allow rollback of the machine's Windows installation to as-shipped condition. Windows is on the remaining partition (likely /dev/sda2, formatted NTFS).

I managed, PEBKAC, to nuke my MBR in some way which remains obscure to me. As a result, the rollback partition was lost forever. It appears, however, that if I'd wanted to preserve it I would have to play with the Dell rollback software in order to convince it to come to terms with the re-partitioning necessary to install Linux.

I was still able to reinstall the Dell MediaDirect and Dell Utilities software and get it, Windows XP and Linux to live together. Dell ships a bootable CD to allow re-installation of the MediaDirect and utility software. First, install the software, second reinstall Windows XP and then repartition and install Linux. Use Windows XP's NTLDR as bootloader with GRUB installed on your /boot partition, as described here.

Dan Goodell has some valuable information on all these partitions:

If you are just going to install gentoo and don't want to keep the installed windows then just use:

dd if=/dev/zero of=/dev/sda
cfdisk /dev/sda

and you're done

[edit] lspci

The usual lspci dump:

00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS/940GML and 945GT Express Memory Controller Hub (rev 03)
00:01.0 PCI bridge: Intel Corporation Mobile 945GM/PM/GMS/940GML and 945GT Express PCI Express Root Port (rev 03)
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 01)
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 01)
00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 01)
00:1c.3 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 4 (rev 01)
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #1 (rev 01)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #2 (rev 01)
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #3 (rev 01)
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #4 (rev 01)
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 01)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e1)
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 01)
00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family) Serial ATA Storage Controller IDE (rev 01)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 01)
01:00.0 VGA compatible controller: nVidia Corporation GeForce Go 7400 (rev a1)
03:00.0 Ethernet controller: Broadcom Corporation BCM4401-B0 100Base-TX (rev 02)
03:01.0 FireWire (IEEE 1394): Ricoh Co Ltd Unknown device 0832
03:01.1 Class 0805: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 19)
03:01.2 System peripheral: Ricoh Co Ltd Unknown device 0843 (rev 01)
03:01.3 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter (rev 0a)
03:01.4 System peripheral: Ricoh Co Ltd xD-Picture Card Controller (rev 05)
0c:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG Network Connection (rev 02)

[edit] Kernel

Author is running the Sabayon 2.6.20-r2 kernel from the Sabayon overlay. Note that this has the ipw3945 WiFi drivers patched in as well as the KVM drivers. However, if you want to use KVM 14, you'll need to download the sources from sourceforge and build them as the ones in the kernel are outdated and the Sabayon ebuild for KVM 14 doesn't build the updated modules needed to run KVM 14. Don't try to build all of KVM 14, just build what's in the "kernel" directory of the untarred package.

Another user recommend that "[i]f you want to use gentoo-sources with suspend2, you may want to use this config for 32bit : http://gentoo.devangels.org/binhost/celeron-duo/config/xpsM1210/gentoo-2.6.20-suspend2-kexec_config "

[edit] Video

The M1210 can be purchased either with the embedded Intel graphics or the nVidia GeForce Go 7400 mobile graphics card. I selected the nVidia card.

[edit] nVidia GeForce Go 7400

[edit] X-Window Configuration

I've used the nvidia 9746 binary drivers from the Sabayon overlay. I'm also using Beryl SVN for all my eyecandy needs.

Here's the salient portion of my /etc/X11/xorg.conf:

Section "Module"

    Load	"dbe"

    SubSection	"extmod"
	Option	"omit xfree86-dga"
    EndSubSection

    Load	"type1"
    Load	"freetype"

    Load	"glx"

EndSection

Section "Monitor"

    Identifier	"Dell XPS M1210 1280x800 Seiko DFP"

    HorizSync	31.5 - 50
    VertRefresh	40 - 90
    DisplaySize	338 211

EndSection

Section "Device"

    Identifier	"Dell XPS M1210 nVidia GeForce Go7400"

    Driver	"nvidia"

    Option	"NoLogo"	"True"
    Option 	"Coolbits" 	"1"

EndSection

Section "Screen"

    Identifier	"Dell XPS M1210 Screen"
    Device	"Dell XPS M1210 nVidia GeForce Go7400"
    Monitor	"Dell XPS M1210 1280x800 Seiko DFP"

    Option	"AddARGBGLXVisuals"	"True"

    DefaultDepth 24

    SubSection "Display"
        Depth		32
        Modes		"1280x800" "1024x768" "800x600" "640x480"
    EndSubsection

    SubSection "Display"
	Depth		24
        Modes		"1280x800" "1024x768" "800x600" "640x480"
    EndSubSection

    SubSection "Display"
	Depth		16
        Modes		"1280x800" "1024x768" "800x600" "640x480"
    EndSubSection

    SubSection "Display"
	Depth		8
        Modes		"1280x800" "1024x768" "800x600" "640x480"
    EndSubSection

EndSection

Section "ServerLayout"
    Identifier "Dell XPS M1210"
    Screen "Dell XPS M1210 Screen"
    InputDevice "Dell XPS M1210 Keyboard" "CoreKeyboard"
    InputDevice "Dell XPS M1210 Synaptics Touchpad" "CorePointer"
EndSection

Section	"Extensions"
	Option "Composite" "Enable"
EndSection

Another user reports:

"If you don't have any problem using binary drivers, one alternative to this is to use the nvidia-drivers. 1.0.9746 works just fine with the GeForce 7400 and kernel 2.6.19+. I haven't tried the framebuffer device itself, but I have been successful in getting the 1280x800 resolution working with acceleration as well.

The applicable xorg.conf portion:

Section "Device"
    Identifier     "nv"
    Driver         "nvidia"
    Option         "NoLogo" "true"
    Option         "NvAGP" "1"
    Option         "RenderAccel" "true"
    Option         "backingstore" "true"
EndSection

Section "Extensions"
  Option "Composite" "Enable"
EndSection
"

I'm not sure about the use of NvAGP, as the Go 7400 is a PCI-E card.

[edit] Framebuffer

One gotcha is that the Video BIOS does not support the LCD's native 1280x800 resolution. Here's the output of vbetest:

onoclea chris # vbetest
VBE Version 3.0
NVIDIA
[256] 640x400 (256 color palette)
[257] 640x480 (256 color palette)
[259] 800x600 (256 color palette)
[261] 1024x768 (256 color palette)
[270] 320x200 (5:6:5)
[271] 320x200 (8:8:8)
[273] 640x480 (5:6:5)
[274] 640x480 (8:8:8)
[276] 800x600 (5:6:5)
[277] 800x600 (8:8:8)
[279] 1024x768 (5:6:5)
[280] 1024x768 (8:8:8)
[304] 320x200 (256 color palette)
[305] 320x400 (256 color palette)
[306] 320x400 (5:6:5)
[307] 320x400 (8:8:8)
[308] 320x240 (256 color palette)
[309] 320x240 (5:6:5)
[310] 320x240 (8:8:8)
[317] 640x400 (5:6:5)
[318] 640x400 (8:8:8)
Type a mode number, or 'q' to quit - 

Given the choices, I'm using the 1024x768 resolution.

Since the nvidiafb framebuffer is purported to conflict with the nvidia binary drivers, I've used the vesafb instead. Here's the relevant line of my grub.conf, showing all of the gensplash stuff:

title  Gentoo 2.6.20 Gensplash
root (hd0,9)
kernel (hd0,7)/boot/vmlinuz root=/dev/sda10 splash=silent,fadein,theme:gentoo vga=792 quiet CONSOLE=/dev/tty1
initrd (hd0,7)/boot/initrd-gentoo

[edit] Sound

Sound is provided by the "Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 01)" (see lspci above).

[edit] Sound Output

This is configured in the kernel as follows:

Linux Kernel Configuration: Device Drivers->Sound->Advanced Linux Sound Architecture->PCI Devices
< > Analog Devices AD1889
< > Avance Logic ALS300/ALS300+
< > Avance Logic ALS4000
< > ALi M5451 PCI Audio Controller
< > ATI IXP AC97 Controller
< > ATI IXP Modem
< > Aureal Advantage
< > Aureal Vortex
< > Aureal Vortex 2
< > Aztech AZF3328 / PCI168 (EXPERIMENTAL)
< > Bt87x Audio Capture
< > SB Audigy LS / Live 24bit
< > C-Media 8738, 8338
< > Cirrus Logic (Sound Fusion) CS4281
< > Cirrus Logic (Sound Fusion) CS4280/CS461x/CS462x/CS463x
< > CS5535/CS5536 Audio
< > (Echoaudio) Darla20
< > (Echoaudio) Gina20
< > (Echoaudio) Layla20
< > (Echoaudio) Darla24
< > (Echoaudio) Gina24
< > (Echoaudio) Layla24
< > (Echoaudio) Mona
< > (Echoaudio) Mia
< > (Echoaudio) 3G cards
< > (Echoaudio) Indigo
< > (Echoaudio) Indigo IO
< > (Echoaudio) Indigo DJ
< > Emu10k1 (SB Live!, Audigy, E-mu APS)
< > Emu10k1X (Dell OEM Version)
< > (Creative) Ensoniq AudioPCI 1370
< > (Creative) Ensoniq AudioPCI 1371/1373
< > ESS ES1938/1946/1969 (Solo-1)
< > ESS ES1968/1978 (Maestro-1/2/2E)
< > ForteMedia FM801
<M> Intel HD Audio
< > RME Hammerfall DSP Audio
< > RME Hammerfall DSP MADI
< > ICEnsemble ICE1712 (Envy24)
< > ICE/VT1724/1720 (Envy24HT/PT)
< > Intel/SiS/nVidia/AMD/ALi AC97 Controller
< > Intel/SiS/nVidia/AMD MC97 Modem
< > Korg 1212 IO
< > ESS Allegro/Maestro3
< > Digigram miXart
< > NeoMagic NM256AV/ZX
< > Digigram PCXHR
< > Conexant Riptide
< > RME Digi32, 32/8, 32 PRO
< > RME Digi96, 96/8, 96/8 PRO
< > RME Digi9652 (Hammerfall)
< > S3 SonicVibes
< > Trident 4D-Wave DX/NX; SiS 7018
< > VIA 82C686A/B, 8233/8235 AC97 Controller
< > VIA 82C686A/B, 8233 based Modems
< > Digigram VX222
< > Yamaha YMF724/740/744/754

As you can see, I've built this as a module, which is named snd-hda-intel. When configuring ALSA, the alias line in /etc/modules.d/alsa should thus read

alias snd-card-0 snd-hda-intel

[edit] Sound Input (Builtin Microphone)

The builtin microphone requires the snd-usb-audio module:

Linux Kernel Configuration: Device Drivers->Sound->Advanced Linux Sound Architecture->USB Devices
<M> USB Audio/MIDI driver
< > Tascam US-122, US-224 and US-428 USB driver

The /etc/modules.d/alsa file is then edited to make snd-hda-intel card 0 and snd-usb-audio card 1:

alias snd-card-0 snd-hda-intel
alias snd-card-1 snd-usb-audio
options snd-card-0 index=0
options snd-hda-intel index=0
options snd-card-1 index=1
options snd_usb_audio index=1

and to make sure you are set up to have two cards:

options snd cards_limit=2

I tested the plug for external microphone on the front of the M1210 and it does not seem to work. Apparently, I'm not the only person with this problem.

lorro: it works as described here. If you're not interested in the details, go for the kernel (not alsa) sources, find sound/pci/hda/patch_sigmatel.c, then search for ref922x_pin_configs[10], and replace the values in that array with the following:

    0x0221121E, 0x408103FF, 0x02A1123E, 0x90100310,
    0x408003F1, 0x0221122F, 0x03451340, 0x40C003F2,
    0x50A003F3, 0x405003F4

Credits & thanks goes to Eran Guendelman.

[edit] Builtin Optical Disk

The optical disk is SATA (see lspci above). When I endabled the kernel's IDE controllers, it operated so slowly that it was impossible to watch movies.

After a little Googling and a lot of experimentation, here's what I wound up with:

Linux Kernel Configuration: Device Drivers->SATA/ATAPI/MFM/RLL support
< > ATA/ATAPI/MFM/RLL support
< >   Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support
---     Please see Documentation/ide.txt for help/info on IDE drives
[ ]     Support for SATA (deprecated; conflicts with libata SATA driver)
[ ]     Use old disk-only driver on primary interface
< >     Include IDE/ATA-2 DISK support
[ ]     Use multi-mode by default
< >     Include IDE/ATAPI CDROM support
< >     Include IDE/ATAPI TAPE support (EXPERIMENTAL)
< >     Include IDE/ATAPI FLOPPY support
< >     SCSI emulation support
[ ]     IDE Taskfile Access
---     IDE chipset support/bugfixes
< >     generic/default IDE chipset support
[ ]     CMD640 chipset bugfix/support
[ ]     PNP EIDE support
[ ]     PCI IDE chipset support
[ ]     Other IDE chipset support 

and

Linux Kernel Configuration: Device Drivers->Serial ATA (prod) and Parallel ATA (experimental) drivers
<*> ATA device support
< >   AHCI SATA support
< >   ServerWorks Frodo / Apple K2 SATA support
<*>   Intel PIIX/ICH SATA support
< >   Marvell SATA support (HIGHLY EXPERIMENTAL)
< >   NVIDIA SATA support
< >   Pacific Digital ADMA support
< >   Pacific Digital SATA QStor support
< >   Promise SATA TX2/TX4 support
< >   Promise SATA SX4 support
< >   Silicon Image SATA support
< >   Silicon Image 3124/3132 SATA support
< >   SiS 964/180 SATA support
< >   ULi Electronics SATA support
< >   VIA SATA support
< >   VITESSE VSC-7174 / INTEL 31244 SATA support
< >   ALi PATA support (Experimental)
< >   AMD/NVidia PATA support (Experimental)
< >   ARTOP 6210/6260 PATA support (Experimental)
< >   ATI PATA support (Experimental)
< >   CMD64x PATA support (Very Experimental)
< >   CS5510/5520 PATA support
< >   CS5530 PATA support (Experimental)
< >   CS5535 PATA support (Experimental)
< >   Cypress CY82C693 PATA support (Very Experimental)
< >   EFAR SLC90E66 support
< >   Generic ATA support
< >   HPT 366/368 PATA support (Very Experimental)
< >   HPT 370/370A/371/372/374/302 PATA support (Very Experimental)
< >   HPT 372N/302N PATA support (Very Experimental)
< >   HPT 343/363 PATA support (Experimental)
< >   IT821x PATA support (Experimental)
< >   JMicron PATA  support
< >   Legacy ISA PATA support (Experimental)
< >   Compaq Triflex PATA support
< >   Marvell PATA support via legacy mode
< >   Intel PATA MPIIX support
< >   Intel PATA old PIIX support (Experimental)
< >   NETCELL Revolution RAID support
< >   Nat Semi NS87410 PATA support (Experimental)
< >   OPTI621/6215 PATA support (Very Experimental)
< >   OPTI FireStar PATA support (Very Experimental)
< >   Older Promise PATA controller support (Very Experimental)
< >   QDI VLB PATA support
< >   RADISYS 82600 PATA support (Very experimental)
< >   PC Tech RZ1000 PATA support
< >   SC1200 PATA support (Raving Lunatic)
< >   SERVERWORKS OSB4/CSB5/CSB6/HT1000 PATA support (Experimental)
< >   Promise PATA 2027x support
< >   CMD / Silicon Image 680 PATA support
< >   SiS PATA support (Experimental)
< >   VIA PATA support
< >   Winbond SL82C105 PATA support
< >   Winbond W83759A VLB PATA support (Experimental)

The DVD reader can now be used to watch movies comfortably. Others have complained that this no-IDE, SATA only solution cripples their DVD and CD writer. I can use the DVD writer, although the speed is ~8.7x. I'm not sure if this is the writer or the medium.

I can't write CDs at all.

According to this LWN article, these issues are being fixed currently in the 2.6.20 kernel, so I'm just sitting tight.

Note that this results in the DVD device being /dev/sr0. Udev creates proper /dev/cdrom, /dev/cdrw, /dev/dvd and /dev/dvdrw symlinks, so this doesn't really cause any problems.

[edit] Wifi and Other Wireless Connectivity

[edit] WiFi

Dell currently (07 Mar 07) offers three different wireless carrd choices: the Dell 1390b/g, Intel 3945a/b/g and a Dell Wireless N card. I chose the Intel 3945.

[edit] Intel 3945A/B/G

Since I was using the Sabayon kernel, the drivers were built in and compiled with no problem. Note that you need the ipw3945d "regulatory demon" to start after the modules is loaded. In theory, udev is supposed to take care of that for you. The most recent version of ipw3945d, ipw3945d-1.7.22-r10 from the sabayon overlay, actually does work. Earlier verions didn't and I was forced to resort to an initscript.

However, this caused another problem namely that netmount started too early and then crapped out because the network was not ready. The solution, from this gentoo-user post is to edit /etc/conf.d/rc so that the Wifi is not started by udev, e.g., RC_PLUG_SERVICES="!net.wlan"

Another author, who uses the gentoo kernel reminds us to "Please emerge ipw3945 each time you build a new kernel. Module ipw3945 takes care of the interface eth1. ipw3945 does not support arp spoofing."

[edit] Other WiFi Cards

Hopefully, other users will be able to fill in their experiences with the Dell cards.

[edit] Dell 1389bg (Broadcom 4311)

See the Broadcom 43xx article.

[edit] Bluetooth

Bluetooth is provided by a Broadcom BCM2045 device on the USB bus (see lusb -vv).This works using the HCI Bluetooth USB driver in the kernel.

[edit] EVDO

I got the XPS M1210 configured with the internal Sprint PCS EVDO card. I activated the card while booted into Windows, so I can't really offer any advice on doing so in Linux.

I have the Dell Wireless 5700 card, which I believe to be a rebrand of the Novatel X620 EVDO card.

I'm trying to use the airprime driver, based on advice in this Ubuntu user's blog entry. I had to insert an extra line in /usr/src/linux/drivers/usb/serial/airprime.c to reflect the Dell's vendor (0x413c) and device (0x8128) codes.

static struct usb_device_id id_table [] = {

       { USB_DEVICE(0x0c88, 0x17da) }, /* Kyocera Wireless KPC650/Passport */
        { USB_DEVICE(0x413c, 0x8115) }, /* Dell Wireless HSDPA 5500 */
       { USB_DEVICE(0x413c, 0x8128) }, /* THIS LINE ADDED FOR Dell Wireless HSDPA 5700 */
};

The driver depends on the usbserial and ppp_async modules, so you'll need to configure them as modules or build them in when you compile your kernel.

You'll need to insert the modules: #modprobe ppp_async

#modprobe airprime

I then added the following to my /etc/conf.d/net file:

config_ppp0=( "ppp" )

link_ppp0="/dev/ttyUSB0"
username_ppp0="{INSERT YOUR 10 DIGIT SPRINT NUMBER}@sprintpcs.com"
ppd_ppp0=(
       "230400"
       "modem crtscts"
       "debug"
       "defaultroute"
       "noauth"
       "nodetach"
       "usepeerdns"
)
phone_number_ppp0=( "#777" )
chat_ppp0=(
       'ABORT' 'BUSY'
       'ABORT' 'ERROR'
       'ABORT' 'NO ANSWER'
       'ABORT' 'NO CARRIER'
       'ABORT' 'NO DIALTONE'
       'ABORT' 'Invalid Login'
       'ABORT' 'Login incorrect'
       'TIMEOUT' '5'
       '' 'ATZ'
       'OK' 'AT&F0'
       'OK' 'ATE0v1'
       '' 'AT+CSQ'
       'OK' 'ATDT\T'
       'TIMEOUT' '5'
       'CONNECT' ''
       'TIMEOUT' '5'
)

I had to set up the routing gatweay manually, perhaps as a result of the bug referenced in article cited above. I just issue a

#route add default gw {INSERT LOCAL IP ADDRESS} It was annoying to do manually, so eventually I got around to scriptingn this using baselayout's postup( ) functionality. Elegant it ain't, but I'm just happy it basically works:

# postup for EVDO

postup( ) {

if [ ${IFACE} == "ppp0" ]; then
        DGW=`route -n | awk '/ppp0/ { print $1 }'`
        route add default gw $DGW
fi

return 0
}

[edit] WiFi/Bluetooth Power Switch/WiFi Detector

This is a switch at the left hand side of the machine that allows you to shut off WiFi and/or Bluetooth (this is configurable in BIOS). In addition, if the switch is pushed all the way forward while the machine is off it will indicate the presence of a WiFi network via LED. This all seems to work as designed.

[edit] Wired Connectivity

[edit] Wired Ethernet

This works out of the box with the Broadcom 4400 driver (B44 and B44_PCI).

[edit] Modem

The modem is supported by the hsfmodem. See this HowTo.

[edit] IEEE 1394 (Firewire)

Not tested

[edit] TV Out

Not tested

[edit] VGA Out

Not testted

[edit] Keyboard

[edit] Multimedia Keys

The M1210 has special purpose keys along the front designed to control media playback. These are, left to right, mute, volume up, volume down, play/pause, rewind, fast-forward and stop.

The keycodes correspond exactly to those of the Inspiron 9300. I was able to follow the excellent Inspiron 9300 guide here on the wiki, including cutting-and-pasting the changes to the /etc/X11/xkb/symbols/inet file.

[edit] Other Special Purpose Keys

The M1210 has a number of other special purpose keys which are activated by simultaneously pressing the [Fn] key and the affected key. Some of these work natively under Linux and others do not.

The following table shows keys recognized by the kernel (indicated by a name under "Keycode") and those not recognized by the kernel (indicated by a hexdecimal keycode). Background information on keycodes under Linux and X both is available here .

[Fn]+ Function Keycode Works
[Esc] Standby NoSymbol (223) No
[F1] Hibernate e00a No
[F3] Battery e007 No
[F4] Num Lk Num_Lock Yes
[F5] Scroll Lk Scroll_Lock Yes (in VT)
[F8] CRT/LCD n00b No
[F11] Print Scrn SysRq  ?  ?
[F12] Pause Break Pause  ?
[Up Arrow] Brightness + e006 Yes
[Down Arrow] Brightness - e005 Yes

There are two additional special buttons flanking the power button above the keyboard. One is the "MediaDirect" button (to the left of the power button) and the other a "Camera" button (to the right). Their keycodes are:

Key Function Keycode Works
MediaDirect MediaDirect e0012 No
Camera Webcam Snapshot e0015 No

[edit] Other Gadgets

[edit] Webcam

(optional) Built in Logitech usb webcam works with linux-uvc as of version 0.1.0_pre157. Read how to use the webcam.

[edit] Card Reader

This works for SD cards, doesn't seem to work for MMC cards. This seems to be a problem in Windows as well.

[edit] Power Management

I really only untether my M1210 from the AC adapter for the duration of my 38-minute commute, so I haven't pursued power management with the fanaticism of a true road warrior.

[edit] Suspend 2

Suspend2 doesn't work with the nvidia closed-source driver and the open-source driver doesn't do accelerated 3D. Eye-candy won over practicality, and I stopped even trying.

This can be fixed with the Dumbest. Workaround. Ever. If one starts us glxgears before one suspends, it suspends to disk like a champ.

The remaining problem I have is that the ipw3945 module doesn't restore properly. However, the workaround, from this bug report is


OnSuspend 20 modprobe -r ipw3945
OnResume 20 modprobe ipw3945

[edit] Internals

[edit] i8k

This is a driver which was originally written for the Inspiron 8000, thus its name. It enables Dell-specific reporting of temperature, AC, fan status and the like.

I compiled it as a module and then inserted the following in /etc/modules.autoload.d/kernel-2.6:

i8k force=1

This forces loading of the module, even though it claims the M1210 is not a supported device. The contents of /proc/i8k are as follows:

1.0 A05 5GNFDC1 49 -22 0 27660 0 -1 -22


[edit] Temperature Sensor

Each of the two cores of the Core 2 Duo processor has a temperature sensor which can be activated by selecting hwmon and coretemp in the kernel configuration.

The data is maintained in the /sys/devices/platform/coretemp.0 and /sys/devices/platform/coretemp.1 directories. The temperature itself is contained in the temp1_input file.

More detail in this patch from the author.

[edit] Dell XPS M1210 Links

[edit] Binary host for Dell XPS M1210 (32bit)

Even though this binary host contains fairly recent packages (current as of the last week of February), it won't be maintained any more.

[edit] Linux on the Dell XPS M1210