IBM ThinkPad T21
Contents
Reference Information
Extensive information about Linux on the T23 can be found at [1]. What follows here are details specific to Arch Linux.
Installation
Works with no known issues. Tested on 2008.03 and 2008.06.
Configuration
NumLk
From the IBM ThinkPad T23 page:
keycode 77 = Num_Lock
Add that line to your ~/.xmodmap file.
This, however, did not work for me. YMMV.
tpb
From the IBM Thinkpad T23 page:
tpb (for Thinkpad Buttons) is available through pacman:
pacman -S tpb
tpb adds an on-screen volume bar for the volume buttons, THINKPAD button assignment, on-screen messages for Thinklight, (on and off) and more.
This however, also did not work for me. YMMV.
Powermanagment
Works fine after reading the Pm-utils page.
Suspend and Hibernate
Works well with pm-utils. May be called from command line as root:
# pm-suspend
or
# pm-hibernate
May also be called when closing the lid-
/etc/acpi/events/lid :
event=button/lid #action=echo POWEROFF | /usr/lib/xfce4/xfsm-shutdown-helper # shutdown with Xfce #action=pm-hibernate #action=/opt/kde/bin/dcop --all-users --all-sessions ksmserver ksmserver logout 0 2 0 # Shutdown with KDE action=pm-suspend
Or, from the power button event-
/etc/acpi/events/power:
# /etc/acpi/events/power # This is called when the user presses the power button event=button/power (PWR.||PBTN) action=echo POWEROFF | /usr/lib/xfce4/xfsm-shutdown-helper # shutdown with Xfce #action=/opt/kde/bin/dcop --all-users --all-sessions ksmserver ksmserver logout 0 2 0 # shutdown with KDE #action=pm-hibernate #action=pm-suspend
Restoring network and sound on resume
Create /etc/pm/sleep.d/suspend with the following content:
#!/bin/bash /etc/rc.d/network restart mixers="Master PCM CD" for mixer in $mixers ; do /usr/bin/amixer -q sset $mixer mute /usr/bin/amixer -q sset $mixer unmute done
This will simply restart your network and mute/unmute the sound, which restores functionality on resume.
Laptop Mode Tools
The Linux kernel, starting from version 2.6.6, contains a feature called laptop mode. This feature is also present in the Linux 2.4 series starting from version 2.4.23. When you enable this feature, The kernel allows your hard drive to spin down more often, resulting in significant power savings. To make laptop mode work, you need to install some scripts and configure some things. The Laptop Mode Tools package contains everything you need to make laptop mode work. Laptop Mode Tools Website)
To install laptop-mode-tools:
pacman -S laptop-mode-tools
Add laptop-mode to your DAEMONS array in /etc/rc.conf:
DAEMONS=(@network @acpid @syslog-ng @alsa @hal @fam @laptop-mode)
CPU Frequency Scaling
Doesn't work, despite following CPU Frequency Scaling. In specific, modprobe apci-cpufreq fails with:
FATAL: Error inserting acpi_cpufreq (/lib/modules/2.6.25-ARCH/kernel/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.ko): No such device
Adding modules thinkpad-acpi and ibm-acpi has no effect on this.
Hotkeys
They work better after loading the thinkpad-acpi module, to assign the generated keycodes to there supposed functions.
External VGA
For whatever reason, external VGA output (for an external monitor) was disabled. This was fixed by doing this:
# echo 1 > /proc/acpi/video/VID/DOS
Xorg
Works with driver xf86-video-savage. However, to achieve DRI (and thus OpenGL acceleration), you will have to use 16-bit color. The 8 MB of VRAM with the Savage GPU isn't enough to support 24 bit color, OpenGL, and 1024x768. You must either drop color depth or resolution.
Here is the mentioned file, for those who don't have a working configuration yet:
# /etc/X11/xorg.conf (xorg X Window System server configuration file)
Section "ServerLayout"
Identifier "X.org Configured" Screen 0 "Screen0" 0 0 InputDevice "Mouse0" "CorePointer" InputDevice "Keyboard0" "CoreKeyboard"
EndSection
Section "Files"
RgbPath "/usr/share/X11/rgb" ModulePath "/usr/lib/xorg/modules" FontPath "/usr/share/fonts/misc" FontPath "/usr/share/fonts/100dpi:unscaled" FontPath "/usr/share/fonts/75dpi:unscaled" FontPath "/usr/share/fonts/TTF" FontPath "/usr/share/fonts/Type1"
EndSection
Section "Module"
Load "glx" Load "extmod" Load "xtrap" Load "record" Load "GLcore" Load "dbe" Load "dri" Load "freetype"
EndSection
Section "InputDevice"
Identifier "Keyboard0" Driver "kbd"
EndSection
Section "InputDevice"
Identifier "Mouse0" Driver "mouse" Option "Protocol" "auto" Option "Device" "/dev/input/mice" Option "ZAxisMapping" "4 5 6 7"
EndSection
Section "Monitor"
Identifier "Monitor0" VendorName "Monitor Vendor" ModelName "Monitor Model"
EndSection
Section "Device"
### Available Driver options are:- ### Values: : integer, <f>: float, <bool>: "True"/"False", ### <string>: "String", <freq>: "<f> Hz/kHz/MHz" ### [arg]: arg optional #Option "NoAccel" # [<bool>] #Option "AccelMethod" # <str> #Option "HWCursor" # [<bool>] #Option "SWCursor" # [<bool>] #Option "ShadowFB" # [<bool>] #Option "Rotate" # [<str>] #Option "UseBIOS" # [<bool>] #Option "LCDClock" # <freq> #Option "ShadowStatus" # [<bool>] #Option "CrtOnly" # [<bool>] #Option "TvOn" # [<bool>] #Option "PAL" # [<bool>] #Option "ForceInit" # [<bool>] #Option "Overlay" # [<str>] #Option "TransparencyKey" # [<str>] #Option "ForceInit" # [<bool>] #Option "DisableXVMC" # [<bool>] #Option "DisableTile" # [<bool>] #Option "DisableCOB" # [<bool>] #Option "BCIforXv" # [<bool>] #Option "DVI" # [<bool>] #Option "IgnoreEDID" # [<bool>] #Option "BusType" # [<str>] #Option "DmaType" # [<str>] #Option "DmaMode" # [<str>] #Option "AGPMode" # <i> #Option "AGPSize" # <i> #Option "DRI" # [<bool>] Identifier "Card0" Driver "savage" VendorName "S3 Inc." BoardName "86C270-294 Savage/IX-MV" BusID "PCI:1:0:0"
EndSection
Section "Screen"
Identifier "Screen0" Device "Card0" Monitor "Monitor0" DefaultDepth 16 SubSection "Display" Viewport 0 0 Depth 1 EndSubSection SubSection "Display" Viewport 0 0 Depth 4 EndSubSection SubSection "Display" Viewport 0 0 Depth 8 EndSubSection SubSection "Display" Viewport 0 0 Depth 15 EndSubSection SubSection "Display" Viewport 0 0 Depth 16 EndSubSection SubSection "Display" Viewport 0 0 Depth 24 EndSubSection
EndSection
More Resources
Thinkwiki [2]
Category T21 at Thinkwiki [3]