Difference between revisions of "IBM ThinkPad T21"

From ArchWiki
Jump to: navigation, search
(My laptop.)
 
(17 intermediate revisions by 10 users not shown)
Line 1: Line 1:
[[Category:Laptops (English)]]  
+
[[Category:IBM]]  
[[Category:HOWTOs (English)]]  
+
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====  
+
Install [https://aur.archlinux.org/packages.php?ID=43483 cpudyn] from the AUR.
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.
+
+
==Installation==
+
+
Works with no known issues.   Tested on 2008.03 and 2008.06.
+
+
==Configuration==
+
+
===NumLk===
+
  
From the  [[IBM Thinkpad T23]] page:
+
Add speedstep_lib, speedstep_smi, and cpufreq_userspace to MODULES array in /etc/[[rc.conf]].
   
+
  MODULES=(... '''speedstep_lib speedstep_smi cpufreq_userspace''' ...)
keycode 77 = Num_Lock
+
Add cpudyn to DAEMONS array in /etc/rc.conf
+
DAEMONS=(... '''cpudyn''' ...)
Add that line to your ~/.xmodmap file.  
+
  
This, however, did not work for meYMMV.
+
===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
  
===tpb===  
+
===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.  
From the  [[IBM Thinkpad T23]] page:
+
 
 
+
Here is the mentioned file, for those who do not have a working configuration yet:   
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"
+
# /etc/X11/xorg.conf (xorg X Window System server configuration file) 
         Identifier    "X.org Configured"
+
 
         Screen      0  "Screen0" 0 0
+
Section "ServerLayout"  
         InputDevice    "Mouse0" "CorePointer"
+
         Identifier    "X.org Configured"  
         InputDevice    "Keyboard0" "CoreKeyboard"
+
         Screen      0  "Screen0" 0 0  
EndSection
+
         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"
 +
        ###To enable third trackpoint scrolling button
 +
        Option      "EmulateWheel" "true"
 +
        Option      "EmulateWheelButton" "2"
 +
EndSection
 +
Section "Monitor"
 +
        Identifier  "Monitor0"
 +
        VendorName  "Monitor Vendor"
 +
        ModelName    "Monitor Model"
 +
EndSection
 +
Section "Device"
 +
        ### Available Driver options are:-
 +
        ### Values: &lt;i&gt;: 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"                  # &lt;i&gt;
 +
        #Option    "AGPSize"                  # &lt;i&gt;
 +
        #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
  
Section "Files"
+
== See also ==   
        RgbPath      "/usr/share/X11/rgb"
+
* [http://www.thinkwiki.org/wiki/Category:T21 Thinkwiki]
        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: <i>: 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 [http://www.thinkwiki.org]
+
+
Category T21 at Thinkwiki [http://www.thinkwiki.org/wiki/Category:T21]
+

Revision as of 13:01, 23 April 2012

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

Install cpudyn from the AUR.

Add speedstep_lib, speedstep_smi, and cpufreq_userspace to MODULES array in /etc/rc.conf.

MODULES=(... speedstep_lib speedstep_smi cpufreq_userspace ...)

Add cpudyn to DAEMONS array in /etc/rc.conf

DAEMONS=(... cpudyn ...)

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 do not 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" 
       ###To enable third trackpoint scrolling button
       Option      "EmulateWheel" "true"
       Option      "EmulateWheelButton" "2"
EndSection 
Section "Monitor" 
       Identifier   "Monitor0" 
       VendorName   "Monitor Vendor" 
       ModelName    "Monitor Model" 
EndSection 
Section "Device" 
       ### Available Driver options are:- 
       ### Values: <i>: 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

See also