Alienware M17

This is an article about running Gentoo Linux x86_64 (~amd64) on an Alienware M17 laptop.

Hardware
Printout of lspci:

00:00.0 Host bridge: Intel Corporation Mobile 4 Series Chipset Memory Controller Hub (rev 07) 00:01.0 PCI bridge: Intel Corporation Mobile 4 Series Chipset PCI Express Graphics Port (rev 07) 00:1a.0 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 (rev 03) 00:1a.1 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #5 (rev 03) 00:1a.2 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #6 (rev 03) 00:1a.7 USB Controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #2 (rev 03) 00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 03) 00:1c.0 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 1 (rev 03) 00:1c.1 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 2 (rev 03) 00:1c.2 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 3 (rev 03) 00:1c.3 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 4 (rev 03) 00:1c.4 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 5 (rev 03) 00:1d.0 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 (rev 03) 00:1d.1 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 (rev 03) 00:1d.2 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 (rev 03) 00:1d.7 USB Controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 (rev 03) 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 93) 00:1f.0 ISA bridge: Intel Corporation ICH9M-E LPC Interface Controller (rev 03) 00:1f.2 RAID bus controller: Intel Corporation Mobile 82801 SATA RAID Controller (rev 03) 00:1f.3 SMBus: Intel Corporation 82801I (ICH9 Family) SMBus Controller (rev 03) 01:00.0 PCI bridge: PLX Technology, Inc. Unknown device 8624 (rev ab) 02:00.0 PCI bridge: PLX Technology, Inc. Unknown device 8624 (rev ab) 02:04.0 PCI bridge: PLX Technology, Inc. Unknown device 8624 (rev ab) 02:05.0 PCI bridge: PLX Technology, Inc. Unknown device 8624 (rev ab) 03:00.0 VGA compatible controller: ATI Technologies Inc Unknown device 9509 06:00.0 VGA compatible controller: ATI Technologies Inc Unknown device 9509 06:00.1 Audio device: ATI Technologies Inc Radeon HD 3870 Audio device 08:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8055 PCI-E Gigabit Ethernet Controller (rev 12) 09:00.0 Network controller: Intel Corporation Unknown device 4235 0c:00.0 Multimedia controller: Philips Semiconductors Unknown device 7160 (rev 03) 0d:00.0 SATA controller: JMicron Technologies, Inc. JMicron 20360/20363 AHCI Controller (rev 02) 0f:07.0 FireWire (IEEE 1394): Ricoh Co Ltd R5C832 IEEE 1394 Controller (rev 05) 0f:07.1 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 22) 0f:07.2 System peripheral: Ricoh Co Ltd R5C843 MMC Host Controller (rev 12) 0f:07.3 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter (rev 12)

Printout of lsusb:

Bus 002 Device 001: ID 1d6b:0002 Bus 008 Device 002: ID 1934:0702 (FINTEK, eHome Infrared Transceiver) Bus 008 Device 001: ID 1d6b:0001 Bus 007 Device 001: ID 1d6b:0001 Bus 006 Device 003: ID 046d:c526 Logitech, Inc. Bus 006 Device 002: ID 0a5c:2151 Broadcom Corp. (BCM2046 Bluetooth Device) Bus 006 Device 001: ID 1d6b:0001 Bus 001 Device 003: ID 0c45:62c0 Microdia (FLEXTRONICS, 2.0M Pixel Camera) Bus 001 Device 002: ID 090c:1000 Feiya Technology Corp. Memory Bar Bus 001 Device 001: ID 1d6b:0002 Bus 005 Device 001: ID 1d6b:0001 Bus 004 Device 002: ID 08ff:1600 AuthenTec, Inc. (Fingerprint Sensor) Bus 004 Device 001: ID 1d6b:0001 Bus 003 Device 001: ID 1d6b:0001

/etc/make.conf
CFLAGS="-march=nocona -O2 -pipe" CXXFLAGS="${CFLAGS}" CHOST="x86_64-pc-linux-gnu"

INPUT_DEVICES="evdev keyboard mouse synaptics" VIDEO_CARDS="fglrx vesa radeon"

/etc/X11/xorg.conf
Need to be finalized. Section "ServerLayout" Identifier    "Simple Layout" Screen      0 "Laptop Screen" 0 0 InputDevice   "USB Mouse" "CorePointer" InputDevice   "TouchPad" "AlwaysCore" InputDevice   "Keyboard" "CoreKeyboard" EndSection

Section "Files" FontPath    "/usr/share/fonts/misc/" FontPath    "/usr/share/fonts/100dpi/" FontPath    "/usr/share/fonts/75dpi/" EndSection

Section "Module" Load "glx" Load "dbe" Load "dri" Load "freetype" Load "synaptics" EndSection

Section "ServerFlags" Option	   "Xinerama" "off" EndSection

Section "InputDevice" Identifier "Keyboard" Driver     "evdev" Option	   "Device" "/dev/input/by-path/platform-i8042-serio-0-event-kbd" Option	   "XkbRules" "xorg" Option	   "XkbModel" "evdev" Option	   "XkbLayout" "fr" Option	   "XkbVariant" ",winkeys" Option	   "evBits" "+1" Option	   "keyBits" "~1-255 ~352-511" Option	   "Pass" "3" EndSection

Section "InputDevice" Identifier "USB Mouse" Driver     "evdev" Option	   "Protocol" "Auto-dev" Option	   "Device" "/dev/input/by-id/usb-Logitech_USB_Receiver-event-mouse" Option	   "SendCoreEvents" "true" Option	   "ZAxisMapping" "4 5 6 7" Option	   "Buttons" "5" Option	   "ChordMiddle" EndSection

Section "InputDevice" Identifier "TouchPad" Driver "synaptics" Option "Device" "/dev/input/mice"#/dev/input/by-path/platform-i8042-serio-1-event-mouse"	Option "Protocol" "auto-dev"	Option "SendCoreEvents" "true"	Option "SHMConfig" "on" #to enable synclient	Option "LeftEdge" "1700"	Option "RightEdge" "5200"	Option "TopEdge" "1700"	Option "BottomEdge" "4200"	Option "FingerLow" "25"	Option "FingerHigh" "30"	Option "MaxTapTime" "180"	Option "MaxTapMove" "220"	Option "VertScrollDelta" "100"	Option "CornerCoasting" "1"	Option "CoastingSpeed" "3"	Option "MinSpeed" "0.50"	Option "MaxSpeed" "0.80"	Option "AccelFactor" "0.0015"	Option "VertEdgeScroll" "true"	Option "HorizEdgeScroll" "true"	Option "TapButton1" "1" # Left button EndSection

Section "Monitor" Identifier "Laptop Monitor" Option	   "DPMS" "true" EndSection

Section "Device" Identifier "Laptop Device" Driver     "vesa"#"fglrx" BusID      "PCI:6:0:0" EndSection

Section "Screen" Identifier "Laptop Screen" Device    "Laptop Device" Monitor   "Laptop Monitor" DefaultDepth    24 SubSection "Display" Viewport  0 0 Depth 24 Modes "1920x1200" EndSubSection EndSection

Kernel Setup
All you need to enable in your kernel :

IMPORTANT: Compile wifi driver as kernel module ( instead of <*>). This is because the driver needs access to the file system (i.e. /lib/firmware) to load the firmware. If you compile the driver as built-in, it will not be able to load the (essential) firmware since the file systems are mounted *after* the kernel has been loaded. Don't forget to add "iwlagn" in your /etc/modules.autoload.d/kernel-2.6 file.

Firmware image for Intel Wireless 5300 network cards
Unmask and emerge package.

Dual Graphics ATI Mobility Radeon HD 3870 & CrossFireX analysis
See here.