anmar.eu.org
Home  Projects  Contact 
Howto install Fedora 7 on a Dell XPS M1210
Home >docs >Howto install Fedora 7 on a Dell XPS M1210

Related resources:
HAL Quirk Site - Help solving suspend issues.
Using The Dell Latitude D620 3G Radio Under Linux - Novatel Wireless EU740 (Dell Wireless 5505) under linux

 
Howto install Fedora 7 on a Dell XPS M1210

June 17th 2007 (last updated Aug 14th 2007)

Installing Fedora 7 using x86_64 LiveCD goes without issue and most of the hardware just works after installation without additional software nor configuration steps (including wireless adapter).

There are only a few steps needed to make the other pieces work (suspend, webcam, multimedia keys, ...), I'll describe here what I've done to make them work. I'll ignore the installation step as there is nothing special to do there, just go through anaconda and firstboot as usual and you'll get a working Fedora 7 installation in your Dell XPS M1210 laptop.

Hardware
  • Intel® Core 2 Duo T7200 (2.00GHz, 4MB L2 Cache, 667 MHz FSB)
  • 2GB Dual Shared Channel DDR2 SDRAM at 667MHz (2 Dimms)
  • Integrated Intel® Graphics Media Accelerator 950
  • 120GB SATA Hard Drive (5400RPM) (Hitachi HTS54161)
  • 12.1 inch WXGA (1280 X 800) Display with TrueLife and Integrated Webcam
  • Intel PRO/Wireless 3945a/g
  • Dell Wireless 355 Bluetooth Internal
  • Dell Wireless 5505 Mobile Broadband (3G HSDPA) Mini-Card (Novatel Wireless EU740)
  • 8x CD/DVD burner (DVD+/-RW)
  • Touchpad, USB, IEEE-1394, ExpressCard slot, Modem, 10/100 Network adapter, RS-232, TV-out, VGA-out, ...
lspci output
00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (rev 03)
00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (rev 03)
00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (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 Controller #1 (rev 01)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 (rev 01)
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 (rev 01)
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #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) SATA IDE Controller (rev 01)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 01)
0c:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG Network Connection (rev 02)
Additional steps

Touchpad (and both sliders), display resolution, network, wireless, bluetooth, microphone, DVD writer, USB, KVM, MMC/SD card reader

They just work

Sound

Sound worked properly after firstboot, but for some reason it stopped working after some reboots (without any software updates). The problem was that it started detecting the usb microphone before the sound card what changed the index at what it was.

To fix it I just had to run system-config-soundcard and re-adjust configuration there.

Suspend

Post 2.6.22.1-41.fc7 instructions (Aug 14th 2007):

Since kernel 2.6.22.1-41.fc7 vbestate-restore quirk is needed to get suspend working. To get it working you have to apply a hal-info patch for xps m1210 quirks or use pm-suspend --quirk-vbestate-restore for suspending until a newer hal-info gets into fedora7 updates.

On the wright side, Intel wireless driver included in this kernel now works properly on suspend and resume (in fact suspend stops working if you blacklist it). So now blacklist looks like:

# echo SUSPEND_MODULES=\"kvm kvm_intel\" >/etc/pm/config.d/unload_modules
# chmod +x /etc/pm/config.d/unload_modules

Pre 2.6.22.1-41.fc7 instructions:

To make suspend work reliably you need the first set of updates for Fedora 7 (up until kernel 2.6.21-1.3228.fc7) and putting a few modules on the suspend blacklist:

# echo SUSPEND_MODULES=\"iwl3945 mac80211 kvm kvm_intel\" >/etc/pm/config.d/unload_modules
# chmod +x /etc/pm/config.d/unload_modules

Multimedia keys

To make the front panel keys (volume control, play, ...) work edit ~/.xmodmaprc and paste:

keycode 160 = XF86AudioMute
keycode 174 = XF86AudioLowerVolume
keycode 176 = XF86AudioRaiseVolume
keycode 162 = XF86AudioPlay
keycode 164 = XF86AudioStop
keycode 144 = XF86AudioPrev
keycode 153 = XF86AudioNext
keycode 168 = XF86AudioMedia

Then logout and login and finally use gnome-keybinding-properties to assign them to the appropriate actions in the sound section.

Fn+?? keys

They'll hopefully work once fedora updates hal-info package. In the mean time you can do it yourself based on this patch :)

Integrated Webcam

It's logitec webcam that is a USB Video Class device, so linux-uvc kernel module will do the trick. You can compile it yourself or use a third-party repo that contains it.

For example you can use drpixel's one:

# rpm -ivh http://download.tuxfamily.org/rpm/drpixel/fedora/drpixel-release-1-2.noarch.rpm
# yum --enablerepo=drpixel install kmod-uvc

Once you reboot or modprobe uvcvideo, you'll be able to use it. It even flips the image when you rotate the camera.

Modem

Not tested

IEEE 1394

Not tested (I don't have any FireWire device)

Aug 14th 2007: I still don't have any hardware to test with, but I have enabled firewire on bios, and HAL sees it and reports device /dev/fw0 exists, so looks promising.

Card reader

Aug 14th 2007: Works out of the box. At least with kernel 2.6.22.1-41.fc7 (first time I've tried it). Tested only with mini-SD (with adapter) cards.

VGA-out and TV-out

Not tested (but will do soon).

HSDPA/UMTS/EDGE/GPRS modem

The Dell Wireless 5505 Mobile Broadband (3G HSDPA) Mini-Card is just a Novatel Wireless EU740 which is supported by mainline kernel. The card is not distributed in Spain, but got mine from ebay.co.uk :)

Edit /etc/sysconfig/modules/novatel3g.modules

#!/bin/sh
modprobe usbserial vendor=0x413c product=0x8116 >/dev/null 2>&1

# chmod +x /etc/sysconfig/modules/novatel3g.modules

To find the correct values for vendor and product look in /proc/bus/usb/devices for the Novatel Wireless entry (you should have a P: Vendor=413c ProdID=8116 Rev= 0.00, just take the values and replace them in novatel3g.modules file).

Once you have the module loaded (on next boot, or if novatel3g.modules is executed manually by root) you should have /dev/ttyUSB0 and /dev/ttyUSB1. Now you can use you favorite ppp connection manager (system-config-network, gnome-ppp, kppp, wvdial, ...) on /dev/ttyUSB0. The actual settings will depend on your mobile provider.

My wvdial configuration looks like (if you configure wvdial manually you won't be able to dial using NetworkManager applet, so it' better to configure it through system-config-network and then adjust the generated wvdial.conf file):

[ModemNovatel]
Modem = /dev/ttyUSB0
Baud = 460800
SetVolume = 0
Dial Command = ATDT
Init1 = ATZ
ISDN = off
Modem Type = USB Modem

[ModemYoigo]
Phone = *99***1#
Username = ''
Password = ''
Stupid Mode = on
Idle Seconds = 0
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+COPS=0,0,"Yoigo",2
Init4 = AT+CGDCONT=1,"IP","internet"
Inherits = ModemNovatel

[ModemYoigoPIN]
Init1 = AT+CPIN=????
Inherits = ModemNovatel

[Dialer DefaultProviderPIN]
Inherits = ModemYoigoPIN

[Dialer DefaultProvider]
Inherits = ModemYoigo

And my novatel3g.modules no looks like:

#!/bin/sh
modprobe usbserial vendor=0x413c product=0x8116 >/dev/null 2>&1
wvdial DefaultProviderPIN >/dev/null 2>&1

so it registers with my provider once it boots (note that you need to replace ???? with your PIN).

But this way when it cames back from suspend, it won't register again so now we edit /etc/pm/sleep.d/98novatel3g

#!/bin/bash

. /usr/lib/pm-utils/functions

case "$1" in
  thaw|resume)
    # Wait until serial device is up again
    # then dial the PIN number
    (sleep 15 && wvdial DefaultProviderPIN >/dev/null 2>&1)&
  ;;
esac

exit $?

# chmod +x /etc/pm/sleep.d/98novatel3g


Copyright © 2007 Angel Marin Some rights reserved.
This work is licensed under a Creative Commons Attribution 3.0 License.
Last Updated 08/14/07