Installing Debian 5.0 (Lenny) on a ThinkPad X200
Contents
Installation
This laptop is free from legacy devices such as CD/DVD so installation is a bit trickier than the average laptop. I first attempted to install using the Goodbye Microsoft installer from Vista. To get the menu visible in the Vista version I used I had to type this into a priviliged cmd.exe:
bcdedit.exe /timeout 5
A couple of reboots later I gave up on this method as the menu item refused to boot with the reason that it couldn't find the "\g2lbr.mbr" file, or that it might be corrupt. Before giving up I tried changing this path. This can be done by issuing:
bcdedit.exe
This will print all the boot alternatives. You'll see a long id-hash associated with the Debian Installer. Grab that and go ahead with the next:
bcdedit.exe /set {the-long-id-hash} path WHAT-YOU-BELIVE-IS-CORRECT
I tried changing this to "c:\g2lbr.mbr" as that's where the file is located, but without any luck.
Next up.. I grabbed a legacy-device, USB DVD drive ;). Netinst went fine and after booting up the system I installed the 2.6.26 package from a USB stick and ethernet was up and running. I'm still fighting with X and wifi, so I'll update this page later.
Ethernet
Ethernet works after upgrading to version 2.6.26 of the Linux kernel.
[ 1.533055] eth0: (PCI Express:2.5GB/s:Width x1) 00:1f:16:06:ee:ec [ 1.533055] eth0: Intel(R) PRO/1000 Network Connection [ 1.533055] eth0: MAC: 5, PHY: 8, PBA No: 1008ff-0ff
Wireless
Still haven't got wifi to work. It should be possible to use the 2.6.26 version of the kernel together with 'iwlagn' wifi driver from:
git-clone git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/compat-wireless-2.6-old.git
The firmware can be found here:
http://intellinuxwireless.org/iwlwifi/downloads/iwlwifi-5000-ucode-5.4.A.11.tar.gz
And should be put in '/lib/firmware/'
I tried building this but it turned out to be a nasty soup of missing symbols so I continued to look for a faster fix. A while later I found that the Debian Kernel Team kindly provided an apt source with snapshots of the latest kernel, bingo!
deb http://kernel-archive.buildserver.net/debian-kernel trunk main
Unfortunatly this didn't do the trick either. I can now see the device in dmesg, and even in ifconfig, and even browse wireless networks with iwlist, but it's not usable yet, no idea why.. maybe my wpa_supplicant-fu is too weak. There is also an issue with the driver not exposing the device type correctly to the OS so programs such as NetworkManager identifies the device as a regular wired ethernet device.
Bug filed against Debian Hal package, found here.
The problem had been fixed after Hal 0.5.11 was released, so it was just a matter of backporting those changes and the wifi card was finally detected correctly by network manager. Until a new package hits Sid you can use my packages on your own risk if you so chose.
Video Card
The Intel 4500MHD needs a newer Xorg driver (v2:2.4.2-1) than available in Sid so I had to install from experimental:
$ cat /etc/apt/preferences Package: * Pin: release a=experimental Pin-Priority: 101 $ cat /etc/apt/sources.list | grep experimental deb http://ftp.port80.se/debian/ experimental main deb-src http://ftp.port80.se/debian/ experimental main $ sudo aptitude update $ sudo aptitude -t experimental install xserver-xorg-video-intel
With this in place, it's only a matter of updating Xorg to have something like this:
Section "Device" Identifier "Configured Video Device" Driver "intel" EndSection
And something like this:
Section "Screen" Identifier "Default Screen" Monitor "Configured Monitor" Defaultdepth 24 SubSection "Display" Modes "1280x800" EndSubSection EndSection
Tada... accelerated X.. although there seems to be some issue with the resolution. The right side of the desktop is a tiny bit outside of the LCD display. Haven't investigated much.
Trackpoint
The integrated orgasmic educator works out of the box.
[ 8.516313] IBM TrackPoint firmware: 0x0e, buttons: 3/3 [ 8.536456] input: TPPS/2 IBM TrackPoint as /class/input/input9
Web Camera
The built-in webcam works out of the box.
[ 8.004081] uvcvideo: Found UVC 1.00 device <unnamed> (17ef:480c) [ 8.004361] input: UVC Camera (17ef:480c) as /class/input/input8 [ 8.010590] usbcore: registered new interface driver uvcvideo [ 8.010594] USB Video Class driver (v0.1.0)
ACPI Power Management
Haven't tried any PM yet but here's what the kernel has to say. The error might be caused by me not having any docking station, just a guess though.
[ 7.610770] ACPI: \_SB_.PCI0.SATA.PRT1: found ejectable bay [ 7.610770] ACPI: \_SB_.PCI0.SATA.PRT1: Adding notify handler [ 7.610770] ACPI: Error installing bay notify handler [ 7.621495] thinkpad_acpi: ThinkPad ACPI Extras v0.20 [ 7.621495] thinkpad_acpi: http://ibm-acpi.sf.net/ [ 7.621495] thinkpad_acpi: ThinkPad BIOS 6DET28WW (1.05 ), EC 7XHT21WW-1.03 [ 7.621495] thinkpad_acpi: Lenovo ThinkPad X200, model 74585MG [ 7.625495] thinkpad_acpi: radio switch found; radios are enabled [ 7.625495] thinkpad_acpi: This ThinkPad has standard ACPI backlight brightness control, supported by the ACPI video driver [ 7.625495] thinkpad_acpi: Disabling thinkpad-acpi brightness events by default... [ 7.629495] Registered led device: tpacpi::thinklight [ 7.629495] Registered led device: tpacpi::power [ 7.629495] Registered led device: tpacpi:orange:batt [ 7.629495] Registered led device: tpacpi:green:batt [ 7.629495] Registered led device: tpacpi::dock_active [ 7.629495] Registered led device: tpacpi::bay_active [ 7.629495] Registered led device: tpacpi::dock_batt [ 7.629495] Registered led device: tpacpi::unknown_led [ 7.629495] Registered led device: tpacpi::standby
Suspend To RAM
After upgrading Xorg to experimental and enabling the intel driver (v2:2.4.2-1) suspend to ram started to work (should have tried from console to start with *doh*). The only problem is now that X kind of hangs, still closable with ctrl+alt+backspace which wasn't the case with the intel driver from Sid. After a restart of X everything is back to normal, wifi still works etc. Humm... that problem with X seems unpredictable, last time I suspended it worked perfectly.
Suspend To Disk
Works out of the box.