Difference between revisions of "IBM ThinkPad T21"

From ArchWiki
Jump to: navigation, search
(Xorg)
(Part of my ThinkPad page overhaul on the wiki.)
Line 1: Line 1:
[[Category:Laptops (English)]]  
+
[[Category:Laptops (English)]]
[[Category:HOWTOs (English)]]  
+
[[Category:HOWTOs (English)]]
 +
 
 +
==Installation== 
 +
 
 +
Works with no known issues.  Tested on 2008.03 and 2008.06.
 +
 
 +
==Configuration== 
 +
 
 +
===Power Management=== 
 +
 
 +
====Suspend and Hibernate==== 
 +
Works flawlessly.  See [[Suspend to Disk]].
 +
 
 +
====Laptop Mode Tools====
 +
Works flawlessly.  See [[Laptop Mode Tools]].
 
   
 
   
==Reference Information==  
+
====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
 
   
 
   
Extensive information about Linux on the T23 can be found at [http://www.thinkwiki.org/wiki/Category:T21]. What follows here are details specific to Arch Linux.
+
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 their supposed functions.  You may also want to install tpb (ThinkPad Buttons) if you still have trouble.
 +
 
 +
====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
 
   
 
   
==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 '''T'''hink'''p'''ad '''B'''uttons) 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. [http://www.samwel.tk/laptop_mode/ 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"
+
===Xorg===   
         Identifier    "X.org Configured"
+
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.
         Screen      0  "Screen0" 0 0
+
 
         InputDevice    "Mouse0" "CorePointer"
+
Here is the mentioned file, for those who don't have a working configuration yet: 
         InputDevice    "Keyboard0" "CoreKeyboard"
+
 
  EndSection
+
# /etc/X11/xorg.conf (xorg X Window System server configuration file) 
  Section "Files"
+
 
         RgbPath      "/usr/share/X11/rgb"
+
  Section "ServerLayout"  
         ModulePath  "/usr/lib/xorg/modules"
+
         Identifier    "X.org Configured"  
         FontPath    "/usr/share/fonts/misc"
+
         Screen      0  "Screen0" 0 0  
         FontPath    "/usr/share/fonts/100dpi:unscaled"
+
         InputDevice    "Mouse0" "CorePointer"  
         FontPath    "/usr/share/fonts/75dpi:unscaled"
+
         InputDevice    "Keyboard0" "CoreKeyboard"  
         FontPath    "/usr/share/fonts/TTF"
+
  EndSection  
         FontPath    "/usr/share/fonts/Type1"
+
  Section "Files"  
  EndSection
+
         RgbPath      "/usr/share/X11/rgb"  
  Section "Module"
+
         ModulePath  "/usr/lib/xorg/modules"  
         Load  "glx"
+
         FontPath    "/usr/share/fonts/misc"  
         Load  "extmod"
+
         FontPath    "/usr/share/fonts/100dpi:unscaled"  
         Load  "xtrap"
+
         FontPath    "/usr/share/fonts/75dpi:unscaled"  
         Load  "record"
+
         FontPath    "/usr/share/fonts/TTF"  
         Load  "GLcore"
+
         FontPath    "/usr/share/fonts/Type1"  
         Load  "dbe"
+
  EndSection  
         Load  "dri"
+
  Section "Module"  
         Load  "freetype"
+
         Load  "glx"  
  EndSection
+
         Load  "extmod"  
  Section "InputDevice"
+
         Load  "xtrap"  
         Identifier  "Keyboard0"
+
         Load  "record"  
         Driver      "kbd"
+
         Load  "GLcore"  
  EndSection
+
         Load  "dbe"  
  Section "InputDevice"
+
         Load  "dri"  
         Identifier  "Mouse0"
+
         Load  "freetype"  
         Driver      "mouse"
+
  EndSection  
         Option      "Protocol" "auto"
+
  Section "InputDevice"  
         Option      "Device" "/dev/input/mice"
+
         Identifier  "Keyboard0"  
         Option      "ZAxisMapping" "4 5 6 7"
+
         Driver      "kbd"  
  EndSection
+
  EndSection  
  Section "Monitor"
+
  Section "InputDevice"  
         Identifier  "Monitor0"
+
         Identifier  "Mouse0"  
         VendorName  "Monitor Vendor"
+
         Driver      "mouse"  
         ModelName    "Monitor Model"
+
         Option      "Protocol" "auto"  
  EndSection
+
         Option      "Device" "/dev/input/mice"  
  Section "Device"
+
         Option      "ZAxisMapping" "4 5 6 7"  
         ### Available Driver options are:-
+
  EndSection  
         ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
+
  Section "Monitor"  
         ### <string>: "String", <freq>: "<f> Hz/kHz/MHz"
+
         Identifier  "Monitor0"  
         ### [arg]: arg optional
+
         VendorName  "Monitor Vendor"  
         #Option    "NoAccel"                  # [<bool>]
+
         ModelName    "Monitor Model"  
         #Option    "AccelMethod"              # <str>
+
  EndSection  
         #Option    "HWCursor"                  # [<bool>]
+
  Section "Device"  
         #Option    "SWCursor"                  # [<bool>]
+
         ### Available Driver options are:-  
         #Option    "ShadowFB"                  # [<bool>]
+
         ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",  
         #Option    "Rotate"                    # [<str>]
+
         ### <string>: "String", <freq>: "<f> Hz/kHz/MHz"  
         #Option    "UseBIOS"                  # [<bool>]
+
         ### [arg]: arg optional  
         #Option    "LCDClock"                  # <freq>
+
         #Option    "NoAccel"                  # [<bool>]  
         #Option    "ShadowStatus"              # [<bool>]
+
         #Option    "AccelMethod"              # <str>  
         #Option    "CrtOnly"                  # [<bool>]
+
         #Option    "HWCursor"                  # [<bool>]  
         #Option    "TvOn"                      # [<bool>]
+
         #Option    "SWCursor"                  # [<bool>]  
         #Option    "PAL"                      # [<bool>]
+
         #Option    "ShadowFB"                  # [<bool>]  
         #Option    "ForceInit"                # [<bool>]
+
         #Option    "Rotate"                    # [<str>]  
         #Option    "Overlay"                  # [<str>]
+
         #Option    "UseBIOS"                  # [<bool>]  
         #Option    "TransparencyKey"          # [<str>]
+
         #Option    "LCDClock"                  # <freq>  
         #Option    "ForceInit"                # [<bool>]
+
         #Option    "ShadowStatus"              # [<bool>]  
         #Option    "DisableXVMC"              # [<bool>]
+
         #Option    "CrtOnly"                  # [<bool>]  
         #Option    "DisableTile"              # [<bool>]
+
         #Option    "TvOn"                      # [<bool>]  
         #Option    "DisableCOB"                # [<bool>]
+
         #Option    "PAL"                      # [<bool>]  
         #Option    "BCIforXv"                  # [<bool>]
+
         #Option    "ForceInit"                # [<bool>]  
         #Option    "DVI"                      # [<bool>]
+
         #Option    "Overlay"                  # [<str>]  
         #Option    "IgnoreEDID"                # [<bool>]
+
         #Option    "TransparencyKey"          # [<str>]  
         #Option    "BusType"                  # [<str>]
+
         #Option    "ForceInit"                # [<bool>]  
         #Option    "DmaType"                  # [<str>]
+
         #Option    "DisableXVMC"              # [<bool>]  
         #Option    "DmaMode"                  # [<str>]
+
         #Option    "DisableTile"              # [<bool>]  
         #Option    "AGPMode"                  # <i>
+
         #Option    "DisableCOB"                # [<bool>]  
         #Option    "AGPSize"                  # <i>
+
         #Option    "BCIforXv"                  # [<bool>]  
         #Option    "DRI"                      # [<bool>]
+
         #Option    "DVI"                      # [<bool>]  
         Identifier  "Card0"
+
         #Option    "IgnoreEDID"                # [<bool>]  
         Driver      "savage"
+
         #Option    "BusType"                  # [<str>]  
         VendorName  "S3 Inc."
+
         #Option    "DmaType"                  # [<str>]  
         BoardName  "86C270-294 Savage/IX-MV"
+
         #Option    "DmaMode"                  # [<str>]  
         BusID      "PCI:1:0:0"
+
         #Option    "AGPMode"                  # <i>  
  EndSection
+
         #Option    "AGPSize"                  # <i>  
  Section "Screen"
+
         #Option    "DRI"                      # [<bool>]  
         Identifier "Screen0"
+
         Identifier  "Card0"  
         Device    "Card0"
+
         Driver      "savage"  
         Monitor    "Monitor0"
+
         VendorName  "S3 Inc."  
         DefaultDepth 16
+
         BoardName  "86C270-294 Savage/IX-MV"  
         SubSection "Display"
+
         BusID      "PCI:1:0:0"  
                 Viewport  0 0
+
  EndSection  
                 Depth    1
+
  Section "Screen"  
         EndSubSection
+
         Identifier "Screen0"  
         SubSection "Display"
+
         Device    "Card0"  
                 Viewport  0 0
+
         Monitor    "Monitor0"  
                 Depth    4
+
         DefaultDepth 16  
         EndSubSection
+
         SubSection "Display"  
         SubSection "Display"
+
                 Viewport  0 0  
                 Viewport  0 0
+
                 Depth    1  
                 Depth    8
+
         EndSubSection  
         EndSubSection
+
         SubSection "Display"  
         SubSection "Display"
+
                 Viewport  0 0  
                 Viewport  0 0
+
                 Depth    4  
                 Depth    15
+
         EndSubSection  
         EndSubSection
+
         SubSection "Display"  
         SubSection "Display"
+
                 Viewport  0 0  
                 Viewport  0 0
+
                 Depth    8  
                 Depth    16
+
         EndSubSection  
         EndSubSection
+
         SubSection "Display"  
         SubSection "Display"
+
                 Viewport  0 0  
                 Viewport  0 0
+
                 Depth    15  
                 Depth    24
+
         EndSubSection  
         EndSubSection
+
         SubSection "Display"  
  EndSection
+
                 Viewport  0 0  
 
+
                 Depth    16  
==More Resources==
+
         EndSubSection  
+
         SubSection "Display"  
Thinkwiki [http://www.thinkwiki.org]
+
                 Viewport  0 0  
 +
                 Depth    24  
 +
         EndSubSection  
 +
  EndSection  
 
   
 
   
Category T21 at Thinkwiki [http://www.thinkwiki.org/wiki/Category:T21]
+
==Other Resources== 
 +
[http://www.thinkwiki.org/wiki/Category:T21 Thinkwiki]

Revision as of 01:28, 28 July 2008


Installation

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

Configuration

Power Management

Suspend and Hibernate

Works flawlessly. See Suspend to Disk.

Laptop Mode Tools

Works flawlessly. See Laptop Mode Tools.

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 their supposed functions. You may also want to install tpb (ThinkPad Buttons) if you still have trouble.

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 

Other Resources

Thinkwiki