IBM ThinkPad T21

From ArchWiki
Revision as of 15:22, 11 July 2008 by Georgia tech swagger (Talk | contribs) (formatting)

Jump to: navigation, search

Reference Information

Extensive information about Linux on the T23 can be found at [1]. What follows here are details specific to Arch Linux.


Works with no known issues. Tested on 2008.03 and 2008.06.



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.


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.


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 


# pm-hibernate 

May also be called when closing the lid-

/etc/acpi/events/lid :

#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 

Or, from the power button event-


 # /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 

Restoring network and sound on resume

Create /etc/pm/sleep.d/suspend with the following content:

/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 

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.


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


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     " Configured"
       Screen      0  "Screen0" 0 0
       InputDevice    "Mouse0" "CorePointer"
       InputDevice    "Keyboard0" "CoreKeyboard"


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"


Section "Module"

       Load  "glx"
       Load  "extmod"
       Load  "xtrap"
       Load  "record"
       Load  "GLcore"
       Load  "dbe"
       Load  "dri"
       Load  "freetype"


Section "InputDevice"

       Identifier  "Keyboard0"
       Driver      "kbd"


Section "InputDevice"

       Identifier  "Mouse0"
       Driver      "mouse"
       Option      "Protocol" "auto"
       Option      "Device" "/dev/input/mice"
       Option      "ZAxisMapping" "4 5 6 7"


Section "Monitor"

       Identifier   "Monitor0"
       VendorName   "Monitor Vendor"
       ModelName    "Monitor Model"


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"


Section "Screen"

       Identifier "Screen0"
       Device     "Card0"
       Monitor    "Monitor0"
       DefaultDepth 16
       SubSection "Display"
               Viewport   0 0
               Depth     1
       SubSection "Display"
               Viewport   0 0
               Depth     4
       SubSection "Display"
               Viewport   0 0
               Depth     8
       SubSection "Display"
               Viewport   0 0
               Depth     15
       SubSection "Display"
               Viewport   0 0
               Depth     16
       SubSection "Display"
               Viewport   0 0
               Depth     24


More Resources

Thinkwiki [2]

Category T21 at Thinkwiki [3]