Install Slackware 13.0 on a Thinkpad T400
This guide is based on Slackware 13.0 using the stock kernel 2.6.29.6 starting from a Windows Vista installation. This guide is based upon the guide for installing Slackware 12.2 on a T400.
Contents
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. You shouldn't have any need for them if you follow the steps and this guide. However recovery disks are comforting to have considering Lenovo tends not to provide disks and rather provides just a recovery partition on the hard drive.
- If you wish to keep windows vista and the recovery partition, you will need to resize the partition. This is best done with a tool such as Gparted. Gparted has Live version available which can be installed on a flash/CD/DVD drive and then booted. Be sure only to resize the Windows Vista partition, the largest partition, also make sure that the round to cylinders option is not checked. If the partitions are rounded to the cylinders, the recovery partition as well as the windows Vista partition may no longer work. Once you have resized the partition, you can allocate an extended partition in which you can make partitions for linux. Be sure to make at least one for the linux installation and another for the swap. REboot and make sure that everything is still working. The Lenovo Recovery software will notice something has changed and want to attempt a "recovery", just tell it no. Make sure both Windows Vista and the Lenovo Recovery software are still working.
- There are no extra procedures to install Slackware 13.0 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 are keeping Windows Vista then the partitions are not alligned with the cylinders. Programs such as cfdisk will refuse to modify the partition table and fdisk will complain but still work. I use lilo for booting and you will have to give lilo, -p ignore, in order to install lilo. Don't forget to make the linux partition bootable.
- 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. At this point in time I haven't fully explored the switchable graphics capability of the T400, however by setting the bios to integrated or discrete does serve to turn off the unused graphics card which can offer power saving of up to 10 watts.
- 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.
- If you don't install LILO to the MBR which may be a safer thing to do, then you can use the program such as EASYBCD to specify that the linux partition should be booted rather than the Vista partition. Make sure to set an adequate delay in the boot menu, so that you may select when desired the Vista partition. After you have changed the booting preferences, make sure that you are able to boot to Linux, Vista and the Recovery partition.
What Works
Hardware Component | Status under Slackware 13.0 | 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 |
ThinkPad 11b/g/n Wireless LAN Mini-PCI Express Adapter II(Found in newer models) | Works | See Archwiki for the best guide to setting this card up. I suggest studying the output of [WICD] log for determining the commands needed to connect to wifi networks. |
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. Note, there a different versions of the T400 laptop available some of which support 1440x900.
Modes:
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 EndSection # ********************************************************************** # Graphics device section # ********************************************************************** # Any number of graphics device sections may be present Section "Device" Identifier "Intel" Driver "intel" EndSection # ********************************************************************** # 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 EndSubsection EndSection
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.
Trackpad:
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 SlackBuilds.org.
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" EndSection # ********************************************************************** # 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" EndSection 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" EndSection
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" EndSection Section "DRI" Mode 0666 EndSection
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
This version of Slackware has the latest version of lmsensors. This version is not currently supported by cpufreqd, a daemon that has been used with previous Slackware versions for handling CPU frequency scaling. Install cpufrequtils. With the cpufreq-set and cpufreq-info one may set the cpu speed as well as the governors for the cpu speed. The possible governors include: performance, ondemand, conservative, powersave and userspace(you set the speed manually). To have the governor dynamically change based on perhaps the state of the battery or the presence of the ac-adapter, the acpi daemon can be used, see Cpufrequtils.
Problems/Issues
- Suspend-to-RAM and Sleep - Won't restore, screen remains blank. Problems_with_ACPI_suspend-to-ram lists all sorts of woes.
- Switchable Graphics
- Hard Drive Active Protection System. See: HDAPS and How to protect the harddisk through APS.
Boot Hot Keys
- F1 = BIOS
- F11 = Boot recovery partition
- F12 = Select boot device