IBM/Lenovo ThinkPad X41

A few notes on using Debian GNU/Linux (and Ubuntu).

Hardware

update-pciids && lspci:

00:00.0 Host bridge: Intel Corporation Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (rev 03)
00:02.0 VGA compatible controller: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller (rev 03)
00:02.1 Display controller: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller (rev 03)
00:1c.0 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (rev 03)
00:1d.0 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (rev 03)
00:1d.1 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (rev 03)
00:1d.2 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (rev 03)
00:1d.3 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (rev 03)
00:1d.7 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (rev 03)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev d3)
00:1e.2 Multimedia audio controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (rev 03)
00:1e.3 Modem: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem Controller (rev 03)
00:1f.0 ISA bridge: Intel Corporation 82801FBM (ICH6M) LPC Interface Bridge (rev 03)
00:1f.2 IDE interface: Intel Corporation 82801FBM (ICH6M) SATA Controller (rev 03)
00:1f.3 SMBus: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (rev 03)
02:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5751M Gigabit Ethernet PCI Express (rev 11)
04:00.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 8d)
04:00.1 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 13)
04:02.0 Ethernet controller: Atheros Communications, Inc. AR5212 802.11abg NIC (rev 01)

update-usbids && lsusb:

Bus 005 Device 001: ID 0000:0000
Bus 004 Device 003: ID 0a5c:201e Broadcom Corp.
Bus 004 Device 002: ID 0483:2016 SGS Thomson Microelectronics Fingerprint Reader
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000

Keyboard

In KDE: Keyboard model = IBM Thinkpad 560Z/600/600E/A22E, Intl.

In ~/.Xmodmap:

! from http://stefan.desire.ch/howto/x41debian/
keycode 77 = Num_Lock
keycode 233 = XF86Forward
keycode 234 = XF86Back

! from the Internet: use right control key as Windoze-Key
remove Control = Control_R
keycode 109 = Super_R

And in ~/.Xsession:

#!/bin/sh
xmodmap ~/.Xmodmap

For some unknow reason, kdm/KDE does not execute ~/.Xsession, therefore:

cd ~/.kde/Autostart && ln -s ~/.Xsession dot.Xsession

I use the Super_R key (a.k.a. Windoze key) amongst other things as follows (see KDE Keyboard Shortcuts):

Real men don’t click..

See also:

X11 (xorg)

In /etc/X11/xorg.conf:

# /etc/X11/xorg.conf (xorg X Window System server configuration file)
#
# handgestrickt & mundgeblasen

Section "Files"
	FontPath	"/usr/share/fonts/X11/misc"
	FontPath	"/usr/X11R6/lib/X11/fonts/misc"
	FontPath	"/usr/share/fonts/X11/cyrillic"
	FontPath	"/usr/X11R6/lib/X11/fonts/cyrillic"
	FontPath	"/usr/share/fonts/X11/100dpi/:unscaled"
	FontPath	"/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
	FontPath	"/usr/share/fonts/X11/75dpi/:unscaled"
	FontPath	"/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
	FontPath	"/usr/share/fonts/X11/Type1"
	FontPath	"/usr/X11R6/lib/X11/fonts/Type1"
	FontPath	"/usr/share/fonts/X11/100dpi"
	FontPath	"/usr/X11R6/lib/X11/fonts/100dpi"
	FontPath	"/usr/share/fonts/X11/75dpi"
	FontPath	"/usr/X11R6/lib/X11/fonts/75dpi"
	# path to defoma fonts
	FontPath	"/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
EndSection

Section "Module"
        Load    "bitmap"
        Load    "dbe"
        Load    "ddc"
        Load    "dri"
        Load    "extmod"
        Load    "freetype"
        Load    "glx"
        Load    "int10"
        Load    "record"
        Load    "type1"
        Load    "vbe"
	Load	"i2c"
EndSection

Section "InputDevice"
	Identifier	"klavier"
	Driver		"kbd"
	Option		"CoreKeyboard"
	Option		"XkbRules"	"xorg"
	Option		"XkbModel"	"pc105"
	Option		"XkbLayout"	"ch"
	Option		"XkbVariant"	"de"
EndSection

Section "InputDevice"
	Identifier	"nippel"
	Driver		"mouse"
	Option		"CorePointer"
	Option		"Device"		"/dev/input/mice"
	#Option		"Protocol"		"ImPS/2"
	#Option		"Emulate3Buttons"	"true"
	Option		"Protocol"		"ExplorerPS/2"
	Option		"Emulate3Buttons"	"on"
	Option		"Emulate3TimeOut"	"50"
	Option		"EmulateWheel"		"on"
	Option		"EmulateWheelTimeOut"	"200"
	Option		"EmulateWheelButton"	"2"
	Option		"YAxisMapping"		"4 5"
	Option		"XAxisMapping"		"6 7"
	Option		"ZAxisMapping"		"4 5"
EndSection

Section "Device"
        Identifier      "grafiktschipp"
        Driver          "i810"
        BusID           "PCI:0:2:0"
        VideoRam        131072
EndSection

Section "Monitor"
	Identifier	"bildschirm"
	Option		"DPMS"
        HorizSync       28-49
        VertRefresh     43-72
	DisplaySize	245 184
EndSection

Section "Screen"
	Identifier	"leinwand"
	Device		"grafiktschipp"
	Monitor		"bildschirm"
	DefaultDepth	24
	SubSection "Display"
		Depth		1
		Modes		"1024x768" "800x600" "648x480"
	EndSubSection
	SubSection "Display"
		Depth		4
		Modes		"1024x768" "800x600" "648x480"
	EndSubSection
	SubSection "Display"
		Depth		8
		Modes		"1024x768" "800x600" "648x480"
	EndSubSection
	SubSection "Display"
		Depth		15
		Modes		"1024x768" "800x600" "648x480"
	EndSubSection
	SubSection "Display"
		Depth		16
		Modes		"1024x768" "800x600" "648x480"
	EndSubSection
	SubSection "Display"
		Depth		24
		Modes		"1024x768" "800x600" "648x480"
	EndSubSection
EndSection

Section "ServerLayout"
	Identifier	"layout"
	Screen		"leinwand"
	InputDevice	"klavier"
	InputDevice	"nippel"
EndSection

Section "DRI"
	Mode	0666
EndSection

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

# eof

See also:

3d Acceleration

If you want 3d acceleration working well (e.g. for Google Earth), you’ll need the new Intel driver (http://www.intellinuxgraphics.org). Fortunately, ''Jö'' provides updated packages for etch:

In /etc/apt/sources.list:

{{{deb http://jorrit.de/debian etch main}}}

And in /etc/X11/xorg.conf:

Section "Device"
        Identifier      "grafiktschipp"
        Driver          "intel"
EndSection

apt keys for 3rd party repositories

~/bin/apt-add-key:

#!/bin/sh

for X in $*; do
  gpg --keyserver wwwkeys.eu.pgp.net --recv-key $K; gpg -a --export $K | apt-key add
done

Credits

This page is loosely based upon the following pages (thanks for the hints):

Ubuntu

Scrolling in Lucid Lynx (10.4)

/usr/lib/X11/xorg.conf.d/20-thinkpad.conf:

Section "InputClass"
    Identifier "Trackpoint Wheel Emulation"
    MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint"
    MatchDevicePath "/dev/input/event*"
    Option "EmulateWheel" "true"
    Option "EmulateWheelButton" "2"
    Option "Emulate3Buttons" "false"
    Option "XAxisMapping" "6 7"
  Option "YAxisMapping" "4 5"
EndSection