Install Slackware 12.2 on a Thinkpad T400

From ThinkWiki
Revision as of 16:22, 20 June 2010 by Cherife (Talk | contribs) (Enabling Fn + F# Keys)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

This guide is based on Slackware 12.2 using the stock kernel starting from a Windows Vista installation.


  • Before beginning, I suggest creating a set of Rescue and Recovery disks just in case something accidentally happens during the installation process. Also, I suggest creating a set of Vista recovery disks.
  • There are no extra procedures to install Slackware 12.2 to the T400. The installation process goes smoothly. There are many guides on how to install Slackware so please use them if you're having troubles.
  • Note If you have switchable graphics, make sure to toggle the setting in the BIOS to use either your Internal or Discrete card. See Switchable Graphics
  • If you choose to install LILO to the MBR, the Vista recovery disk will allow you to revert back to the windows boot loader if you ever choose to do so. Instructions can be found here.

What Works

Hardware Component Status under Slackware 12.2 Notes
Intel Core 2 Duo (Penryn) T9400 Works Check here to enable CPU frequency scaling.
14.1" TFT display (WXGA+) 1440x900 resolution + LED backlight Works See Xorg - Video Settings
Intel GMA 4500MHD Graphics Works See Xorg - Video Settings
ATI Mobility Radeon HD 3470 Graphics Untested See Xorg - Video Settings
Intel Gigabit Ethernet (10/100/1000) PCI-Express Works Nothing special to do.
3GB PC3-8500 DDR3 memory Works Nothing special to do.
160GB 7200rpm 2.5" SATA HDD Works Nothing special to do.
Serial Ultrabay Slim CD-RW/DVD combo Drive Works Nothing special to do.
UltraNav (TrackPoint and TouchPad) Works See Trackpad and Trackpoint section
Intel WiFi Link 5100/5300 WLAN controller Works Configure using /etc/rc.d/rc.inet1.conf
Bluetooth Untested The bluetooth interface does successfully startup.
Integrated Fingerprint Reader Untested
HDA Intel CONEXANT Sound Card Works Run alsaconf + alsamixer

Initial Setup

There are many guides to get you started with Slackware. I suggest Dugan's guide.

Console Resolution

The console resolution options given in the Slackware setup are mostly incorrect. To fix this, edit /etc/lilo.conf and replace the existing vga=XXX with one of the below numbers, then re-run lilo.


640×480 768x480 800×600 960×600 1024×768 1280×800 1440×900
256 color palette 769 864 771 867 773 870 873
16-bit (5:6:5) 785 865 788 868 791 871 874
32-bit (8:8:8) 786 866 789 869 792 872 875*

*Doesn't work, screen is distorted and unusable. Other 32-bit resolutions are ok.

To verify the setting run dmesg | grep vesafb:

vesafb: framebuffer at 0xe0000000, mapped to 0xf8880000, using 5062k, total 7616k
vesafb: mode is 1440x900x16, linelength=2880, pages=1
vesafb: scrolling: redraw
vesafb: Truecolor: size=0:5:6:5, shift=0:11:5:0

Xorg - Video Settings

The following settings should be used for the Monitor and Device sections in /etc/X11/xorg.conf. This is a base configuration. If you have external displays, projectors, etc. you will have to look elsewhere to learn how to set these up.

Note As of now I use the Intel video card with linux. I have not found many resources discussing the ATI Mobility Radeon HD 3470 card that is also found on the T400. If you want to use this card instead of the Intel card, then you may want to consult the Unofficial ATI Linux Driver Wiki and the fglrx driver guide.

# **********************************************************************
# Monitor section
# **********************************************************************

# Any number of monitor sections may be present

Section "Monitor"

    Identifier  "T400 LCD TFT"
    DisplaySize 380 238
    HorizSync   31.5 - 50.0
    VertRefresh 49-61


# **********************************************************************
# Graphics device section
# **********************************************************************

# Any number of graphics device sections may be present

Section "Device"
    Identifier  "Intel"
    Driver      "intel"

# **********************************************************************
# Screen sections
# **********************************************************************

Section "Screen"
    Identifier  "T400 Internal LCD"
    Device      "Intel"
    Monitor     "T400 LCD TFT"
    DefaultDepth 24

    Subsection "Display"
        Depth       24
        Modes       "1440x900"
        ViewPort    0 0


X Resolution

Given the size (14.1") and resolution (1440x900) the correct dpi is 120.4.

This dpi setting generally makes things look larger than they should. To fix this, edit /usr/bin/startx and change defaultserverargs="" to defaultserverargs="-dpi 96"

To verify the setting run xdpyinfo | grep resolution

resolution: 96x96 dots per inch

Advanced Trackpad and Trackpoint Scrolling

The default settings don't utilize the trackpad's advanced functions (vertical/horizontal scrolling, etc) in X and the trackpoint scrolling does not work.


Comment out the options line in /etc/modprobe.d/psmouse/ to recognize the trackpad as a SynPS/2 Synaptics TouchPad instead of a PS/2 Synaptics TouchPad in /proc/bus/input/devices.

Currently there is no available pre-compiled package for the Synaptics TouchPad driver for Slackware 12.2. However the 12.1 SlackBuild functions properly. The Synaptics TouchPad driver is available at

Trackpoint + Trackpad: Modify the InputDevices section of your /etc/X11/xorg.conf as below:

# **********************************************************************
# Input devices
# **********************************************************************

# **********************************************************************
# Core keyboard's InputDevice section
# **********************************************************************

Section "InputDevice"

    Identifier	"T400kbd"
    Driver	"kbd"

    Option "AutoRepeat" "500 30"
    Option "XkbRules"	"xorg"
    Option "XkbModel"	"thinkpad60"
    #Option "XkbLayout"	"us_intl"


# **********************************************************************
# Core Pointer's InputDevice section
# **********************************************************************

Section "InputDevice"
	Identifier  "Synaptics Touchpad"
	Driver      "synaptics"
	Option	    "SendCoreEvents"	        "true"
	Option      "Device"			"/dev/psaux"
	Option      "Protocol"			"auto-dev"
	Option	    "HorizEdgeScroll"	        "0"
	Option      "LeftEdge"			"1700"
	Option      "RightEdge"			"5300"
	Option      "TopEdge"			"1700"
	Option      "BottomEdge"		"4200"
	Option      "FingerLow"			"25"
	Option      "FingerHigh"		"30"
	Option      "MaxTapTime"		"180"
	Option      "MaxTapMove"		"220"
	Option      "VertScrollDelta"	        "100"
	Option      "HorizScrollDelta"	        "100"
	Option      "MinSpeed"			"0.09"
	Option      "MaxSpeed"			"0.18"
	Option	    "AccelFactor"		"0.0015"
	Option	    "SHMConfig"			"on"
	Option	    "TapButton1"		"1"
	Option	    "TapButton2"		"2"
	Option	    "TapButton3"		"3"    

Section "InputDevice"
	Identifier  "UltraNav Trackpoint"
	Driver      "mouse"
	Option      "CorePointer1"
	Option      "Device"              "/dev/input/mice"
	Option      "Protocol"            "ImPS/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"

Xorg Server Layout

If you have used the above settings in your /etc/X11/xorg.conf file, then make sure that your ServerLayout section calls the proper identifiers:

# **********************************************************************
# ServerLayout sections.
# **********************************************************************

Section "ServerLayout"

    Identifier  "T400"

    Screen "T400 Internal LCD"

    InputDevice "UltraNav Trackpoint" "CorePointer"
   #InputDevice "Synaptics" "CorePointer"
    InputDevice "T400kbd" "CoreKeyboard"


Section "DRI"
    Mode 0666

Enabling Fn + F# Keys

Follow Cowyn Li's guide. These add some basic functionality to the keys. For more advanced functionality you will have to create your own scripts.

In order for the X commands to function properly you will need to add:

xhost +local:root

To your windows manager startup file. For fluxbox this file is /home/user/.fluxbox/startup. I don't use KDE, but for KDE you would find its startup file and add the same line.

CPU Frequency Scaling

Functions properly. Install cpufreqd and cpufrequtils.

For information on how to use these tools, consult How to make use of Dynamic Frequency Scaling and How to configure cpufreqd.


Boot Hot Keys

  • F1 = BIOS
  • F11 = Boot recovery partition
  • F12 = Select boot device