<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.thinkwiki.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tripwired</id>
	<title>ThinkWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.thinkwiki.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tripwired"/>
	<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/wiki/Special:Contributions/Tripwired"/>
	<updated>2026-06-09T18:12:20Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.12</generator>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_X61_Tablet&amp;diff=49025</id>
		<title>Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad X61 Tablet</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_X61_Tablet&amp;diff=49025"/>
		<updated>2010-07-12T08:07:09Z</updated>

		<summary type="html">&lt;p&gt;Tripwired: /* automatic rotating of display in tablet mode */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a notes page for now. It will improve with time I have blatantly copied the 9.04 page as a template. &lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
This page covers the additional hardware setup required after installing Ubuntu 10.04 Jaunty to make the Thinkpad X61 Tablet Fully Functional.&lt;br /&gt;
&lt;br /&gt;
=== What Works ===&lt;br /&gt;
==== Tested ====&lt;br /&gt;
Audio Buttons,&lt;br /&gt;
Brightness Fn Buttons,&lt;br /&gt;
Radio Fn Button,&lt;br /&gt;
Suspend Fn Button,&lt;br /&gt;
Tablet L/R/U/D Buttons,&lt;br /&gt;
Tablet Enter Button,&lt;br /&gt;
Tablet Esc Button,&lt;br /&gt;
NumberLock Fn Button,&lt;br /&gt;
Tablet Pen,&lt;br /&gt;
Wireless Radio,&lt;br /&gt;
&lt;br /&gt;
==== Assumed Working ====&lt;br /&gt;
Forward / Back Buttons,&lt;br /&gt;
Power Fn Button,&lt;br /&gt;
Lock Fn Button,&lt;br /&gt;
Hibernate Fn Button,&lt;br /&gt;
Media Fn Buttons&lt;br /&gt;
Bluetooth Radio,&lt;br /&gt;
&lt;br /&gt;
=== What Almost Works ===&lt;br /&gt;
Tablet Toolbox Button -  causes lock or suspend,&lt;br /&gt;
Tablet Touch – Requires Calibration.&lt;br /&gt;
&lt;br /&gt;
=== What Does Not Work ===&lt;br /&gt;
Tablet Control-Alt-Delete Button,&lt;br /&gt;
Tablet Rotate Button,&lt;br /&gt;
Middle Mouse Button,&lt;br /&gt;
ThinkVantage Button,&lt;br /&gt;
Magnify Fn Button,&lt;br /&gt;
Fingerprint Reader,&lt;br /&gt;
Automatic Screen Rotation,&lt;br /&gt;
ThinkVantage ActiveProtection,&lt;br /&gt;
&lt;br /&gt;
= Fixing Touch =&lt;br /&gt;
Works out of the box, just needs some calibration.&lt;br /&gt;
&lt;br /&gt;
== xsetwacom ==&lt;br /&gt;
&lt;br /&gt;
It took me some time to find this one. So, i'll post it here so you won't have to spend time finding it. These numbers calibrate touch for my X61. I hope it will be the same for other X61's.&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 xsetwacom set &amp;quot;Serial Wacom Tablet touch&amp;quot; topy &amp;quot;85&amp;quot;&lt;br /&gt;
 xsetwacom set &amp;quot;Serial Wacom Tablet touch&amp;quot; topx &amp;quot;51&amp;quot;&lt;br /&gt;
 xsetwacom set &amp;quot;Serial Wacom Tablet touch&amp;quot; bottomx &amp;quot;933&amp;quot;&lt;br /&gt;
 xsetwacom set &amp;quot;Serial Wacom Tablet touch&amp;quot; bottomy &amp;quot;957&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The numbers where acquired using xinput_calibrator.&lt;br /&gt;
&lt;br /&gt;
== xinput_calibrator ==&lt;br /&gt;
&lt;br /&gt;
http://www.freedesktop.org/wiki/Software/xinput_calibrator&lt;br /&gt;
&lt;br /&gt;
Using this tool you can find the numbers to calibrate your touchscreen.&lt;br /&gt;
It's a pity it is still not in the repositories (as of 24/06/2010)&lt;br /&gt;
&lt;br /&gt;
Install as per instructions on the freedesktop site.&lt;br /&gt;
&lt;br /&gt;
Then run:&lt;br /&gt;
&lt;br /&gt;
 xinput_calibrator_x11 --device &amp;quot;Serial Wacom Tablet touch&amp;quot;&lt;br /&gt;
&lt;br /&gt;
'''The tool does not actually calibrate the tablet.''' It merely shows you the numbers needed for calibration. Work in progress, i guess.&lt;br /&gt;
&lt;br /&gt;
== Wacomcpl (Will not work because HAL is missing) ==&lt;br /&gt;
&lt;br /&gt;
(I think, it isn't working, because we haven't got wacomcpl in 10.04.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wacomcpl is no longer available in 10.04. The new package is xserver-xorg-input-wacom. How to calibrate the screen is being looked into. The xsetwacom command is still intact to set the calibrations though.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Wacom Tablet in the X61t is a serial Wacom tablet. It can be configured by using wacomcpl. Wacomcpl is part of the wacom-tools package and can be retrieved in apt:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install wacom-tools&lt;br /&gt;
&lt;br /&gt;
After this wacomcpl can be run by typing:&lt;br /&gt;
&lt;br /&gt;
 wacomcpl&lt;br /&gt;
&lt;br /&gt;
in Terminal.&lt;br /&gt;
&lt;br /&gt;
=== Helping wacomcpl ===&lt;br /&gt;
Unfortunately HAL assigns names to wacom devices in a way that the recent wacomcpl from jaunty cant find them, to help wacomcpl to find them:&lt;br /&gt;
&lt;br /&gt;
Open a terminal and type:&lt;br /&gt;
&lt;br /&gt;
 sudo gedit /etc/init.d/wacomtohal&lt;br /&gt;
&lt;br /&gt;
and paste this code in:&lt;br /&gt;
&lt;br /&gt;
 #! /bin/sh&lt;br /&gt;
 ## find any wacom devices&lt;br /&gt;
 for udi in `hal-find-by-property --key input.x11_driver --string wacom`&lt;br /&gt;
 do&lt;br /&gt;
 type=`hal-get-property --udi $udi --key input.x11_options.Type`&lt;br /&gt;
 ## rewrite the names that the Xserver will use&lt;br /&gt;
 hal-set-property --udi $udi --key info.product --string $type&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
then run :&lt;br /&gt;
&lt;br /&gt;
 sudo chmod +x /etc/init.d/wacomtohal&lt;br /&gt;
 sudo update-rc.d wacomtohal defaults 27&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
now reboot and launch wacomcpl&lt;br /&gt;
&lt;br /&gt;
=== Making Wacomcpl Settings Restore on Reboot ===&lt;br /&gt;
If you lose your calibration after reboot:&lt;br /&gt;
&lt;br /&gt;
In terminal: &lt;br /&gt;
&lt;br /&gt;
 sudo gedit ~/.xinitrc&lt;br /&gt;
&lt;br /&gt;
Find the line that says:&lt;br /&gt;
&lt;br /&gt;
 . /etc/X11/xinit/xinitrc&lt;br /&gt;
&lt;br /&gt;
and change it to&lt;br /&gt;
&lt;br /&gt;
 #. /etc/X11/xinit/xinitrc&lt;br /&gt;
&lt;br /&gt;
Save and exit.&lt;br /&gt;
&lt;br /&gt;
Go to System&amp;gt;Preferences&amp;gt;Startup Applications and create a new entry named whatever you want.&lt;br /&gt;
&lt;br /&gt;
The command should be:&lt;br /&gt;
&lt;br /&gt;
 sh /home/yourusername/.xinitrc&lt;br /&gt;
&lt;br /&gt;
Your wacomcpl settings will now restore on reboot&lt;br /&gt;
&lt;br /&gt;
= Fixing the Tablet Toolbox Button =&lt;br /&gt;
This key needs to be set to a keycode. Pick any empty one (241 is usually empty)&lt;br /&gt;
&lt;br /&gt;
 sudo setkeycodes 68 241&lt;br /&gt;
&lt;br /&gt;
Now you can bind this key to any command.&lt;br /&gt;
&lt;br /&gt;
= Setup the Tablet Control-Alt-Delete Button =&lt;br /&gt;
This key needs to be set to a keycode. Pick any empty one (242 is usually empty)&lt;br /&gt;
&lt;br /&gt;
 sudo setkeycodes 67 242&lt;br /&gt;
&lt;br /&gt;
Now you can bind this key to any command.&lt;br /&gt;
&lt;br /&gt;
= Setup the Tablet Rotate Button =&lt;br /&gt;
This key needs to be set to a keycode. Pick any empty one (240 is usually empty)&lt;br /&gt;
&lt;br /&gt;
 sudo setkeycodes 6c 240&lt;br /&gt;
&lt;br /&gt;
Now you can bind this key to any command. (It should be possible to write a script to interact with the autorotate given on this page)&lt;br /&gt;
&lt;br /&gt;
= Setup the Middle Button Scrolling =&lt;br /&gt;
&lt;br /&gt;
== The easy apt-get way ==&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gpointing-device-settings&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The hard way ==&lt;br /&gt;
&lt;br /&gt;
Which probably will not work because it depends op HAL.&lt;br /&gt;
&lt;br /&gt;
Open a terminal and run each of the following for vertical scrolling:&lt;br /&gt;
&lt;br /&gt;
 xinput set-prop 'TPPS/2 IBM TrackPoint' &amp;quot;Evdev Wheel Emulation&amp;quot; 1&lt;br /&gt;
 xinput set-prop 'TPPS/2 IBM TrackPoint' &amp;quot;Evdev Wheel Emulation Button&amp;quot; 2&lt;br /&gt;
 xinput set-prop 'TPPS/2 IBM TrackPoint' &amp;quot;Evdev Wheel Emulation Timeout&amp;quot; 200&lt;br /&gt;
&lt;br /&gt;
Add the following if you want horizontal scrolling:&lt;br /&gt;
&lt;br /&gt;
 xinput set-prop 'TPPS/2 IBM TrackPoint' &amp;quot;Evdev Wheel Emulation Axes&amp;quot; 6 7 4 5&lt;br /&gt;
&lt;br /&gt;
If you do not want to run these commands every time you restart your computer, copy them to a script file.&lt;br /&gt;
&lt;br /&gt;
In Ubuntu, create a new file in your Home directory called &amp;quot;Mouse_Wheel.sh&amp;quot;.  Using gedit, paste the commands into the file and save.&lt;br /&gt;
&lt;br /&gt;
Open the terminal and type:&lt;br /&gt;
 chmod +x Mouse_Wheel.sh&lt;br /&gt;
Go to System &amp;gt; Preferences &amp;gt; Startup Applications.  Click on &amp;quot;Add&amp;quot;, in the Name box type &amp;quot;Mouse Wheel&amp;quot; and in the Command box type &amp;quot;./Mouse_Wheel.sh&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In Kubuntu, place the script file in ~/.kde/Autostart.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
HAL has been deprecated so the following might still work but is not suggested:&lt;br /&gt;
Create a new file called /etc/hal/fdi/policy/mouse-wheel.fdi typing: &lt;br /&gt;
&lt;br /&gt;
 sudo gedit /etc/hal/fdi/policy/mouse-wheel.fdi&lt;br /&gt;
&lt;br /&gt;
And fill it with this code: &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt; &lt;br /&gt;
 &lt;br /&gt;
  &amp;lt;match key=&amp;quot;info.product&amp;quot; string=&amp;quot;TPPS/2 IBM TrackPoint&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;merge key=&amp;quot;input.x11_options.EmulateWheel&amp;quot; type=&amp;quot;string&amp;quot;&amp;gt;true&amp;lt;/merge&amp;gt;&lt;br /&gt;
  &amp;lt;merge key=&amp;quot;input.x11_options.EmulateWheelButton&amp;quot; type=&amp;quot;string&amp;quot;&amp;gt;2&amp;lt;/merge&amp;gt;&lt;br /&gt;
  &amp;lt;merge key=&amp;quot;input.x11_options.XAxisMapping&amp;quot; type=&amp;quot;string&amp;quot;&amp;gt;6 7&amp;lt;/merge&amp;gt;&lt;br /&gt;
  &amp;lt;merge key=&amp;quot;input.x11_options.YAxisMapping&amp;quot; type=&amp;quot;string&amp;quot;&amp;gt;4 5&amp;lt;/merge&amp;gt;&lt;br /&gt;
  &amp;lt;merge key=&amp;quot;input.x11_options.ZAxsisMapping&amp;quot; type=&amp;quot;string&amp;quot;&amp;gt;4 5&amp;lt;/merge&amp;gt;&lt;br /&gt;
  &amp;lt;merge key=&amp;quot;input.x11_options.Emulate3Buttons&amp;quot; type=&amp;quot;string&amp;quot;&amp;gt;true&amp;lt;/merge&amp;gt;&lt;br /&gt;
 &amp;lt;/match&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reboot&lt;br /&gt;
&lt;br /&gt;
= Setup ThinkVantage Button =&lt;br /&gt;
The ThinkVantage button does not work only in that it is not bound to anything. To bind it go to System&amp;gt;Preferences&amp;gt;Keyboard Shortcuts and set it to perform any command.&lt;br /&gt;
&lt;br /&gt;
= Setup Magnify Fn Button =&lt;br /&gt;
No Solution Yet.&lt;br /&gt;
&lt;br /&gt;
= Setup Fingerprint Reader =&lt;br /&gt;
&lt;br /&gt;
The Thinkfinger driver works fine on the X61. The following is the paraphrased commands from the installing thinkfinger page that are relevant to the X61 and Ubuntu 9.04.&lt;br /&gt;
&lt;br /&gt;
In terminal, add a key:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com F2A12FABE936A7BBDC4EA33351DB180D1323E149&lt;br /&gt;
&lt;br /&gt;
Add the PPA repositories to your sources.list (/etc/apt/sources.list):&lt;br /&gt;
&lt;br /&gt;
 deb http://ppa.launchpad.net/jon-oberheide/ppa/ubuntu jaunty main&lt;br /&gt;
 deb-src http://ppa.launchpad.net/jon-oberheide/ppa/ubuntu jaunty main&lt;br /&gt;
&lt;br /&gt;
Update installer:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
&lt;br /&gt;
And install:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install thinkfinger-tools libpam-thinkfinger&lt;br /&gt;
&lt;br /&gt;
Now the driver is installed and should be working. You can try it (as root) with &lt;br /&gt;
&lt;br /&gt;
 sudo tf-tool --acquire &lt;br /&gt;
&lt;br /&gt;
and &lt;br /&gt;
&lt;br /&gt;
 sudo tf-tool --verify &lt;br /&gt;
&lt;br /&gt;
This will ask you to swipe your finger three times, save the fingerprint to /tmp/test.bir and then verify your fingerprint with the bir-file. &lt;br /&gt;
&lt;br /&gt;
Setup Pam:&lt;br /&gt;
&lt;br /&gt;
 sudo /usr/lib/pam-thinkfinger/pam-thinkfinger-enable&lt;br /&gt;
&lt;br /&gt;
Add user:&lt;br /&gt;
&lt;br /&gt;
 tf-tool --acquire $USERNAME&lt;br /&gt;
&lt;br /&gt;
Optional: Change the login screen to allow keyboard-less login:&lt;br /&gt;
&lt;br /&gt;
Go to: System&amp;gt;Administration&amp;gt;Login Window&lt;br /&gt;
&lt;br /&gt;
Click on the 'Local' tab.&lt;br /&gt;
&lt;br /&gt;
Set the drop-down boxes to: 'Themed with face browser' and 'Selected Only' and choose 'Human List' from the list of logins.&lt;br /&gt;
&lt;br /&gt;
Note: it may take some time for the reader to startup, give it 5 seconds before use and before pressing enter to initiate login.&lt;br /&gt;
&lt;br /&gt;
= Setup Automatic Screen Rotation =&lt;br /&gt;
&lt;br /&gt;
== Automatic Switching from Laptop to Tablet mode ==&lt;br /&gt;
The following was inspired by [[Installing Ubuntu 8.10 (Intrepid Ibex) on an X61 Tablet]], with some minor additions:&lt;br /&gt;
&lt;br /&gt;
* put the following in '''/etc/acpi/events/lenovo-rotate-normal'''&lt;br /&gt;
&lt;br /&gt;
 # /etc/acpi/events/lenovo-rotate-normal&lt;br /&gt;
 # This is called when the user rotates the screen to laptop mode&lt;br /&gt;
 &lt;br /&gt;
 event=ibm/hotkey HKEY 00000080 0000500a&lt;br /&gt;
 action=/etc/acpi/thinkpad-rotatescreen.sh right&lt;br /&gt;
&lt;br /&gt;
* put the following in '''/etc/acpi/events/lenovo-rotate-tablet'''&lt;br /&gt;
&lt;br /&gt;
 # /etc/acpi/events/lenovo-rotate-tablet&lt;br /&gt;
 # This is called when the user rotates the screen to tablet mode&lt;br /&gt;
 &lt;br /&gt;
 event=ibm/hotkey HKEY 00000080 00005009&lt;br /&gt;
 action=/etc/acpi/thinkpad-rotatescreen.sh normal&lt;br /&gt;
&lt;br /&gt;
* put the following in '''/etc/acpi/thinkpad-rotatescreen.sh''' and make it executable&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # This script rotates the display in TabletPCs when screen is changed from&lt;br /&gt;
 # laptop to tablet mode, or when rotation button is pressed&lt;br /&gt;
 &lt;br /&gt;
 test -f /usr/share/acpi-support/key-constants || exit 0&lt;br /&gt;
 &lt;br /&gt;
 . /usr/share/acpi-support/power-funcs&lt;br /&gt;
 &lt;br /&gt;
 # i'm not trusting this ...&lt;br /&gt;
 #if [ -f /var/lib/acpi-support/screen-rotation ] ; then&lt;br /&gt;
 #  ROTATION=`cat /var/lib/acpi-support/screen-rotation`&lt;br /&gt;
 #fi&lt;br /&gt;
 &lt;br /&gt;
 # ... and thus calling this with a parameter&lt;br /&gt;
 ROTATION=&amp;quot;$1&amp;quot; # this should be called &amp;quot;ROTATION_FROM&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 case &amp;quot;$ROTATION&amp;quot; in&lt;br /&gt;
 	right)&lt;br /&gt;
 	NEW_ROTATION=&amp;quot;normal&amp;quot;&lt;br /&gt;
 	NEW_WACOM=&amp;quot;none&amp;quot;&lt;br /&gt;
 	;;&lt;br /&gt;
 	*)&lt;br /&gt;
 	NEW_ROTATION=&amp;quot;right&amp;quot;&lt;br /&gt;
 	NEW_WACOM=&amp;quot;cw&amp;quot;&lt;br /&gt;
 	;;&lt;br /&gt;
 esac&lt;br /&gt;
 &lt;br /&gt;
 for x in /tmp/.X11-unix/*; do&lt;br /&gt;
 	displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`&lt;br /&gt;
 	getXconsole;&lt;br /&gt;
 	if [ x&amp;quot;$XAUTHORITY&amp;quot; != x&amp;quot;&amp;quot; ]; then&lt;br /&gt;
 	    export DISPLAY=&amp;quot;:$displaynum&amp;quot;           &lt;br /&gt;
 	    /usr/bin/xrandr -o $NEW_ROTATION &amp;amp;&amp;amp; echo $NEW_ROTATION &amp;gt; /var/lib/acpi-support/screen-rotation&lt;br /&gt;
 &lt;br /&gt;
 	    # rotate the stylus&lt;br /&gt;
 	    for type in &amp;quot;Serial Wacom Tablet eraser&amp;quot; &amp;quot;Serial Wacom Tablet touch&amp;quot; &amp;quot;Serial Wacom Tablet&amp;quot;  ; do&lt;br /&gt;
 		/usr/bin/xsetwacom set &amp;quot;$type&amp;quot; rotate $NEW_WACOM&lt;br /&gt;
 	    done&lt;br /&gt;
 &lt;br /&gt;
 	    # rotate the arrow keys&lt;br /&gt;
 	    case &amp;quot;$NEW_ROTATION&amp;quot; in&lt;br /&gt;
 		right)&lt;br /&gt;
 			xmodmap - &amp;lt;&amp;lt;END&lt;br /&gt;
 keycode 114 = Up NoSymbol Up NoSymbol Up&lt;br /&gt;
 keycode 111 = Left NoSymbol Left NoSymbol Left&lt;br /&gt;
 keycode 116 = Right NoSymbol Right NoSymbol Right&lt;br /&gt;
 keycode 113 = Down NoSymbol Down NoSymbol Down&lt;br /&gt;
 END&lt;br /&gt;
 			;;&lt;br /&gt;
 		*)&lt;br /&gt;
 			xmodmap - &amp;lt;&amp;lt;END&lt;br /&gt;
 keycode 111 = Up NoSymbol Up NoSymbol Up&lt;br /&gt;
 keycode 113 = Left NoSymbol Left NoSymbol Left&lt;br /&gt;
 keycode 114 = Right NoSymbol Right NoSymbol Right&lt;br /&gt;
 keycode 116 = Down NoSymbol Down NoSymbol Down&lt;br /&gt;
 END&lt;br /&gt;
 			;;&lt;br /&gt;
 	    esac&lt;br /&gt;
 	fi&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: check the output of&lt;br /&gt;
 xsetwacom list dev&lt;br /&gt;
to identify the devices to put in the line&lt;br /&gt;
 for type in &amp;quot;Serial Wacom Tablet eraser&amp;quot; &amp;quot;Serial Wacom Tablet touch&amp;quot; &amp;quot;Serial Wacom Tablet&amp;quot; ; do&lt;br /&gt;
My system has a touch and a cursor device.&lt;br /&gt;
&lt;br /&gt;
== Automatic rotating of display in Tablet mode ==&lt;br /&gt;
&lt;br /&gt;
Install [http://www.krizka.net/projects/autorotate/ Karol Krizka's AutoRotate daemon]. &lt;br /&gt;
&lt;br /&gt;
 sudo add-apt-repository ppa:kkrizka/thinkpad-x61t&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install python-glib python-dbus python-xrandr autorotate&lt;br /&gt;
&lt;br /&gt;
Set up the daemon to start with Gnome&lt;br /&gt;
 sudo gedit /etc/gdm/Init/Default&lt;br /&gt;
Add the following line before the last &amp;quot;exit&amp;quot;&lt;br /&gt;
 auto-rotate.py &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Save your work before restarting Gnome&lt;br /&gt;
 sudo /etc/init.d/gdm restart&lt;br /&gt;
&lt;br /&gt;
You're all set. Note that there is also a manual-rotate.py script that comes with AutoRotate that can be bound to the special function Rotate key. See the author's site above for help with setting the keyboard shortcuts.&lt;br /&gt;
&lt;br /&gt;
= Setup ThinkVantage ActiveProtection =&lt;br /&gt;
&lt;br /&gt;
 sudo cp /etc/modules /etc/modules_backup&lt;br /&gt;
 sudo aptitude install tp-smapi-source&lt;br /&gt;
 sudo module-assistant prepare tp-smapi&lt;br /&gt;
 sudo module-assistant auto-install tp-smapi&lt;br /&gt;
 sudo modprobe tp-smapi&lt;br /&gt;
 sudo aptitude install hdapsd&lt;br /&gt;
 echo 'tp-smapi' | sudo tee -a /etc/modules&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can set the activeprotection sensivity:&lt;br /&gt;
&lt;br /&gt;
 cd /etc/default/&lt;br /&gt;
 gedit hdapsd&lt;br /&gt;
&lt;br /&gt;
 # sensitivity&lt;br /&gt;
 SENSITIVITY=25&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now you can try, if the modules are loaded yet. Do so with &lt;br /&gt;
&lt;br /&gt;
 lsmod | grep hdaps&lt;br /&gt;
&lt;br /&gt;
if not perform:&lt;br /&gt;
&lt;br /&gt;
 sudo modprobe -a thinkpad_ec tp_smapi hdaps&lt;br /&gt;
&lt;br /&gt;
If the installation of hdapsd succeeded, you can test it by typing this into your terminal:&lt;br /&gt;
&lt;br /&gt;
 sudo hdapsd -d sda -s 15 -a -v -y &lt;br /&gt;
&lt;br /&gt;
If you suddenly move your laptop the output will change! (stop it with pressing Ctr + C)&lt;br /&gt;
&lt;br /&gt;
= Useful Task: Disable Bluetooth on Startup =&lt;br /&gt;
These instructions will disable the bluetooth radio being activated during the boot. The radio can then be activated at the users discretion using Fn F5 (Radio Fn Button).&lt;br /&gt;
&lt;br /&gt;
edit /etc/rc.local and add:&lt;br /&gt;
&lt;br /&gt;
 chmod 666 /proc/acpi/ibm/bluetooth &lt;br /&gt;
 echo &amp;quot;disable&amp;quot; &amp;gt; /proc/acpi/ibm/bluetooth&lt;br /&gt;
&lt;br /&gt;
before the 'exit 0' line&lt;br /&gt;
&lt;br /&gt;
*note chmod 666 makes this file editable by everyone, this may compromise security, try different settings to find the one that suits your needs (655 may work)&lt;br /&gt;
&lt;br /&gt;
*note proc is depreciated and may not work in future releases&lt;br /&gt;
&lt;br /&gt;
= Useful Task: Enable Laptop Mode =&lt;br /&gt;
Laptop mode is a power saving tool that allows the hard drive to spin down to conserve battery power. This is disabled by default as it has been known to cause problems on some computers, but it appears to work on the X61t.&lt;br /&gt;
&lt;br /&gt;
*Warning: Laptop mode stores data in ram teporarily until it needs to write to disk. Power Loss in laptop mode could lead to significant data loss.&lt;br /&gt;
&lt;br /&gt;
*Warning: Excessive spin-up spin-down cycles will wear out your hard drive much more quickly than normal use. Be careful when configuring laptop mode settings.  &lt;br /&gt;
&lt;br /&gt;
*Warning: Do Not Use Laptop Mode if you have a SSD. It is for platter drives only.&lt;br /&gt;
&lt;br /&gt;
Edit /etc/default/acpi-support&lt;br /&gt;
&lt;br /&gt;
 sudo gedit /etc/default/acpi-support&lt;br /&gt;
&lt;br /&gt;
Set: &amp;quot;ENABLE_LAPTOP_MODE=true&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Configure Laptop Mode&lt;br /&gt;
&lt;br /&gt;
 sudo gedit /etc/laptop-mode/laptop-mode.conf&lt;br /&gt;
&lt;br /&gt;
= Optional Task: Adjusting Trackpoint Settings =&lt;br /&gt;
If you find that your trackpoint pointer is too slow, use [http://sourceforge.net/projects/tpctl/ control-trackpoint] to adjust your settings. &lt;br /&gt;
&lt;br /&gt;
To install, install sysfsutils first, as per [http://tpctl.sourceforge.net/configure-trackpoint.html tpctl's documentaton] &lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install sysfsutils&lt;br /&gt;
&lt;br /&gt;
then install the .deb from sourceforge (the graphical installer worked for me). Once installed, run:&lt;br /&gt;
&lt;br /&gt;
  sudo configure-trackpoint&lt;br /&gt;
&lt;br /&gt;
= Sources =&lt;br /&gt;
The above is a compilation of my notes from when I installed Jaunty on my X61t. The code and many of the instructions come from various pages and sources around the Internet. I will attempt to document them when time permits. If you see anything that should be added or wish to cite a source I missed, please edit the page.&lt;br /&gt;
&lt;br /&gt;
[[Category:X61 Tablet]]&lt;/div&gt;</summary>
		<author><name>Tripwired</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:HDAPS&amp;diff=49024</id>
		<title>Talk:HDAPS</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:HDAPS&amp;diff=49024"/>
		<updated>2010-07-12T02:37:36Z</updated>

		<summary type="html">&lt;p&gt;Tripwired: /* Question regarding the example udev rule ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Smackpad and Compiz ==&lt;br /&gt;
&lt;br /&gt;
There are a few references to scripts that will switch the workspace when you tap the laptop on the side. I googled for a while and all I could find was pretty old stuff.&lt;br /&gt;
&lt;br /&gt;
A few of the links I found are:&lt;br /&gt;
&lt;br /&gt;
[http://wiki.compiz.org/Plugins/Smackpad Compiz Smackpad Plugin] This one looks very interesting but how do you install it?&lt;br /&gt;
&lt;br /&gt;
[http://www.eugen-feller.de/?p=12 Compiz Smackpad] I could not clone the software.&lt;br /&gt;
&lt;br /&gt;
[http://blog.micampe.it/articles/2006/06/04/here-comes-the-smackpad Here comes the smackpad] No luck here either.&lt;br /&gt;
&lt;br /&gt;
Etc...&lt;br /&gt;
&lt;br /&gt;
So, has anyone got this working recently? How?&lt;br /&gt;
&lt;br /&gt;
Thanks! --[[User:Lunatico|Lunatico]] 18:15, 21 April 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Careful with Gnome HDAPS applet ==&lt;br /&gt;
&lt;br /&gt;
This applet polls /sys/block/sda/device/unload_heads and loads the corresponding icon from disk '''every 10th of a second'''. I'd like to talk to the upstream developer and fix that, but I wouldn't recommend its usage meanwhile. I guess we should warn users in the wiki page? --[[User:Berto|Berto]] 14:40, 3 April 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
--[[User:Lunatico|Lunatico]] 17:45, 21 April 2010 (UTC) Can you elaborate more on this? I'm using the gnome applet and haven't had any perceivable issues.&lt;br /&gt;
&lt;br /&gt;
--[[User:peepingtom|peepingtom]] Try running powertop to observe this. I just turned off the GUI monitoring stuff, you can hear the head park anyway&lt;br /&gt;
&lt;br /&gt;
== Question regarding the example udev rule ? ==&lt;br /&gt;
The example udev rule is as follows.&lt;br /&gt;
* KERNEL==&amp;quot;event[0-9]*&amp;quot;, ATTRS{phys}==&amp;quot;hdaps/input1&amp;quot;, ATTRS{modalias}==&amp;quot;input:b0019v1014p5054e4801-*&amp;quot;, SYMLINK+=&amp;quot;input/hdaps/accelerometer-event&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Where is the '''b0019v1014p5054e4801''' being taken from?&lt;br /&gt;
&lt;br /&gt;
It is from &amp;quot;udevinfo --attribute-walk --name /dev/input/event9&amp;quot; (only with the tp_smapi module)&lt;br /&gt;
&lt;br /&gt;
{{HINT|Lucid does not have udevinfo. Instead, use: &lt;br /&gt;
 udevadm info&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Where can one find the recent hdapsd version mentioned in the article ? ==&lt;br /&gt;
The article mentions &amp;quot;New interface (requires hdapsd dated 2008-10-04 or newer)&amp;quot; without giving any clue about where one can find such a version, I looked in repositories, google and elsewhere in this very site and found an outdated http://www.dresco.co.uk/hdaps/ , as a newcomer here, it eludes me completely. [[User:Bugmenot1|Bugmenot1]] 21:38, 28 November 2008 (CET)&lt;br /&gt;
&lt;br /&gt;
:I had the same problem, I think I found it via [[How_to_protect_the_harddisk_through_APS#Manual_compilation_from_source]], it links to a mailing list post at [http://article.gmane.org/gmane.linux.drivers.hdaps.devel/1040] which has an attached source file at [http://cache.gmane.org//gmane/linux/drivers/hdaps/devel/1040-001.bin], this can be compiled easily with ''gcc -o hdapsd hdapsd.c''. Why this is not released cleanly on the original homepage eludes me as well... --[[User:Centic|Centic]] 12:34, 30 November 2008 (CET)&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Reduced Power&amp;quot; hdapsd Consuming More Power ==&lt;br /&gt;
&lt;br /&gt;
There is a link to a &amp;quot;reduced power&amp;quot; version of hdapsd, which is supposed to lower the number of timer interrupts (thereby reducing the power consumed by the daemon).  From my experiments (using powertop), however, this program requires about twice as many interrupts to operate in &amp;quot;low power&amp;quot; mode as it does using the (older) sysfs interface.  It also consumes enough CPU cycles to force my CPU back on periodically, consuming more power.  Has anybody else had this experience?&lt;br /&gt;
&lt;br /&gt;
--[[User:Mbsullivan|Mbsullivan]] 05:41, 24 August 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Well, not really. With tp_smapi 0.31 and older hdapsd I had wakeups from hdapsd and from the hdaps module, now powertop only shows about 50wakeups from hdapsd (which are really from the module, but this is a bug in powertop, it tells who first called a function, not whose function it is [it's a function in the module code]). So I get a lower power consumption with the newer pair of tpsmapi and hdapsd&lt;br /&gt;
:--[[User:Zhenech|Zhenech]] 07:26, 24 August 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
== I hawe a problem ==&lt;br /&gt;
&lt;br /&gt;
I tray to start working my IBM x40 with hdaps function but I can't make it right.&lt;br /&gt;
&lt;br /&gt;
The main problem is in a not hanging variables when I read&lt;br /&gt;
/sys/devices/platform/hdaps/position&lt;br /&gt;
&lt;br /&gt;
==I also have this problem!==&lt;br /&gt;
Hi, I also have this problem that on my X40 the device/platform/hdaps/position does not give the right response. It is simply constant (128,1).&lt;br /&gt;
Does anyone have a clue? I use the suse kernel 2.6.16.13-4-default from suse10.1. the hdaps sources in that kernel are the same as in the original kernel.&lt;br /&gt;
thanks in advance,&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Does the HDAPS sensor work under Windows (as observed from actual disk parking, or the graphical animation)? &lt;br /&gt;
Also, try loading [[tp_smapi]], it includes some patches for the hdaps driver. Does it help?&lt;br /&gt;
&lt;br /&gt;
--[[User:Thinker|Thinker]] 16:45, 8 June 2006 (CEST)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
HI Again,&lt;br /&gt;
HDAPS does work under windows. When I had windows running and then reboot the machine, hdaps is running under suse10.1 also. If I, however, turn off the machine and restart it, then, hdaps does *not* work anymore.&lt;br /&gt;
I remember that with suse 10.0 and the separate module, hdaps did work.&lt;br /&gt;
HDAPS now works with tp_smapi as suggested above.&lt;br /&gt;
Still, where does the problem derive from?&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The hdaps in the vanilla kernel has some bugs (i.e., in doesn't talk to the hardware correctly) which tp_smapi fixes. Looks like you've hit one of these.&lt;br /&gt;
&lt;br /&gt;
--[[User:Thinker|Thinker]] 18:05, 12 June 2006 (CEST)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==laptop acpi problem with hdaps==&lt;br /&gt;
&amp;lt;b&amp;gt; UPDATE: the problem seems fixed in the version 0.21 &amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;s&amp;gt;&lt;br /&gt;
My my both IBM T42/T43 laptops freezes time to times with the follow:&lt;br /&gt;
&lt;br /&gt;
kernel 2.6.16/sata patch&amp;lt;br&amp;gt;&lt;br /&gt;
hdaps build as a module from the kernel.&lt;br /&gt;
tp_smapi 0.20/hdapsd&lt;br /&gt;
&lt;br /&gt;
The freez is quite common then I access CD-ROM,but it also might freez without touching anything.&amp;lt;br&amp;gt;&lt;br /&gt;
After the freez keyboard doesn't work or priting some character,power button doesn't work, however mouse might continue to work.&amp;lt;br&amp;gt;&lt;br /&gt;
KDE battery systray shows discarchged  batteries.&amp;lt;br&amp;gt;&lt;br /&gt;
Still under investigation that cases the problem.&amp;lt;br&amp;gt;&lt;br /&gt;
The related software:&lt;br /&gt;
khdapsmon 0.1.2&amp;lt;br&amp;gt;&lt;br /&gt;
ibm-acpi build-in as a module from the kernel(for ksensors)&lt;br /&gt;
modified ksensors without lm_sensors with a patch&lt;br /&gt;
http://bugs.gentoo.org/show_bug.cgi?id=116661&lt;br /&gt;
&lt;br /&gt;
--noname 00:25, 13 June 2006 (CEST)Anton&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You're the 2nd one reporting this. The fact you can reproduce it on two machines may be very helpful! Are these machines configured identically? Do they run the same software? Can you send your kernel .config, and precise kernel version + patches, to the e-mail address in the tp_smapi README? Please specify which hdaps or tp_smapi -related applications you're typically running.&lt;br /&gt;
&lt;br /&gt;
BTW, if you have [[swsusp]] or [[Software Suspend 2]] installed, you can do a suspend-to-disk cycle to recover from the hang.&lt;br /&gt;
&lt;br /&gt;
--[[User:Thinker|Thinker]] 11:53, 13 June 2006 (CEST)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
I also have the follow &lt;br /&gt;
[[Problems_with_SATA_and_Linux#No_DMA_on_DVD_drive]].&lt;br /&gt;
So I switched cdrom driver from IDE to ATA and it fixed the problem.&lt;br /&gt;
However HDAPS has stared to freez a machine if I shake it then HDD is active.&lt;br /&gt;
The issue might be not related to ACPI but I'll log it here for now.&lt;br /&gt;
&lt;br /&gt;
I'll send configs. Thank you.&lt;br /&gt;
ps. 0.21 is out so let me try the new version.&lt;br /&gt;
--noname 08:34, 22 June 2006 (CEST)Anton&lt;br /&gt;
&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== hdaps and /sys ==&lt;br /&gt;
&lt;br /&gt;
Hey Fellas,&lt;br /&gt;
&lt;br /&gt;
 I've just upgraded from 2.6.15.2, where the patches all dropped in ok and all was well, to 2.6.17.6, where hdaps is built into the kernel.&lt;br /&gt;
 the hdapsd daemon referenced on thinkwiki looks in /sys/block/&amp;lt;drive&amp;gt;/queue/protect to get started.&lt;br /&gt;
 The default drivers that come with 2.6.17.6 for hdaps apparently dont put anything in /queue there, so there is no 'protect' directory.&lt;br /&gt;
 Has anyone else experienced this? I'd love to get my drive protection back :)&lt;br /&gt;
 ON THE UPSIDE! - the Ricoh card reader in my z60m came to life, and I can read sd cards (but not sony memory sticks, oddly enough)&lt;br /&gt;
 Any input would be awesome!&lt;br /&gt;
 dan@itkinetix.com&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You need an extra kernel patch for &amp;quot;protect&amp;quot;. Please read the page more carefully.&lt;br /&gt;
&lt;br /&gt;
--[[User:Thinker|Thinker]] 00:24, 22 July 2006 (CEST)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Gnome HDAPS-Applet and the new interface ==&lt;br /&gt;
&lt;br /&gt;
I just installed my first linux kernel with the new hdaps disk protection interface. Since the file that controls the (un)parking of the disk heads has changed with this interface, you have to edit the GNOME HDAPS applet source before compiling to make it work. Simply replace the lines&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#define SYSFS_PROTECT_FILE_HDA	&amp;quot;/sys/block/hda/queue/protect&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#define SYSFS_PROTECT_FILE_SDA	&amp;quot;/sys/block/sda/queue/protect&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
with these:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#define SYSFS_PROTECT_FILE_HDA	&amp;quot;/sys/block/hda/device/unload_heads&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#define SYSFS_PROTECT_FILE_SDA	&amp;quot;/sys/block/sda/device/unload_heads&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Then proceed with the instructions in the included INSTALL file.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Another hint: On Ubuntu 8.10, install the hdapsd package, then compile the new version of hdapsd and replace the binary in /usr/sbin. Afterwards edit the /etc/init.d/hdapsd file so it looks for the new interface. Otherwise it will never start hdapsd bcause it's looking for the /sys/block/&amp;lt;device&amp;gt;/queue/protect file which simply doesn't exist. You may want to use the init script I posted at https://bugs.launchpad.net/ubuntu/+source/hdapsd/+bug/303915/comments/3 &amp;lt;br&amp;gt;&lt;br /&gt;
And don't forget that udev-rule to create the symlink hdapsd needs to work!&lt;br /&gt;
&lt;br /&gt;
Kind regards,&amp;lt;br&amp;gt;&lt;br /&gt;
--[[User:Gollo|Gollo]] 20:15, 18 December 2008 (CET)&lt;br /&gt;
&lt;br /&gt;
== Older discussion ==&lt;br /&gt;
&lt;br /&gt;
So, this is in the stable kernel now, but what userspace program do we need to actually park the heads?&lt;br /&gt;
--[[User:MrStaticVoid|MrStaticVoid]] 01:26, 30 Oct 2005 (CEST)&lt;br /&gt;
----&lt;br /&gt;
Yes the hdaps driver is in the 2.6.14 kernel, but support to park the heads quickly and freeze the disk queue (to prevent the heads from getting un-parked) is not. There is some disagreement into how that should be implemented.&lt;br /&gt;
&lt;br /&gt;
In other words, the hdaps driver for the moment is rather useless, unless you want to use it to play games.&lt;br /&gt;
&lt;br /&gt;
--[[User:Tonko|Tonko]] 02:10, 30 Oct 2005 (CEST)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
I head rumours that you can make SDL handle this like a joystick, e.g. for playing Neverball. Can anyone confirm or deny that? Thanx --[[User:Nomeata|Nomeata]] 01:16, 16 Nov 2005 (CET)&lt;br /&gt;
&lt;br /&gt;
Yes it is possible to use it as a joystick, as Tonko allready mentioned.&lt;br /&gt;
/dev/input/jsX modprobe joydev&lt;br /&gt;
&lt;br /&gt;
Ozi&lt;br /&gt;
&lt;br /&gt;
Thanks, I didn't have the joydev module. Rebuilding... --[[User:129.13.186.1|129.13.186.1]] 15:30, 16 Nov 2005 (CET)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Yeah, it's a pretty good party trick - set up the HDAPS joystick as xmame input.  You can play Ms. Pac-man by tilting your laptop to make pac-man navigate the maze.  You can imagine that the pac-man &amp;quot;rolls&amp;quot; downhill, just like those old wooden marble-puzzles that you see around.  Heh, can actually clear a level or two.&lt;br /&gt;
&lt;br /&gt;
Marble madness was strangely unsatisfying though, and just didn't work well (probably due to the diagonal nature of the screen in that game).&lt;br /&gt;
&lt;br /&gt;
--[[User:gsmenden|gsmenden]] 20:10, 13 Jan 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Anyone got the queue freezing patch running on 2.6.16? I'm going to try to manually merge it but didn't want to duplicate someone else's work.&lt;br /&gt;
&lt;br /&gt;
--[[User:Ajbarr|Ajbarr]] 19:12, 22 March 2006 (CET)&lt;/div&gt;</summary>
		<author><name>Tripwired</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Tp_smapi&amp;diff=49023</id>
		<title>Tp smapi</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Tp_smapi&amp;diff=49023"/>
		<updated>2010-07-12T02:33:59Z</updated>

		<summary type="html">&lt;p&gt;Tripwired: /* Installation on Ubuntu Lucid */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;&amp;quot; | __TOC__&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
The &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; kernel module exposes some features of the ThinkPad hardware/firmware via a &amp;lt;tt&amp;gt;sysfs&amp;lt;/tt&amp;gt; interface. Currently, the main implemented functionality is control of battery charging and extended battery status. The tp_smapi software package also includes an improved version of the [[HDAPS]] driver. The underlying hardware interfaces are [[SMAPI support for Linux|SMAPI]] and direct access to the embedded controller.&lt;br /&gt;
&lt;br /&gt;
This driver uses undocumented features and direct hardware access, so it may work unreliably or even damage your hardware; but so far no such damage has been reported.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
*&amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; driver&lt;br /&gt;
**Battery charge/discharge control&lt;br /&gt;
**Battery status information&lt;br /&gt;
*&amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver (compared with the standard &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver)&lt;br /&gt;
**Improved stability&lt;br /&gt;
**Improved model support&lt;br /&gt;
**Improved functionality&lt;br /&gt;
&lt;br /&gt;
===Project Homepage / Availability===&lt;br /&gt;
* Project page: http://tpctl.sourceforge.net/&lt;br /&gt;
* Download page: http://sourceforge.net/projects/tpctl/files/tp_smapi&lt;br /&gt;
* You need to download only the &amp;lt;i&amp;gt;tp_smapi&amp;lt;/i&amp;gt; package.&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
====Installation from source====&lt;br /&gt;
You will need the kernel headers and makefiles corresponding to your current kernel version. On {{Fedora}}, this means {{cmdroot|yum install kernel-devel-$(uname -r)}} .&lt;br /&gt;
&lt;br /&gt;
:{{cmdroot|tar xzvf tp_smapi-0.40.tgz}}&lt;br /&gt;
:{{cmdroot|cd tp_smapi-0.40}}&lt;br /&gt;
&lt;br /&gt;
Then, either compile and load the driver within the current working directory (for testing):&lt;br /&gt;
:{{cmdroot|make load}}&lt;br /&gt;
OR compile and install into the kernel's module path:&lt;br /&gt;
:{{cmdroot|make install}}&lt;br /&gt;
&lt;br /&gt;
If you use the [[HDAPS]] driver, add &amp;lt;tt&amp;gt;HDAPS=1&amp;lt;/tt&amp;gt; to also patch the &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; for compatibility with &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; (this requires a kernel source tree matching the current kernel).&lt;br /&gt;
Again, either load the driver within the current working directory:&lt;br /&gt;
:{{cmdroot|1=make load HDAPS=1}}&lt;br /&gt;
OR install into the kernel's module path:&lt;br /&gt;
:{{cmdroot|1=make install HDAPS=1}}&lt;br /&gt;
&lt;br /&gt;
To prepare a stand-alone patch against the current kernel tree (including&lt;br /&gt;
a patch against &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; and new &amp;lt;tt&amp;gt;Kconfig&amp;lt;/tt&amp;gt; entries):&lt;br /&gt;
:{{cmdroot|make patch}}&lt;br /&gt;
&lt;br /&gt;
To delete all autogenerated files:&lt;br /&gt;
:{{cmdroot|make clean}}&lt;br /&gt;
&lt;br /&gt;
The original kernel tree is never modified by any these commands. &lt;br /&gt;
The {{path|/lib/modules}} directory is modified only by {{cmdroot|make install}}.&lt;br /&gt;
&lt;br /&gt;
====Installation in Gentoo====&lt;br /&gt;
The {{Gentoo}} portage system carries a [http://packages.gentoo.org/package/app-laptop/tp_smapi tp_smapi package], which follows the latest version pretty closely. On a Gentoo system, you can install and load as follows.&lt;br /&gt;
&lt;br /&gt;
If you use the [[HDAPS]] driver, do this first:&lt;br /&gt;
&lt;br /&gt;
* Disable the &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; module in your kernel configuration (Device Drivers &amp;amp;rarr; Hardware Monitoring Support &amp;amp;rarr; IBM Hard Drive Active Protection System)&lt;br /&gt;
* Rebuild and install the kernel&lt;br /&gt;
* Add the &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; use flag in {{path|/etc/make.conf}}&lt;br /&gt;
* {{cmdroot|rmmod hdaps}}&lt;br /&gt;
&lt;br /&gt;
Then:&lt;br /&gt;
* {{cmdroot|emerge tp_smapi}} (or install tp_smapi with hdaps support manually, as above)&lt;br /&gt;
* {{cmdroot|echo &amp;quot;tp_smapi&amp;quot; &amp;gt;&amp;gt; /etc/modules.autoload.d/kernel-2.6}}&lt;br /&gt;
* {{cmdroot|echo &amp;quot;hdaps&amp;quot; &amp;gt;&amp;gt; /etc/modules.autoload.d/kernel-2.6}}&lt;br /&gt;
&lt;br /&gt;
Then reboot, or run:&lt;br /&gt;
* {{cmdroot|modprobe tp_smapi}}&lt;br /&gt;
* {{cmdroot|modprobe hdaps}}&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' If {{cmdroot|modprobe}} fails and dmesg says something about &amp;lt;tt&amp;gt;__stack_chk_fail()&amp;lt;/tt&amp;gt;, you probably just compiled your modules with &amp;lt;tt&amp;gt;-fstack-protector&amp;lt;/tt&amp;gt; and/or &amp;lt;tt&amp;gt;-fstack-protector-all&amp;lt;/tt&amp;gt; without having a kernel that supports it. You can either configure your kernel to have &amp;lt;tt&amp;gt;CC_STACKPROTECTOR&amp;lt;/tt&amp;gt; enabled (in ''Processor type and features'' if you use {{cmdroot|make menuconfig}}) or edit your &amp;lt;tt&amp;gt;make.conf&amp;lt;/tt&amp;gt; (or, if you're using paludis, your &amp;lt;tt&amp;gt;/etc/paludis/bashrc&amp;lt;/tt&amp;gt;) and remove &amp;lt;tt&amp;gt;-fstack-protector&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;-fstack-protector-all&amp;lt;/tt&amp;gt; from your &amp;lt;tt&amp;gt;CFLAGS&amp;lt;/tt&amp;gt;. If you choose to enable it in the kernel, be aware that you need a patched GCC for it (and I do not know if the gcc in stage3 is patched).&lt;br /&gt;
&lt;br /&gt;
====Installation on Debian unstable (sid), testing (squeeze) or stable (lenny)====&lt;br /&gt;
Debian now contains the [http://packages.debian.org/tp-smapi packaged module source] and prebuilt modules for Debian kernels.&lt;br /&gt;
&lt;br /&gt;
If you use a stock Debian kernel, you can install the tp_smapi modules with:&lt;br /&gt;
* {{cmdroot|apt-get install tp-smapi-modules-`uname -r`}}&lt;br /&gt;
* in order to make sure the modules package is kept in sync with the kernel one, you may also want to install the &amp;lt;code&amp;gt;tm-smapi-modules-2.6-686&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;tm-smapi-modules-2.6-amd64&amp;lt;/code&amp;gt; package, depending on your architecture &lt;br /&gt;
&lt;br /&gt;
If you use a custom kernel, you can build tp_smapi with module-assistant:&lt;br /&gt;
* {{cmdroot|aptitude install tp-smapi-source}}&lt;br /&gt;
* {{cmdroot|m-a -t a-i tp-smapi}}&lt;br /&gt;
&lt;br /&gt;
====Installation on openSUSE====&lt;br /&gt;
openSUSE provides rpm packages. Look for them at the package search: [http://software.opensuse.org/search/], search for the package named &amp;quot;tp_smapi&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A step-by-step guide on how a relative linux newbie installed tp_smapi on a Thinkpad W500 running openSuse 11.1 using YAST Software Manager is available [http://forums.opensuse.org/hardware/laptop/417254-tp_smapi-lenovo-thinkpad-t400-t500-w500-step-step.html#post2005932 here]&lt;br /&gt;
&lt;br /&gt;
In case you are taking the hard way around, while compiling on 11.0, make complained about not being able to locate the kernel sources. It worked for me after I did this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;cp /usr/include/linux/aio_abi.h /lib/modules/`uname -r`/build/include/linux/&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Installation on Ubuntu====&lt;br /&gt;
Ubuntu ships tp_smapi in their &amp;lt;tt&amp;gt;linux-ubuntu-modules-*&amp;lt;/tt&amp;gt; package for Hardy, so you don't have to build it yourself. Please note that they have renamed tp_smapi's modified &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; module to &amp;lt;tt&amp;gt;hdaps_ec&amp;lt;/tt&amp;gt; so that the two can coexist. You should load &amp;lt;tt&amp;gt;hdaps_ec&amp;lt;/tt&amp;gt;, not &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ubuntu Intrepid and Jaunty, however, lack the &amp;lt;tt&amp;gt;hdaps_ec&amp;lt;/tt&amp;gt; module, as reported [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/297213 here]. It will not be included again until said [[#Bundled hdaps driver|bundled hdaps driver]] is merged into mainline.&lt;br /&gt;
&lt;br /&gt;
=====Installation on Ubuntu Jaunty=====&lt;br /&gt;
I have posted my experiences [http://meandmyubuntu.blogspot.com/2009/05/getting-hdasp-to-work-on-jaunty.html here]&lt;br /&gt;
&lt;br /&gt;
=====Installation on Ubuntu Karmic=====&lt;br /&gt;
Ubuntu does not ship the precompiled module tp_smapi any more. However the source code is still present in the repository. It can be installed through module-assistant :&lt;br /&gt;
:{{cmdroot|aptitude install tp-smapi-source}}&lt;br /&gt;
:{{cmdroot|module-assistant prepare tp-smapi}}&lt;br /&gt;
:{{cmdroot|module-assistant auto-install tp-smapi}}&lt;br /&gt;
:{{cmdroot|modprobe tp-smapi}}&lt;br /&gt;
&lt;br /&gt;
=====Installation on Ubuntu Lucid=====&lt;br /&gt;
The Karmic solution above works well.&lt;br /&gt;
&lt;br /&gt;
As an alternative, one can use the dkms flavour of the packages via&lt;br /&gt;
:{{cmdroot|aptitude install tp-smapi-dkms}}&lt;br /&gt;
:{{cmdroot|modprobe tp_smapi}}&lt;br /&gt;
&lt;br /&gt;
{{HINT|This appears to be the ideal solution. A description of DKMS, from [http://linux.dell.com/projects.shtml#dkms Dell]: &amp;quot;DKMS stands for Dynamic Kernel Module Support. It is designed to create a framework where kernel dependent module source can reside so that it is very easy to rebuild modules as you upgrade kernels.&amp;quot;}}&lt;br /&gt;
&lt;br /&gt;
====Installation on older Ubuntu/Debian====&lt;br /&gt;
Installation on Ubuntu or Debian is quite easy, but there are a few things to look after:&lt;br /&gt;
&lt;br /&gt;
To get your system ready for compiling code, install the build-essentials (as root, of course, as all of the following comands; Ubuntu users have to prepend 'sudo' to every line and enter their own password when prompted):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;apt-get install build-essential&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get tp_smapi to work, obtain the latest source as mentioned above and unpack it. If you want to use HDAPS, you need to install the kernel source matching te kernel you are running. To do so, issue this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;uname -r&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will give you the version of your current kernel. &lt;br /&gt;
Debian users execute the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;apt-get install linux-source-`uname -r`&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ubuntu users execute the following using the kernel-version only (exclude -XX-generic; e.g. 'linux-source-2.6.20'):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;apt-get install linux-source-`uname -r`&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Be sure to unpack the source file. The easiest way is to open Nautilus as root:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;sudo nautilus&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then browse to /usr/src/ and extract the source file to that directory.&lt;br /&gt;
&lt;br /&gt;
Now change to the tp_smapi dir:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;cd tp_smapi-X.YY&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt; (X.YY being the version-number of [[tp_smapi]])&lt;br /&gt;
and make and install tp_smapi as instructed above.&lt;br /&gt;
&lt;br /&gt;
If you get an error that the kernel version isn't matching (or that you need to set KSRC/KBUILD), please check that there is a symlink from the modules dir to the kernel source:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;root@localhost:~#ls -l /lib/modules/2.6.20-16-generic&lt;br /&gt;
lrwxrwxrwx  1 root root     28 2007-02-02 08:39 build -&amp;gt; /usr/src/linux-source-2.6.20&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Create the link if the line above does not exist:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;root@localhost:~#ln -s /usr/src/linux-source-2.6.20 /lib/modules/2.6.20-16-generic/build&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the following will build and install the correct modules to their locations:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;make install HDAPS=1&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
To make sure your system loads the modules at boot time, do this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;echo &amp;quot;tp_smapi&amp;quot; &amp;gt;&amp;gt; /etc/modules&lt;br /&gt;
echo &amp;quot;hdaps&amp;quot; &amp;gt;&amp;gt; /etc/modules&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
and update your initramfs:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;update-initramfs -u&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get tp_smapi running now, just load the modules:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;modprobe -a tp_smapi hdaps&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This description was tested on Kubuntu 'Feisty Fawn' and should work on all Debian-based distros with minor tweaks.&lt;br /&gt;
&lt;br /&gt;
'''EDIT:''' Works on Kubuntu 7.10 (&amp;quot;Gutsy Gibbon&amp;quot;), too&lt;br /&gt;
&lt;br /&gt;
===Battery charge control features===&lt;br /&gt;
To set the thresholds for starting and stopping battery charging (in percent of current full charge capacity):&lt;br /&gt;
:{{cmdroot|echo 40 &amp;gt; /sys/devices/platform/smapi/BAT0/start_charge_thresh}}&lt;br /&gt;
:{{cmdroot|echo 70 &amp;gt; /sys/devices/platform/smapi/BAT0/stop_charge_thresh}}&lt;br /&gt;
:{{cmdroot|cat /sys/devices/platform/smapi/BAT0/*_charge_thresh}}&lt;br /&gt;
{{HINT|Battery charging thresholds can be used to keep Li-Ion and Li-Polymer batteries partially charged, in order to [[Maintenance#Battery_treatment|increase their lifetime]].}}&lt;br /&gt;
To prevent charging for 17 minutes (regardless of thresholds):&lt;br /&gt;
:{{cmdroot|echo 17 &amp;gt; /sys/devices/platform/smapi/BAT0/inhibit_charge_minutes}}&lt;br /&gt;
{{HINT|Charge inhibiting can be used to reduce the power draw of the laptop, in order to use an under-spec power supply that can't handle the combined power draw of running and charging. It can also be used to control which battery is charged when [[How to use UltraBay batteries|using an Ultrabay battery]].}}&lt;br /&gt;
&lt;br /&gt;
To cancel charging preventation:&lt;br /&gt;
:{{cmdroot|echo 0 &amp;gt; /sys/devices/platform/smapi/BAT0/inhibit_charge_minutes}}&lt;br /&gt;
&lt;br /&gt;
To force battery discharging (even if connected to AC):&lt;br /&gt;
:{{cmdroot|echo 1 &amp;gt; /sys/devices/platform/smapi/BAT0/force_discharge}}&lt;br /&gt;
{{HINT|This can be used to choose which battery is discharged when [[How to use UltraBay batteries|using an UltraBay battery]]. For example, see the {{CodeRef|tp-bat-balance}} script.}}&lt;br /&gt;
&lt;br /&gt;
To cancel forced discharge:&lt;br /&gt;
:{{cmdroot|echo 0 &amp;gt; /sys/devices/platform/smapi/BAT0/force_discharge}}&lt;br /&gt;
&lt;br /&gt;
====Making the settings permanent on reboot====&lt;br /&gt;
&lt;br /&gt;
If you always use the same type of battery, then you may want the same settings to be configured each time you boot the machine.&lt;br /&gt;
&lt;br /&gt;
If you use various types of battery, then you may want to consider writing some scripts to detect the battery type and apply the appropriate settings.&lt;br /&gt;
&lt;br /&gt;
=====Debian=====&lt;br /&gt;
&lt;br /&gt;
It is not necessary to create your own init.d script or modify /etc/rc.local - you just need the package sysfsutils:&lt;br /&gt;
:{{cmdroot|apt-get install sysfsutils}}&lt;br /&gt;
&lt;br /&gt;
Now, put your desired settings in /etc/sysfs.conf:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;# cat &amp;gt;&amp;gt; /etc/sysfs.conf &amp;lt;&amp;lt; EOF&lt;br /&gt;
# For a LiIon battery in a Thinkpad&lt;br /&gt;
devices/platform/smapi/BAT0/start_charge_thresh = 50&lt;br /&gt;
devices/platform/smapi/BAT0/stop_charge_thresh = 80&lt;br /&gt;
EOF&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The init script supplied by sysfsutils will load these settings on each boot.&lt;br /&gt;
&lt;br /&gt;
===Battery status features===&lt;br /&gt;
To view extended battery status such as charging state, voltage, current, capacity, cycle count and model information:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/installed&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/state       # idle/charging/discharging&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/cycle_count&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/current_now # instantaneous current&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/current_avg # last minute average&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/power_now   # instantaneous power&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/power_avg   # last minute average&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/last_full_capacity&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/remaining_percent&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/remaining_running_time&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/remaining_charging_time&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/remaining_capacity&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/design_capacity&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/voltage&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/design_voltage&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/manufacturer&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/model&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/barcoding&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/chemistry&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/serial&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/manufacture_date&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/first_use_date&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/temperature # in milli-Celsius&lt;br /&gt;
# cat /sys/devices/platform/smapi/ac_connected&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The raw status data is also available, including some fields not listed above (in case you can figure them out):&lt;br /&gt;
&lt;br /&gt;
:{{cmdroot|cat /sys/devices/platform/smapi/BAT0/dump}}&lt;br /&gt;
&lt;br /&gt;
In all of the above, replace &amp;lt;tt&amp;gt;BAT0&amp;lt;/tt&amp;gt; with &amp;lt;tt&amp;gt;BAT1&amp;lt;/tt&amp;gt; to address the 2nd battery.&lt;br /&gt;
&lt;br /&gt;
Note that the battery status readout conflicts with the stock [[HDAPS|hdaps]] driver, so if you use &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; you will need to load &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; using {{cmdroot|1=make load HDAPS=1}} (see [[#Bundled hdaps driver|Bundled hdaps driver]] below).&lt;br /&gt;
&lt;br /&gt;
On [[ACPI]]-enabled systems, most of above information is also available through the files under {{path|/proc/acpi/battery}}. However, the ACPI interface does not include the instantaneous power and cycle count readouts, and does not work well when [[How to use UltraBay batteries|hotswapping UltraBay batteries]].&lt;br /&gt;
&lt;br /&gt;
====Scripts====&lt;br /&gt;
Some scripts can make it easier to grep the information you need from tp_smapi&lt;br /&gt;
* [[battery.rb]]&lt;br /&gt;
&lt;br /&gt;
===Other features===&lt;br /&gt;
&lt;br /&gt;
There is also [[sysfs]] attribute for making direct SMAPI requests to the SM BIOS firmware. Don't touch it unless you really know what you're doing. Example:&lt;br /&gt;
 # echo '211a 100 0 0' &amp;gt; /sys/devices/platform/smapi/smapi_request; cat /sys/devices/platform/smapi/smapi_request&lt;br /&gt;
 211a 34b b2 0 0 0 'OK'&lt;br /&gt;
The &amp;quot;4b&amp;quot; in the 2nd value, converted to decimal, is 75: the current charging stop threshold (stop_charge_thresh).&lt;br /&gt;
&lt;br /&gt;
===Bundled &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver===&lt;br /&gt;
&lt;br /&gt;
The tp_smapi package includes a modified version of the &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; Linux kernel driver used by the [[HDAPS]] system. It has remained outside the mainline kernel for a few years for several reasons, [https://lists.ubuntu.com/archives/kernel-team/2009-April/005565.html] including the upstream maintainer's assertion that the new code's anonymous author was under a NDA. (Although this would not normally expose the kernel team to litigation.) [http://lkml.org/lkml/2008/9/15/126] [http://lkml.org/lkml/2008/10/7/403] [http://lkml.org/lkml/2008/10/7/428]&lt;br /&gt;
&lt;br /&gt;
To use &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; concurrently, you '''must''' use the modified version.&lt;br /&gt;
&lt;br /&gt;
To build the modified version, simply append the &amp;lt;tt&amp;gt;HDAPS=1&amp;lt;/tt&amp;gt; parameter to the &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; command (see [[#Installation|Installation]] above):&lt;br /&gt;
:{{cmdroot|1=make load HDAPS=1}}&lt;br /&gt;
or&lt;br /&gt;
:{{cmdroot|1=make install HDAPS=1}}&lt;br /&gt;
&lt;br /&gt;
If you don't do that, you will not be able to load &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; (and its support module &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt;) when &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; is loaded, and vice versa. You can use &amp;lt;tt&amp;gt;rmmod&amp;lt;/tt&amp;gt; to switch between these modules.&lt;br /&gt;
&lt;br /&gt;
Note that some of the battery status is also visible through ACPI ({{path|/proc/acpi/battery/*}}), independently of &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The modified &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; has several changes:&lt;br /&gt;
* The &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver in mainline kernels conflicts with the extended battery status (they use the same IO ports). The modified &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; coordinates this access through the bundled &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt; driver.&lt;br /&gt;
* The modified &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver fixes reliability and improves support for recent ThinkPad models (*60 and newer), since unlike the mainline driver, it correctly follows the Embedded Controller communication protocol.&lt;br /&gt;
* Several other improvements, such as the ability to control the polling rate.&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
==== &amp;lt;tt&amp;gt;thinkpad_ec: cannot claim io ports 0x1600-0x161f&amp;lt;/tt&amp;gt; ====&lt;br /&gt;
The &amp;quot;&amp;lt;tt&amp;gt;thinkpad_ec: cannot claim io ports 0x1600-0x161f!&amp;lt;/tt&amp;gt;&amp;quot; error message is printed when loading the &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt; module on some recent ThinkPad models.  This occurs because the ACPI BIOS DSDT is reserving ports used by tp_smapi.&lt;br /&gt;
&lt;br /&gt;
As a workaround, add the &amp;lt;tt&amp;gt;force_io=1&amp;lt;/tt&amp;gt; module parameter to &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt; in {{path|/etc/modprobe.conf}} (or your distribution's equivalent). Add the line:&lt;br /&gt;
: options thinkpad_ec force_io=1&lt;br /&gt;
&lt;br /&gt;
For transient testing, load the modules as follows:&lt;br /&gt;
&lt;br /&gt;
: {{cmdroot|1=make load HDAPS=1 FORCE_IO=1}}&lt;br /&gt;
&lt;br /&gt;
Note: force_io option was added in tp_smapi v0.40 (released 2008-12-16).&lt;br /&gt;
&lt;br /&gt;
Models which need this option include:&lt;br /&gt;
* ThinkPad {{T400}}&lt;br /&gt;
* ThinkPad {{T500}}&lt;br /&gt;
* ThinkPad {{X301}}&lt;br /&gt;
&lt;br /&gt;
More information:&lt;br /&gt;
* http://bugzilla.kernel.org/show_bug.cgi?id=12221&lt;br /&gt;
* http://www.nabble.com/thinkpad_ec-fails-to-load-on-Thinkpad-T500-td19932985.html&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;tt&amp;gt;thinkpad_ec: no ThinkPad embedded controller!&amp;lt;/tt&amp;gt; ====&lt;br /&gt;
If you get &amp;quot;&amp;lt;tt&amp;gt;thinkpad_ec: no ThinkPad embedded controller!&amp;lt;/tt&amp;gt;&amp;quot; when trying to load the module on a supported model listed below, you should [[BIOS_Upgrade|upgrade your BIOS]]. Some early BIOS (like 1.x on the X31) don't handle the embedded controller.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;tt&amp;gt;T60p writing to start_charge_thresh/stop_charge_thresh does not work!&amp;lt;/tt&amp;gt; ====&lt;br /&gt;
Writing to /sys/devices/platform/smapi/BAT0/start_charge_thresh succeeds, but the older value does not change. Solution: unknown. If you know a solution please update here.&lt;br /&gt;
&lt;br /&gt;
UPDATE:  Failure to effectively change sysfs values sometimes happens at boot time (through sysfs.conf OR etc/local.start for instance) when the values have never previously been changed manually (ie using echo from a shell).  Try initializing the values manually before including them in boot-time scripting.&lt;br /&gt;
&lt;br /&gt;
===Model-specific status===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 92%&amp;quot;&amp;gt;&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|+&amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; feature support matrix&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; | &lt;br /&gt;
=====A series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{A22p}} 2629-USG&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{A30}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
=====G series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{G41}}&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====R series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{R31}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || N/A || N/A ||      ||  || || No SMAPI BIOS&lt;br /&gt;
|-&lt;br /&gt;
! {{R40}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R50}}&lt;br /&gt;
| {{Cunk}} || {{Cno}}  || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R50e}} 1834-JAG&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R50e}} 1834-5US&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R50p}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R51}} 18*&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.32 || 3.22 || || Machine types 1829, 1830, 1831 and 1836&lt;br /&gt;
|-&lt;br /&gt;
! {{R51}} 28*&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      || 1.29 || || Machine types 2883, 2887, 2888, 2889, 2894 and 2495&lt;br /&gt;
|-&lt;br /&gt;
! {{R52}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.33 || 1.29 || 1.06 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} ||{{Cyes}}  || {{Cno|text=}} 1 || 0.33 || || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R61}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} ||{{Cyes}}  || {{Cyes|text=}} 1 || 0.35-test1 || 7KETA7WW 2.07 || 7KHT24WW 1.08 || Machine type 8918&lt;br /&gt;
|-&lt;br /&gt;
! {{R61i}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} ||{{Cunk}}  || {{Cunk}}  ||    ||   ||   || Machine type 8250&lt;br /&gt;
|-&lt;br /&gt;
! {{R400}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} ||{{Cyes}}  || {{Cyes|text=}} 1 || 0.40-1   ||   ||   || Machine type 7443&lt;br /&gt;
|-&lt;br /&gt;
! {{R500}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} ||{{Cunk}}  || {{Cyes|text=}} 1 || 0.40-1   ||   ||   ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====T series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{T20}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || N/A || N/A ||      ||  || || Has SMAPI BIOS but no function is supported. EC LPC3 protocol fails.&lt;br /&gt;
|-&lt;br /&gt;
! {{T22}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || N/A || N/A ||      ||  || || Has SMAPI BIOS but no function is supported. EC LPC3 protocol fails.&lt;br /&gt;
|-&lt;br /&gt;
! {{T23}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T30}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T40}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T40p}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T41}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.37 || 3.23 || 3.04 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T41}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.40 || 3.20 || 3.04 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T41}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.40 || 3.23 || 3.04 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T41p}} 2373-AM9&lt;br /&gt;
| {{Cno}} || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.32 || 3.20 || v3.04 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T42}}&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T42p}} 2373-KXU&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.32 || 3.21 || || Stop charge threshold works in Windows, but dmesg says &amp;quot;__get_real_thresh: cannot get stop_thresh of bat=0: Function is not supported by SMAPI BIOS&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
! {{T42p}} 2373-KUU&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T43}} 2686&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.33 || 1.27 || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T43p}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes|text=}} 0 ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 7 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 1 || 0.34 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}} 1951-24G&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || 0.36 || 1.09a || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}} 2007-FSG&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.39 || 1.10 || 1.05b ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}} 1951-CZ1&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.40 || 2.23 || 1.07 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60p}} 8743-CTO&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T61}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 1 || 0.32 ||  || || [http://ubuntuforums.org/showthread.php?p=3146719 ref]&lt;br /&gt;
|-&lt;br /&gt;
! {{T61p}} 6457-7XG&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 1 || 0.32 ||  || || [http://ubuntuforums.org/showthread.php?p=3146719 ref]&lt;br /&gt;
|-&lt;br /&gt;
! {{T400}} &lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes|text=}}  1 || 0.40 || 1.19 || || Requires &amp;lt;tt&amp;gt;force_io=1&amp;lt;/tt&amp;gt; parameter to &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! {{T400s}} &lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes|text=}} 2 || 0.40 || 1.06 || || Requires &amp;lt;tt&amp;gt;invert=2&amp;lt;/tt&amp;gt; paramteter to &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
! {{T410}} &lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes|text=}}  1 || 0.40 || 1.25 || || &lt;br /&gt;
|-&lt;br /&gt;
! {{T500}}&lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes|text=}}  1 || 0.40 || 2.07 || || Requires &amp;lt;tt&amp;gt;force_io=1&amp;lt;/tt&amp;gt; parameter to &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! {{T510}}&lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cno|text=}}  7 || 0.40 || 1.12 || 1.08 || ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====W series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{W700}} 2757-CTO&lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cunk}} || {{Cunk}} ||  0.40 || 2.08 || 1.05 ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====X series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{X22}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || N/A || N/A ||      ||  || || no EC controller found&lt;br /&gt;
|-&lt;br /&gt;
! {{X24}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X30}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}} || {{Cyes}} || N/A || N/A || 0.34  || 1.09 || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X31}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X32}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X40}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 3 || 0.32 || 2.08 || 1.62 || &lt;br /&gt;
|-&lt;br /&gt;
! {{X41}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 3 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X41_Tablet}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 3 || 0.40  || 75ET60WW (2.06 ) || 75HT20WW (1.02) ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 ||      || 2.07 || 1.10 || 2.6.20 issue (see discussion)&lt;br /&gt;
|-&lt;br /&gt;
! {{X60_Tablet}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 3 || 0.34  || 7JET25WW (1.10 )  || 7JHT13WW 1.04 || [http://luke.no-ip.org/x60tablet/ ref] [http://rad.bioinfo.ulaval.ca/hardware/x60tablet ref]&lt;br /&gt;
|-&lt;br /&gt;
! {{X60s}} 1704-5UG&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cno|text=}} 3 || 0.34 || 7BETD2WW 2.13 || 7BHT40WW 1.13 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X60s}} 1704-56G&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cno|text=}} 3 || 0.40 || 7BETD5WW 2.16 || 7BHT40WW 1.13 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61}} 7673-CTO&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.37 || 7NETB9WW (2.19) || {{Cunk}} ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61}} 7675-CTO&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cno|text=}} 6 || 0.35-test1       ||  ||  ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61}} 7675-4KU&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 || 0.34 || 7NET30WW (1.11 ) || 7MHT24WW 1.02 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61_Tablet}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 || 0.32  ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61s}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 / 3 || 0.32 ||  || || [http://www.slackwiki.org/ThinkPad_X61s ref] says 3 but conflicting report received&lt;br /&gt;
|-&lt;br /&gt;
! {{X100e}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.40 || 6XET36WW (1.20a) || 6XHT36WW (1.176000) || x100e NTS4UTX, dual-core L625 also works (NTT27MH)&lt;br /&gt;
|-&lt;br /&gt;
! {{X200}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 7 || 0.40 || 6DET40WW (2.04 ) || 7XHT22WW 1.04 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X200s}} 7470-X01&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 5 || 0.40 || 6DET63WW (3.13) || 7XHT24WW 1.06 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X201s}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 5 || 0.40 || 6QET44WW (1.14 ) || ECP: 1.09/1.09 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X300}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || 0.37 || 7TET25WW (1.02 ) || 7THT15WW 1.00c ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====Z series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{Z60m}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{Z60t}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{Z61m}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{Z61t}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} ||      ||  || || [https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.20/+bug/45014 ref]&lt;br /&gt;
|-&lt;br /&gt;
! {{Z61p}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====SL series and IdeaPad=====&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:left&amp;quot; |&lt;br /&gt;
The ThinkPad SL series and IdeaPad series have firmware that is completely different from other ThinkPad models. Neither [[tp_smapi]] nor [[thinkpad-acpi]] support these models.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SMAPI capabilities may depend on the BIOS version as well, so upgrading to the latest version of the BIOS might provide more SMAPI functions (especially true for long-lived BIOS with lots of releases, like the TP-1R).&lt;br /&gt;
&lt;br /&gt;
Please update the above and report your experience on the [[Talk:tp_smapi|discussion]] page. If the module loads but gives a &amp;quot;&amp;lt;tt&amp;gt;not supported&amp;lt;/tt&amp;gt;&amp;quot; or &amp;quot;&amp;lt;tt&amp;gt;not implementeded&amp;lt;/tt&amp;gt;&amp;quot; error when you try to use some specific file in {{path|/sys/devices/platform/smapi/}}, please report the &amp;lt;tt&amp;gt;dmesg&amp;lt;/tt&amp;gt; output and whether the corresponding functionality is available under Windows - maybe your ThinkPad just can't do that. &lt;br /&gt;
&lt;br /&gt;
While at it, you may also want to add your laptop to the [[list of DMI IDs]].&lt;br /&gt;
&lt;br /&gt;
=====HDAPS axis orientation=====&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; The HDAPS axis orientation is set using the &amp;lt;tt&amp;gt;invert&amp;lt;/tt&amp;gt; module parameter (at load time) or sysfs attribute (at runtime). The &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver of tp_smapi supports all 8 possible sensor orientations (inversion and swapping). You can use [[HDAPS#Visualisation_of_ThinkPad_orientation|hdaps visualisation]] to check if the settings is correct.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;invert&amp;lt;/tt&amp;gt; parameter is an integer between 0 and 7, whose meaning is defined below. (This is confusing. Most people will find it easier to just try all 8 possibilities.)&lt;br /&gt;
&lt;br /&gt;
Let &amp;lt;tt&amp;gt;X&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;Y&amp;lt;/tt&amp;gt; denote the hardware readouts. Let &amp;lt;tt&amp;gt;R&amp;lt;/tt&amp;gt; denote the laptop's roll (tilt left/right), and let &amp;lt;tt&amp;gt;P&amp;lt;/tt&amp;gt; denote the laptop's pitch (tilt forward/backward). The possible values are as follows:&lt;br /&gt;
    invert=0:   R= X  P= Y   (same as mainline)&lt;br /&gt;
    invert=1:   R=-X  P=-Y   (same as mainline)&lt;br /&gt;
    invert=2:   R=-X  P= Y   (new)&lt;br /&gt;
    invert=3:   R= X  P=-Y   (new)&lt;br /&gt;
    invert=4:   R= Y  P= X   (new)&lt;br /&gt;
    invert=5:   R=-Y  P=-X   (new)&lt;br /&gt;
    invert=6:   R=-Y  P= X   (new)&lt;br /&gt;
    invert=7:   R= Y  P=-X   (new)&lt;br /&gt;
&lt;br /&gt;
[[Category:Drivers]] [[Category:Patches]]&lt;br /&gt;
&lt;br /&gt;
===Tools using this driver===&lt;br /&gt;
&lt;br /&gt;
The driver's interface can be accessed directly through the files under {{path|/sys/devices/platform/smapi}}, or via the following tools:&lt;br /&gt;
* [[KThinkBat]] - display battery status on the KDE &amp;lt;tt&amp;gt;kicker&amp;lt;/tt&amp;gt; panel.&lt;br /&gt;
* [[gkrellm-ThinkBat]] - battery status plugin for Gkrellm2&lt;br /&gt;
* {{CodeRef|thinkpad-smapi.sh}} - script to display various SMAPI information using tp_smapi module.&lt;br /&gt;
&lt;br /&gt;
== Headline text ==&lt;/div&gt;</summary>
		<author><name>Tripwired</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Tp_smapi&amp;diff=49022</id>
		<title>Tp smapi</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Tp_smapi&amp;diff=49022"/>
		<updated>2010-07-12T02:33:10Z</updated>

		<summary type="html">&lt;p&gt;Tripwired: /* Installation on Ubuntu Lucid */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;&amp;quot; | __TOC__&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
The &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; kernel module exposes some features of the ThinkPad hardware/firmware via a &amp;lt;tt&amp;gt;sysfs&amp;lt;/tt&amp;gt; interface. Currently, the main implemented functionality is control of battery charging and extended battery status. The tp_smapi software package also includes an improved version of the [[HDAPS]] driver. The underlying hardware interfaces are [[SMAPI support for Linux|SMAPI]] and direct access to the embedded controller.&lt;br /&gt;
&lt;br /&gt;
This driver uses undocumented features and direct hardware access, so it may work unreliably or even damage your hardware; but so far no such damage has been reported.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
*&amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; driver&lt;br /&gt;
**Battery charge/discharge control&lt;br /&gt;
**Battery status information&lt;br /&gt;
*&amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver (compared with the standard &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver)&lt;br /&gt;
**Improved stability&lt;br /&gt;
**Improved model support&lt;br /&gt;
**Improved functionality&lt;br /&gt;
&lt;br /&gt;
===Project Homepage / Availability===&lt;br /&gt;
* Project page: http://tpctl.sourceforge.net/&lt;br /&gt;
* Download page: http://sourceforge.net/projects/tpctl/files/tp_smapi&lt;br /&gt;
* You need to download only the &amp;lt;i&amp;gt;tp_smapi&amp;lt;/i&amp;gt; package.&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
====Installation from source====&lt;br /&gt;
You will need the kernel headers and makefiles corresponding to your current kernel version. On {{Fedora}}, this means {{cmdroot|yum install kernel-devel-$(uname -r)}} .&lt;br /&gt;
&lt;br /&gt;
:{{cmdroot|tar xzvf tp_smapi-0.40.tgz}}&lt;br /&gt;
:{{cmdroot|cd tp_smapi-0.40}}&lt;br /&gt;
&lt;br /&gt;
Then, either compile and load the driver within the current working directory (for testing):&lt;br /&gt;
:{{cmdroot|make load}}&lt;br /&gt;
OR compile and install into the kernel's module path:&lt;br /&gt;
:{{cmdroot|make install}}&lt;br /&gt;
&lt;br /&gt;
If you use the [[HDAPS]] driver, add &amp;lt;tt&amp;gt;HDAPS=1&amp;lt;/tt&amp;gt; to also patch the &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; for compatibility with &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; (this requires a kernel source tree matching the current kernel).&lt;br /&gt;
Again, either load the driver within the current working directory:&lt;br /&gt;
:{{cmdroot|1=make load HDAPS=1}}&lt;br /&gt;
OR install into the kernel's module path:&lt;br /&gt;
:{{cmdroot|1=make install HDAPS=1}}&lt;br /&gt;
&lt;br /&gt;
To prepare a stand-alone patch against the current kernel tree (including&lt;br /&gt;
a patch against &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; and new &amp;lt;tt&amp;gt;Kconfig&amp;lt;/tt&amp;gt; entries):&lt;br /&gt;
:{{cmdroot|make patch}}&lt;br /&gt;
&lt;br /&gt;
To delete all autogenerated files:&lt;br /&gt;
:{{cmdroot|make clean}}&lt;br /&gt;
&lt;br /&gt;
The original kernel tree is never modified by any these commands. &lt;br /&gt;
The {{path|/lib/modules}} directory is modified only by {{cmdroot|make install}}.&lt;br /&gt;
&lt;br /&gt;
====Installation in Gentoo====&lt;br /&gt;
The {{Gentoo}} portage system carries a [http://packages.gentoo.org/package/app-laptop/tp_smapi tp_smapi package], which follows the latest version pretty closely. On a Gentoo system, you can install and load as follows.&lt;br /&gt;
&lt;br /&gt;
If you use the [[HDAPS]] driver, do this first:&lt;br /&gt;
&lt;br /&gt;
* Disable the &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; module in your kernel configuration (Device Drivers &amp;amp;rarr; Hardware Monitoring Support &amp;amp;rarr; IBM Hard Drive Active Protection System)&lt;br /&gt;
* Rebuild and install the kernel&lt;br /&gt;
* Add the &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; use flag in {{path|/etc/make.conf}}&lt;br /&gt;
* {{cmdroot|rmmod hdaps}}&lt;br /&gt;
&lt;br /&gt;
Then:&lt;br /&gt;
* {{cmdroot|emerge tp_smapi}} (or install tp_smapi with hdaps support manually, as above)&lt;br /&gt;
* {{cmdroot|echo &amp;quot;tp_smapi&amp;quot; &amp;gt;&amp;gt; /etc/modules.autoload.d/kernel-2.6}}&lt;br /&gt;
* {{cmdroot|echo &amp;quot;hdaps&amp;quot; &amp;gt;&amp;gt; /etc/modules.autoload.d/kernel-2.6}}&lt;br /&gt;
&lt;br /&gt;
Then reboot, or run:&lt;br /&gt;
* {{cmdroot|modprobe tp_smapi}}&lt;br /&gt;
* {{cmdroot|modprobe hdaps}}&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' If {{cmdroot|modprobe}} fails and dmesg says something about &amp;lt;tt&amp;gt;__stack_chk_fail()&amp;lt;/tt&amp;gt;, you probably just compiled your modules with &amp;lt;tt&amp;gt;-fstack-protector&amp;lt;/tt&amp;gt; and/or &amp;lt;tt&amp;gt;-fstack-protector-all&amp;lt;/tt&amp;gt; without having a kernel that supports it. You can either configure your kernel to have &amp;lt;tt&amp;gt;CC_STACKPROTECTOR&amp;lt;/tt&amp;gt; enabled (in ''Processor type and features'' if you use {{cmdroot|make menuconfig}}) or edit your &amp;lt;tt&amp;gt;make.conf&amp;lt;/tt&amp;gt; (or, if you're using paludis, your &amp;lt;tt&amp;gt;/etc/paludis/bashrc&amp;lt;/tt&amp;gt;) and remove &amp;lt;tt&amp;gt;-fstack-protector&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;-fstack-protector-all&amp;lt;/tt&amp;gt; from your &amp;lt;tt&amp;gt;CFLAGS&amp;lt;/tt&amp;gt;. If you choose to enable it in the kernel, be aware that you need a patched GCC for it (and I do not know if the gcc in stage3 is patched).&lt;br /&gt;
&lt;br /&gt;
====Installation on Debian unstable (sid), testing (squeeze) or stable (lenny)====&lt;br /&gt;
Debian now contains the [http://packages.debian.org/tp-smapi packaged module source] and prebuilt modules for Debian kernels.&lt;br /&gt;
&lt;br /&gt;
If you use a stock Debian kernel, you can install the tp_smapi modules with:&lt;br /&gt;
* {{cmdroot|apt-get install tp-smapi-modules-`uname -r`}}&lt;br /&gt;
* in order to make sure the modules package is kept in sync with the kernel one, you may also want to install the &amp;lt;code&amp;gt;tm-smapi-modules-2.6-686&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;tm-smapi-modules-2.6-amd64&amp;lt;/code&amp;gt; package, depending on your architecture &lt;br /&gt;
&lt;br /&gt;
If you use a custom kernel, you can build tp_smapi with module-assistant:&lt;br /&gt;
* {{cmdroot|aptitude install tp-smapi-source}}&lt;br /&gt;
* {{cmdroot|m-a -t a-i tp-smapi}}&lt;br /&gt;
&lt;br /&gt;
====Installation on openSUSE====&lt;br /&gt;
openSUSE provides rpm packages. Look for them at the package search: [http://software.opensuse.org/search/], search for the package named &amp;quot;tp_smapi&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A step-by-step guide on how a relative linux newbie installed tp_smapi on a Thinkpad W500 running openSuse 11.1 using YAST Software Manager is available [http://forums.opensuse.org/hardware/laptop/417254-tp_smapi-lenovo-thinkpad-t400-t500-w500-step-step.html#post2005932 here]&lt;br /&gt;
&lt;br /&gt;
In case you are taking the hard way around, while compiling on 11.0, make complained about not being able to locate the kernel sources. It worked for me after I did this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;cp /usr/include/linux/aio_abi.h /lib/modules/`uname -r`/build/include/linux/&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Installation on Ubuntu====&lt;br /&gt;
Ubuntu ships tp_smapi in their &amp;lt;tt&amp;gt;linux-ubuntu-modules-*&amp;lt;/tt&amp;gt; package for Hardy, so you don't have to build it yourself. Please note that they have renamed tp_smapi's modified &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; module to &amp;lt;tt&amp;gt;hdaps_ec&amp;lt;/tt&amp;gt; so that the two can coexist. You should load &amp;lt;tt&amp;gt;hdaps_ec&amp;lt;/tt&amp;gt;, not &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ubuntu Intrepid and Jaunty, however, lack the &amp;lt;tt&amp;gt;hdaps_ec&amp;lt;/tt&amp;gt; module, as reported [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/297213 here]. It will not be included again until said [[#Bundled hdaps driver|bundled hdaps driver]] is merged into mainline.&lt;br /&gt;
&lt;br /&gt;
=====Installation on Ubuntu Jaunty=====&lt;br /&gt;
I have posted my experiences [http://meandmyubuntu.blogspot.com/2009/05/getting-hdasp-to-work-on-jaunty.html here]&lt;br /&gt;
&lt;br /&gt;
=====Installation on Ubuntu Karmic=====&lt;br /&gt;
Ubuntu does not ship the precompiled module tp_smapi any more. However the source code is still present in the repository. It can be installed through module-assistant :&lt;br /&gt;
:{{cmdroot|aptitude install tp-smapi-source}}&lt;br /&gt;
:{{cmdroot|module-assistant prepare tp-smapi}}&lt;br /&gt;
:{{cmdroot|module-assistant auto-install tp-smapi}}&lt;br /&gt;
:{{cmdroot|modprobe tp-smapi}}&lt;br /&gt;
&lt;br /&gt;
=====Installation on Ubuntu Lucid=====&lt;br /&gt;
The Karmic solution above works well.&lt;br /&gt;
&lt;br /&gt;
As an alternative, one can use the dkms flavour of the packages via&lt;br /&gt;
:{{cmdroot|aptitude install tp-smapi-dkms}}&lt;br /&gt;
:{{cmdroot|modprobe tp_smapi}}&lt;br /&gt;
&lt;br /&gt;
{{HINT|This appears to be the ideal solution. For anyone wondering what DKMS is, from [http://linux.dell.com/projects.shtml#dkms Dell]: &amp;quot;DKMS stands for Dynamic Kernel Module Support. It is designed to create a framework where kernel dependent module source can reside so that it is very easy to rebuild modules as you upgrade kernels.&amp;quot;}}&lt;br /&gt;
&lt;br /&gt;
====Installation on older Ubuntu/Debian====&lt;br /&gt;
Installation on Ubuntu or Debian is quite easy, but there are a few things to look after:&lt;br /&gt;
&lt;br /&gt;
To get your system ready for compiling code, install the build-essentials (as root, of course, as all of the following comands; Ubuntu users have to prepend 'sudo' to every line and enter their own password when prompted):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;apt-get install build-essential&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get tp_smapi to work, obtain the latest source as mentioned above and unpack it. If you want to use HDAPS, you need to install the kernel source matching te kernel you are running. To do so, issue this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;uname -r&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will give you the version of your current kernel. &lt;br /&gt;
Debian users execute the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;apt-get install linux-source-`uname -r`&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ubuntu users execute the following using the kernel-version only (exclude -XX-generic; e.g. 'linux-source-2.6.20'):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;apt-get install linux-source-`uname -r`&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Be sure to unpack the source file. The easiest way is to open Nautilus as root:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;sudo nautilus&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then browse to /usr/src/ and extract the source file to that directory.&lt;br /&gt;
&lt;br /&gt;
Now change to the tp_smapi dir:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;cd tp_smapi-X.YY&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt; (X.YY being the version-number of [[tp_smapi]])&lt;br /&gt;
and make and install tp_smapi as instructed above.&lt;br /&gt;
&lt;br /&gt;
If you get an error that the kernel version isn't matching (or that you need to set KSRC/KBUILD), please check that there is a symlink from the modules dir to the kernel source:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;root@localhost:~#ls -l /lib/modules/2.6.20-16-generic&lt;br /&gt;
lrwxrwxrwx  1 root root     28 2007-02-02 08:39 build -&amp;gt; /usr/src/linux-source-2.6.20&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Create the link if the line above does not exist:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;root@localhost:~#ln -s /usr/src/linux-source-2.6.20 /lib/modules/2.6.20-16-generic/build&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the following will build and install the correct modules to their locations:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;make install HDAPS=1&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
To make sure your system loads the modules at boot time, do this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;echo &amp;quot;tp_smapi&amp;quot; &amp;gt;&amp;gt; /etc/modules&lt;br /&gt;
echo &amp;quot;hdaps&amp;quot; &amp;gt;&amp;gt; /etc/modules&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
and update your initramfs:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;update-initramfs -u&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get tp_smapi running now, just load the modules:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;modprobe -a tp_smapi hdaps&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This description was tested on Kubuntu 'Feisty Fawn' and should work on all Debian-based distros with minor tweaks.&lt;br /&gt;
&lt;br /&gt;
'''EDIT:''' Works on Kubuntu 7.10 (&amp;quot;Gutsy Gibbon&amp;quot;), too&lt;br /&gt;
&lt;br /&gt;
===Battery charge control features===&lt;br /&gt;
To set the thresholds for starting and stopping battery charging (in percent of current full charge capacity):&lt;br /&gt;
:{{cmdroot|echo 40 &amp;gt; /sys/devices/platform/smapi/BAT0/start_charge_thresh}}&lt;br /&gt;
:{{cmdroot|echo 70 &amp;gt; /sys/devices/platform/smapi/BAT0/stop_charge_thresh}}&lt;br /&gt;
:{{cmdroot|cat /sys/devices/platform/smapi/BAT0/*_charge_thresh}}&lt;br /&gt;
{{HINT|Battery charging thresholds can be used to keep Li-Ion and Li-Polymer batteries partially charged, in order to [[Maintenance#Battery_treatment|increase their lifetime]].}}&lt;br /&gt;
To prevent charging for 17 minutes (regardless of thresholds):&lt;br /&gt;
:{{cmdroot|echo 17 &amp;gt; /sys/devices/platform/smapi/BAT0/inhibit_charge_minutes}}&lt;br /&gt;
{{HINT|Charge inhibiting can be used to reduce the power draw of the laptop, in order to use an under-spec power supply that can't handle the combined power draw of running and charging. It can also be used to control which battery is charged when [[How to use UltraBay batteries|using an Ultrabay battery]].}}&lt;br /&gt;
&lt;br /&gt;
To cancel charging preventation:&lt;br /&gt;
:{{cmdroot|echo 0 &amp;gt; /sys/devices/platform/smapi/BAT0/inhibit_charge_minutes}}&lt;br /&gt;
&lt;br /&gt;
To force battery discharging (even if connected to AC):&lt;br /&gt;
:{{cmdroot|echo 1 &amp;gt; /sys/devices/platform/smapi/BAT0/force_discharge}}&lt;br /&gt;
{{HINT|This can be used to choose which battery is discharged when [[How to use UltraBay batteries|using an UltraBay battery]]. For example, see the {{CodeRef|tp-bat-balance}} script.}}&lt;br /&gt;
&lt;br /&gt;
To cancel forced discharge:&lt;br /&gt;
:{{cmdroot|echo 0 &amp;gt; /sys/devices/platform/smapi/BAT0/force_discharge}}&lt;br /&gt;
&lt;br /&gt;
====Making the settings permanent on reboot====&lt;br /&gt;
&lt;br /&gt;
If you always use the same type of battery, then you may want the same settings to be configured each time you boot the machine.&lt;br /&gt;
&lt;br /&gt;
If you use various types of battery, then you may want to consider writing some scripts to detect the battery type and apply the appropriate settings.&lt;br /&gt;
&lt;br /&gt;
=====Debian=====&lt;br /&gt;
&lt;br /&gt;
It is not necessary to create your own init.d script or modify /etc/rc.local - you just need the package sysfsutils:&lt;br /&gt;
:{{cmdroot|apt-get install sysfsutils}}&lt;br /&gt;
&lt;br /&gt;
Now, put your desired settings in /etc/sysfs.conf:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;# cat &amp;gt;&amp;gt; /etc/sysfs.conf &amp;lt;&amp;lt; EOF&lt;br /&gt;
# For a LiIon battery in a Thinkpad&lt;br /&gt;
devices/platform/smapi/BAT0/start_charge_thresh = 50&lt;br /&gt;
devices/platform/smapi/BAT0/stop_charge_thresh = 80&lt;br /&gt;
EOF&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The init script supplied by sysfsutils will load these settings on each boot.&lt;br /&gt;
&lt;br /&gt;
===Battery status features===&lt;br /&gt;
To view extended battery status such as charging state, voltage, current, capacity, cycle count and model information:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/installed&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/state       # idle/charging/discharging&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/cycle_count&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/current_now # instantaneous current&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/current_avg # last minute average&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/power_now   # instantaneous power&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/power_avg   # last minute average&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/last_full_capacity&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/remaining_percent&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/remaining_running_time&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/remaining_charging_time&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/remaining_capacity&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/design_capacity&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/voltage&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/design_voltage&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/manufacturer&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/model&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/barcoding&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/chemistry&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/serial&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/manufacture_date&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/first_use_date&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/temperature # in milli-Celsius&lt;br /&gt;
# cat /sys/devices/platform/smapi/ac_connected&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The raw status data is also available, including some fields not listed above (in case you can figure them out):&lt;br /&gt;
&lt;br /&gt;
:{{cmdroot|cat /sys/devices/platform/smapi/BAT0/dump}}&lt;br /&gt;
&lt;br /&gt;
In all of the above, replace &amp;lt;tt&amp;gt;BAT0&amp;lt;/tt&amp;gt; with &amp;lt;tt&amp;gt;BAT1&amp;lt;/tt&amp;gt; to address the 2nd battery.&lt;br /&gt;
&lt;br /&gt;
Note that the battery status readout conflicts with the stock [[HDAPS|hdaps]] driver, so if you use &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; you will need to load &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; using {{cmdroot|1=make load HDAPS=1}} (see [[#Bundled hdaps driver|Bundled hdaps driver]] below).&lt;br /&gt;
&lt;br /&gt;
On [[ACPI]]-enabled systems, most of above information is also available through the files under {{path|/proc/acpi/battery}}. However, the ACPI interface does not include the instantaneous power and cycle count readouts, and does not work well when [[How to use UltraBay batteries|hotswapping UltraBay batteries]].&lt;br /&gt;
&lt;br /&gt;
====Scripts====&lt;br /&gt;
Some scripts can make it easier to grep the information you need from tp_smapi&lt;br /&gt;
* [[battery.rb]]&lt;br /&gt;
&lt;br /&gt;
===Other features===&lt;br /&gt;
&lt;br /&gt;
There is also [[sysfs]] attribute for making direct SMAPI requests to the SM BIOS firmware. Don't touch it unless you really know what you're doing. Example:&lt;br /&gt;
 # echo '211a 100 0 0' &amp;gt; /sys/devices/platform/smapi/smapi_request; cat /sys/devices/platform/smapi/smapi_request&lt;br /&gt;
 211a 34b b2 0 0 0 'OK'&lt;br /&gt;
The &amp;quot;4b&amp;quot; in the 2nd value, converted to decimal, is 75: the current charging stop threshold (stop_charge_thresh).&lt;br /&gt;
&lt;br /&gt;
===Bundled &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver===&lt;br /&gt;
&lt;br /&gt;
The tp_smapi package includes a modified version of the &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; Linux kernel driver used by the [[HDAPS]] system. It has remained outside the mainline kernel for a few years for several reasons, [https://lists.ubuntu.com/archives/kernel-team/2009-April/005565.html] including the upstream maintainer's assertion that the new code's anonymous author was under a NDA. (Although this would not normally expose the kernel team to litigation.) [http://lkml.org/lkml/2008/9/15/126] [http://lkml.org/lkml/2008/10/7/403] [http://lkml.org/lkml/2008/10/7/428]&lt;br /&gt;
&lt;br /&gt;
To use &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; concurrently, you '''must''' use the modified version.&lt;br /&gt;
&lt;br /&gt;
To build the modified version, simply append the &amp;lt;tt&amp;gt;HDAPS=1&amp;lt;/tt&amp;gt; parameter to the &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; command (see [[#Installation|Installation]] above):&lt;br /&gt;
:{{cmdroot|1=make load HDAPS=1}}&lt;br /&gt;
or&lt;br /&gt;
:{{cmdroot|1=make install HDAPS=1}}&lt;br /&gt;
&lt;br /&gt;
If you don't do that, you will not be able to load &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; (and its support module &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt;) when &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; is loaded, and vice versa. You can use &amp;lt;tt&amp;gt;rmmod&amp;lt;/tt&amp;gt; to switch between these modules.&lt;br /&gt;
&lt;br /&gt;
Note that some of the battery status is also visible through ACPI ({{path|/proc/acpi/battery/*}}), independently of &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The modified &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; has several changes:&lt;br /&gt;
* The &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver in mainline kernels conflicts with the extended battery status (they use the same IO ports). The modified &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; coordinates this access through the bundled &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt; driver.&lt;br /&gt;
* The modified &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver fixes reliability and improves support for recent ThinkPad models (*60 and newer), since unlike the mainline driver, it correctly follows the Embedded Controller communication protocol.&lt;br /&gt;
* Several other improvements, such as the ability to control the polling rate.&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
==== &amp;lt;tt&amp;gt;thinkpad_ec: cannot claim io ports 0x1600-0x161f&amp;lt;/tt&amp;gt; ====&lt;br /&gt;
The &amp;quot;&amp;lt;tt&amp;gt;thinkpad_ec: cannot claim io ports 0x1600-0x161f!&amp;lt;/tt&amp;gt;&amp;quot; error message is printed when loading the &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt; module on some recent ThinkPad models.  This occurs because the ACPI BIOS DSDT is reserving ports used by tp_smapi.&lt;br /&gt;
&lt;br /&gt;
As a workaround, add the &amp;lt;tt&amp;gt;force_io=1&amp;lt;/tt&amp;gt; module parameter to &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt; in {{path|/etc/modprobe.conf}} (or your distribution's equivalent). Add the line:&lt;br /&gt;
: options thinkpad_ec force_io=1&lt;br /&gt;
&lt;br /&gt;
For transient testing, load the modules as follows:&lt;br /&gt;
&lt;br /&gt;
: {{cmdroot|1=make load HDAPS=1 FORCE_IO=1}}&lt;br /&gt;
&lt;br /&gt;
Note: force_io option was added in tp_smapi v0.40 (released 2008-12-16).&lt;br /&gt;
&lt;br /&gt;
Models which need this option include:&lt;br /&gt;
* ThinkPad {{T400}}&lt;br /&gt;
* ThinkPad {{T500}}&lt;br /&gt;
* ThinkPad {{X301}}&lt;br /&gt;
&lt;br /&gt;
More information:&lt;br /&gt;
* http://bugzilla.kernel.org/show_bug.cgi?id=12221&lt;br /&gt;
* http://www.nabble.com/thinkpad_ec-fails-to-load-on-Thinkpad-T500-td19932985.html&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;tt&amp;gt;thinkpad_ec: no ThinkPad embedded controller!&amp;lt;/tt&amp;gt; ====&lt;br /&gt;
If you get &amp;quot;&amp;lt;tt&amp;gt;thinkpad_ec: no ThinkPad embedded controller!&amp;lt;/tt&amp;gt;&amp;quot; when trying to load the module on a supported model listed below, you should [[BIOS_Upgrade|upgrade your BIOS]]. Some early BIOS (like 1.x on the X31) don't handle the embedded controller.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;tt&amp;gt;T60p writing to start_charge_thresh/stop_charge_thresh does not work!&amp;lt;/tt&amp;gt; ====&lt;br /&gt;
Writing to /sys/devices/platform/smapi/BAT0/start_charge_thresh succeeds, but the older value does not change. Solution: unknown. If you know a solution please update here.&lt;br /&gt;
&lt;br /&gt;
UPDATE:  Failure to effectively change sysfs values sometimes happens at boot time (through sysfs.conf OR etc/local.start for instance) when the values have never previously been changed manually (ie using echo from a shell).  Try initializing the values manually before including them in boot-time scripting.&lt;br /&gt;
&lt;br /&gt;
===Model-specific status===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 92%&amp;quot;&amp;gt;&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|+&amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; feature support matrix&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; | &lt;br /&gt;
=====A series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{A22p}} 2629-USG&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{A30}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
=====G series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{G41}}&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====R series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{R31}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || N/A || N/A ||      ||  || || No SMAPI BIOS&lt;br /&gt;
|-&lt;br /&gt;
! {{R40}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R50}}&lt;br /&gt;
| {{Cunk}} || {{Cno}}  || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R50e}} 1834-JAG&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R50e}} 1834-5US&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R50p}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R51}} 18*&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.32 || 3.22 || || Machine types 1829, 1830, 1831 and 1836&lt;br /&gt;
|-&lt;br /&gt;
! {{R51}} 28*&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      || 1.29 || || Machine types 2883, 2887, 2888, 2889, 2894 and 2495&lt;br /&gt;
|-&lt;br /&gt;
! {{R52}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.33 || 1.29 || 1.06 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} ||{{Cyes}}  || {{Cno|text=}} 1 || 0.33 || || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R61}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} ||{{Cyes}}  || {{Cyes|text=}} 1 || 0.35-test1 || 7KETA7WW 2.07 || 7KHT24WW 1.08 || Machine type 8918&lt;br /&gt;
|-&lt;br /&gt;
! {{R61i}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} ||{{Cunk}}  || {{Cunk}}  ||    ||   ||   || Machine type 8250&lt;br /&gt;
|-&lt;br /&gt;
! {{R400}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} ||{{Cyes}}  || {{Cyes|text=}} 1 || 0.40-1   ||   ||   || Machine type 7443&lt;br /&gt;
|-&lt;br /&gt;
! {{R500}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} ||{{Cunk}}  || {{Cyes|text=}} 1 || 0.40-1   ||   ||   ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====T series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{T20}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || N/A || N/A ||      ||  || || Has SMAPI BIOS but no function is supported. EC LPC3 protocol fails.&lt;br /&gt;
|-&lt;br /&gt;
! {{T22}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || N/A || N/A ||      ||  || || Has SMAPI BIOS but no function is supported. EC LPC3 protocol fails.&lt;br /&gt;
|-&lt;br /&gt;
! {{T23}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T30}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T40}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T40p}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T41}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.37 || 3.23 || 3.04 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T41}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.40 || 3.20 || 3.04 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T41}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.40 || 3.23 || 3.04 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T41p}} 2373-AM9&lt;br /&gt;
| {{Cno}} || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.32 || 3.20 || v3.04 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T42}}&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T42p}} 2373-KXU&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.32 || 3.21 || || Stop charge threshold works in Windows, but dmesg says &amp;quot;__get_real_thresh: cannot get stop_thresh of bat=0: Function is not supported by SMAPI BIOS&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
! {{T42p}} 2373-KUU&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T43}} 2686&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.33 || 1.27 || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T43p}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes|text=}} 0 ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 7 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 1 || 0.34 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}} 1951-24G&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || 0.36 || 1.09a || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}} 2007-FSG&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.39 || 1.10 || 1.05b ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}} 1951-CZ1&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.40 || 2.23 || 1.07 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60p}} 8743-CTO&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T61}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 1 || 0.32 ||  || || [http://ubuntuforums.org/showthread.php?p=3146719 ref]&lt;br /&gt;
|-&lt;br /&gt;
! {{T61p}} 6457-7XG&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 1 || 0.32 ||  || || [http://ubuntuforums.org/showthread.php?p=3146719 ref]&lt;br /&gt;
|-&lt;br /&gt;
! {{T400}} &lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes|text=}}  1 || 0.40 || 1.19 || || Requires &amp;lt;tt&amp;gt;force_io=1&amp;lt;/tt&amp;gt; parameter to &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! {{T400s}} &lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes|text=}} 2 || 0.40 || 1.06 || || Requires &amp;lt;tt&amp;gt;invert=2&amp;lt;/tt&amp;gt; paramteter to &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
! {{T410}} &lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes|text=}}  1 || 0.40 || 1.25 || || &lt;br /&gt;
|-&lt;br /&gt;
! {{T500}}&lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes|text=}}  1 || 0.40 || 2.07 || || Requires &amp;lt;tt&amp;gt;force_io=1&amp;lt;/tt&amp;gt; parameter to &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! {{T510}}&lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cno|text=}}  7 || 0.40 || 1.12 || 1.08 || ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====W series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{W700}} 2757-CTO&lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cunk}} || {{Cunk}} ||  0.40 || 2.08 || 1.05 ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====X series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{X22}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || N/A || N/A ||      ||  || || no EC controller found&lt;br /&gt;
|-&lt;br /&gt;
! {{X24}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X30}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}} || {{Cyes}} || N/A || N/A || 0.34  || 1.09 || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X31}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X32}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X40}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 3 || 0.32 || 2.08 || 1.62 || &lt;br /&gt;
|-&lt;br /&gt;
! {{X41}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 3 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X41_Tablet}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 3 || 0.40  || 75ET60WW (2.06 ) || 75HT20WW (1.02) ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 ||      || 2.07 || 1.10 || 2.6.20 issue (see discussion)&lt;br /&gt;
|-&lt;br /&gt;
! {{X60_Tablet}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 3 || 0.34  || 7JET25WW (1.10 )  || 7JHT13WW 1.04 || [http://luke.no-ip.org/x60tablet/ ref] [http://rad.bioinfo.ulaval.ca/hardware/x60tablet ref]&lt;br /&gt;
|-&lt;br /&gt;
! {{X60s}} 1704-5UG&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cno|text=}} 3 || 0.34 || 7BETD2WW 2.13 || 7BHT40WW 1.13 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X60s}} 1704-56G&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cno|text=}} 3 || 0.40 || 7BETD5WW 2.16 || 7BHT40WW 1.13 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61}} 7673-CTO&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.37 || 7NETB9WW (2.19) || {{Cunk}} ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61}} 7675-CTO&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cno|text=}} 6 || 0.35-test1       ||  ||  ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61}} 7675-4KU&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 || 0.34 || 7NET30WW (1.11 ) || 7MHT24WW 1.02 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61_Tablet}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 || 0.32  ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61s}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 / 3 || 0.32 ||  || || [http://www.slackwiki.org/ThinkPad_X61s ref] says 3 but conflicting report received&lt;br /&gt;
|-&lt;br /&gt;
! {{X100e}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.40 || 6XET36WW (1.20a) || 6XHT36WW (1.176000) || x100e NTS4UTX, dual-core L625 also works (NTT27MH)&lt;br /&gt;
|-&lt;br /&gt;
! {{X200}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 7 || 0.40 || 6DET40WW (2.04 ) || 7XHT22WW 1.04 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X200s}} 7470-X01&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 5 || 0.40 || 6DET63WW (3.13) || 7XHT24WW 1.06 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X201s}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 5 || 0.40 || 6QET44WW (1.14 ) || ECP: 1.09/1.09 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X300}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || 0.37 || 7TET25WW (1.02 ) || 7THT15WW 1.00c ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====Z series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{Z60m}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{Z60t}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{Z61m}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{Z61t}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} ||      ||  || || [https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.20/+bug/45014 ref]&lt;br /&gt;
|-&lt;br /&gt;
! {{Z61p}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====SL series and IdeaPad=====&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:left&amp;quot; |&lt;br /&gt;
The ThinkPad SL series and IdeaPad series have firmware that is completely different from other ThinkPad models. Neither [[tp_smapi]] nor [[thinkpad-acpi]] support these models.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SMAPI capabilities may depend on the BIOS version as well, so upgrading to the latest version of the BIOS might provide more SMAPI functions (especially true for long-lived BIOS with lots of releases, like the TP-1R).&lt;br /&gt;
&lt;br /&gt;
Please update the above and report your experience on the [[Talk:tp_smapi|discussion]] page. If the module loads but gives a &amp;quot;&amp;lt;tt&amp;gt;not supported&amp;lt;/tt&amp;gt;&amp;quot; or &amp;quot;&amp;lt;tt&amp;gt;not implementeded&amp;lt;/tt&amp;gt;&amp;quot; error when you try to use some specific file in {{path|/sys/devices/platform/smapi/}}, please report the &amp;lt;tt&amp;gt;dmesg&amp;lt;/tt&amp;gt; output and whether the corresponding functionality is available under Windows - maybe your ThinkPad just can't do that. &lt;br /&gt;
&lt;br /&gt;
While at it, you may also want to add your laptop to the [[list of DMI IDs]].&lt;br /&gt;
&lt;br /&gt;
=====HDAPS axis orientation=====&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; The HDAPS axis orientation is set using the &amp;lt;tt&amp;gt;invert&amp;lt;/tt&amp;gt; module parameter (at load time) or sysfs attribute (at runtime). The &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver of tp_smapi supports all 8 possible sensor orientations (inversion and swapping). You can use [[HDAPS#Visualisation_of_ThinkPad_orientation|hdaps visualisation]] to check if the settings is correct.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;invert&amp;lt;/tt&amp;gt; parameter is an integer between 0 and 7, whose meaning is defined below. (This is confusing. Most people will find it easier to just try all 8 possibilities.)&lt;br /&gt;
&lt;br /&gt;
Let &amp;lt;tt&amp;gt;X&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;Y&amp;lt;/tt&amp;gt; denote the hardware readouts. Let &amp;lt;tt&amp;gt;R&amp;lt;/tt&amp;gt; denote the laptop's roll (tilt left/right), and let &amp;lt;tt&amp;gt;P&amp;lt;/tt&amp;gt; denote the laptop's pitch (tilt forward/backward). The possible values are as follows:&lt;br /&gt;
    invert=0:   R= X  P= Y   (same as mainline)&lt;br /&gt;
    invert=1:   R=-X  P=-Y   (same as mainline)&lt;br /&gt;
    invert=2:   R=-X  P= Y   (new)&lt;br /&gt;
    invert=3:   R= X  P=-Y   (new)&lt;br /&gt;
    invert=4:   R= Y  P= X   (new)&lt;br /&gt;
    invert=5:   R=-Y  P=-X   (new)&lt;br /&gt;
    invert=6:   R=-Y  P= X   (new)&lt;br /&gt;
    invert=7:   R= Y  P=-X   (new)&lt;br /&gt;
&lt;br /&gt;
[[Category:Drivers]] [[Category:Patches]]&lt;br /&gt;
&lt;br /&gt;
===Tools using this driver===&lt;br /&gt;
&lt;br /&gt;
The driver's interface can be accessed directly through the files under {{path|/sys/devices/platform/smapi}}, or via the following tools:&lt;br /&gt;
* [[KThinkBat]] - display battery status on the KDE &amp;lt;tt&amp;gt;kicker&amp;lt;/tt&amp;gt; panel.&lt;br /&gt;
* [[gkrellm-ThinkBat]] - battery status plugin for Gkrellm2&lt;br /&gt;
* {{CodeRef|thinkpad-smapi.sh}} - script to display various SMAPI information using tp_smapi module.&lt;br /&gt;
&lt;br /&gt;
== Headline text ==&lt;/div&gt;</summary>
		<author><name>Tripwired</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Tp_smapi&amp;diff=49021</id>
		<title>Tp smapi</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Tp_smapi&amp;diff=49021"/>
		<updated>2010-07-12T02:32:48Z</updated>

		<summary type="html">&lt;p&gt;Tripwired: /* Installation on Ubuntu Lucid */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;&amp;quot; | __TOC__&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
The &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; kernel module exposes some features of the ThinkPad hardware/firmware via a &amp;lt;tt&amp;gt;sysfs&amp;lt;/tt&amp;gt; interface. Currently, the main implemented functionality is control of battery charging and extended battery status. The tp_smapi software package also includes an improved version of the [[HDAPS]] driver. The underlying hardware interfaces are [[SMAPI support for Linux|SMAPI]] and direct access to the embedded controller.&lt;br /&gt;
&lt;br /&gt;
This driver uses undocumented features and direct hardware access, so it may work unreliably or even damage your hardware; but so far no such damage has been reported.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
*&amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; driver&lt;br /&gt;
**Battery charge/discharge control&lt;br /&gt;
**Battery status information&lt;br /&gt;
*&amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver (compared with the standard &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver)&lt;br /&gt;
**Improved stability&lt;br /&gt;
**Improved model support&lt;br /&gt;
**Improved functionality&lt;br /&gt;
&lt;br /&gt;
===Project Homepage / Availability===&lt;br /&gt;
* Project page: http://tpctl.sourceforge.net/&lt;br /&gt;
* Download page: http://sourceforge.net/projects/tpctl/files/tp_smapi&lt;br /&gt;
* You need to download only the &amp;lt;i&amp;gt;tp_smapi&amp;lt;/i&amp;gt; package.&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
====Installation from source====&lt;br /&gt;
You will need the kernel headers and makefiles corresponding to your current kernel version. On {{Fedora}}, this means {{cmdroot|yum install kernel-devel-$(uname -r)}} .&lt;br /&gt;
&lt;br /&gt;
:{{cmdroot|tar xzvf tp_smapi-0.40.tgz}}&lt;br /&gt;
:{{cmdroot|cd tp_smapi-0.40}}&lt;br /&gt;
&lt;br /&gt;
Then, either compile and load the driver within the current working directory (for testing):&lt;br /&gt;
:{{cmdroot|make load}}&lt;br /&gt;
OR compile and install into the kernel's module path:&lt;br /&gt;
:{{cmdroot|make install}}&lt;br /&gt;
&lt;br /&gt;
If you use the [[HDAPS]] driver, add &amp;lt;tt&amp;gt;HDAPS=1&amp;lt;/tt&amp;gt; to also patch the &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; for compatibility with &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; (this requires a kernel source tree matching the current kernel).&lt;br /&gt;
Again, either load the driver within the current working directory:&lt;br /&gt;
:{{cmdroot|1=make load HDAPS=1}}&lt;br /&gt;
OR install into the kernel's module path:&lt;br /&gt;
:{{cmdroot|1=make install HDAPS=1}}&lt;br /&gt;
&lt;br /&gt;
To prepare a stand-alone patch against the current kernel tree (including&lt;br /&gt;
a patch against &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; and new &amp;lt;tt&amp;gt;Kconfig&amp;lt;/tt&amp;gt; entries):&lt;br /&gt;
:{{cmdroot|make patch}}&lt;br /&gt;
&lt;br /&gt;
To delete all autogenerated files:&lt;br /&gt;
:{{cmdroot|make clean}}&lt;br /&gt;
&lt;br /&gt;
The original kernel tree is never modified by any these commands. &lt;br /&gt;
The {{path|/lib/modules}} directory is modified only by {{cmdroot|make install}}.&lt;br /&gt;
&lt;br /&gt;
====Installation in Gentoo====&lt;br /&gt;
The {{Gentoo}} portage system carries a [http://packages.gentoo.org/package/app-laptop/tp_smapi tp_smapi package], which follows the latest version pretty closely. On a Gentoo system, you can install and load as follows.&lt;br /&gt;
&lt;br /&gt;
If you use the [[HDAPS]] driver, do this first:&lt;br /&gt;
&lt;br /&gt;
* Disable the &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; module in your kernel configuration (Device Drivers &amp;amp;rarr; Hardware Monitoring Support &amp;amp;rarr; IBM Hard Drive Active Protection System)&lt;br /&gt;
* Rebuild and install the kernel&lt;br /&gt;
* Add the &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; use flag in {{path|/etc/make.conf}}&lt;br /&gt;
* {{cmdroot|rmmod hdaps}}&lt;br /&gt;
&lt;br /&gt;
Then:&lt;br /&gt;
* {{cmdroot|emerge tp_smapi}} (or install tp_smapi with hdaps support manually, as above)&lt;br /&gt;
* {{cmdroot|echo &amp;quot;tp_smapi&amp;quot; &amp;gt;&amp;gt; /etc/modules.autoload.d/kernel-2.6}}&lt;br /&gt;
* {{cmdroot|echo &amp;quot;hdaps&amp;quot; &amp;gt;&amp;gt; /etc/modules.autoload.d/kernel-2.6}}&lt;br /&gt;
&lt;br /&gt;
Then reboot, or run:&lt;br /&gt;
* {{cmdroot|modprobe tp_smapi}}&lt;br /&gt;
* {{cmdroot|modprobe hdaps}}&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' If {{cmdroot|modprobe}} fails and dmesg says something about &amp;lt;tt&amp;gt;__stack_chk_fail()&amp;lt;/tt&amp;gt;, you probably just compiled your modules with &amp;lt;tt&amp;gt;-fstack-protector&amp;lt;/tt&amp;gt; and/or &amp;lt;tt&amp;gt;-fstack-protector-all&amp;lt;/tt&amp;gt; without having a kernel that supports it. You can either configure your kernel to have &amp;lt;tt&amp;gt;CC_STACKPROTECTOR&amp;lt;/tt&amp;gt; enabled (in ''Processor type and features'' if you use {{cmdroot|make menuconfig}}) or edit your &amp;lt;tt&amp;gt;make.conf&amp;lt;/tt&amp;gt; (or, if you're using paludis, your &amp;lt;tt&amp;gt;/etc/paludis/bashrc&amp;lt;/tt&amp;gt;) and remove &amp;lt;tt&amp;gt;-fstack-protector&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;-fstack-protector-all&amp;lt;/tt&amp;gt; from your &amp;lt;tt&amp;gt;CFLAGS&amp;lt;/tt&amp;gt;. If you choose to enable it in the kernel, be aware that you need a patched GCC for it (and I do not know if the gcc in stage3 is patched).&lt;br /&gt;
&lt;br /&gt;
====Installation on Debian unstable (sid), testing (squeeze) or stable (lenny)====&lt;br /&gt;
Debian now contains the [http://packages.debian.org/tp-smapi packaged module source] and prebuilt modules for Debian kernels.&lt;br /&gt;
&lt;br /&gt;
If you use a stock Debian kernel, you can install the tp_smapi modules with:&lt;br /&gt;
* {{cmdroot|apt-get install tp-smapi-modules-`uname -r`}}&lt;br /&gt;
* in order to make sure the modules package is kept in sync with the kernel one, you may also want to install the &amp;lt;code&amp;gt;tm-smapi-modules-2.6-686&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;tm-smapi-modules-2.6-amd64&amp;lt;/code&amp;gt; package, depending on your architecture &lt;br /&gt;
&lt;br /&gt;
If you use a custom kernel, you can build tp_smapi with module-assistant:&lt;br /&gt;
* {{cmdroot|aptitude install tp-smapi-source}}&lt;br /&gt;
* {{cmdroot|m-a -t a-i tp-smapi}}&lt;br /&gt;
&lt;br /&gt;
====Installation on openSUSE====&lt;br /&gt;
openSUSE provides rpm packages. Look for them at the package search: [http://software.opensuse.org/search/], search for the package named &amp;quot;tp_smapi&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A step-by-step guide on how a relative linux newbie installed tp_smapi on a Thinkpad W500 running openSuse 11.1 using YAST Software Manager is available [http://forums.opensuse.org/hardware/laptop/417254-tp_smapi-lenovo-thinkpad-t400-t500-w500-step-step.html#post2005932 here]&lt;br /&gt;
&lt;br /&gt;
In case you are taking the hard way around, while compiling on 11.0, make complained about not being able to locate the kernel sources. It worked for me after I did this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;cp /usr/include/linux/aio_abi.h /lib/modules/`uname -r`/build/include/linux/&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Installation on Ubuntu====&lt;br /&gt;
Ubuntu ships tp_smapi in their &amp;lt;tt&amp;gt;linux-ubuntu-modules-*&amp;lt;/tt&amp;gt; package for Hardy, so you don't have to build it yourself. Please note that they have renamed tp_smapi's modified &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; module to &amp;lt;tt&amp;gt;hdaps_ec&amp;lt;/tt&amp;gt; so that the two can coexist. You should load &amp;lt;tt&amp;gt;hdaps_ec&amp;lt;/tt&amp;gt;, not &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ubuntu Intrepid and Jaunty, however, lack the &amp;lt;tt&amp;gt;hdaps_ec&amp;lt;/tt&amp;gt; module, as reported [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/297213 here]. It will not be included again until said [[#Bundled hdaps driver|bundled hdaps driver]] is merged into mainline.&lt;br /&gt;
&lt;br /&gt;
=====Installation on Ubuntu Jaunty=====&lt;br /&gt;
I have posted my experiences [http://meandmyubuntu.blogspot.com/2009/05/getting-hdasp-to-work-on-jaunty.html here]&lt;br /&gt;
&lt;br /&gt;
=====Installation on Ubuntu Karmic=====&lt;br /&gt;
Ubuntu does not ship the precompiled module tp_smapi any more. However the source code is still present in the repository. It can be installed through module-assistant :&lt;br /&gt;
:{{cmdroot|aptitude install tp-smapi-source}}&lt;br /&gt;
:{{cmdroot|module-assistant prepare tp-smapi}}&lt;br /&gt;
:{{cmdroot|module-assistant auto-install tp-smapi}}&lt;br /&gt;
:{{cmdroot|modprobe tp-smapi}}&lt;br /&gt;
&lt;br /&gt;
=====Installation on Ubuntu Lucid=====&lt;br /&gt;
The Karmic solution above works well.&lt;br /&gt;
&lt;br /&gt;
As an alternative, one can use the dkms flavour of the packages via&lt;br /&gt;
:{{cmdroot|aptitude install tp-smapi-dkms}}&lt;br /&gt;
:{{cmdroot|modprobe tp_smapi}}&lt;br /&gt;
&lt;br /&gt;
{{HINT|This appears to be the ideal solution. For anyone wondering what DKMS is, from [http://linux.dell.com/projects.shtml#dkms Dell]: &amp;quot;DKMS stands for Dynamic Kernel Module Support. It is designed to create a framework where kernel dependent module source can reside so that it is very easy to rebuild modules as you upgrade kernels.}}&lt;br /&gt;
&lt;br /&gt;
====Installation on older Ubuntu/Debian====&lt;br /&gt;
Installation on Ubuntu or Debian is quite easy, but there are a few things to look after:&lt;br /&gt;
&lt;br /&gt;
To get your system ready for compiling code, install the build-essentials (as root, of course, as all of the following comands; Ubuntu users have to prepend 'sudo' to every line and enter their own password when prompted):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;apt-get install build-essential&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get tp_smapi to work, obtain the latest source as mentioned above and unpack it. If you want to use HDAPS, you need to install the kernel source matching te kernel you are running. To do so, issue this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;uname -r&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will give you the version of your current kernel. &lt;br /&gt;
Debian users execute the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;apt-get install linux-source-`uname -r`&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ubuntu users execute the following using the kernel-version only (exclude -XX-generic; e.g. 'linux-source-2.6.20'):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;apt-get install linux-source-`uname -r`&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Be sure to unpack the source file. The easiest way is to open Nautilus as root:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;sudo nautilus&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then browse to /usr/src/ and extract the source file to that directory.&lt;br /&gt;
&lt;br /&gt;
Now change to the tp_smapi dir:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;cd tp_smapi-X.YY&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt; (X.YY being the version-number of [[tp_smapi]])&lt;br /&gt;
and make and install tp_smapi as instructed above.&lt;br /&gt;
&lt;br /&gt;
If you get an error that the kernel version isn't matching (or that you need to set KSRC/KBUILD), please check that there is a symlink from the modules dir to the kernel source:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;root@localhost:~#ls -l /lib/modules/2.6.20-16-generic&lt;br /&gt;
lrwxrwxrwx  1 root root     28 2007-02-02 08:39 build -&amp;gt; /usr/src/linux-source-2.6.20&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Create the link if the line above does not exist:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;root@localhost:~#ln -s /usr/src/linux-source-2.6.20 /lib/modules/2.6.20-16-generic/build&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the following will build and install the correct modules to their locations:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;make install HDAPS=1&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
To make sure your system loads the modules at boot time, do this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;echo &amp;quot;tp_smapi&amp;quot; &amp;gt;&amp;gt; /etc/modules&lt;br /&gt;
echo &amp;quot;hdaps&amp;quot; &amp;gt;&amp;gt; /etc/modules&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
and update your initramfs:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;update-initramfs -u&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get tp_smapi running now, just load the modules:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;modprobe -a tp_smapi hdaps&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This description was tested on Kubuntu 'Feisty Fawn' and should work on all Debian-based distros with minor tweaks.&lt;br /&gt;
&lt;br /&gt;
'''EDIT:''' Works on Kubuntu 7.10 (&amp;quot;Gutsy Gibbon&amp;quot;), too&lt;br /&gt;
&lt;br /&gt;
===Battery charge control features===&lt;br /&gt;
To set the thresholds for starting and stopping battery charging (in percent of current full charge capacity):&lt;br /&gt;
:{{cmdroot|echo 40 &amp;gt; /sys/devices/platform/smapi/BAT0/start_charge_thresh}}&lt;br /&gt;
:{{cmdroot|echo 70 &amp;gt; /sys/devices/platform/smapi/BAT0/stop_charge_thresh}}&lt;br /&gt;
:{{cmdroot|cat /sys/devices/platform/smapi/BAT0/*_charge_thresh}}&lt;br /&gt;
{{HINT|Battery charging thresholds can be used to keep Li-Ion and Li-Polymer batteries partially charged, in order to [[Maintenance#Battery_treatment|increase their lifetime]].}}&lt;br /&gt;
To prevent charging for 17 minutes (regardless of thresholds):&lt;br /&gt;
:{{cmdroot|echo 17 &amp;gt; /sys/devices/platform/smapi/BAT0/inhibit_charge_minutes}}&lt;br /&gt;
{{HINT|Charge inhibiting can be used to reduce the power draw of the laptop, in order to use an under-spec power supply that can't handle the combined power draw of running and charging. It can also be used to control which battery is charged when [[How to use UltraBay batteries|using an Ultrabay battery]].}}&lt;br /&gt;
&lt;br /&gt;
To cancel charging preventation:&lt;br /&gt;
:{{cmdroot|echo 0 &amp;gt; /sys/devices/platform/smapi/BAT0/inhibit_charge_minutes}}&lt;br /&gt;
&lt;br /&gt;
To force battery discharging (even if connected to AC):&lt;br /&gt;
:{{cmdroot|echo 1 &amp;gt; /sys/devices/platform/smapi/BAT0/force_discharge}}&lt;br /&gt;
{{HINT|This can be used to choose which battery is discharged when [[How to use UltraBay batteries|using an UltraBay battery]]. For example, see the {{CodeRef|tp-bat-balance}} script.}}&lt;br /&gt;
&lt;br /&gt;
To cancel forced discharge:&lt;br /&gt;
:{{cmdroot|echo 0 &amp;gt; /sys/devices/platform/smapi/BAT0/force_discharge}}&lt;br /&gt;
&lt;br /&gt;
====Making the settings permanent on reboot====&lt;br /&gt;
&lt;br /&gt;
If you always use the same type of battery, then you may want the same settings to be configured each time you boot the machine.&lt;br /&gt;
&lt;br /&gt;
If you use various types of battery, then you may want to consider writing some scripts to detect the battery type and apply the appropriate settings.&lt;br /&gt;
&lt;br /&gt;
=====Debian=====&lt;br /&gt;
&lt;br /&gt;
It is not necessary to create your own init.d script or modify /etc/rc.local - you just need the package sysfsutils:&lt;br /&gt;
:{{cmdroot|apt-get install sysfsutils}}&lt;br /&gt;
&lt;br /&gt;
Now, put your desired settings in /etc/sysfs.conf:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;# cat &amp;gt;&amp;gt; /etc/sysfs.conf &amp;lt;&amp;lt; EOF&lt;br /&gt;
# For a LiIon battery in a Thinkpad&lt;br /&gt;
devices/platform/smapi/BAT0/start_charge_thresh = 50&lt;br /&gt;
devices/platform/smapi/BAT0/stop_charge_thresh = 80&lt;br /&gt;
EOF&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The init script supplied by sysfsutils will load these settings on each boot.&lt;br /&gt;
&lt;br /&gt;
===Battery status features===&lt;br /&gt;
To view extended battery status such as charging state, voltage, current, capacity, cycle count and model information:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/installed&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/state       # idle/charging/discharging&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/cycle_count&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/current_now # instantaneous current&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/current_avg # last minute average&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/power_now   # instantaneous power&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/power_avg   # last minute average&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/last_full_capacity&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/remaining_percent&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/remaining_running_time&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/remaining_charging_time&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/remaining_capacity&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/design_capacity&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/voltage&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/design_voltage&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/manufacturer&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/model&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/barcoding&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/chemistry&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/serial&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/manufacture_date&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/first_use_date&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/temperature # in milli-Celsius&lt;br /&gt;
# cat /sys/devices/platform/smapi/ac_connected&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The raw status data is also available, including some fields not listed above (in case you can figure them out):&lt;br /&gt;
&lt;br /&gt;
:{{cmdroot|cat /sys/devices/platform/smapi/BAT0/dump}}&lt;br /&gt;
&lt;br /&gt;
In all of the above, replace &amp;lt;tt&amp;gt;BAT0&amp;lt;/tt&amp;gt; with &amp;lt;tt&amp;gt;BAT1&amp;lt;/tt&amp;gt; to address the 2nd battery.&lt;br /&gt;
&lt;br /&gt;
Note that the battery status readout conflicts with the stock [[HDAPS|hdaps]] driver, so if you use &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; you will need to load &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; using {{cmdroot|1=make load HDAPS=1}} (see [[#Bundled hdaps driver|Bundled hdaps driver]] below).&lt;br /&gt;
&lt;br /&gt;
On [[ACPI]]-enabled systems, most of above information is also available through the files under {{path|/proc/acpi/battery}}. However, the ACPI interface does not include the instantaneous power and cycle count readouts, and does not work well when [[How to use UltraBay batteries|hotswapping UltraBay batteries]].&lt;br /&gt;
&lt;br /&gt;
====Scripts====&lt;br /&gt;
Some scripts can make it easier to grep the information you need from tp_smapi&lt;br /&gt;
* [[battery.rb]]&lt;br /&gt;
&lt;br /&gt;
===Other features===&lt;br /&gt;
&lt;br /&gt;
There is also [[sysfs]] attribute for making direct SMAPI requests to the SM BIOS firmware. Don't touch it unless you really know what you're doing. Example:&lt;br /&gt;
 # echo '211a 100 0 0' &amp;gt; /sys/devices/platform/smapi/smapi_request; cat /sys/devices/platform/smapi/smapi_request&lt;br /&gt;
 211a 34b b2 0 0 0 'OK'&lt;br /&gt;
The &amp;quot;4b&amp;quot; in the 2nd value, converted to decimal, is 75: the current charging stop threshold (stop_charge_thresh).&lt;br /&gt;
&lt;br /&gt;
===Bundled &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver===&lt;br /&gt;
&lt;br /&gt;
The tp_smapi package includes a modified version of the &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; Linux kernel driver used by the [[HDAPS]] system. It has remained outside the mainline kernel for a few years for several reasons, [https://lists.ubuntu.com/archives/kernel-team/2009-April/005565.html] including the upstream maintainer's assertion that the new code's anonymous author was under a NDA. (Although this would not normally expose the kernel team to litigation.) [http://lkml.org/lkml/2008/9/15/126] [http://lkml.org/lkml/2008/10/7/403] [http://lkml.org/lkml/2008/10/7/428]&lt;br /&gt;
&lt;br /&gt;
To use &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; concurrently, you '''must''' use the modified version.&lt;br /&gt;
&lt;br /&gt;
To build the modified version, simply append the &amp;lt;tt&amp;gt;HDAPS=1&amp;lt;/tt&amp;gt; parameter to the &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; command (see [[#Installation|Installation]] above):&lt;br /&gt;
:{{cmdroot|1=make load HDAPS=1}}&lt;br /&gt;
or&lt;br /&gt;
:{{cmdroot|1=make install HDAPS=1}}&lt;br /&gt;
&lt;br /&gt;
If you don't do that, you will not be able to load &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; (and its support module &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt;) when &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; is loaded, and vice versa. You can use &amp;lt;tt&amp;gt;rmmod&amp;lt;/tt&amp;gt; to switch between these modules.&lt;br /&gt;
&lt;br /&gt;
Note that some of the battery status is also visible through ACPI ({{path|/proc/acpi/battery/*}}), independently of &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The modified &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; has several changes:&lt;br /&gt;
* The &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver in mainline kernels conflicts with the extended battery status (they use the same IO ports). The modified &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; coordinates this access through the bundled &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt; driver.&lt;br /&gt;
* The modified &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver fixes reliability and improves support for recent ThinkPad models (*60 and newer), since unlike the mainline driver, it correctly follows the Embedded Controller communication protocol.&lt;br /&gt;
* Several other improvements, such as the ability to control the polling rate.&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
==== &amp;lt;tt&amp;gt;thinkpad_ec: cannot claim io ports 0x1600-0x161f&amp;lt;/tt&amp;gt; ====&lt;br /&gt;
The &amp;quot;&amp;lt;tt&amp;gt;thinkpad_ec: cannot claim io ports 0x1600-0x161f!&amp;lt;/tt&amp;gt;&amp;quot; error message is printed when loading the &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt; module on some recent ThinkPad models.  This occurs because the ACPI BIOS DSDT is reserving ports used by tp_smapi.&lt;br /&gt;
&lt;br /&gt;
As a workaround, add the &amp;lt;tt&amp;gt;force_io=1&amp;lt;/tt&amp;gt; module parameter to &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt; in {{path|/etc/modprobe.conf}} (or your distribution's equivalent). Add the line:&lt;br /&gt;
: options thinkpad_ec force_io=1&lt;br /&gt;
&lt;br /&gt;
For transient testing, load the modules as follows:&lt;br /&gt;
&lt;br /&gt;
: {{cmdroot|1=make load HDAPS=1 FORCE_IO=1}}&lt;br /&gt;
&lt;br /&gt;
Note: force_io option was added in tp_smapi v0.40 (released 2008-12-16).&lt;br /&gt;
&lt;br /&gt;
Models which need this option include:&lt;br /&gt;
* ThinkPad {{T400}}&lt;br /&gt;
* ThinkPad {{T500}}&lt;br /&gt;
* ThinkPad {{X301}}&lt;br /&gt;
&lt;br /&gt;
More information:&lt;br /&gt;
* http://bugzilla.kernel.org/show_bug.cgi?id=12221&lt;br /&gt;
* http://www.nabble.com/thinkpad_ec-fails-to-load-on-Thinkpad-T500-td19932985.html&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;tt&amp;gt;thinkpad_ec: no ThinkPad embedded controller!&amp;lt;/tt&amp;gt; ====&lt;br /&gt;
If you get &amp;quot;&amp;lt;tt&amp;gt;thinkpad_ec: no ThinkPad embedded controller!&amp;lt;/tt&amp;gt;&amp;quot; when trying to load the module on a supported model listed below, you should [[BIOS_Upgrade|upgrade your BIOS]]. Some early BIOS (like 1.x on the X31) don't handle the embedded controller.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;tt&amp;gt;T60p writing to start_charge_thresh/stop_charge_thresh does not work!&amp;lt;/tt&amp;gt; ====&lt;br /&gt;
Writing to /sys/devices/platform/smapi/BAT0/start_charge_thresh succeeds, but the older value does not change. Solution: unknown. If you know a solution please update here.&lt;br /&gt;
&lt;br /&gt;
UPDATE:  Failure to effectively change sysfs values sometimes happens at boot time (through sysfs.conf OR etc/local.start for instance) when the values have never previously been changed manually (ie using echo from a shell).  Try initializing the values manually before including them in boot-time scripting.&lt;br /&gt;
&lt;br /&gt;
===Model-specific status===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 92%&amp;quot;&amp;gt;&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|+&amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; feature support matrix&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; | &lt;br /&gt;
=====A series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{A22p}} 2629-USG&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{A30}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
=====G series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{G41}}&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====R series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{R31}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || N/A || N/A ||      ||  || || No SMAPI BIOS&lt;br /&gt;
|-&lt;br /&gt;
! {{R40}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R50}}&lt;br /&gt;
| {{Cunk}} || {{Cno}}  || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R50e}} 1834-JAG&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R50e}} 1834-5US&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R50p}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R51}} 18*&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.32 || 3.22 || || Machine types 1829, 1830, 1831 and 1836&lt;br /&gt;
|-&lt;br /&gt;
! {{R51}} 28*&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      || 1.29 || || Machine types 2883, 2887, 2888, 2889, 2894 and 2495&lt;br /&gt;
|-&lt;br /&gt;
! {{R52}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.33 || 1.29 || 1.06 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} ||{{Cyes}}  || {{Cno|text=}} 1 || 0.33 || || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R61}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} ||{{Cyes}}  || {{Cyes|text=}} 1 || 0.35-test1 || 7KETA7WW 2.07 || 7KHT24WW 1.08 || Machine type 8918&lt;br /&gt;
|-&lt;br /&gt;
! {{R61i}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} ||{{Cunk}}  || {{Cunk}}  ||    ||   ||   || Machine type 8250&lt;br /&gt;
|-&lt;br /&gt;
! {{R400}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} ||{{Cyes}}  || {{Cyes|text=}} 1 || 0.40-1   ||   ||   || Machine type 7443&lt;br /&gt;
|-&lt;br /&gt;
! {{R500}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} ||{{Cunk}}  || {{Cyes|text=}} 1 || 0.40-1   ||   ||   ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====T series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{T20}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || N/A || N/A ||      ||  || || Has SMAPI BIOS but no function is supported. EC LPC3 protocol fails.&lt;br /&gt;
|-&lt;br /&gt;
! {{T22}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || N/A || N/A ||      ||  || || Has SMAPI BIOS but no function is supported. EC LPC3 protocol fails.&lt;br /&gt;
|-&lt;br /&gt;
! {{T23}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T30}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T40}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T40p}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T41}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.37 || 3.23 || 3.04 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T41}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.40 || 3.20 || 3.04 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T41}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.40 || 3.23 || 3.04 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T41p}} 2373-AM9&lt;br /&gt;
| {{Cno}} || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.32 || 3.20 || v3.04 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T42}}&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T42p}} 2373-KXU&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.32 || 3.21 || || Stop charge threshold works in Windows, but dmesg says &amp;quot;__get_real_thresh: cannot get stop_thresh of bat=0: Function is not supported by SMAPI BIOS&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
! {{T42p}} 2373-KUU&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T43}} 2686&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.33 || 1.27 || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T43p}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes|text=}} 0 ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 7 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 1 || 0.34 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}} 1951-24G&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || 0.36 || 1.09a || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}} 2007-FSG&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.39 || 1.10 || 1.05b ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}} 1951-CZ1&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.40 || 2.23 || 1.07 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60p}} 8743-CTO&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T61}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 1 || 0.32 ||  || || [http://ubuntuforums.org/showthread.php?p=3146719 ref]&lt;br /&gt;
|-&lt;br /&gt;
! {{T61p}} 6457-7XG&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 1 || 0.32 ||  || || [http://ubuntuforums.org/showthread.php?p=3146719 ref]&lt;br /&gt;
|-&lt;br /&gt;
! {{T400}} &lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes|text=}}  1 || 0.40 || 1.19 || || Requires &amp;lt;tt&amp;gt;force_io=1&amp;lt;/tt&amp;gt; parameter to &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! {{T400s}} &lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes|text=}} 2 || 0.40 || 1.06 || || Requires &amp;lt;tt&amp;gt;invert=2&amp;lt;/tt&amp;gt; paramteter to &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
! {{T410}} &lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes|text=}}  1 || 0.40 || 1.25 || || &lt;br /&gt;
|-&lt;br /&gt;
! {{T500}}&lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes|text=}}  1 || 0.40 || 2.07 || || Requires &amp;lt;tt&amp;gt;force_io=1&amp;lt;/tt&amp;gt; parameter to &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! {{T510}}&lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cno|text=}}  7 || 0.40 || 1.12 || 1.08 || ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====W series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{W700}} 2757-CTO&lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cunk}} || {{Cunk}} ||  0.40 || 2.08 || 1.05 ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====X series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{X22}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || N/A || N/A ||      ||  || || no EC controller found&lt;br /&gt;
|-&lt;br /&gt;
! {{X24}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X30}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}} || {{Cyes}} || N/A || N/A || 0.34  || 1.09 || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X31}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X32}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X40}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 3 || 0.32 || 2.08 || 1.62 || &lt;br /&gt;
|-&lt;br /&gt;
! {{X41}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 3 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X41_Tablet}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 3 || 0.40  || 75ET60WW (2.06 ) || 75HT20WW (1.02) ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 ||      || 2.07 || 1.10 || 2.6.20 issue (see discussion)&lt;br /&gt;
|-&lt;br /&gt;
! {{X60_Tablet}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 3 || 0.34  || 7JET25WW (1.10 )  || 7JHT13WW 1.04 || [http://luke.no-ip.org/x60tablet/ ref] [http://rad.bioinfo.ulaval.ca/hardware/x60tablet ref]&lt;br /&gt;
|-&lt;br /&gt;
! {{X60s}} 1704-5UG&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cno|text=}} 3 || 0.34 || 7BETD2WW 2.13 || 7BHT40WW 1.13 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X60s}} 1704-56G&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cno|text=}} 3 || 0.40 || 7BETD5WW 2.16 || 7BHT40WW 1.13 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61}} 7673-CTO&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.37 || 7NETB9WW (2.19) || {{Cunk}} ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61}} 7675-CTO&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cno|text=}} 6 || 0.35-test1       ||  ||  ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61}} 7675-4KU&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 || 0.34 || 7NET30WW (1.11 ) || 7MHT24WW 1.02 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61_Tablet}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 || 0.32  ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61s}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 / 3 || 0.32 ||  || || [http://www.slackwiki.org/ThinkPad_X61s ref] says 3 but conflicting report received&lt;br /&gt;
|-&lt;br /&gt;
! {{X100e}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.40 || 6XET36WW (1.20a) || 6XHT36WW (1.176000) || x100e NTS4UTX, dual-core L625 also works (NTT27MH)&lt;br /&gt;
|-&lt;br /&gt;
! {{X200}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 7 || 0.40 || 6DET40WW (2.04 ) || 7XHT22WW 1.04 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X200s}} 7470-X01&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 5 || 0.40 || 6DET63WW (3.13) || 7XHT24WW 1.06 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X201s}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 5 || 0.40 || 6QET44WW (1.14 ) || ECP: 1.09/1.09 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X300}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || 0.37 || 7TET25WW (1.02 ) || 7THT15WW 1.00c ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====Z series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{Z60m}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{Z60t}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{Z61m}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{Z61t}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} ||      ||  || || [https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.20/+bug/45014 ref]&lt;br /&gt;
|-&lt;br /&gt;
! {{Z61p}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====SL series and IdeaPad=====&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:left&amp;quot; |&lt;br /&gt;
The ThinkPad SL series and IdeaPad series have firmware that is completely different from other ThinkPad models. Neither [[tp_smapi]] nor [[thinkpad-acpi]] support these models.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SMAPI capabilities may depend on the BIOS version as well, so upgrading to the latest version of the BIOS might provide more SMAPI functions (especially true for long-lived BIOS with lots of releases, like the TP-1R).&lt;br /&gt;
&lt;br /&gt;
Please update the above and report your experience on the [[Talk:tp_smapi|discussion]] page. If the module loads but gives a &amp;quot;&amp;lt;tt&amp;gt;not supported&amp;lt;/tt&amp;gt;&amp;quot; or &amp;quot;&amp;lt;tt&amp;gt;not implementeded&amp;lt;/tt&amp;gt;&amp;quot; error when you try to use some specific file in {{path|/sys/devices/platform/smapi/}}, please report the &amp;lt;tt&amp;gt;dmesg&amp;lt;/tt&amp;gt; output and whether the corresponding functionality is available under Windows - maybe your ThinkPad just can't do that. &lt;br /&gt;
&lt;br /&gt;
While at it, you may also want to add your laptop to the [[list of DMI IDs]].&lt;br /&gt;
&lt;br /&gt;
=====HDAPS axis orientation=====&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; The HDAPS axis orientation is set using the &amp;lt;tt&amp;gt;invert&amp;lt;/tt&amp;gt; module parameter (at load time) or sysfs attribute (at runtime). The &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver of tp_smapi supports all 8 possible sensor orientations (inversion and swapping). You can use [[HDAPS#Visualisation_of_ThinkPad_orientation|hdaps visualisation]] to check if the settings is correct.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;invert&amp;lt;/tt&amp;gt; parameter is an integer between 0 and 7, whose meaning is defined below. (This is confusing. Most people will find it easier to just try all 8 possibilities.)&lt;br /&gt;
&lt;br /&gt;
Let &amp;lt;tt&amp;gt;X&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;Y&amp;lt;/tt&amp;gt; denote the hardware readouts. Let &amp;lt;tt&amp;gt;R&amp;lt;/tt&amp;gt; denote the laptop's roll (tilt left/right), and let &amp;lt;tt&amp;gt;P&amp;lt;/tt&amp;gt; denote the laptop's pitch (tilt forward/backward). The possible values are as follows:&lt;br /&gt;
    invert=0:   R= X  P= Y   (same as mainline)&lt;br /&gt;
    invert=1:   R=-X  P=-Y   (same as mainline)&lt;br /&gt;
    invert=2:   R=-X  P= Y   (new)&lt;br /&gt;
    invert=3:   R= X  P=-Y   (new)&lt;br /&gt;
    invert=4:   R= Y  P= X   (new)&lt;br /&gt;
    invert=5:   R=-Y  P=-X   (new)&lt;br /&gt;
    invert=6:   R=-Y  P= X   (new)&lt;br /&gt;
    invert=7:   R= Y  P=-X   (new)&lt;br /&gt;
&lt;br /&gt;
[[Category:Drivers]] [[Category:Patches]]&lt;br /&gt;
&lt;br /&gt;
===Tools using this driver===&lt;br /&gt;
&lt;br /&gt;
The driver's interface can be accessed directly through the files under {{path|/sys/devices/platform/smapi}}, or via the following tools:&lt;br /&gt;
* [[KThinkBat]] - display battery status on the KDE &amp;lt;tt&amp;gt;kicker&amp;lt;/tt&amp;gt; panel.&lt;br /&gt;
* [[gkrellm-ThinkBat]] - battery status plugin for Gkrellm2&lt;br /&gt;
* {{CodeRef|thinkpad-smapi.sh}} - script to display various SMAPI information using tp_smapi module.&lt;br /&gt;
&lt;br /&gt;
== Headline text ==&lt;/div&gt;</summary>
		<author><name>Tripwired</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&amp;diff=49020</id>
		<title>Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad Z61m</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&amp;diff=49020"/>
		<updated>2010-07-12T02:24:15Z</updated>

		<summary type="html">&lt;p&gt;Tripwired: /* Set up HDAPS accelerometer event */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Installing from USB stick=&lt;br /&gt;
&lt;br /&gt;
If you already use Ubuntu 9.10 Karmic, installing Ubuntu 10.04 from USB stick is very easy. Just download the [http://www.ubuntu.com/getubuntu/download latest ISO], plug the USB stick in and run System--&amp;gt;Administration--&amp;gt;Create a USB startup disk. Load the downloaded ISO and hit &amp;quot;Make Startup Disk&amp;quot;. For more information check [https://help.ubuntu.com/community/Installation/FromUSBStick#Creating%20a%20bootable%20USB%20Drive this page]. After that reboot your Thinkpad and press F12. This will allow you to boot from USB stick and start the installation routine.&lt;br /&gt;
&lt;br /&gt;
= Tested Configuration =&lt;br /&gt;
* Lenovo ThinkPad {{Z61m}} (9450-H9G)&lt;br /&gt;
** [[Intel Core 2 Duo]] T5500 (1,66 GHz, 2 MB L2, 667MHz FSB)&lt;br /&gt;
** 2 GB RAM (2x 1 GB [[PC2-5300]] DDR2 667MHz)&lt;br /&gt;
** 15.4&amp;quot; wide-screen TFT WXGA 1280x800&lt;br /&gt;
** [[Intel Graphics Media Accelerator 950]]&lt;br /&gt;
** Seagate Momentus 7200.3 ST9160411ASG (160 GB SATA 7200 RPM) [http://www.thinkwiki.org/wiki/Talk:Problem_with_hard_drive_clicking  reflashed to Dell OEM Firmware]&lt;br /&gt;
** Ultrabay Enhanced DVD±RW Burner (GMA-4082N, FRU 39T2723)&lt;br /&gt;
** Intel HD Audio with [[AD1981HD]] codec&lt;br /&gt;
** [[Broadcom Gigabit Ethernet (10/100/1000)]]&lt;br /&gt;
** [[ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)]]&lt;br /&gt;
** [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]&lt;br /&gt;
** [[IrDA]] 1.1 (FIR - 4Mbps)&lt;br /&gt;
** [[SD_Card_slot|4-in-1 digital media reader]] (MultiMedia Card, MemoryStick, SD)&lt;br /&gt;
** [[Integrated Fingerprint Reader]]&lt;br /&gt;
** [[ThinkLight]]&lt;br /&gt;
** [[UltraNav]]&lt;br /&gt;
** [[CardBus]] slot (Type 2)&lt;br /&gt;
** [[ExpressCard slot]] (54 or 34)&lt;br /&gt;
** [[UltraBay|UltraBay Enhanced]]&lt;br /&gt;
** 3x USB 2.0, Firewire, VGA out, S-Video out, Headphone Jack, Microphone Jack&lt;br /&gt;
** Built-in Microphone&lt;br /&gt;
&lt;br /&gt;
= Hardware Support =&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;2&amp;quot;&lt;br /&gt;
|Device / Function&lt;br /&gt;
|Works?&lt;br /&gt;
|Comment&lt;br /&gt;
|-&lt;br /&gt;
|Suspend &amp;amp; Hibernate&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Intel GMA950 2D and 3D&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Intel 3945ABG WiFi&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Broadcom Gigabit Ethernet&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|DVD±RW Burner&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Ultrabay Hotswapping&lt;br /&gt;
|{{Cpart}} &lt;br /&gt;
|hotswapping optical drives (like DVD±RW) works out of the box, for HDD hotswapping  [http://www.thinkwiki.org/wiki/How_to_hotswap_Ultrabay_devices#Using_libata-acpi_and_udev look here]&lt;br /&gt;
|-&lt;br /&gt;
|Hard Drive Active Protection System&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|must be activated and configured. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Hard_Drive_Active_Protection_System See here]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Intel HDA Sound&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box, modem must be enabled in BIOS&lt;br /&gt;
|-&lt;br /&gt;
|PCMCIA&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Express Card&lt;br /&gt;
|{{Cunk}} (should work) &lt;br /&gt;
|not tested&lt;br /&gt;
|-&lt;br /&gt;
|TPM&lt;br /&gt;
|{{Cunk}} (should work)  &lt;br /&gt;
|not tested, for further information check out these links [http://die-klapsmuehle.org/2009/01/29/how-to-use-a-tpm-with-ubuntu/], [https://www.grounation.org/index.php?post/2008/07/04/8-how-to-use-a-tpm-with-linux] &lt;br /&gt;
|-&lt;br /&gt;
|Firewire&lt;br /&gt;
|{{Cunk}} (should work) &lt;br /&gt;
|not tested&lt;br /&gt;
|-&lt;br /&gt;
|USB&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|IRDA&lt;br /&gt;
|{{Cunk}} (should work) &lt;br /&gt;
|not tested&lt;br /&gt;
|-&lt;br /&gt;
|Docking&lt;br /&gt;
|{{Cunk}} (should work)  &lt;br /&gt;
|not tested&lt;br /&gt;
|-&lt;br /&gt;
|Fingerprint Reader&lt;br /&gt;
|{{Cyes}}&lt;br /&gt;
|works with ThinkFinger. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Fingerprint_Reader See here]&lt;br /&gt;
|-&lt;br /&gt;
|VGA out&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|S-Video out&lt;br /&gt;
|{{Cpart}} &lt;br /&gt;
|a 100 Hz Sony TV was recognized as a 30 Hz TV, poor picture&lt;br /&gt;
|-&lt;br /&gt;
|Modem&lt;br /&gt;
|{{Cunk}} &lt;br /&gt;
|not tested&lt;br /&gt;
|-&lt;br /&gt;
|Microphone&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|both internal and external mics work out of the box, but are muted by default. See bellow&lt;br /&gt;
|-&lt;br /&gt;
|Headphones&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Touchpad&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Trackpoint&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box, to enable middle button scrolling see bellow&lt;br /&gt;
|-&lt;br /&gt;
|Multimedia Card Reader&lt;br /&gt;
|{{Cyes}}?&lt;br /&gt;
|works out of the box with all kinds of SD cards. No other cards have been tested&lt;br /&gt;
|-&lt;br /&gt;
|{{key|Fn}}{{key|Fx}}, {{key|Fn}}{{key|PageUp}}, {{key|Fn}}{{key|Home}}, {{key|Fn}}{{key|End}}&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box, except of {{key|Fn}}{{key|F9}} and {{key|Fn}}{{key|Space}}. For configuring {{key|Fn}}{{key|Space}} [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work see here]&lt;br /&gt;
|-&lt;br /&gt;
|{{key|Fn}}{{key|Up}}, {{key|Fn}}{{key|Down}}, {{key|Fn}}{{key|Left}}, {{key|Fn}}{{key|Right}}&lt;br /&gt;
|{{Cpart}}&lt;br /&gt;
|depends on the player, works out of the box with Rhytmbox but not Audacious. Thus, needs additional configuration&lt;br /&gt;
|-&lt;br /&gt;
|{{ibmkey|ThinkVantage|#495988}}&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|does nothing by default, but can be easily mapped to something useful. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Map_ThinkVantage_Button See here]&lt;br /&gt;
|-&lt;br /&gt;
|{{ibmkey|Volume up|#494949}}, {{ibmkey|Volume down|#494949}}, {{ibmkey|Volume mute|#494949}}&lt;br /&gt;
|{{Cpart}} &lt;br /&gt;
|the volume buttons work but don't affect the software (Pulse Audio) mixer. For possible workarounds [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Workaround_for_the_Volume_Buttons see here]&lt;br /&gt;
|-&lt;br /&gt;
|Back and Forward keys (near the arrow keys)&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|{{key|Fn}}{{key|Space}} (Screen Magnify)&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|requires some acpi hacking. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work See here]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Z61m]]&lt;br /&gt;
&lt;br /&gt;
= HOWTOS = &lt;br /&gt;
&lt;br /&gt;
==  Setup the Middle Button Scrolling  == &lt;br /&gt;
&lt;br /&gt;
Start a terminal and run &lt;br /&gt;
&lt;br /&gt;
 sudo gedit /usr/lib/X11/xorg.conf.d/20-trackpoint.conf&lt;br /&gt;
&lt;br /&gt;
paste this &lt;br /&gt;
&lt;br /&gt;
 Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
     Identifier      &amp;quot;Trackpoint&amp;quot;&lt;br /&gt;
     MatchProduct    &amp;quot;TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint&amp;quot;&lt;br /&gt;
     MatchDevicePath &amp;quot;/dev/input/event*&amp;quot;&lt;br /&gt;
     Option          &amp;quot;EmulateWheel&amp;quot; &amp;quot;true&amp;quot;&lt;br /&gt;
     Option          &amp;quot;EmulateWheelButton&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
     Option          &amp;quot;EmulateWheelTimeout&amp;quot; &amp;quot;200&amp;quot; &lt;br /&gt;
     Option	    &amp;quot;Emulate3Buttons&amp;quot;	&amp;quot;false&amp;quot;&lt;br /&gt;
     Option          &amp;quot;YAxisMapping&amp;quot; &amp;quot;4 5&amp;quot;&lt;br /&gt;
     Option          &amp;quot;XAxisMapping&amp;quot; &amp;quot;6 7&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
and save. Reboot.&lt;br /&gt;
&lt;br /&gt;
== Configure Trackpoint and Touchpad ==&lt;br /&gt;
The most convenient way to do this is to install GPointing Device Settings via &lt;br /&gt;
 sudo apt-get install gpointing-device-settings&lt;br /&gt;
After that you will find it in System -&amp;gt; Preferences -&amp;gt; Pointing Devices&lt;br /&gt;
&lt;br /&gt;
[[image:Screenshot-GPointing Device Settings-TrackPoint.png]]&lt;br /&gt;
&lt;br /&gt;
GPointing Device Settings, however, can't configure such important Trackpoint settings as sensitivity, speed and press to select. To do this, open a terminal, run&lt;br /&gt;
 sudo apt-get install sysfsutils&lt;br /&gt;
 sudo gedit /etc/rc.local&lt;br /&gt;
paste &lt;br /&gt;
&lt;br /&gt;
 for i in 1 2 3&lt;br /&gt;
 do&lt;br /&gt;
  if [ -d /sys/devices/platform/i8042/serio1/serio$i ]; then&lt;br /&gt;
   echo -n 200 &amp;gt; /sys/devices/platform/i8042/serio1/serio$i/speed&lt;br /&gt;
   echo -n 150 &amp;gt; /sys/devices/platform/i8042/serio1/serio$i/sensitivity&lt;br /&gt;
   echo -n 1 &amp;gt; /sys/devices/platform/i8042/serio1/serio$i/press_to_select&lt;br /&gt;
  fi&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
before &lt;br /&gt;
 exit 0&lt;br /&gt;
and save. This will set sensitivity to 200, speed to 150 and activate press to select. Replacing &amp;quot;echo -n 1&amp;quot; by &amp;quot;echo -n 0&amp;quot; in the file will deactivate press to select. To find the right speed and sensitivity values, you should do some tests before by issuing&lt;br /&gt;
 echo -n 200 | sudo tee /sys/devices/platform/i8042/serio1/serio?/sensitivity&lt;br /&gt;
 echo -n 150 | sudo tee /sys/devices/platform/i8042/serio1/serio?/speed&lt;br /&gt;
in the terminal and using different numerical values between 0 and 255. The default values are 128 for sensitivity and 97 for speed.&lt;br /&gt;
&lt;br /&gt;
== Workaround for the Volume Buttons ==&lt;br /&gt;
&lt;br /&gt;
Volume buttons work but don't control software mixer settings. Thus you effectively get two volume scales completely independent from each other: Ubuntu's software mixer and Z61m's hardware mixer. That's confusing and inconvenient but as of 2010-05-05 (see [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/357673 Bug #357673]) still unfixed. &lt;br /&gt;
&lt;br /&gt;
=== Possible Workaround #1 ===&lt;br /&gt;
&lt;br /&gt;
A simple workaround is to set hardware volume control to an acceptable level and not to use those volume buttons afterwards. Instead, you can use the software mixer only. It's easy to configure {{key|Win}}{{key|F1}} and {{key|Win}}{{key|F2}} which are not used in Ubuntu by default to act as volume buttons for the software mixer. To do this go to '''System -&amp;gt; Preferenced -&amp;gt; Keyboard shortcuts''', click on &amp;quot;Volume Down&amp;quot; and press {{key|Win}}{{key|F1}}. Now click on &amp;quot;Volume Up&amp;quot; and press {{key|Win}}{{key|F2}}. If you also need mute, you can define {{key|Win}}{{key|1}} for that. The changes will be applied immediately.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot-Keyboard_Shortcuts.png]]&lt;br /&gt;
&lt;br /&gt;
=== Possible Workaround #2 ===&lt;br /&gt;
&lt;br /&gt;
If you still want to use volume keys for volume control, you should run&lt;br /&gt;
 sudo gedit /etc/rc.local&lt;br /&gt;
and add this before &amp;quot;exit 0&amp;quot;&lt;br /&gt;
 cp /sys/devices/platform/thinkpad_acpi/hotkey_all_mask /sys/devices/platform/thinkpad_acpi/hotkey_mask&lt;br /&gt;
This solution is still not really acceptable because it uses a quite weird volume scale resulting in maximum loudness already on 50% of the software mixer. If you've already applied workaround #1, be sure to map &amp;quot;Volume Up&amp;quot; and &amp;quot;Volume Down&amp;quot; back to the Thinkpad volume keys&lt;br /&gt;
&lt;br /&gt;
== Make Fn-Space (Screen Magnify) work ==&lt;br /&gt;
&lt;br /&gt;
Open a terminal and run&lt;br /&gt;
 sudo apt-get install kmag&lt;br /&gt;
 sudo gedit /etc/acpi/events/asus-rotate&lt;br /&gt;
replace it's content by the following&lt;br /&gt;
 # /etc/acpi/events/ibmwireless&lt;br /&gt;
 # This is called when the user presses Fn-Space&lt;br /&gt;
 event=ibm/hotkey HKEY 00000080 00001014&lt;br /&gt;
 action=/etc/acpi/ibm-zoom.sh&lt;br /&gt;
and save. Now run&lt;br /&gt;
 sudo cp /etc/acpi/ibm-wireless.sh /etc/acpi/ibm-zoom.sh&lt;br /&gt;
 sudo gedit /etc/acpi/ibm-zoom.sh&lt;br /&gt;
and replace its content by the following&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # This script activates gnome-mag when Fn+Space is pressed&lt;br /&gt;
 test -f /usr/share/acpi-support/key-constants || exit 0&lt;br /&gt;
 . /usr/share/acpi-support/power-funcs&lt;br /&gt;
 magnifier_pid=`pidof kmag`&lt;br /&gt;
 for x in /tmp/.X11-unix/*; do&lt;br /&gt;
        displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`&lt;br /&gt;
        getXconsole;&lt;br /&gt;
        if [ x&amp;quot;$XAUTHORITY&amp;quot; != x&amp;quot;&amp;quot; ]; then&lt;br /&gt;
            export DISPLAY=&amp;quot;:$displaynum&amp;quot;&lt;br /&gt;
            if [ &amp;quot;$magnifier_pid&amp;quot; != &amp;quot;&amp;quot; ]; then	    &lt;br /&gt;
 		/usr/bin/killall kmag&lt;br /&gt;
            break&lt;br /&gt;
            else&lt;br /&gt;
                /usr/bin/kmag &amp;amp;&lt;br /&gt;
                break&lt;br /&gt;
            fi&lt;br /&gt;
        fi&lt;br /&gt;
 done&lt;br /&gt;
Save and reboot. Now when pressing Fn-Space you can open KMagnifier. Pressing Fn-Space once again will close KMagnifier. You can configure KMagnifier as you like and your settings will be saved automatically&lt;br /&gt;
&lt;br /&gt;
== Map ThinkVantage Button ==&lt;br /&gt;
ThinkVantage Button is recognized but is not mapped to any function so that pressing it does nothing. To change this go to '''System-&amp;gt;Preferences-&amp;gt; Keyboard shortcuts'''. There you can look for some predefined actions ThinkVantage Button might do for you. To map the button to a certain action simply click on the action and press {{ibmkey|ThinkVantage|#495988}}. Via Add you can also add your own commands, for instance to start your browser or e-mail client.&lt;br /&gt;
&lt;br /&gt;
==  Setup External Monitor or Beamer (VGA)  == &lt;br /&gt;
&lt;br /&gt;
Connect your monitor/beamer to VGA port and go to '''System -&amp;gt; Preferences -&amp;gt; Monitors'''. For quick access to those settings it might be useful to activate &amp;quot;Show monitors in panel&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Lucid_ext_Monitor_new.png]]&lt;br /&gt;
&lt;br /&gt;
You can also use this to configure an external device connected to S-Video Out.&lt;br /&gt;
&lt;br /&gt;
[[File:Z61m_svideo.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Setup Color Management  == &lt;br /&gt;
To use ICC/ICM profiles you should install [http://projects.gnome.org/gnome-color-manager/ GNOME Color Manager] via&lt;br /&gt;
 sudo apt-get install gnome-color-manager&lt;br /&gt;
After that it should appear under '''System -&amp;gt; Preferences -&amp;gt; Color Profiles'''. Alternatively you can start it from the terminal by issuing&lt;br /&gt;
 gcm-prefs&lt;br /&gt;
GCM should detect your Thinkpad monitor automatically. All you need to do is supply the correct ICC/ICM profile by clicking on the list under '''Color Profile''' and selecting '''Other profile ...'''&lt;br /&gt;
&lt;br /&gt;
[[File:CMgment.jpg]]&lt;br /&gt;
&lt;br /&gt;
Lenovo does supply ICM profiles for most Thinkpads, but in order to open the appropriate .exe-archive under Linux you'll need Wine. Install Wine by running&lt;br /&gt;
 sudo apt-get install wine&lt;br /&gt;
After that download [http://www-307.ibm.com/pc/support/site.wss/migr-62923.html 79oi22ww.exe] and right-click the file. Go to the '''Properties''' tab and tick '''Allow executing file as program''' In the '''Open With''' tab select '''Wine Windows Program Loader''' and close the dialog. Now double-click 79oi22ww.exe, and hit Next -&amp;gt; I accept the agreement -&amp;gt; Next -&amp;gt; Next -&amp;gt; Install -&amp;gt; Finish. Using Nautilus go to &amp;quot;~/.wine/drive_c/DRIVERS/WIN/MONITOR&amp;quot;. There you'll find different ICM profiles which can be used by GCM. '''TPFLX.icm''' is for [http://www.thinkwiki.org/wiki/Flexview#Flexview_.28IPS.29 FlexView] panels whereas '''TPMB60.ICM''' and '''TPMB72.ICM''' are for [http://www.thinkwiki.org/wiki/Flexview#MaxBright MaxBright] panels. If you have only a plain TFT panel (not MaxBright) then stick to '''TPLCD.icm'''. &lt;br /&gt;
&lt;br /&gt;
After importing the appropriate profile to GCM and selecting it, be sure to go to '''Defaults''' tab and select '''Apply display correction'''  and '''Set profile for color managed applications''' Unfortunately, GCM doesn't seem to support manual adjustments of gamma, brightness or contrast on Thinkpad displays. &lt;br /&gt;
&lt;br /&gt;
At least adjusting gamma is possible when using '''xgamma'''. In a terminal run &lt;br /&gt;
 xgamma&lt;br /&gt;
to see you current gamma settings. You should see something like&lt;br /&gt;
 -&amp;gt; Red  1.000, Green  1.000, Blue  1.000&lt;br /&gt;
It is possible to adjust gamma values for all colors at the same time by issuing something like&lt;br /&gt;
 xgamma -gamma 0.9&lt;br /&gt;
or for red, green and blue separately&lt;br /&gt;
 xgamma -rgamma 0.815 -ggamma 0.844 -bgamma 1.0&lt;br /&gt;
If you want to be able to relate RGB gamma values to a certain colour temperature, take a look at [http://www.vendian.org/mncharity/dir3/blackbody/UnstableURLs/bbr_color.html this page by Mitchell Charity]. Thus, to get something like 7800K you'll have to issue&lt;br /&gt;
 xgamma -rgamma 0.8115 -ggamma 0.8351 -bgamma 1.0&lt;br /&gt;
After having found your favourite settings, you'll probably want to make them persistent. To do this go to '''System -&amp;gt; Preferences -&amp;gt; Startup Applications''', select the &amp;quot;Startup Programms&amp;quot; tab, click Add and add something like this&lt;br /&gt;
 Name: xgamma&lt;br /&gt;
 Command: xgamma -rgamma 0.8 -ggamma 0.8 -bgamma 1.0&lt;br /&gt;
(replace these values by your values) Click Add and then Close. Now these xgamma settings will be applied on each Gnome startup&lt;br /&gt;
&lt;br /&gt;
==  Setup Fingerprint Reader  == &lt;br /&gt;
&lt;br /&gt;
Although thinkfinger can be installed from Lucid repos, it contains some regressions which&lt;br /&gt;
prevent fingerprint authentication from working properly. For more information check out &lt;br /&gt;
[https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/256429 Bug #256429] Martin Schwenke &lt;br /&gt;
provides a PPA with the fixed version of thinkfinger which seems to work quite well.&lt;br /&gt;
&lt;br /&gt;
To install thinkfinger open a terminal and run &lt;br /&gt;
 sudo add-apt-repository ppa:martin-meltin/ppa&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install libpam-thinkfinger=0.3+r118-0ubuntu4ppamartinmeltin5&lt;br /&gt;
 sudo /usr/lib/pam-thinkfinger/pam-thinkfinger-enable&lt;br /&gt;
after that run&lt;br /&gt;
 tf-tool --acquire $USERNAME&lt;br /&gt;
to acquire your fingerprint. Now you can use Z61m's fingerprint reader when using sudo/gksudo or in GDM login screen.&lt;br /&gt;
&lt;br /&gt;
There seems to be a gnome-keyring related problem in Lucid when using fingerprint to log in. In that case Network Manager (nm-applet) may not appear in the panel or freeze when trying to change connection settings ([https://bugs.launchpad.net/ubuntu/+source/seahorse/+bug/529338 Bug #529338]). A known workaround is not to use fingerprint when logging in. You, however, still can use fingerprint for sudo, gksudo and all other supported authentication prompts.&lt;br /&gt;
&lt;br /&gt;
== Setup Hard Drive Active Protection System ==&lt;br /&gt;
Open a terminal and run&lt;br /&gt;
 sudo apt-get install tp-smapi-dkms&lt;br /&gt;
 sudo apt-get install python python-gtk2 python-gnome2 hdapsd&lt;br /&gt;
Now run&lt;br /&gt;
 sudo gedit /etc/modules&lt;br /&gt;
and add &lt;br /&gt;
 tp_smapi &lt;br /&gt;
to the very end of the file so that it looks like this (example)&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 lp&lt;br /&gt;
 tp_smapi&lt;br /&gt;
&lt;br /&gt;
Reboot. Now HDAPS should work. If you want to have a HDAPS icon in your notification area&lt;br /&gt;
like in Windows, follow these steps to install [http://thpani.at/projects/thinkhdaps/ ThinkHDAPS]&lt;br /&gt;
&lt;br /&gt;
Download [https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb] and put it into your home directory. Right click on the file and select &amp;quot;Extract Here&amp;quot;. In terminal run&lt;br /&gt;
 cd ~&lt;br /&gt;
 cd thinkhdaps_0.2.1-1_all&lt;br /&gt;
 sudo cp&lt;br /&gt;
 tar -zxvf data.tar.gz &lt;br /&gt;
 sudo cp usr/bin/thinkhdaps /usr/bin/&lt;br /&gt;
 sudo chmod +x /usr/bin/thinkhdaps&lt;br /&gt;
 sudo cp usr/share/pixmaps/* /usr/share/pixmaps/&lt;br /&gt;
&lt;br /&gt;
Now you can run&lt;br /&gt;
 thinkhdaps &amp;amp;&lt;br /&gt;
to make the '''ThinkHDAPS''' icon appear in the notification area&lt;br /&gt;
&lt;br /&gt;
[[File:ThinkHDAPS.png]]&lt;br /&gt;
&lt;br /&gt;
To make it autostart go to '''System -&amp;gt; Preferences -&amp;gt; Startup Applications''', select the &amp;quot;Startup Programms&amp;quot; tab, click Add and add this &lt;br /&gt;
 Name: thinkhdaps&lt;br /&gt;
 Command: thinkhdaps&lt;br /&gt;
Click Add and then Close. Now the ThinkHDAPS icon should be always visible in the notification area.&lt;br /&gt;
&lt;br /&gt;
To change the sensitivity run&lt;br /&gt;
 sudo gedit /etc/default/hdapsd&lt;br /&gt;
and change the SENSITIVITY value. Default is 15 whereas higher values mean less sensitive. For example 25 seems to be just fine.&lt;br /&gt;
&lt;br /&gt;
== Set up HDAPS accelerometer event ==&lt;br /&gt;
This section assumes you set up [http://www.thinkwiki.org/wiki/Tp_smapi#Installation_on_Ubuntu_Lucid tp_smapi].&lt;br /&gt;
&lt;br /&gt;
To add the device rule (this worked for X61t, there is more info about the udev rule on [http://www.thinkwiki.org/wiki/Talk:HDAPS#Question_regarding_the_example_udev_rule_.3F the HDAPS Talk page])&lt;br /&gt;
 echo 'KERNEL==&amp;quot;event[0-9]*&amp;quot;, ATTRS{phys}==&amp;quot;hdaps/input1&amp;quot;,ATTRS{modalias}==&amp;quot;input:b0019v1014p5054e4801-*&amp;quot;,SYMLINK+=&amp;quot;input/hdaps/accelerometer-event&amp;quot;' | sudo tee /etc/udev/rules.d/51-hdaps.rules&lt;br /&gt;
Then force the reloading of rules.d&lt;br /&gt;
 sudo udevadm trigger&lt;br /&gt;
Now you should have a&lt;br /&gt;
 /dev/input/hdaps/accelerometer-event&lt;br /&gt;
&lt;br /&gt;
= Power Management =&lt;br /&gt;
&lt;br /&gt;
== Fix the hard drive clicking bug ==&lt;br /&gt;
If you don't know what the hard drive clicking bug is, read [http://www.thinkwiki.org/wiki/Problem_with_hard_drive_clicking this]. Although this bug was apparently fixed in Ubuntu Karmic, Lucid seems to be affected. &lt;br /&gt;
&lt;br /&gt;
{{WARN|Here is a solution that worked for me. It's a bit dirty and turns off the power management of your HDD. This will slightly decrease your battery life but greatly improve your drive's lifetime.}} &lt;br /&gt;
{{HINT|If you have a better solution, be sure to share it here}} &lt;br /&gt;
&lt;br /&gt;
To fix the bug open a terminal and run&lt;br /&gt;
 sudo cp /usr/lib/pm-utils/power.d/95hdparm-apm /etc/pm/power.d/&lt;br /&gt;
 sudo gedit /etc/pm/power.d/95hdparm-apm&lt;br /&gt;
&lt;br /&gt;
Insert &amp;quot;hdparm -B 254 /dev/sda&amp;quot; after &amp;quot;resume_hdparm_apm&amp;quot; so that the appropriate section looks like this&lt;br /&gt;
&lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
 	thaw|resume|true|false) # true and false for power.d&lt;br /&gt;
                 resume_hdparm_apm&lt;br /&gt;
                 hdparm -B 254 /dev/sda&lt;br /&gt;
                 ;;&lt;br /&gt;
            *)&lt;br /&gt;
                 exit 254&lt;br /&gt;
                 ;;&lt;br /&gt;
                 esac&lt;br /&gt;
&lt;br /&gt;
To test the fix try suspending/resuming and plugging/unpluging AC power. After each process run&lt;br /&gt;
 sudo hdparm -B /dev/sda&lt;br /&gt;
hdparm should always report&lt;br /&gt;
&lt;br /&gt;
 /dev/sda:&lt;br /&gt;
  APM_level	= 254&lt;br /&gt;
&lt;br /&gt;
== Setup Fan Control ==&lt;br /&gt;
&lt;br /&gt;
{{WARN|Wrong fan control settings may seriously damage you Thinkpad. You do it on your own risk!}} &lt;br /&gt;
&lt;br /&gt;
To override BIOS fan control you can install '''ThinkPad Fan Control'''. Go to '''System -&amp;gt; Administration -&amp;gt; Synaptic Package Manager'''. Switch to the &amp;quot;Third Party Software&amp;quot; tab and click on &amp;quot;Add&amp;quot;. As APT line add this&lt;br /&gt;
 deb http://ppa.launchpad.net/tp-fan/ppa/ubuntu jaunty main&lt;br /&gt;
Click &amp;quot;Add Source&amp;quot; then &amp;quot;Close&amp;quot; and finally &amp;quot;Reload&amp;quot; as suggested. Now use &amp;quot;Synaptic Package Manager&amp;quot; to install following packages&lt;br /&gt;
 tpfand tpfan-admin tpfand-profiles&lt;br /&gt;
Go to '''System -&amp;gt; Administration -&amp;gt; ThinkPad Fan Control''' and click on &amp;quot;Unlock&amp;quot;. Select &amp;quot;Control system fan by software&amp;quot; and you're done.&lt;br /&gt;
&lt;br /&gt;
It's also possible to define your own fan control rules thus overriding the default settings. To do this select &amp;quot;Manually configure system fan trigger temperatures&amp;quot;. Here is an example for a Z61m with Core2Duo T5500 and GMA 950. &lt;br /&gt;
Models with discrete graphics (like FireGL) will probably need lower threshholds as they usually produce more heat and thus require better cooling.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot-ThinkPad_Fan_Control_Configuration.png]]&lt;br /&gt;
&lt;br /&gt;
{{HELP|Did someone else experience this problem and test the workaround?}}&lt;br /&gt;
&lt;br /&gt;
Sometimes ThinkPad Fan Control's daemon '''tpfand''' crashes for unknown reasons causing software fan control to stop working (i.e. BIOS starts controlling the fan). It seems that this problem is somehow HAL related, since tpfand relies on HAL for determining the ThinkPad's model. If the detection routine fails, '''tpfand''' stops immediately(see [https://bugs.launchpad.net/tp-fan/+bug/575199 Bug #575199]). A quick and dirty solution is to tweak this detection by editing tpfand's settings.py&lt;br /&gt;
 sudo gedit /usr/lib/python2.6/dist-packages/tpfand/settings.py&lt;br /&gt;
and replacing&lt;br /&gt;
 self.product_id = None&lt;br /&gt;
 self.product_name = None&lt;br /&gt;
 self.product_pretty_vendor = None&lt;br /&gt;
 self.product_pretty_name = None&lt;br /&gt;
 self.product_pretty_id = None&lt;br /&gt;
by &lt;br /&gt;
 self.product_id = ''&lt;br /&gt;
 self.product_name = ''&lt;br /&gt;
 self.product_pretty_vendor = ''&lt;br /&gt;
 self.product_pretty_name = ''&lt;br /&gt;
 self.product_pretty_id = ''&lt;br /&gt;
this will prevent '''tpfand''' from crashing even if it wasn't able to detect your ThinkPad's model.&lt;br /&gt;
&lt;br /&gt;
== Configure Battery Charge Control ==&lt;br /&gt;
&lt;br /&gt;
In a terminal run&lt;br /&gt;
 sudo apt-get install sysfsutils&lt;br /&gt;
 sudo apt-get install tp-smapi-dkms&lt;br /&gt;
&lt;br /&gt;
Now run&lt;br /&gt;
 sudo gedit /etc/modules&lt;br /&gt;
and add &lt;br /&gt;
 tp_smapi &lt;br /&gt;
to the very end of the file. Run&lt;br /&gt;
 sudo gedit /etc/sysfs.conf&lt;br /&gt;
and add &lt;br /&gt;
 devices/platform/smapi/BAT0/start_charge_thresh=85&lt;br /&gt;
 devices/platform/smapi/BAT0/stop_charge_thresh=96&lt;br /&gt;
to the very end of the file. Save and reboot. With this values your battery will start charging at 80% and stop charging at 96%. Of course you can also put other values between 1 and 100.&lt;br /&gt;
&lt;br /&gt;
To check the current thresholds run&lt;br /&gt;
 cat /sys/devices/platform/smapi/BAT0/start_charge_thresh&lt;br /&gt;
and&lt;br /&gt;
 cat /sys/devices/platform/smapi/BAT0/stop_charge_thresh&lt;br /&gt;
&lt;br /&gt;
= External Sources =&lt;br /&gt;
*[http://wiki.ubuntuusers.de/Trackpoint] Trackpoint Configuration (wiki.ubuntuusers.de)&lt;br /&gt;
*[http://fedoraproject.org/wiki/Features/ColorManagement] Gnome Color Manager (fedoraproject.org)&lt;br /&gt;
*[http://www.ubuntufieldmanual.com/?q=node/38] Calibrate your monitor (Ubuntu Field Manual)&lt;/div&gt;</summary>
		<author><name>Tripwired</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&amp;diff=49019</id>
		<title>Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad Z61m</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&amp;diff=49019"/>
		<updated>2010-07-12T02:23:49Z</updated>

		<summary type="html">&lt;p&gt;Tripwired: /* Set up HDAPS accelerometer event */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Installing from USB stick=&lt;br /&gt;
&lt;br /&gt;
If you already use Ubuntu 9.10 Karmic, installing Ubuntu 10.04 from USB stick is very easy. Just download the [http://www.ubuntu.com/getubuntu/download latest ISO], plug the USB stick in and run System--&amp;gt;Administration--&amp;gt;Create a USB startup disk. Load the downloaded ISO and hit &amp;quot;Make Startup Disk&amp;quot;. For more information check [https://help.ubuntu.com/community/Installation/FromUSBStick#Creating%20a%20bootable%20USB%20Drive this page]. After that reboot your Thinkpad and press F12. This will allow you to boot from USB stick and start the installation routine.&lt;br /&gt;
&lt;br /&gt;
= Tested Configuration =&lt;br /&gt;
* Lenovo ThinkPad {{Z61m}} (9450-H9G)&lt;br /&gt;
** [[Intel Core 2 Duo]] T5500 (1,66 GHz, 2 MB L2, 667MHz FSB)&lt;br /&gt;
** 2 GB RAM (2x 1 GB [[PC2-5300]] DDR2 667MHz)&lt;br /&gt;
** 15.4&amp;quot; wide-screen TFT WXGA 1280x800&lt;br /&gt;
** [[Intel Graphics Media Accelerator 950]]&lt;br /&gt;
** Seagate Momentus 7200.3 ST9160411ASG (160 GB SATA 7200 RPM) [http://www.thinkwiki.org/wiki/Talk:Problem_with_hard_drive_clicking  reflashed to Dell OEM Firmware]&lt;br /&gt;
** Ultrabay Enhanced DVD±RW Burner (GMA-4082N, FRU 39T2723)&lt;br /&gt;
** Intel HD Audio with [[AD1981HD]] codec&lt;br /&gt;
** [[Broadcom Gigabit Ethernet (10/100/1000)]]&lt;br /&gt;
** [[ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)]]&lt;br /&gt;
** [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]&lt;br /&gt;
** [[IrDA]] 1.1 (FIR - 4Mbps)&lt;br /&gt;
** [[SD_Card_slot|4-in-1 digital media reader]] (MultiMedia Card, MemoryStick, SD)&lt;br /&gt;
** [[Integrated Fingerprint Reader]]&lt;br /&gt;
** [[ThinkLight]]&lt;br /&gt;
** [[UltraNav]]&lt;br /&gt;
** [[CardBus]] slot (Type 2)&lt;br /&gt;
** [[ExpressCard slot]] (54 or 34)&lt;br /&gt;
** [[UltraBay|UltraBay Enhanced]]&lt;br /&gt;
** 3x USB 2.0, Firewire, VGA out, S-Video out, Headphone Jack, Microphone Jack&lt;br /&gt;
** Built-in Microphone&lt;br /&gt;
&lt;br /&gt;
= Hardware Support =&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;2&amp;quot;&lt;br /&gt;
|Device / Function&lt;br /&gt;
|Works?&lt;br /&gt;
|Comment&lt;br /&gt;
|-&lt;br /&gt;
|Suspend &amp;amp; Hibernate&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Intel GMA950 2D and 3D&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Intel 3945ABG WiFi&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Broadcom Gigabit Ethernet&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|DVD±RW Burner&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Ultrabay Hotswapping&lt;br /&gt;
|{{Cpart}} &lt;br /&gt;
|hotswapping optical drives (like DVD±RW) works out of the box, for HDD hotswapping  [http://www.thinkwiki.org/wiki/How_to_hotswap_Ultrabay_devices#Using_libata-acpi_and_udev look here]&lt;br /&gt;
|-&lt;br /&gt;
|Hard Drive Active Protection System&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|must be activated and configured. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Hard_Drive_Active_Protection_System See here]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Intel HDA Sound&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box, modem must be enabled in BIOS&lt;br /&gt;
|-&lt;br /&gt;
|PCMCIA&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Express Card&lt;br /&gt;
|{{Cunk}} (should work) &lt;br /&gt;
|not tested&lt;br /&gt;
|-&lt;br /&gt;
|TPM&lt;br /&gt;
|{{Cunk}} (should work)  &lt;br /&gt;
|not tested, for further information check out these links [http://die-klapsmuehle.org/2009/01/29/how-to-use-a-tpm-with-ubuntu/], [https://www.grounation.org/index.php?post/2008/07/04/8-how-to-use-a-tpm-with-linux] &lt;br /&gt;
|-&lt;br /&gt;
|Firewire&lt;br /&gt;
|{{Cunk}} (should work) &lt;br /&gt;
|not tested&lt;br /&gt;
|-&lt;br /&gt;
|USB&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|IRDA&lt;br /&gt;
|{{Cunk}} (should work) &lt;br /&gt;
|not tested&lt;br /&gt;
|-&lt;br /&gt;
|Docking&lt;br /&gt;
|{{Cunk}} (should work)  &lt;br /&gt;
|not tested&lt;br /&gt;
|-&lt;br /&gt;
|Fingerprint Reader&lt;br /&gt;
|{{Cyes}}&lt;br /&gt;
|works with ThinkFinger. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Fingerprint_Reader See here]&lt;br /&gt;
|-&lt;br /&gt;
|VGA out&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|S-Video out&lt;br /&gt;
|{{Cpart}} &lt;br /&gt;
|a 100 Hz Sony TV was recognized as a 30 Hz TV, poor picture&lt;br /&gt;
|-&lt;br /&gt;
|Modem&lt;br /&gt;
|{{Cunk}} &lt;br /&gt;
|not tested&lt;br /&gt;
|-&lt;br /&gt;
|Microphone&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|both internal and external mics work out of the box, but are muted by default. See bellow&lt;br /&gt;
|-&lt;br /&gt;
|Headphones&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Touchpad&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Trackpoint&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box, to enable middle button scrolling see bellow&lt;br /&gt;
|-&lt;br /&gt;
|Multimedia Card Reader&lt;br /&gt;
|{{Cyes}}?&lt;br /&gt;
|works out of the box with all kinds of SD cards. No other cards have been tested&lt;br /&gt;
|-&lt;br /&gt;
|{{key|Fn}}{{key|Fx}}, {{key|Fn}}{{key|PageUp}}, {{key|Fn}}{{key|Home}}, {{key|Fn}}{{key|End}}&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box, except of {{key|Fn}}{{key|F9}} and {{key|Fn}}{{key|Space}}. For configuring {{key|Fn}}{{key|Space}} [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work see here]&lt;br /&gt;
|-&lt;br /&gt;
|{{key|Fn}}{{key|Up}}, {{key|Fn}}{{key|Down}}, {{key|Fn}}{{key|Left}}, {{key|Fn}}{{key|Right}}&lt;br /&gt;
|{{Cpart}}&lt;br /&gt;
|depends on the player, works out of the box with Rhytmbox but not Audacious. Thus, needs additional configuration&lt;br /&gt;
|-&lt;br /&gt;
|{{ibmkey|ThinkVantage|#495988}}&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|does nothing by default, but can be easily mapped to something useful. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Map_ThinkVantage_Button See here]&lt;br /&gt;
|-&lt;br /&gt;
|{{ibmkey|Volume up|#494949}}, {{ibmkey|Volume down|#494949}}, {{ibmkey|Volume mute|#494949}}&lt;br /&gt;
|{{Cpart}} &lt;br /&gt;
|the volume buttons work but don't affect the software (Pulse Audio) mixer. For possible workarounds [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Workaround_for_the_Volume_Buttons see here]&lt;br /&gt;
|-&lt;br /&gt;
|Back and Forward keys (near the arrow keys)&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|{{key|Fn}}{{key|Space}} (Screen Magnify)&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|requires some acpi hacking. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work See here]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Z61m]]&lt;br /&gt;
&lt;br /&gt;
= HOWTOS = &lt;br /&gt;
&lt;br /&gt;
==  Setup the Middle Button Scrolling  == &lt;br /&gt;
&lt;br /&gt;
Start a terminal and run &lt;br /&gt;
&lt;br /&gt;
 sudo gedit /usr/lib/X11/xorg.conf.d/20-trackpoint.conf&lt;br /&gt;
&lt;br /&gt;
paste this &lt;br /&gt;
&lt;br /&gt;
 Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
     Identifier      &amp;quot;Trackpoint&amp;quot;&lt;br /&gt;
     MatchProduct    &amp;quot;TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint&amp;quot;&lt;br /&gt;
     MatchDevicePath &amp;quot;/dev/input/event*&amp;quot;&lt;br /&gt;
     Option          &amp;quot;EmulateWheel&amp;quot; &amp;quot;true&amp;quot;&lt;br /&gt;
     Option          &amp;quot;EmulateWheelButton&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
     Option          &amp;quot;EmulateWheelTimeout&amp;quot; &amp;quot;200&amp;quot; &lt;br /&gt;
     Option	    &amp;quot;Emulate3Buttons&amp;quot;	&amp;quot;false&amp;quot;&lt;br /&gt;
     Option          &amp;quot;YAxisMapping&amp;quot; &amp;quot;4 5&amp;quot;&lt;br /&gt;
     Option          &amp;quot;XAxisMapping&amp;quot; &amp;quot;6 7&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
and save. Reboot.&lt;br /&gt;
&lt;br /&gt;
== Configure Trackpoint and Touchpad ==&lt;br /&gt;
The most convenient way to do this is to install GPointing Device Settings via &lt;br /&gt;
 sudo apt-get install gpointing-device-settings&lt;br /&gt;
After that you will find it in System -&amp;gt; Preferences -&amp;gt; Pointing Devices&lt;br /&gt;
&lt;br /&gt;
[[image:Screenshot-GPointing Device Settings-TrackPoint.png]]&lt;br /&gt;
&lt;br /&gt;
GPointing Device Settings, however, can't configure such important Trackpoint settings as sensitivity, speed and press to select. To do this, open a terminal, run&lt;br /&gt;
 sudo apt-get install sysfsutils&lt;br /&gt;
 sudo gedit /etc/rc.local&lt;br /&gt;
paste &lt;br /&gt;
&lt;br /&gt;
 for i in 1 2 3&lt;br /&gt;
 do&lt;br /&gt;
  if [ -d /sys/devices/platform/i8042/serio1/serio$i ]; then&lt;br /&gt;
   echo -n 200 &amp;gt; /sys/devices/platform/i8042/serio1/serio$i/speed&lt;br /&gt;
   echo -n 150 &amp;gt; /sys/devices/platform/i8042/serio1/serio$i/sensitivity&lt;br /&gt;
   echo -n 1 &amp;gt; /sys/devices/platform/i8042/serio1/serio$i/press_to_select&lt;br /&gt;
  fi&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
before &lt;br /&gt;
 exit 0&lt;br /&gt;
and save. This will set sensitivity to 200, speed to 150 and activate press to select. Replacing &amp;quot;echo -n 1&amp;quot; by &amp;quot;echo -n 0&amp;quot; in the file will deactivate press to select. To find the right speed and sensitivity values, you should do some tests before by issuing&lt;br /&gt;
 echo -n 200 | sudo tee /sys/devices/platform/i8042/serio1/serio?/sensitivity&lt;br /&gt;
 echo -n 150 | sudo tee /sys/devices/platform/i8042/serio1/serio?/speed&lt;br /&gt;
in the terminal and using different numerical values between 0 and 255. The default values are 128 for sensitivity and 97 for speed.&lt;br /&gt;
&lt;br /&gt;
== Workaround for the Volume Buttons ==&lt;br /&gt;
&lt;br /&gt;
Volume buttons work but don't control software mixer settings. Thus you effectively get two volume scales completely independent from each other: Ubuntu's software mixer and Z61m's hardware mixer. That's confusing and inconvenient but as of 2010-05-05 (see [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/357673 Bug #357673]) still unfixed. &lt;br /&gt;
&lt;br /&gt;
=== Possible Workaround #1 ===&lt;br /&gt;
&lt;br /&gt;
A simple workaround is to set hardware volume control to an acceptable level and not to use those volume buttons afterwards. Instead, you can use the software mixer only. It's easy to configure {{key|Win}}{{key|F1}} and {{key|Win}}{{key|F2}} which are not used in Ubuntu by default to act as volume buttons for the software mixer. To do this go to '''System -&amp;gt; Preferenced -&amp;gt; Keyboard shortcuts''', click on &amp;quot;Volume Down&amp;quot; and press {{key|Win}}{{key|F1}}. Now click on &amp;quot;Volume Up&amp;quot; and press {{key|Win}}{{key|F2}}. If you also need mute, you can define {{key|Win}}{{key|1}} for that. The changes will be applied immediately.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot-Keyboard_Shortcuts.png]]&lt;br /&gt;
&lt;br /&gt;
=== Possible Workaround #2 ===&lt;br /&gt;
&lt;br /&gt;
If you still want to use volume keys for volume control, you should run&lt;br /&gt;
 sudo gedit /etc/rc.local&lt;br /&gt;
and add this before &amp;quot;exit 0&amp;quot;&lt;br /&gt;
 cp /sys/devices/platform/thinkpad_acpi/hotkey_all_mask /sys/devices/platform/thinkpad_acpi/hotkey_mask&lt;br /&gt;
This solution is still not really acceptable because it uses a quite weird volume scale resulting in maximum loudness already on 50% of the software mixer. If you've already applied workaround #1, be sure to map &amp;quot;Volume Up&amp;quot; and &amp;quot;Volume Down&amp;quot; back to the Thinkpad volume keys&lt;br /&gt;
&lt;br /&gt;
== Make Fn-Space (Screen Magnify) work ==&lt;br /&gt;
&lt;br /&gt;
Open a terminal and run&lt;br /&gt;
 sudo apt-get install kmag&lt;br /&gt;
 sudo gedit /etc/acpi/events/asus-rotate&lt;br /&gt;
replace it's content by the following&lt;br /&gt;
 # /etc/acpi/events/ibmwireless&lt;br /&gt;
 # This is called when the user presses Fn-Space&lt;br /&gt;
 event=ibm/hotkey HKEY 00000080 00001014&lt;br /&gt;
 action=/etc/acpi/ibm-zoom.sh&lt;br /&gt;
and save. Now run&lt;br /&gt;
 sudo cp /etc/acpi/ibm-wireless.sh /etc/acpi/ibm-zoom.sh&lt;br /&gt;
 sudo gedit /etc/acpi/ibm-zoom.sh&lt;br /&gt;
and replace its content by the following&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # This script activates gnome-mag when Fn+Space is pressed&lt;br /&gt;
 test -f /usr/share/acpi-support/key-constants || exit 0&lt;br /&gt;
 . /usr/share/acpi-support/power-funcs&lt;br /&gt;
 magnifier_pid=`pidof kmag`&lt;br /&gt;
 for x in /tmp/.X11-unix/*; do&lt;br /&gt;
        displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`&lt;br /&gt;
        getXconsole;&lt;br /&gt;
        if [ x&amp;quot;$XAUTHORITY&amp;quot; != x&amp;quot;&amp;quot; ]; then&lt;br /&gt;
            export DISPLAY=&amp;quot;:$displaynum&amp;quot;&lt;br /&gt;
            if [ &amp;quot;$magnifier_pid&amp;quot; != &amp;quot;&amp;quot; ]; then	    &lt;br /&gt;
 		/usr/bin/killall kmag&lt;br /&gt;
            break&lt;br /&gt;
            else&lt;br /&gt;
                /usr/bin/kmag &amp;amp;&lt;br /&gt;
                break&lt;br /&gt;
            fi&lt;br /&gt;
        fi&lt;br /&gt;
 done&lt;br /&gt;
Save and reboot. Now when pressing Fn-Space you can open KMagnifier. Pressing Fn-Space once again will close KMagnifier. You can configure KMagnifier as you like and your settings will be saved automatically&lt;br /&gt;
&lt;br /&gt;
== Map ThinkVantage Button ==&lt;br /&gt;
ThinkVantage Button is recognized but is not mapped to any function so that pressing it does nothing. To change this go to '''System-&amp;gt;Preferences-&amp;gt; Keyboard shortcuts'''. There you can look for some predefined actions ThinkVantage Button might do for you. To map the button to a certain action simply click on the action and press {{ibmkey|ThinkVantage|#495988}}. Via Add you can also add your own commands, for instance to start your browser or e-mail client.&lt;br /&gt;
&lt;br /&gt;
==  Setup External Monitor or Beamer (VGA)  == &lt;br /&gt;
&lt;br /&gt;
Connect your monitor/beamer to VGA port and go to '''System -&amp;gt; Preferences -&amp;gt; Monitors'''. For quick access to those settings it might be useful to activate &amp;quot;Show monitors in panel&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Lucid_ext_Monitor_new.png]]&lt;br /&gt;
&lt;br /&gt;
You can also use this to configure an external device connected to S-Video Out.&lt;br /&gt;
&lt;br /&gt;
[[File:Z61m_svideo.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Setup Color Management  == &lt;br /&gt;
To use ICC/ICM profiles you should install [http://projects.gnome.org/gnome-color-manager/ GNOME Color Manager] via&lt;br /&gt;
 sudo apt-get install gnome-color-manager&lt;br /&gt;
After that it should appear under '''System -&amp;gt; Preferences -&amp;gt; Color Profiles'''. Alternatively you can start it from the terminal by issuing&lt;br /&gt;
 gcm-prefs&lt;br /&gt;
GCM should detect your Thinkpad monitor automatically. All you need to do is supply the correct ICC/ICM profile by clicking on the list under '''Color Profile''' and selecting '''Other profile ...'''&lt;br /&gt;
&lt;br /&gt;
[[File:CMgment.jpg]]&lt;br /&gt;
&lt;br /&gt;
Lenovo does supply ICM profiles for most Thinkpads, but in order to open the appropriate .exe-archive under Linux you'll need Wine. Install Wine by running&lt;br /&gt;
 sudo apt-get install wine&lt;br /&gt;
After that download [http://www-307.ibm.com/pc/support/site.wss/migr-62923.html 79oi22ww.exe] and right-click the file. Go to the '''Properties''' tab and tick '''Allow executing file as program''' In the '''Open With''' tab select '''Wine Windows Program Loader''' and close the dialog. Now double-click 79oi22ww.exe, and hit Next -&amp;gt; I accept the agreement -&amp;gt; Next -&amp;gt; Next -&amp;gt; Install -&amp;gt; Finish. Using Nautilus go to &amp;quot;~/.wine/drive_c/DRIVERS/WIN/MONITOR&amp;quot;. There you'll find different ICM profiles which can be used by GCM. '''TPFLX.icm''' is for [http://www.thinkwiki.org/wiki/Flexview#Flexview_.28IPS.29 FlexView] panels whereas '''TPMB60.ICM''' and '''TPMB72.ICM''' are for [http://www.thinkwiki.org/wiki/Flexview#MaxBright MaxBright] panels. If you have only a plain TFT panel (not MaxBright) then stick to '''TPLCD.icm'''. &lt;br /&gt;
&lt;br /&gt;
After importing the appropriate profile to GCM and selecting it, be sure to go to '''Defaults''' tab and select '''Apply display correction'''  and '''Set profile for color managed applications''' Unfortunately, GCM doesn't seem to support manual adjustments of gamma, brightness or contrast on Thinkpad displays. &lt;br /&gt;
&lt;br /&gt;
At least adjusting gamma is possible when using '''xgamma'''. In a terminal run &lt;br /&gt;
 xgamma&lt;br /&gt;
to see you current gamma settings. You should see something like&lt;br /&gt;
 -&amp;gt; Red  1.000, Green  1.000, Blue  1.000&lt;br /&gt;
It is possible to adjust gamma values for all colors at the same time by issuing something like&lt;br /&gt;
 xgamma -gamma 0.9&lt;br /&gt;
or for red, green and blue separately&lt;br /&gt;
 xgamma -rgamma 0.815 -ggamma 0.844 -bgamma 1.0&lt;br /&gt;
If you want to be able to relate RGB gamma values to a certain colour temperature, take a look at [http://www.vendian.org/mncharity/dir3/blackbody/UnstableURLs/bbr_color.html this page by Mitchell Charity]. Thus, to get something like 7800K you'll have to issue&lt;br /&gt;
 xgamma -rgamma 0.8115 -ggamma 0.8351 -bgamma 1.0&lt;br /&gt;
After having found your favourite settings, you'll probably want to make them persistent. To do this go to '''System -&amp;gt; Preferences -&amp;gt; Startup Applications''', select the &amp;quot;Startup Programms&amp;quot; tab, click Add and add something like this&lt;br /&gt;
 Name: xgamma&lt;br /&gt;
 Command: xgamma -rgamma 0.8 -ggamma 0.8 -bgamma 1.0&lt;br /&gt;
(replace these values by your values) Click Add and then Close. Now these xgamma settings will be applied on each Gnome startup&lt;br /&gt;
&lt;br /&gt;
==  Setup Fingerprint Reader  == &lt;br /&gt;
&lt;br /&gt;
Although thinkfinger can be installed from Lucid repos, it contains some regressions which&lt;br /&gt;
prevent fingerprint authentication from working properly. For more information check out &lt;br /&gt;
[https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/256429 Bug #256429] Martin Schwenke &lt;br /&gt;
provides a PPA with the fixed version of thinkfinger which seems to work quite well.&lt;br /&gt;
&lt;br /&gt;
To install thinkfinger open a terminal and run &lt;br /&gt;
 sudo add-apt-repository ppa:martin-meltin/ppa&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install libpam-thinkfinger=0.3+r118-0ubuntu4ppamartinmeltin5&lt;br /&gt;
 sudo /usr/lib/pam-thinkfinger/pam-thinkfinger-enable&lt;br /&gt;
after that run&lt;br /&gt;
 tf-tool --acquire $USERNAME&lt;br /&gt;
to acquire your fingerprint. Now you can use Z61m's fingerprint reader when using sudo/gksudo or in GDM login screen.&lt;br /&gt;
&lt;br /&gt;
There seems to be a gnome-keyring related problem in Lucid when using fingerprint to log in. In that case Network Manager (nm-applet) may not appear in the panel or freeze when trying to change connection settings ([https://bugs.launchpad.net/ubuntu/+source/seahorse/+bug/529338 Bug #529338]). A known workaround is not to use fingerprint when logging in. You, however, still can use fingerprint for sudo, gksudo and all other supported authentication prompts.&lt;br /&gt;
&lt;br /&gt;
== Setup Hard Drive Active Protection System ==&lt;br /&gt;
Open a terminal and run&lt;br /&gt;
 sudo apt-get install tp-smapi-dkms&lt;br /&gt;
 sudo apt-get install python python-gtk2 python-gnome2 hdapsd&lt;br /&gt;
Now run&lt;br /&gt;
 sudo gedit /etc/modules&lt;br /&gt;
and add &lt;br /&gt;
 tp_smapi &lt;br /&gt;
to the very end of the file so that it looks like this (example)&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 lp&lt;br /&gt;
 tp_smapi&lt;br /&gt;
&lt;br /&gt;
Reboot. Now HDAPS should work. If you want to have a HDAPS icon in your notification area&lt;br /&gt;
like in Windows, follow these steps to install [http://thpani.at/projects/thinkhdaps/ ThinkHDAPS]&lt;br /&gt;
&lt;br /&gt;
Download [https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb] and put it into your home directory. Right click on the file and select &amp;quot;Extract Here&amp;quot;. In terminal run&lt;br /&gt;
 cd ~&lt;br /&gt;
 cd thinkhdaps_0.2.1-1_all&lt;br /&gt;
 sudo cp&lt;br /&gt;
 tar -zxvf data.tar.gz &lt;br /&gt;
 sudo cp usr/bin/thinkhdaps /usr/bin/&lt;br /&gt;
 sudo chmod +x /usr/bin/thinkhdaps&lt;br /&gt;
 sudo cp usr/share/pixmaps/* /usr/share/pixmaps/&lt;br /&gt;
&lt;br /&gt;
Now you can run&lt;br /&gt;
 thinkhdaps &amp;amp;&lt;br /&gt;
to make the '''ThinkHDAPS''' icon appear in the notification area&lt;br /&gt;
&lt;br /&gt;
[[File:ThinkHDAPS.png]]&lt;br /&gt;
&lt;br /&gt;
To make it autostart go to '''System -&amp;gt; Preferences -&amp;gt; Startup Applications''', select the &amp;quot;Startup Programms&amp;quot; tab, click Add and add this &lt;br /&gt;
 Name: thinkhdaps&lt;br /&gt;
 Command: thinkhdaps&lt;br /&gt;
Click Add and then Close. Now the ThinkHDAPS icon should be always visible in the notification area.&lt;br /&gt;
&lt;br /&gt;
To change the sensitivity run&lt;br /&gt;
 sudo gedit /etc/default/hdapsd&lt;br /&gt;
and change the SENSITIVITY value. Default is 15 whereas higher values mean less sensitive. For example 25 seems to be just fine.&lt;br /&gt;
&lt;br /&gt;
== Set up HDAPS accelerometer event ==&lt;br /&gt;
This section assumes you set up [http://www.thinkwiki.org/wiki/Tp_smapi#Installation_on_Ubuntu_Lucid this page tp_smapi].&lt;br /&gt;
&lt;br /&gt;
To add the device rule (this worked for X61t, there is more info about the udev rule on [http://www.thinkwiki.org/wiki/Talk:HDAPS#Question_regarding_the_example_udev_rule_.3F the HDAPS Talk page])&lt;br /&gt;
 echo 'KERNEL==&amp;quot;event[0-9]*&amp;quot;, ATTRS{phys}==&amp;quot;hdaps/input1&amp;quot;,ATTRS{modalias}==&amp;quot;input:b0019v1014p5054e4801-*&amp;quot;,SYMLINK+=&amp;quot;input/hdaps/accelerometer-event&amp;quot;' | sudo tee /etc/udev/rules.d/51-hdaps.rules&lt;br /&gt;
Then force the reloading of rules.d&lt;br /&gt;
 sudo udevadm trigger&lt;br /&gt;
Now you should have a&lt;br /&gt;
 /dev/input/hdaps/accelerometer-event&lt;br /&gt;
&lt;br /&gt;
= Power Management =&lt;br /&gt;
&lt;br /&gt;
== Fix the hard drive clicking bug ==&lt;br /&gt;
If you don't know what the hard drive clicking bug is, read [http://www.thinkwiki.org/wiki/Problem_with_hard_drive_clicking this]. Although this bug was apparently fixed in Ubuntu Karmic, Lucid seems to be affected. &lt;br /&gt;
&lt;br /&gt;
{{WARN|Here is a solution that worked for me. It's a bit dirty and turns off the power management of your HDD. This will slightly decrease your battery life but greatly improve your drive's lifetime.}} &lt;br /&gt;
{{HINT|If you have a better solution, be sure to share it here}} &lt;br /&gt;
&lt;br /&gt;
To fix the bug open a terminal and run&lt;br /&gt;
 sudo cp /usr/lib/pm-utils/power.d/95hdparm-apm /etc/pm/power.d/&lt;br /&gt;
 sudo gedit /etc/pm/power.d/95hdparm-apm&lt;br /&gt;
&lt;br /&gt;
Insert &amp;quot;hdparm -B 254 /dev/sda&amp;quot; after &amp;quot;resume_hdparm_apm&amp;quot; so that the appropriate section looks like this&lt;br /&gt;
&lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
 	thaw|resume|true|false) # true and false for power.d&lt;br /&gt;
                 resume_hdparm_apm&lt;br /&gt;
                 hdparm -B 254 /dev/sda&lt;br /&gt;
                 ;;&lt;br /&gt;
            *)&lt;br /&gt;
                 exit 254&lt;br /&gt;
                 ;;&lt;br /&gt;
                 esac&lt;br /&gt;
&lt;br /&gt;
To test the fix try suspending/resuming and plugging/unpluging AC power. After each process run&lt;br /&gt;
 sudo hdparm -B /dev/sda&lt;br /&gt;
hdparm should always report&lt;br /&gt;
&lt;br /&gt;
 /dev/sda:&lt;br /&gt;
  APM_level	= 254&lt;br /&gt;
&lt;br /&gt;
== Setup Fan Control ==&lt;br /&gt;
&lt;br /&gt;
{{WARN|Wrong fan control settings may seriously damage you Thinkpad. You do it on your own risk!}} &lt;br /&gt;
&lt;br /&gt;
To override BIOS fan control you can install '''ThinkPad Fan Control'''. Go to '''System -&amp;gt; Administration -&amp;gt; Synaptic Package Manager'''. Switch to the &amp;quot;Third Party Software&amp;quot; tab and click on &amp;quot;Add&amp;quot;. As APT line add this&lt;br /&gt;
 deb http://ppa.launchpad.net/tp-fan/ppa/ubuntu jaunty main&lt;br /&gt;
Click &amp;quot;Add Source&amp;quot; then &amp;quot;Close&amp;quot; and finally &amp;quot;Reload&amp;quot; as suggested. Now use &amp;quot;Synaptic Package Manager&amp;quot; to install following packages&lt;br /&gt;
 tpfand tpfan-admin tpfand-profiles&lt;br /&gt;
Go to '''System -&amp;gt; Administration -&amp;gt; ThinkPad Fan Control''' and click on &amp;quot;Unlock&amp;quot;. Select &amp;quot;Control system fan by software&amp;quot; and you're done.&lt;br /&gt;
&lt;br /&gt;
It's also possible to define your own fan control rules thus overriding the default settings. To do this select &amp;quot;Manually configure system fan trigger temperatures&amp;quot;. Here is an example for a Z61m with Core2Duo T5500 and GMA 950. &lt;br /&gt;
Models with discrete graphics (like FireGL) will probably need lower threshholds as they usually produce more heat and thus require better cooling.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot-ThinkPad_Fan_Control_Configuration.png]]&lt;br /&gt;
&lt;br /&gt;
{{HELP|Did someone else experience this problem and test the workaround?}}&lt;br /&gt;
&lt;br /&gt;
Sometimes ThinkPad Fan Control's daemon '''tpfand''' crashes for unknown reasons causing software fan control to stop working (i.e. BIOS starts controlling the fan). It seems that this problem is somehow HAL related, since tpfand relies on HAL for determining the ThinkPad's model. If the detection routine fails, '''tpfand''' stops immediately(see [https://bugs.launchpad.net/tp-fan/+bug/575199 Bug #575199]). A quick and dirty solution is to tweak this detection by editing tpfand's settings.py&lt;br /&gt;
 sudo gedit /usr/lib/python2.6/dist-packages/tpfand/settings.py&lt;br /&gt;
and replacing&lt;br /&gt;
 self.product_id = None&lt;br /&gt;
 self.product_name = None&lt;br /&gt;
 self.product_pretty_vendor = None&lt;br /&gt;
 self.product_pretty_name = None&lt;br /&gt;
 self.product_pretty_id = None&lt;br /&gt;
by &lt;br /&gt;
 self.product_id = ''&lt;br /&gt;
 self.product_name = ''&lt;br /&gt;
 self.product_pretty_vendor = ''&lt;br /&gt;
 self.product_pretty_name = ''&lt;br /&gt;
 self.product_pretty_id = ''&lt;br /&gt;
this will prevent '''tpfand''' from crashing even if it wasn't able to detect your ThinkPad's model.&lt;br /&gt;
&lt;br /&gt;
== Configure Battery Charge Control ==&lt;br /&gt;
&lt;br /&gt;
In a terminal run&lt;br /&gt;
 sudo apt-get install sysfsutils&lt;br /&gt;
 sudo apt-get install tp-smapi-dkms&lt;br /&gt;
&lt;br /&gt;
Now run&lt;br /&gt;
 sudo gedit /etc/modules&lt;br /&gt;
and add &lt;br /&gt;
 tp_smapi &lt;br /&gt;
to the very end of the file. Run&lt;br /&gt;
 sudo gedit /etc/sysfs.conf&lt;br /&gt;
and add &lt;br /&gt;
 devices/platform/smapi/BAT0/start_charge_thresh=85&lt;br /&gt;
 devices/platform/smapi/BAT0/stop_charge_thresh=96&lt;br /&gt;
to the very end of the file. Save and reboot. With this values your battery will start charging at 80% and stop charging at 96%. Of course you can also put other values between 1 and 100.&lt;br /&gt;
&lt;br /&gt;
To check the current thresholds run&lt;br /&gt;
 cat /sys/devices/platform/smapi/BAT0/start_charge_thresh&lt;br /&gt;
and&lt;br /&gt;
 cat /sys/devices/platform/smapi/BAT0/stop_charge_thresh&lt;br /&gt;
&lt;br /&gt;
= External Sources =&lt;br /&gt;
*[http://wiki.ubuntuusers.de/Trackpoint] Trackpoint Configuration (wiki.ubuntuusers.de)&lt;br /&gt;
*[http://fedoraproject.org/wiki/Features/ColorManagement] Gnome Color Manager (fedoraproject.org)&lt;br /&gt;
*[http://www.ubuntufieldmanual.com/?q=node/38] Calibrate your monitor (Ubuntu Field Manual)&lt;/div&gt;</summary>
		<author><name>Tripwired</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&amp;diff=49018</id>
		<title>Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad Z61m</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&amp;diff=49018"/>
		<updated>2010-07-12T02:22:29Z</updated>

		<summary type="html">&lt;p&gt;Tripwired: /* Set up HDAPS accelerometer event */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Installing from USB stick=&lt;br /&gt;
&lt;br /&gt;
If you already use Ubuntu 9.10 Karmic, installing Ubuntu 10.04 from USB stick is very easy. Just download the [http://www.ubuntu.com/getubuntu/download latest ISO], plug the USB stick in and run System--&amp;gt;Administration--&amp;gt;Create a USB startup disk. Load the downloaded ISO and hit &amp;quot;Make Startup Disk&amp;quot;. For more information check [https://help.ubuntu.com/community/Installation/FromUSBStick#Creating%20a%20bootable%20USB%20Drive this page]. After that reboot your Thinkpad and press F12. This will allow you to boot from USB stick and start the installation routine.&lt;br /&gt;
&lt;br /&gt;
= Tested Configuration =&lt;br /&gt;
* Lenovo ThinkPad {{Z61m}} (9450-H9G)&lt;br /&gt;
** [[Intel Core 2 Duo]] T5500 (1,66 GHz, 2 MB L2, 667MHz FSB)&lt;br /&gt;
** 2 GB RAM (2x 1 GB [[PC2-5300]] DDR2 667MHz)&lt;br /&gt;
** 15.4&amp;quot; wide-screen TFT WXGA 1280x800&lt;br /&gt;
** [[Intel Graphics Media Accelerator 950]]&lt;br /&gt;
** Seagate Momentus 7200.3 ST9160411ASG (160 GB SATA 7200 RPM) [http://www.thinkwiki.org/wiki/Talk:Problem_with_hard_drive_clicking  reflashed to Dell OEM Firmware]&lt;br /&gt;
** Ultrabay Enhanced DVD±RW Burner (GMA-4082N, FRU 39T2723)&lt;br /&gt;
** Intel HD Audio with [[AD1981HD]] codec&lt;br /&gt;
** [[Broadcom Gigabit Ethernet (10/100/1000)]]&lt;br /&gt;
** [[ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)]]&lt;br /&gt;
** [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]&lt;br /&gt;
** [[IrDA]] 1.1 (FIR - 4Mbps)&lt;br /&gt;
** [[SD_Card_slot|4-in-1 digital media reader]] (MultiMedia Card, MemoryStick, SD)&lt;br /&gt;
** [[Integrated Fingerprint Reader]]&lt;br /&gt;
** [[ThinkLight]]&lt;br /&gt;
** [[UltraNav]]&lt;br /&gt;
** [[CardBus]] slot (Type 2)&lt;br /&gt;
** [[ExpressCard slot]] (54 or 34)&lt;br /&gt;
** [[UltraBay|UltraBay Enhanced]]&lt;br /&gt;
** 3x USB 2.0, Firewire, VGA out, S-Video out, Headphone Jack, Microphone Jack&lt;br /&gt;
** Built-in Microphone&lt;br /&gt;
&lt;br /&gt;
= Hardware Support =&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;2&amp;quot;&lt;br /&gt;
|Device / Function&lt;br /&gt;
|Works?&lt;br /&gt;
|Comment&lt;br /&gt;
|-&lt;br /&gt;
|Suspend &amp;amp; Hibernate&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Intel GMA950 2D and 3D&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Intel 3945ABG WiFi&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Broadcom Gigabit Ethernet&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|DVD±RW Burner&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Ultrabay Hotswapping&lt;br /&gt;
|{{Cpart}} &lt;br /&gt;
|hotswapping optical drives (like DVD±RW) works out of the box, for HDD hotswapping  [http://www.thinkwiki.org/wiki/How_to_hotswap_Ultrabay_devices#Using_libata-acpi_and_udev look here]&lt;br /&gt;
|-&lt;br /&gt;
|Hard Drive Active Protection System&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|must be activated and configured. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Hard_Drive_Active_Protection_System See here]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Intel HDA Sound&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box, modem must be enabled in BIOS&lt;br /&gt;
|-&lt;br /&gt;
|PCMCIA&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Express Card&lt;br /&gt;
|{{Cunk}} (should work) &lt;br /&gt;
|not tested&lt;br /&gt;
|-&lt;br /&gt;
|TPM&lt;br /&gt;
|{{Cunk}} (should work)  &lt;br /&gt;
|not tested, for further information check out these links [http://die-klapsmuehle.org/2009/01/29/how-to-use-a-tpm-with-ubuntu/], [https://www.grounation.org/index.php?post/2008/07/04/8-how-to-use-a-tpm-with-linux] &lt;br /&gt;
|-&lt;br /&gt;
|Firewire&lt;br /&gt;
|{{Cunk}} (should work) &lt;br /&gt;
|not tested&lt;br /&gt;
|-&lt;br /&gt;
|USB&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|IRDA&lt;br /&gt;
|{{Cunk}} (should work) &lt;br /&gt;
|not tested&lt;br /&gt;
|-&lt;br /&gt;
|Docking&lt;br /&gt;
|{{Cunk}} (should work)  &lt;br /&gt;
|not tested&lt;br /&gt;
|-&lt;br /&gt;
|Fingerprint Reader&lt;br /&gt;
|{{Cyes}}&lt;br /&gt;
|works with ThinkFinger. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Fingerprint_Reader See here]&lt;br /&gt;
|-&lt;br /&gt;
|VGA out&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|S-Video out&lt;br /&gt;
|{{Cpart}} &lt;br /&gt;
|a 100 Hz Sony TV was recognized as a 30 Hz TV, poor picture&lt;br /&gt;
|-&lt;br /&gt;
|Modem&lt;br /&gt;
|{{Cunk}} &lt;br /&gt;
|not tested&lt;br /&gt;
|-&lt;br /&gt;
|Microphone&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|both internal and external mics work out of the box, but are muted by default. See bellow&lt;br /&gt;
|-&lt;br /&gt;
|Headphones&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Touchpad&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Trackpoint&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box, to enable middle button scrolling see bellow&lt;br /&gt;
|-&lt;br /&gt;
|Multimedia Card Reader&lt;br /&gt;
|{{Cyes}}?&lt;br /&gt;
|works out of the box with all kinds of SD cards. No other cards have been tested&lt;br /&gt;
|-&lt;br /&gt;
|{{key|Fn}}{{key|Fx}}, {{key|Fn}}{{key|PageUp}}, {{key|Fn}}{{key|Home}}, {{key|Fn}}{{key|End}}&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box, except of {{key|Fn}}{{key|F9}} and {{key|Fn}}{{key|Space}}. For configuring {{key|Fn}}{{key|Space}} [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work see here]&lt;br /&gt;
|-&lt;br /&gt;
|{{key|Fn}}{{key|Up}}, {{key|Fn}}{{key|Down}}, {{key|Fn}}{{key|Left}}, {{key|Fn}}{{key|Right}}&lt;br /&gt;
|{{Cpart}}&lt;br /&gt;
|depends on the player, works out of the box with Rhytmbox but not Audacious. Thus, needs additional configuration&lt;br /&gt;
|-&lt;br /&gt;
|{{ibmkey|ThinkVantage|#495988}}&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|does nothing by default, but can be easily mapped to something useful. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Map_ThinkVantage_Button See here]&lt;br /&gt;
|-&lt;br /&gt;
|{{ibmkey|Volume up|#494949}}, {{ibmkey|Volume down|#494949}}, {{ibmkey|Volume mute|#494949}}&lt;br /&gt;
|{{Cpart}} &lt;br /&gt;
|the volume buttons work but don't affect the software (Pulse Audio) mixer. For possible workarounds [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Workaround_for_the_Volume_Buttons see here]&lt;br /&gt;
|-&lt;br /&gt;
|Back and Forward keys (near the arrow keys)&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|{{key|Fn}}{{key|Space}} (Screen Magnify)&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|requires some acpi hacking. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work See here]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Z61m]]&lt;br /&gt;
&lt;br /&gt;
= HOWTOS = &lt;br /&gt;
&lt;br /&gt;
==  Setup the Middle Button Scrolling  == &lt;br /&gt;
&lt;br /&gt;
Start a terminal and run &lt;br /&gt;
&lt;br /&gt;
 sudo gedit /usr/lib/X11/xorg.conf.d/20-trackpoint.conf&lt;br /&gt;
&lt;br /&gt;
paste this &lt;br /&gt;
&lt;br /&gt;
 Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
     Identifier      &amp;quot;Trackpoint&amp;quot;&lt;br /&gt;
     MatchProduct    &amp;quot;TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint&amp;quot;&lt;br /&gt;
     MatchDevicePath &amp;quot;/dev/input/event*&amp;quot;&lt;br /&gt;
     Option          &amp;quot;EmulateWheel&amp;quot; &amp;quot;true&amp;quot;&lt;br /&gt;
     Option          &amp;quot;EmulateWheelButton&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
     Option          &amp;quot;EmulateWheelTimeout&amp;quot; &amp;quot;200&amp;quot; &lt;br /&gt;
     Option	    &amp;quot;Emulate3Buttons&amp;quot;	&amp;quot;false&amp;quot;&lt;br /&gt;
     Option          &amp;quot;YAxisMapping&amp;quot; &amp;quot;4 5&amp;quot;&lt;br /&gt;
     Option          &amp;quot;XAxisMapping&amp;quot; &amp;quot;6 7&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
and save. Reboot.&lt;br /&gt;
&lt;br /&gt;
== Configure Trackpoint and Touchpad ==&lt;br /&gt;
The most convenient way to do this is to install GPointing Device Settings via &lt;br /&gt;
 sudo apt-get install gpointing-device-settings&lt;br /&gt;
After that you will find it in System -&amp;gt; Preferences -&amp;gt; Pointing Devices&lt;br /&gt;
&lt;br /&gt;
[[image:Screenshot-GPointing Device Settings-TrackPoint.png]]&lt;br /&gt;
&lt;br /&gt;
GPointing Device Settings, however, can't configure such important Trackpoint settings as sensitivity, speed and press to select. To do this, open a terminal, run&lt;br /&gt;
 sudo apt-get install sysfsutils&lt;br /&gt;
 sudo gedit /etc/rc.local&lt;br /&gt;
paste &lt;br /&gt;
&lt;br /&gt;
 for i in 1 2 3&lt;br /&gt;
 do&lt;br /&gt;
  if [ -d /sys/devices/platform/i8042/serio1/serio$i ]; then&lt;br /&gt;
   echo -n 200 &amp;gt; /sys/devices/platform/i8042/serio1/serio$i/speed&lt;br /&gt;
   echo -n 150 &amp;gt; /sys/devices/platform/i8042/serio1/serio$i/sensitivity&lt;br /&gt;
   echo -n 1 &amp;gt; /sys/devices/platform/i8042/serio1/serio$i/press_to_select&lt;br /&gt;
  fi&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
before &lt;br /&gt;
 exit 0&lt;br /&gt;
and save. This will set sensitivity to 200, speed to 150 and activate press to select. Replacing &amp;quot;echo -n 1&amp;quot; by &amp;quot;echo -n 0&amp;quot; in the file will deactivate press to select. To find the right speed and sensitivity values, you should do some tests before by issuing&lt;br /&gt;
 echo -n 200 | sudo tee /sys/devices/platform/i8042/serio1/serio?/sensitivity&lt;br /&gt;
 echo -n 150 | sudo tee /sys/devices/platform/i8042/serio1/serio?/speed&lt;br /&gt;
in the terminal and using different numerical values between 0 and 255. The default values are 128 for sensitivity and 97 for speed.&lt;br /&gt;
&lt;br /&gt;
== Workaround for the Volume Buttons ==&lt;br /&gt;
&lt;br /&gt;
Volume buttons work but don't control software mixer settings. Thus you effectively get two volume scales completely independent from each other: Ubuntu's software mixer and Z61m's hardware mixer. That's confusing and inconvenient but as of 2010-05-05 (see [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/357673 Bug #357673]) still unfixed. &lt;br /&gt;
&lt;br /&gt;
=== Possible Workaround #1 ===&lt;br /&gt;
&lt;br /&gt;
A simple workaround is to set hardware volume control to an acceptable level and not to use those volume buttons afterwards. Instead, you can use the software mixer only. It's easy to configure {{key|Win}}{{key|F1}} and {{key|Win}}{{key|F2}} which are not used in Ubuntu by default to act as volume buttons for the software mixer. To do this go to '''System -&amp;gt; Preferenced -&amp;gt; Keyboard shortcuts''', click on &amp;quot;Volume Down&amp;quot; and press {{key|Win}}{{key|F1}}. Now click on &amp;quot;Volume Up&amp;quot; and press {{key|Win}}{{key|F2}}. If you also need mute, you can define {{key|Win}}{{key|1}} for that. The changes will be applied immediately.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot-Keyboard_Shortcuts.png]]&lt;br /&gt;
&lt;br /&gt;
=== Possible Workaround #2 ===&lt;br /&gt;
&lt;br /&gt;
If you still want to use volume keys for volume control, you should run&lt;br /&gt;
 sudo gedit /etc/rc.local&lt;br /&gt;
and add this before &amp;quot;exit 0&amp;quot;&lt;br /&gt;
 cp /sys/devices/platform/thinkpad_acpi/hotkey_all_mask /sys/devices/platform/thinkpad_acpi/hotkey_mask&lt;br /&gt;
This solution is still not really acceptable because it uses a quite weird volume scale resulting in maximum loudness already on 50% of the software mixer. If you've already applied workaround #1, be sure to map &amp;quot;Volume Up&amp;quot; and &amp;quot;Volume Down&amp;quot; back to the Thinkpad volume keys&lt;br /&gt;
&lt;br /&gt;
== Make Fn-Space (Screen Magnify) work ==&lt;br /&gt;
&lt;br /&gt;
Open a terminal and run&lt;br /&gt;
 sudo apt-get install kmag&lt;br /&gt;
 sudo gedit /etc/acpi/events/asus-rotate&lt;br /&gt;
replace it's content by the following&lt;br /&gt;
 # /etc/acpi/events/ibmwireless&lt;br /&gt;
 # This is called when the user presses Fn-Space&lt;br /&gt;
 event=ibm/hotkey HKEY 00000080 00001014&lt;br /&gt;
 action=/etc/acpi/ibm-zoom.sh&lt;br /&gt;
and save. Now run&lt;br /&gt;
 sudo cp /etc/acpi/ibm-wireless.sh /etc/acpi/ibm-zoom.sh&lt;br /&gt;
 sudo gedit /etc/acpi/ibm-zoom.sh&lt;br /&gt;
and replace its content by the following&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # This script activates gnome-mag when Fn+Space is pressed&lt;br /&gt;
 test -f /usr/share/acpi-support/key-constants || exit 0&lt;br /&gt;
 . /usr/share/acpi-support/power-funcs&lt;br /&gt;
 magnifier_pid=`pidof kmag`&lt;br /&gt;
 for x in /tmp/.X11-unix/*; do&lt;br /&gt;
        displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`&lt;br /&gt;
        getXconsole;&lt;br /&gt;
        if [ x&amp;quot;$XAUTHORITY&amp;quot; != x&amp;quot;&amp;quot; ]; then&lt;br /&gt;
            export DISPLAY=&amp;quot;:$displaynum&amp;quot;&lt;br /&gt;
            if [ &amp;quot;$magnifier_pid&amp;quot; != &amp;quot;&amp;quot; ]; then	    &lt;br /&gt;
 		/usr/bin/killall kmag&lt;br /&gt;
            break&lt;br /&gt;
            else&lt;br /&gt;
                /usr/bin/kmag &amp;amp;&lt;br /&gt;
                break&lt;br /&gt;
            fi&lt;br /&gt;
        fi&lt;br /&gt;
 done&lt;br /&gt;
Save and reboot. Now when pressing Fn-Space you can open KMagnifier. Pressing Fn-Space once again will close KMagnifier. You can configure KMagnifier as you like and your settings will be saved automatically&lt;br /&gt;
&lt;br /&gt;
== Map ThinkVantage Button ==&lt;br /&gt;
ThinkVantage Button is recognized but is not mapped to any function so that pressing it does nothing. To change this go to '''System-&amp;gt;Preferences-&amp;gt; Keyboard shortcuts'''. There you can look for some predefined actions ThinkVantage Button might do for you. To map the button to a certain action simply click on the action and press {{ibmkey|ThinkVantage|#495988}}. Via Add you can also add your own commands, for instance to start your browser or e-mail client.&lt;br /&gt;
&lt;br /&gt;
==  Setup External Monitor or Beamer (VGA)  == &lt;br /&gt;
&lt;br /&gt;
Connect your monitor/beamer to VGA port and go to '''System -&amp;gt; Preferences -&amp;gt; Monitors'''. For quick access to those settings it might be useful to activate &amp;quot;Show monitors in panel&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Lucid_ext_Monitor_new.png]]&lt;br /&gt;
&lt;br /&gt;
You can also use this to configure an external device connected to S-Video Out.&lt;br /&gt;
&lt;br /&gt;
[[File:Z61m_svideo.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Setup Color Management  == &lt;br /&gt;
To use ICC/ICM profiles you should install [http://projects.gnome.org/gnome-color-manager/ GNOME Color Manager] via&lt;br /&gt;
 sudo apt-get install gnome-color-manager&lt;br /&gt;
After that it should appear under '''System -&amp;gt; Preferences -&amp;gt; Color Profiles'''. Alternatively you can start it from the terminal by issuing&lt;br /&gt;
 gcm-prefs&lt;br /&gt;
GCM should detect your Thinkpad monitor automatically. All you need to do is supply the correct ICC/ICM profile by clicking on the list under '''Color Profile''' and selecting '''Other profile ...'''&lt;br /&gt;
&lt;br /&gt;
[[File:CMgment.jpg]]&lt;br /&gt;
&lt;br /&gt;
Lenovo does supply ICM profiles for most Thinkpads, but in order to open the appropriate .exe-archive under Linux you'll need Wine. Install Wine by running&lt;br /&gt;
 sudo apt-get install wine&lt;br /&gt;
After that download [http://www-307.ibm.com/pc/support/site.wss/migr-62923.html 79oi22ww.exe] and right-click the file. Go to the '''Properties''' tab and tick '''Allow executing file as program''' In the '''Open With''' tab select '''Wine Windows Program Loader''' and close the dialog. Now double-click 79oi22ww.exe, and hit Next -&amp;gt; I accept the agreement -&amp;gt; Next -&amp;gt; Next -&amp;gt; Install -&amp;gt; Finish. Using Nautilus go to &amp;quot;~/.wine/drive_c/DRIVERS/WIN/MONITOR&amp;quot;. There you'll find different ICM profiles which can be used by GCM. '''TPFLX.icm''' is for [http://www.thinkwiki.org/wiki/Flexview#Flexview_.28IPS.29 FlexView] panels whereas '''TPMB60.ICM''' and '''TPMB72.ICM''' are for [http://www.thinkwiki.org/wiki/Flexview#MaxBright MaxBright] panels. If you have only a plain TFT panel (not MaxBright) then stick to '''TPLCD.icm'''. &lt;br /&gt;
&lt;br /&gt;
After importing the appropriate profile to GCM and selecting it, be sure to go to '''Defaults''' tab and select '''Apply display correction'''  and '''Set profile for color managed applications''' Unfortunately, GCM doesn't seem to support manual adjustments of gamma, brightness or contrast on Thinkpad displays. &lt;br /&gt;
&lt;br /&gt;
At least adjusting gamma is possible when using '''xgamma'''. In a terminal run &lt;br /&gt;
 xgamma&lt;br /&gt;
to see you current gamma settings. You should see something like&lt;br /&gt;
 -&amp;gt; Red  1.000, Green  1.000, Blue  1.000&lt;br /&gt;
It is possible to adjust gamma values for all colors at the same time by issuing something like&lt;br /&gt;
 xgamma -gamma 0.9&lt;br /&gt;
or for red, green and blue separately&lt;br /&gt;
 xgamma -rgamma 0.815 -ggamma 0.844 -bgamma 1.0&lt;br /&gt;
If you want to be able to relate RGB gamma values to a certain colour temperature, take a look at [http://www.vendian.org/mncharity/dir3/blackbody/UnstableURLs/bbr_color.html this page by Mitchell Charity]. Thus, to get something like 7800K you'll have to issue&lt;br /&gt;
 xgamma -rgamma 0.8115 -ggamma 0.8351 -bgamma 1.0&lt;br /&gt;
After having found your favourite settings, you'll probably want to make them persistent. To do this go to '''System -&amp;gt; Preferences -&amp;gt; Startup Applications''', select the &amp;quot;Startup Programms&amp;quot; tab, click Add and add something like this&lt;br /&gt;
 Name: xgamma&lt;br /&gt;
 Command: xgamma -rgamma 0.8 -ggamma 0.8 -bgamma 1.0&lt;br /&gt;
(replace these values by your values) Click Add and then Close. Now these xgamma settings will be applied on each Gnome startup&lt;br /&gt;
&lt;br /&gt;
==  Setup Fingerprint Reader  == &lt;br /&gt;
&lt;br /&gt;
Although thinkfinger can be installed from Lucid repos, it contains some regressions which&lt;br /&gt;
prevent fingerprint authentication from working properly. For more information check out &lt;br /&gt;
[https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/256429 Bug #256429] Martin Schwenke &lt;br /&gt;
provides a PPA with the fixed version of thinkfinger which seems to work quite well.&lt;br /&gt;
&lt;br /&gt;
To install thinkfinger open a terminal and run &lt;br /&gt;
 sudo add-apt-repository ppa:martin-meltin/ppa&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install libpam-thinkfinger=0.3+r118-0ubuntu4ppamartinmeltin5&lt;br /&gt;
 sudo /usr/lib/pam-thinkfinger/pam-thinkfinger-enable&lt;br /&gt;
after that run&lt;br /&gt;
 tf-tool --acquire $USERNAME&lt;br /&gt;
to acquire your fingerprint. Now you can use Z61m's fingerprint reader when using sudo/gksudo or in GDM login screen.&lt;br /&gt;
&lt;br /&gt;
There seems to be a gnome-keyring related problem in Lucid when using fingerprint to log in. In that case Network Manager (nm-applet) may not appear in the panel or freeze when trying to change connection settings ([https://bugs.launchpad.net/ubuntu/+source/seahorse/+bug/529338 Bug #529338]). A known workaround is not to use fingerprint when logging in. You, however, still can use fingerprint for sudo, gksudo and all other supported authentication prompts.&lt;br /&gt;
&lt;br /&gt;
== Setup Hard Drive Active Protection System ==&lt;br /&gt;
Open a terminal and run&lt;br /&gt;
 sudo apt-get install tp-smapi-dkms&lt;br /&gt;
 sudo apt-get install python python-gtk2 python-gnome2 hdapsd&lt;br /&gt;
Now run&lt;br /&gt;
 sudo gedit /etc/modules&lt;br /&gt;
and add &lt;br /&gt;
 tp_smapi &lt;br /&gt;
to the very end of the file so that it looks like this (example)&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 lp&lt;br /&gt;
 tp_smapi&lt;br /&gt;
&lt;br /&gt;
Reboot. Now HDAPS should work. If you want to have a HDAPS icon in your notification area&lt;br /&gt;
like in Windows, follow these steps to install [http://thpani.at/projects/thinkhdaps/ ThinkHDAPS]&lt;br /&gt;
&lt;br /&gt;
Download [https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb] and put it into your home directory. Right click on the file and select &amp;quot;Extract Here&amp;quot;. In terminal run&lt;br /&gt;
 cd ~&lt;br /&gt;
 cd thinkhdaps_0.2.1-1_all&lt;br /&gt;
 sudo cp&lt;br /&gt;
 tar -zxvf data.tar.gz &lt;br /&gt;
 sudo cp usr/bin/thinkhdaps /usr/bin/&lt;br /&gt;
 sudo chmod +x /usr/bin/thinkhdaps&lt;br /&gt;
 sudo cp usr/share/pixmaps/* /usr/share/pixmaps/&lt;br /&gt;
&lt;br /&gt;
Now you can run&lt;br /&gt;
 thinkhdaps &amp;amp;&lt;br /&gt;
to make the '''ThinkHDAPS''' icon appear in the notification area&lt;br /&gt;
&lt;br /&gt;
[[File:ThinkHDAPS.png]]&lt;br /&gt;
&lt;br /&gt;
To make it autostart go to '''System -&amp;gt; Preferences -&amp;gt; Startup Applications''', select the &amp;quot;Startup Programms&amp;quot; tab, click Add and add this &lt;br /&gt;
 Name: thinkhdaps&lt;br /&gt;
 Command: thinkhdaps&lt;br /&gt;
Click Add and then Close. Now the ThinkHDAPS icon should be always visible in the notification area.&lt;br /&gt;
&lt;br /&gt;
To change the sensitivity run&lt;br /&gt;
 sudo gedit /etc/default/hdapsd&lt;br /&gt;
and change the SENSITIVITY value. Default is 15 whereas higher values mean less sensitive. For example 25 seems to be just fine.&lt;br /&gt;
&lt;br /&gt;
== Set up HDAPS accelerometer event ==&lt;br /&gt;
This section assumes you have set up tp_smapi (see [http://www.thinkwiki.org/wiki/Tp_smapi#Installation_on_Ubuntu_Lucid this page] for instructions).&lt;br /&gt;
&lt;br /&gt;
To add the device rule (this worked for X61t, there is more info about the udev rule on [http://www.thinkwiki.org/wiki/Talk:HDAPS#Question_regarding_the_example_udev_rule_.3F the HDAPS Talk page])&lt;br /&gt;
 echo 'KERNEL==&amp;quot;event[0-9]*&amp;quot;, ATTRS{phys}==&amp;quot;hdaps/input1&amp;quot;,ATTRS{modalias}==&amp;quot;input:b0019v1014p5054e4801-*&amp;quot;,SYMLINK+=&amp;quot;input/hdaps/accelerometer-event&amp;quot;' | sudo tee /etc/udev/rules.d/51-hdaps.rules&lt;br /&gt;
Then force the reloading of rules.d&lt;br /&gt;
 sudo udevadm trigger&lt;br /&gt;
Now you should have a&lt;br /&gt;
 /dev/input/hdaps/accelerometer-event&lt;br /&gt;
&lt;br /&gt;
= Power Management =&lt;br /&gt;
&lt;br /&gt;
== Fix the hard drive clicking bug ==&lt;br /&gt;
If you don't know what the hard drive clicking bug is, read [http://www.thinkwiki.org/wiki/Problem_with_hard_drive_clicking this]. Although this bug was apparently fixed in Ubuntu Karmic, Lucid seems to be affected. &lt;br /&gt;
&lt;br /&gt;
{{WARN|Here is a solution that worked for me. It's a bit dirty and turns off the power management of your HDD. This will slightly decrease your battery life but greatly improve your drive's lifetime.}} &lt;br /&gt;
{{HINT|If you have a better solution, be sure to share it here}} &lt;br /&gt;
&lt;br /&gt;
To fix the bug open a terminal and run&lt;br /&gt;
 sudo cp /usr/lib/pm-utils/power.d/95hdparm-apm /etc/pm/power.d/&lt;br /&gt;
 sudo gedit /etc/pm/power.d/95hdparm-apm&lt;br /&gt;
&lt;br /&gt;
Insert &amp;quot;hdparm -B 254 /dev/sda&amp;quot; after &amp;quot;resume_hdparm_apm&amp;quot; so that the appropriate section looks like this&lt;br /&gt;
&lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
 	thaw|resume|true|false) # true and false for power.d&lt;br /&gt;
                 resume_hdparm_apm&lt;br /&gt;
                 hdparm -B 254 /dev/sda&lt;br /&gt;
                 ;;&lt;br /&gt;
            *)&lt;br /&gt;
                 exit 254&lt;br /&gt;
                 ;;&lt;br /&gt;
                 esac&lt;br /&gt;
&lt;br /&gt;
To test the fix try suspending/resuming and plugging/unpluging AC power. After each process run&lt;br /&gt;
 sudo hdparm -B /dev/sda&lt;br /&gt;
hdparm should always report&lt;br /&gt;
&lt;br /&gt;
 /dev/sda:&lt;br /&gt;
  APM_level	= 254&lt;br /&gt;
&lt;br /&gt;
== Setup Fan Control ==&lt;br /&gt;
&lt;br /&gt;
{{WARN|Wrong fan control settings may seriously damage you Thinkpad. You do it on your own risk!}} &lt;br /&gt;
&lt;br /&gt;
To override BIOS fan control you can install '''ThinkPad Fan Control'''. Go to '''System -&amp;gt; Administration -&amp;gt; Synaptic Package Manager'''. Switch to the &amp;quot;Third Party Software&amp;quot; tab and click on &amp;quot;Add&amp;quot;. As APT line add this&lt;br /&gt;
 deb http://ppa.launchpad.net/tp-fan/ppa/ubuntu jaunty main&lt;br /&gt;
Click &amp;quot;Add Source&amp;quot; then &amp;quot;Close&amp;quot; and finally &amp;quot;Reload&amp;quot; as suggested. Now use &amp;quot;Synaptic Package Manager&amp;quot; to install following packages&lt;br /&gt;
 tpfand tpfan-admin tpfand-profiles&lt;br /&gt;
Go to '''System -&amp;gt; Administration -&amp;gt; ThinkPad Fan Control''' and click on &amp;quot;Unlock&amp;quot;. Select &amp;quot;Control system fan by software&amp;quot; and you're done.&lt;br /&gt;
&lt;br /&gt;
It's also possible to define your own fan control rules thus overriding the default settings. To do this select &amp;quot;Manually configure system fan trigger temperatures&amp;quot;. Here is an example for a Z61m with Core2Duo T5500 and GMA 950. &lt;br /&gt;
Models with discrete graphics (like FireGL) will probably need lower threshholds as they usually produce more heat and thus require better cooling.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot-ThinkPad_Fan_Control_Configuration.png]]&lt;br /&gt;
&lt;br /&gt;
{{HELP|Did someone else experience this problem and test the workaround?}}&lt;br /&gt;
&lt;br /&gt;
Sometimes ThinkPad Fan Control's daemon '''tpfand''' crashes for unknown reasons causing software fan control to stop working (i.e. BIOS starts controlling the fan). It seems that this problem is somehow HAL related, since tpfand relies on HAL for determining the ThinkPad's model. If the detection routine fails, '''tpfand''' stops immediately(see [https://bugs.launchpad.net/tp-fan/+bug/575199 Bug #575199]). A quick and dirty solution is to tweak this detection by editing tpfand's settings.py&lt;br /&gt;
 sudo gedit /usr/lib/python2.6/dist-packages/tpfand/settings.py&lt;br /&gt;
and replacing&lt;br /&gt;
 self.product_id = None&lt;br /&gt;
 self.product_name = None&lt;br /&gt;
 self.product_pretty_vendor = None&lt;br /&gt;
 self.product_pretty_name = None&lt;br /&gt;
 self.product_pretty_id = None&lt;br /&gt;
by &lt;br /&gt;
 self.product_id = ''&lt;br /&gt;
 self.product_name = ''&lt;br /&gt;
 self.product_pretty_vendor = ''&lt;br /&gt;
 self.product_pretty_name = ''&lt;br /&gt;
 self.product_pretty_id = ''&lt;br /&gt;
this will prevent '''tpfand''' from crashing even if it wasn't able to detect your ThinkPad's model.&lt;br /&gt;
&lt;br /&gt;
== Configure Battery Charge Control ==&lt;br /&gt;
&lt;br /&gt;
In a terminal run&lt;br /&gt;
 sudo apt-get install sysfsutils&lt;br /&gt;
 sudo apt-get install tp-smapi-dkms&lt;br /&gt;
&lt;br /&gt;
Now run&lt;br /&gt;
 sudo gedit /etc/modules&lt;br /&gt;
and add &lt;br /&gt;
 tp_smapi &lt;br /&gt;
to the very end of the file. Run&lt;br /&gt;
 sudo gedit /etc/sysfs.conf&lt;br /&gt;
and add &lt;br /&gt;
 devices/platform/smapi/BAT0/start_charge_thresh=85&lt;br /&gt;
 devices/platform/smapi/BAT0/stop_charge_thresh=96&lt;br /&gt;
to the very end of the file. Save and reboot. With this values your battery will start charging at 80% and stop charging at 96%. Of course you can also put other values between 1 and 100.&lt;br /&gt;
&lt;br /&gt;
To check the current thresholds run&lt;br /&gt;
 cat /sys/devices/platform/smapi/BAT0/start_charge_thresh&lt;br /&gt;
and&lt;br /&gt;
 cat /sys/devices/platform/smapi/BAT0/stop_charge_thresh&lt;br /&gt;
&lt;br /&gt;
= External Sources =&lt;br /&gt;
*[http://wiki.ubuntuusers.de/Trackpoint] Trackpoint Configuration (wiki.ubuntuusers.de)&lt;br /&gt;
*[http://fedoraproject.org/wiki/Features/ColorManagement] Gnome Color Manager (fedoraproject.org)&lt;br /&gt;
*[http://www.ubuntufieldmanual.com/?q=node/38] Calibrate your monitor (Ubuntu Field Manual)&lt;/div&gt;</summary>
		<author><name>Tripwired</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&amp;diff=49017</id>
		<title>Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad Z61m</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&amp;diff=49017"/>
		<updated>2010-07-12T02:21:30Z</updated>

		<summary type="html">&lt;p&gt;Tripwired: /* Set up HDAPS accelerometer event */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Installing from USB stick=&lt;br /&gt;
&lt;br /&gt;
If you already use Ubuntu 9.10 Karmic, installing Ubuntu 10.04 from USB stick is very easy. Just download the [http://www.ubuntu.com/getubuntu/download latest ISO], plug the USB stick in and run System--&amp;gt;Administration--&amp;gt;Create a USB startup disk. Load the downloaded ISO and hit &amp;quot;Make Startup Disk&amp;quot;. For more information check [https://help.ubuntu.com/community/Installation/FromUSBStick#Creating%20a%20bootable%20USB%20Drive this page]. After that reboot your Thinkpad and press F12. This will allow you to boot from USB stick and start the installation routine.&lt;br /&gt;
&lt;br /&gt;
= Tested Configuration =&lt;br /&gt;
* Lenovo ThinkPad {{Z61m}} (9450-H9G)&lt;br /&gt;
** [[Intel Core 2 Duo]] T5500 (1,66 GHz, 2 MB L2, 667MHz FSB)&lt;br /&gt;
** 2 GB RAM (2x 1 GB [[PC2-5300]] DDR2 667MHz)&lt;br /&gt;
** 15.4&amp;quot; wide-screen TFT WXGA 1280x800&lt;br /&gt;
** [[Intel Graphics Media Accelerator 950]]&lt;br /&gt;
** Seagate Momentus 7200.3 ST9160411ASG (160 GB SATA 7200 RPM) [http://www.thinkwiki.org/wiki/Talk:Problem_with_hard_drive_clicking  reflashed to Dell OEM Firmware]&lt;br /&gt;
** Ultrabay Enhanced DVD±RW Burner (GMA-4082N, FRU 39T2723)&lt;br /&gt;
** Intel HD Audio with [[AD1981HD]] codec&lt;br /&gt;
** [[Broadcom Gigabit Ethernet (10/100/1000)]]&lt;br /&gt;
** [[ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)]]&lt;br /&gt;
** [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]&lt;br /&gt;
** [[IrDA]] 1.1 (FIR - 4Mbps)&lt;br /&gt;
** [[SD_Card_slot|4-in-1 digital media reader]] (MultiMedia Card, MemoryStick, SD)&lt;br /&gt;
** [[Integrated Fingerprint Reader]]&lt;br /&gt;
** [[ThinkLight]]&lt;br /&gt;
** [[UltraNav]]&lt;br /&gt;
** [[CardBus]] slot (Type 2)&lt;br /&gt;
** [[ExpressCard slot]] (54 or 34)&lt;br /&gt;
** [[UltraBay|UltraBay Enhanced]]&lt;br /&gt;
** 3x USB 2.0, Firewire, VGA out, S-Video out, Headphone Jack, Microphone Jack&lt;br /&gt;
** Built-in Microphone&lt;br /&gt;
&lt;br /&gt;
= Hardware Support =&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;2&amp;quot;&lt;br /&gt;
|Device / Function&lt;br /&gt;
|Works?&lt;br /&gt;
|Comment&lt;br /&gt;
|-&lt;br /&gt;
|Suspend &amp;amp; Hibernate&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Intel GMA950 2D and 3D&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Intel 3945ABG WiFi&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Broadcom Gigabit Ethernet&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|DVD±RW Burner&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Ultrabay Hotswapping&lt;br /&gt;
|{{Cpart}} &lt;br /&gt;
|hotswapping optical drives (like DVD±RW) works out of the box, for HDD hotswapping  [http://www.thinkwiki.org/wiki/How_to_hotswap_Ultrabay_devices#Using_libata-acpi_and_udev look here]&lt;br /&gt;
|-&lt;br /&gt;
|Hard Drive Active Protection System&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|must be activated and configured. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Hard_Drive_Active_Protection_System See here]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Intel HDA Sound&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box, modem must be enabled in BIOS&lt;br /&gt;
|-&lt;br /&gt;
|PCMCIA&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Express Card&lt;br /&gt;
|{{Cunk}} (should work) &lt;br /&gt;
|not tested&lt;br /&gt;
|-&lt;br /&gt;
|TPM&lt;br /&gt;
|{{Cunk}} (should work)  &lt;br /&gt;
|not tested, for further information check out these links [http://die-klapsmuehle.org/2009/01/29/how-to-use-a-tpm-with-ubuntu/], [https://www.grounation.org/index.php?post/2008/07/04/8-how-to-use-a-tpm-with-linux] &lt;br /&gt;
|-&lt;br /&gt;
|Firewire&lt;br /&gt;
|{{Cunk}} (should work) &lt;br /&gt;
|not tested&lt;br /&gt;
|-&lt;br /&gt;
|USB&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|IRDA&lt;br /&gt;
|{{Cunk}} (should work) &lt;br /&gt;
|not tested&lt;br /&gt;
|-&lt;br /&gt;
|Docking&lt;br /&gt;
|{{Cunk}} (should work)  &lt;br /&gt;
|not tested&lt;br /&gt;
|-&lt;br /&gt;
|Fingerprint Reader&lt;br /&gt;
|{{Cyes}}&lt;br /&gt;
|works with ThinkFinger. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Fingerprint_Reader See here]&lt;br /&gt;
|-&lt;br /&gt;
|VGA out&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|S-Video out&lt;br /&gt;
|{{Cpart}} &lt;br /&gt;
|a 100 Hz Sony TV was recognized as a 30 Hz TV, poor picture&lt;br /&gt;
|-&lt;br /&gt;
|Modem&lt;br /&gt;
|{{Cunk}} &lt;br /&gt;
|not tested&lt;br /&gt;
|-&lt;br /&gt;
|Microphone&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|both internal and external mics work out of the box, but are muted by default. See bellow&lt;br /&gt;
|-&lt;br /&gt;
|Headphones&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Touchpad&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Trackpoint&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box, to enable middle button scrolling see bellow&lt;br /&gt;
|-&lt;br /&gt;
|Multimedia Card Reader&lt;br /&gt;
|{{Cyes}}?&lt;br /&gt;
|works out of the box with all kinds of SD cards. No other cards have been tested&lt;br /&gt;
|-&lt;br /&gt;
|{{key|Fn}}{{key|Fx}}, {{key|Fn}}{{key|PageUp}}, {{key|Fn}}{{key|Home}}, {{key|Fn}}{{key|End}}&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box, except of {{key|Fn}}{{key|F9}} and {{key|Fn}}{{key|Space}}. For configuring {{key|Fn}}{{key|Space}} [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work see here]&lt;br /&gt;
|-&lt;br /&gt;
|{{key|Fn}}{{key|Up}}, {{key|Fn}}{{key|Down}}, {{key|Fn}}{{key|Left}}, {{key|Fn}}{{key|Right}}&lt;br /&gt;
|{{Cpart}}&lt;br /&gt;
|depends on the player, works out of the box with Rhytmbox but not Audacious. Thus, needs additional configuration&lt;br /&gt;
|-&lt;br /&gt;
|{{ibmkey|ThinkVantage|#495988}}&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|does nothing by default, but can be easily mapped to something useful. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Map_ThinkVantage_Button See here]&lt;br /&gt;
|-&lt;br /&gt;
|{{ibmkey|Volume up|#494949}}, {{ibmkey|Volume down|#494949}}, {{ibmkey|Volume mute|#494949}}&lt;br /&gt;
|{{Cpart}} &lt;br /&gt;
|the volume buttons work but don't affect the software (Pulse Audio) mixer. For possible workarounds [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Workaround_for_the_Volume_Buttons see here]&lt;br /&gt;
|-&lt;br /&gt;
|Back and Forward keys (near the arrow keys)&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|{{key|Fn}}{{key|Space}} (Screen Magnify)&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|requires some acpi hacking. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work See here]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Z61m]]&lt;br /&gt;
&lt;br /&gt;
= HOWTOS = &lt;br /&gt;
&lt;br /&gt;
==  Setup the Middle Button Scrolling  == &lt;br /&gt;
&lt;br /&gt;
Start a terminal and run &lt;br /&gt;
&lt;br /&gt;
 sudo gedit /usr/lib/X11/xorg.conf.d/20-trackpoint.conf&lt;br /&gt;
&lt;br /&gt;
paste this &lt;br /&gt;
&lt;br /&gt;
 Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
     Identifier      &amp;quot;Trackpoint&amp;quot;&lt;br /&gt;
     MatchProduct    &amp;quot;TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint&amp;quot;&lt;br /&gt;
     MatchDevicePath &amp;quot;/dev/input/event*&amp;quot;&lt;br /&gt;
     Option          &amp;quot;EmulateWheel&amp;quot; &amp;quot;true&amp;quot;&lt;br /&gt;
     Option          &amp;quot;EmulateWheelButton&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
     Option          &amp;quot;EmulateWheelTimeout&amp;quot; &amp;quot;200&amp;quot; &lt;br /&gt;
     Option	    &amp;quot;Emulate3Buttons&amp;quot;	&amp;quot;false&amp;quot;&lt;br /&gt;
     Option          &amp;quot;YAxisMapping&amp;quot; &amp;quot;4 5&amp;quot;&lt;br /&gt;
     Option          &amp;quot;XAxisMapping&amp;quot; &amp;quot;6 7&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
and save. Reboot.&lt;br /&gt;
&lt;br /&gt;
== Configure Trackpoint and Touchpad ==&lt;br /&gt;
The most convenient way to do this is to install GPointing Device Settings via &lt;br /&gt;
 sudo apt-get install gpointing-device-settings&lt;br /&gt;
After that you will find it in System -&amp;gt; Preferences -&amp;gt; Pointing Devices&lt;br /&gt;
&lt;br /&gt;
[[image:Screenshot-GPointing Device Settings-TrackPoint.png]]&lt;br /&gt;
&lt;br /&gt;
GPointing Device Settings, however, can't configure such important Trackpoint settings as sensitivity, speed and press to select. To do this, open a terminal, run&lt;br /&gt;
 sudo apt-get install sysfsutils&lt;br /&gt;
 sudo gedit /etc/rc.local&lt;br /&gt;
paste &lt;br /&gt;
&lt;br /&gt;
 for i in 1 2 3&lt;br /&gt;
 do&lt;br /&gt;
  if [ -d /sys/devices/platform/i8042/serio1/serio$i ]; then&lt;br /&gt;
   echo -n 200 &amp;gt; /sys/devices/platform/i8042/serio1/serio$i/speed&lt;br /&gt;
   echo -n 150 &amp;gt; /sys/devices/platform/i8042/serio1/serio$i/sensitivity&lt;br /&gt;
   echo -n 1 &amp;gt; /sys/devices/platform/i8042/serio1/serio$i/press_to_select&lt;br /&gt;
  fi&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
before &lt;br /&gt;
 exit 0&lt;br /&gt;
and save. This will set sensitivity to 200, speed to 150 and activate press to select. Replacing &amp;quot;echo -n 1&amp;quot; by &amp;quot;echo -n 0&amp;quot; in the file will deactivate press to select. To find the right speed and sensitivity values, you should do some tests before by issuing&lt;br /&gt;
 echo -n 200 | sudo tee /sys/devices/platform/i8042/serio1/serio?/sensitivity&lt;br /&gt;
 echo -n 150 | sudo tee /sys/devices/platform/i8042/serio1/serio?/speed&lt;br /&gt;
in the terminal and using different numerical values between 0 and 255. The default values are 128 for sensitivity and 97 for speed.&lt;br /&gt;
&lt;br /&gt;
== Workaround for the Volume Buttons ==&lt;br /&gt;
&lt;br /&gt;
Volume buttons work but don't control software mixer settings. Thus you effectively get two volume scales completely independent from each other: Ubuntu's software mixer and Z61m's hardware mixer. That's confusing and inconvenient but as of 2010-05-05 (see [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/357673 Bug #357673]) still unfixed. &lt;br /&gt;
&lt;br /&gt;
=== Possible Workaround #1 ===&lt;br /&gt;
&lt;br /&gt;
A simple workaround is to set hardware volume control to an acceptable level and not to use those volume buttons afterwards. Instead, you can use the software mixer only. It's easy to configure {{key|Win}}{{key|F1}} and {{key|Win}}{{key|F2}} which are not used in Ubuntu by default to act as volume buttons for the software mixer. To do this go to '''System -&amp;gt; Preferenced -&amp;gt; Keyboard shortcuts''', click on &amp;quot;Volume Down&amp;quot; and press {{key|Win}}{{key|F1}}. Now click on &amp;quot;Volume Up&amp;quot; and press {{key|Win}}{{key|F2}}. If you also need mute, you can define {{key|Win}}{{key|1}} for that. The changes will be applied immediately.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot-Keyboard_Shortcuts.png]]&lt;br /&gt;
&lt;br /&gt;
=== Possible Workaround #2 ===&lt;br /&gt;
&lt;br /&gt;
If you still want to use volume keys for volume control, you should run&lt;br /&gt;
 sudo gedit /etc/rc.local&lt;br /&gt;
and add this before &amp;quot;exit 0&amp;quot;&lt;br /&gt;
 cp /sys/devices/platform/thinkpad_acpi/hotkey_all_mask /sys/devices/platform/thinkpad_acpi/hotkey_mask&lt;br /&gt;
This solution is still not really acceptable because it uses a quite weird volume scale resulting in maximum loudness already on 50% of the software mixer. If you've already applied workaround #1, be sure to map &amp;quot;Volume Up&amp;quot; and &amp;quot;Volume Down&amp;quot; back to the Thinkpad volume keys&lt;br /&gt;
&lt;br /&gt;
== Make Fn-Space (Screen Magnify) work ==&lt;br /&gt;
&lt;br /&gt;
Open a terminal and run&lt;br /&gt;
 sudo apt-get install kmag&lt;br /&gt;
 sudo gedit /etc/acpi/events/asus-rotate&lt;br /&gt;
replace it's content by the following&lt;br /&gt;
 # /etc/acpi/events/ibmwireless&lt;br /&gt;
 # This is called when the user presses Fn-Space&lt;br /&gt;
 event=ibm/hotkey HKEY 00000080 00001014&lt;br /&gt;
 action=/etc/acpi/ibm-zoom.sh&lt;br /&gt;
and save. Now run&lt;br /&gt;
 sudo cp /etc/acpi/ibm-wireless.sh /etc/acpi/ibm-zoom.sh&lt;br /&gt;
 sudo gedit /etc/acpi/ibm-zoom.sh&lt;br /&gt;
and replace its content by the following&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # This script activates gnome-mag when Fn+Space is pressed&lt;br /&gt;
 test -f /usr/share/acpi-support/key-constants || exit 0&lt;br /&gt;
 . /usr/share/acpi-support/power-funcs&lt;br /&gt;
 magnifier_pid=`pidof kmag`&lt;br /&gt;
 for x in /tmp/.X11-unix/*; do&lt;br /&gt;
        displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`&lt;br /&gt;
        getXconsole;&lt;br /&gt;
        if [ x&amp;quot;$XAUTHORITY&amp;quot; != x&amp;quot;&amp;quot; ]; then&lt;br /&gt;
            export DISPLAY=&amp;quot;:$displaynum&amp;quot;&lt;br /&gt;
            if [ &amp;quot;$magnifier_pid&amp;quot; != &amp;quot;&amp;quot; ]; then	    &lt;br /&gt;
 		/usr/bin/killall kmag&lt;br /&gt;
            break&lt;br /&gt;
            else&lt;br /&gt;
                /usr/bin/kmag &amp;amp;&lt;br /&gt;
                break&lt;br /&gt;
            fi&lt;br /&gt;
        fi&lt;br /&gt;
 done&lt;br /&gt;
Save and reboot. Now when pressing Fn-Space you can open KMagnifier. Pressing Fn-Space once again will close KMagnifier. You can configure KMagnifier as you like and your settings will be saved automatically&lt;br /&gt;
&lt;br /&gt;
== Map ThinkVantage Button ==&lt;br /&gt;
ThinkVantage Button is recognized but is not mapped to any function so that pressing it does nothing. To change this go to '''System-&amp;gt;Preferences-&amp;gt; Keyboard shortcuts'''. There you can look for some predefined actions ThinkVantage Button might do for you. To map the button to a certain action simply click on the action and press {{ibmkey|ThinkVantage|#495988}}. Via Add you can also add your own commands, for instance to start your browser or e-mail client.&lt;br /&gt;
&lt;br /&gt;
==  Setup External Monitor or Beamer (VGA)  == &lt;br /&gt;
&lt;br /&gt;
Connect your monitor/beamer to VGA port and go to '''System -&amp;gt; Preferences -&amp;gt; Monitors'''. For quick access to those settings it might be useful to activate &amp;quot;Show monitors in panel&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Lucid_ext_Monitor_new.png]]&lt;br /&gt;
&lt;br /&gt;
You can also use this to configure an external device connected to S-Video Out.&lt;br /&gt;
&lt;br /&gt;
[[File:Z61m_svideo.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Setup Color Management  == &lt;br /&gt;
To use ICC/ICM profiles you should install [http://projects.gnome.org/gnome-color-manager/ GNOME Color Manager] via&lt;br /&gt;
 sudo apt-get install gnome-color-manager&lt;br /&gt;
After that it should appear under '''System -&amp;gt; Preferences -&amp;gt; Color Profiles'''. Alternatively you can start it from the terminal by issuing&lt;br /&gt;
 gcm-prefs&lt;br /&gt;
GCM should detect your Thinkpad monitor automatically. All you need to do is supply the correct ICC/ICM profile by clicking on the list under '''Color Profile''' and selecting '''Other profile ...'''&lt;br /&gt;
&lt;br /&gt;
[[File:CMgment.jpg]]&lt;br /&gt;
&lt;br /&gt;
Lenovo does supply ICM profiles for most Thinkpads, but in order to open the appropriate .exe-archive under Linux you'll need Wine. Install Wine by running&lt;br /&gt;
 sudo apt-get install wine&lt;br /&gt;
After that download [http://www-307.ibm.com/pc/support/site.wss/migr-62923.html 79oi22ww.exe] and right-click the file. Go to the '''Properties''' tab and tick '''Allow executing file as program''' In the '''Open With''' tab select '''Wine Windows Program Loader''' and close the dialog. Now double-click 79oi22ww.exe, and hit Next -&amp;gt; I accept the agreement -&amp;gt; Next -&amp;gt; Next -&amp;gt; Install -&amp;gt; Finish. Using Nautilus go to &amp;quot;~/.wine/drive_c/DRIVERS/WIN/MONITOR&amp;quot;. There you'll find different ICM profiles which can be used by GCM. '''TPFLX.icm''' is for [http://www.thinkwiki.org/wiki/Flexview#Flexview_.28IPS.29 FlexView] panels whereas '''TPMB60.ICM''' and '''TPMB72.ICM''' are for [http://www.thinkwiki.org/wiki/Flexview#MaxBright MaxBright] panels. If you have only a plain TFT panel (not MaxBright) then stick to '''TPLCD.icm'''. &lt;br /&gt;
&lt;br /&gt;
After importing the appropriate profile to GCM and selecting it, be sure to go to '''Defaults''' tab and select '''Apply display correction'''  and '''Set profile for color managed applications''' Unfortunately, GCM doesn't seem to support manual adjustments of gamma, brightness or contrast on Thinkpad displays. &lt;br /&gt;
&lt;br /&gt;
At least adjusting gamma is possible when using '''xgamma'''. In a terminal run &lt;br /&gt;
 xgamma&lt;br /&gt;
to see you current gamma settings. You should see something like&lt;br /&gt;
 -&amp;gt; Red  1.000, Green  1.000, Blue  1.000&lt;br /&gt;
It is possible to adjust gamma values for all colors at the same time by issuing something like&lt;br /&gt;
 xgamma -gamma 0.9&lt;br /&gt;
or for red, green and blue separately&lt;br /&gt;
 xgamma -rgamma 0.815 -ggamma 0.844 -bgamma 1.0&lt;br /&gt;
If you want to be able to relate RGB gamma values to a certain colour temperature, take a look at [http://www.vendian.org/mncharity/dir3/blackbody/UnstableURLs/bbr_color.html this page by Mitchell Charity]. Thus, to get something like 7800K you'll have to issue&lt;br /&gt;
 xgamma -rgamma 0.8115 -ggamma 0.8351 -bgamma 1.0&lt;br /&gt;
After having found your favourite settings, you'll probably want to make them persistent. To do this go to '''System -&amp;gt; Preferences -&amp;gt; Startup Applications''', select the &amp;quot;Startup Programms&amp;quot; tab, click Add and add something like this&lt;br /&gt;
 Name: xgamma&lt;br /&gt;
 Command: xgamma -rgamma 0.8 -ggamma 0.8 -bgamma 1.0&lt;br /&gt;
(replace these values by your values) Click Add and then Close. Now these xgamma settings will be applied on each Gnome startup&lt;br /&gt;
&lt;br /&gt;
==  Setup Fingerprint Reader  == &lt;br /&gt;
&lt;br /&gt;
Although thinkfinger can be installed from Lucid repos, it contains some regressions which&lt;br /&gt;
prevent fingerprint authentication from working properly. For more information check out &lt;br /&gt;
[https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/256429 Bug #256429] Martin Schwenke &lt;br /&gt;
provides a PPA with the fixed version of thinkfinger which seems to work quite well.&lt;br /&gt;
&lt;br /&gt;
To install thinkfinger open a terminal and run &lt;br /&gt;
 sudo add-apt-repository ppa:martin-meltin/ppa&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install libpam-thinkfinger=0.3+r118-0ubuntu4ppamartinmeltin5&lt;br /&gt;
 sudo /usr/lib/pam-thinkfinger/pam-thinkfinger-enable&lt;br /&gt;
after that run&lt;br /&gt;
 tf-tool --acquire $USERNAME&lt;br /&gt;
to acquire your fingerprint. Now you can use Z61m's fingerprint reader when using sudo/gksudo or in GDM login screen.&lt;br /&gt;
&lt;br /&gt;
There seems to be a gnome-keyring related problem in Lucid when using fingerprint to log in. In that case Network Manager (nm-applet) may not appear in the panel or freeze when trying to change connection settings ([https://bugs.launchpad.net/ubuntu/+source/seahorse/+bug/529338 Bug #529338]). A known workaround is not to use fingerprint when logging in. You, however, still can use fingerprint for sudo, gksudo and all other supported authentication prompts.&lt;br /&gt;
&lt;br /&gt;
== Setup Hard Drive Active Protection System ==&lt;br /&gt;
Open a terminal and run&lt;br /&gt;
 sudo apt-get install tp-smapi-dkms&lt;br /&gt;
 sudo apt-get install python python-gtk2 python-gnome2 hdapsd&lt;br /&gt;
Now run&lt;br /&gt;
 sudo gedit /etc/modules&lt;br /&gt;
and add &lt;br /&gt;
 tp_smapi &lt;br /&gt;
to the very end of the file so that it looks like this (example)&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 lp&lt;br /&gt;
 tp_smapi&lt;br /&gt;
&lt;br /&gt;
Reboot. Now HDAPS should work. If you want to have a HDAPS icon in your notification area&lt;br /&gt;
like in Windows, follow these steps to install [http://thpani.at/projects/thinkhdaps/ ThinkHDAPS]&lt;br /&gt;
&lt;br /&gt;
Download [https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb] and put it into your home directory. Right click on the file and select &amp;quot;Extract Here&amp;quot;. In terminal run&lt;br /&gt;
 cd ~&lt;br /&gt;
 cd thinkhdaps_0.2.1-1_all&lt;br /&gt;
 sudo cp&lt;br /&gt;
 tar -zxvf data.tar.gz &lt;br /&gt;
 sudo cp usr/bin/thinkhdaps /usr/bin/&lt;br /&gt;
 sudo chmod +x /usr/bin/thinkhdaps&lt;br /&gt;
 sudo cp usr/share/pixmaps/* /usr/share/pixmaps/&lt;br /&gt;
&lt;br /&gt;
Now you can run&lt;br /&gt;
 thinkhdaps &amp;amp;&lt;br /&gt;
to make the '''ThinkHDAPS''' icon appear in the notification area&lt;br /&gt;
&lt;br /&gt;
[[File:ThinkHDAPS.png]]&lt;br /&gt;
&lt;br /&gt;
To make it autostart go to '''System -&amp;gt; Preferences -&amp;gt; Startup Applications''', select the &amp;quot;Startup Programms&amp;quot; tab, click Add and add this &lt;br /&gt;
 Name: thinkhdaps&lt;br /&gt;
 Command: thinkhdaps&lt;br /&gt;
Click Add and then Close. Now the ThinkHDAPS icon should be always visible in the notification area.&lt;br /&gt;
&lt;br /&gt;
To change the sensitivity run&lt;br /&gt;
 sudo gedit /etc/default/hdapsd&lt;br /&gt;
and change the SENSITIVITY value. Default is 15 whereas higher values mean less sensitive. For example 25 seems to be just fine.&lt;br /&gt;
&lt;br /&gt;
== Set up HDAPS accelerometer event ==&lt;br /&gt;
This section assumes you have set up tp_smapi (see [http://www.thinkwiki.org/wiki/Tp_smapi#Installation_on_Ubuntu_Lucid this page] for instructions).&lt;br /&gt;
&lt;br /&gt;
To add the device rule (this worked for X61t, for more info about the udev rule see [http://www.thinkwiki.org/wiki/Talk:HDAPS#Question_regarding_the_example_udev_rule_.3F])&lt;br /&gt;
 echo 'KERNEL==&amp;quot;event[0-9]*&amp;quot;, ATTRS{phys}==&amp;quot;hdaps/input1&amp;quot;,ATTRS{modalias}==&amp;quot;input:b0019v1014p5054e4801-*&amp;quot;,SYMLINK+=&amp;quot;input/hdaps/accelerometer-event&amp;quot;' | sudo tee /etc/udev/rules.d/51-hdaps.rules&lt;br /&gt;
Then force the reloading of rules.d&lt;br /&gt;
 sudo udevadm trigger&lt;br /&gt;
Now you should have a&lt;br /&gt;
 /dev/input/hdaps/accelerometer-event&lt;br /&gt;
&lt;br /&gt;
= Power Management =&lt;br /&gt;
&lt;br /&gt;
== Fix the hard drive clicking bug ==&lt;br /&gt;
If you don't know what the hard drive clicking bug is, read [http://www.thinkwiki.org/wiki/Problem_with_hard_drive_clicking this]. Although this bug was apparently fixed in Ubuntu Karmic, Lucid seems to be affected. &lt;br /&gt;
&lt;br /&gt;
{{WARN|Here is a solution that worked for me. It's a bit dirty and turns off the power management of your HDD. This will slightly decrease your battery life but greatly improve your drive's lifetime.}} &lt;br /&gt;
{{HINT|If you have a better solution, be sure to share it here}} &lt;br /&gt;
&lt;br /&gt;
To fix the bug open a terminal and run&lt;br /&gt;
 sudo cp /usr/lib/pm-utils/power.d/95hdparm-apm /etc/pm/power.d/&lt;br /&gt;
 sudo gedit /etc/pm/power.d/95hdparm-apm&lt;br /&gt;
&lt;br /&gt;
Insert &amp;quot;hdparm -B 254 /dev/sda&amp;quot; after &amp;quot;resume_hdparm_apm&amp;quot; so that the appropriate section looks like this&lt;br /&gt;
&lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
 	thaw|resume|true|false) # true and false for power.d&lt;br /&gt;
                 resume_hdparm_apm&lt;br /&gt;
                 hdparm -B 254 /dev/sda&lt;br /&gt;
                 ;;&lt;br /&gt;
            *)&lt;br /&gt;
                 exit 254&lt;br /&gt;
                 ;;&lt;br /&gt;
                 esac&lt;br /&gt;
&lt;br /&gt;
To test the fix try suspending/resuming and plugging/unpluging AC power. After each process run&lt;br /&gt;
 sudo hdparm -B /dev/sda&lt;br /&gt;
hdparm should always report&lt;br /&gt;
&lt;br /&gt;
 /dev/sda:&lt;br /&gt;
  APM_level	= 254&lt;br /&gt;
&lt;br /&gt;
== Setup Fan Control ==&lt;br /&gt;
&lt;br /&gt;
{{WARN|Wrong fan control settings may seriously damage you Thinkpad. You do it on your own risk!}} &lt;br /&gt;
&lt;br /&gt;
To override BIOS fan control you can install '''ThinkPad Fan Control'''. Go to '''System -&amp;gt; Administration -&amp;gt; Synaptic Package Manager'''. Switch to the &amp;quot;Third Party Software&amp;quot; tab and click on &amp;quot;Add&amp;quot;. As APT line add this&lt;br /&gt;
 deb http://ppa.launchpad.net/tp-fan/ppa/ubuntu jaunty main&lt;br /&gt;
Click &amp;quot;Add Source&amp;quot; then &amp;quot;Close&amp;quot; and finally &amp;quot;Reload&amp;quot; as suggested. Now use &amp;quot;Synaptic Package Manager&amp;quot; to install following packages&lt;br /&gt;
 tpfand tpfan-admin tpfand-profiles&lt;br /&gt;
Go to '''System -&amp;gt; Administration -&amp;gt; ThinkPad Fan Control''' and click on &amp;quot;Unlock&amp;quot;. Select &amp;quot;Control system fan by software&amp;quot; and you're done.&lt;br /&gt;
&lt;br /&gt;
It's also possible to define your own fan control rules thus overriding the default settings. To do this select &amp;quot;Manually configure system fan trigger temperatures&amp;quot;. Here is an example for a Z61m with Core2Duo T5500 and GMA 950. &lt;br /&gt;
Models with discrete graphics (like FireGL) will probably need lower threshholds as they usually produce more heat and thus require better cooling.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot-ThinkPad_Fan_Control_Configuration.png]]&lt;br /&gt;
&lt;br /&gt;
{{HELP|Did someone else experience this problem and test the workaround?}}&lt;br /&gt;
&lt;br /&gt;
Sometimes ThinkPad Fan Control's daemon '''tpfand''' crashes for unknown reasons causing software fan control to stop working (i.e. BIOS starts controlling the fan). It seems that this problem is somehow HAL related, since tpfand relies on HAL for determining the ThinkPad's model. If the detection routine fails, '''tpfand''' stops immediately(see [https://bugs.launchpad.net/tp-fan/+bug/575199 Bug #575199]). A quick and dirty solution is to tweak this detection by editing tpfand's settings.py&lt;br /&gt;
 sudo gedit /usr/lib/python2.6/dist-packages/tpfand/settings.py&lt;br /&gt;
and replacing&lt;br /&gt;
 self.product_id = None&lt;br /&gt;
 self.product_name = None&lt;br /&gt;
 self.product_pretty_vendor = None&lt;br /&gt;
 self.product_pretty_name = None&lt;br /&gt;
 self.product_pretty_id = None&lt;br /&gt;
by &lt;br /&gt;
 self.product_id = ''&lt;br /&gt;
 self.product_name = ''&lt;br /&gt;
 self.product_pretty_vendor = ''&lt;br /&gt;
 self.product_pretty_name = ''&lt;br /&gt;
 self.product_pretty_id = ''&lt;br /&gt;
this will prevent '''tpfand''' from crashing even if it wasn't able to detect your ThinkPad's model.&lt;br /&gt;
&lt;br /&gt;
== Configure Battery Charge Control ==&lt;br /&gt;
&lt;br /&gt;
In a terminal run&lt;br /&gt;
 sudo apt-get install sysfsutils&lt;br /&gt;
 sudo apt-get install tp-smapi-dkms&lt;br /&gt;
&lt;br /&gt;
Now run&lt;br /&gt;
 sudo gedit /etc/modules&lt;br /&gt;
and add &lt;br /&gt;
 tp_smapi &lt;br /&gt;
to the very end of the file. Run&lt;br /&gt;
 sudo gedit /etc/sysfs.conf&lt;br /&gt;
and add &lt;br /&gt;
 devices/platform/smapi/BAT0/start_charge_thresh=85&lt;br /&gt;
 devices/platform/smapi/BAT0/stop_charge_thresh=96&lt;br /&gt;
to the very end of the file. Save and reboot. With this values your battery will start charging at 80% and stop charging at 96%. Of course you can also put other values between 1 and 100.&lt;br /&gt;
&lt;br /&gt;
To check the current thresholds run&lt;br /&gt;
 cat /sys/devices/platform/smapi/BAT0/start_charge_thresh&lt;br /&gt;
and&lt;br /&gt;
 cat /sys/devices/platform/smapi/BAT0/stop_charge_thresh&lt;br /&gt;
&lt;br /&gt;
= External Sources =&lt;br /&gt;
*[http://wiki.ubuntuusers.de/Trackpoint] Trackpoint Configuration (wiki.ubuntuusers.de)&lt;br /&gt;
*[http://fedoraproject.org/wiki/Features/ColorManagement] Gnome Color Manager (fedoraproject.org)&lt;br /&gt;
*[http://www.ubuntufieldmanual.com/?q=node/38] Calibrate your monitor (Ubuntu Field Manual)&lt;/div&gt;</summary>
		<author><name>Tripwired</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&amp;diff=49016</id>
		<title>Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad Z61m</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&amp;diff=49016"/>
		<updated>2010-07-12T02:20:40Z</updated>

		<summary type="html">&lt;p&gt;Tripwired: /* Set up HDAPS accelerometer event */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Installing from USB stick=&lt;br /&gt;
&lt;br /&gt;
If you already use Ubuntu 9.10 Karmic, installing Ubuntu 10.04 from USB stick is very easy. Just download the [http://www.ubuntu.com/getubuntu/download latest ISO], plug the USB stick in and run System--&amp;gt;Administration--&amp;gt;Create a USB startup disk. Load the downloaded ISO and hit &amp;quot;Make Startup Disk&amp;quot;. For more information check [https://help.ubuntu.com/community/Installation/FromUSBStick#Creating%20a%20bootable%20USB%20Drive this page]. After that reboot your Thinkpad and press F12. This will allow you to boot from USB stick and start the installation routine.&lt;br /&gt;
&lt;br /&gt;
= Tested Configuration =&lt;br /&gt;
* Lenovo ThinkPad {{Z61m}} (9450-H9G)&lt;br /&gt;
** [[Intel Core 2 Duo]] T5500 (1,66 GHz, 2 MB L2, 667MHz FSB)&lt;br /&gt;
** 2 GB RAM (2x 1 GB [[PC2-5300]] DDR2 667MHz)&lt;br /&gt;
** 15.4&amp;quot; wide-screen TFT WXGA 1280x800&lt;br /&gt;
** [[Intel Graphics Media Accelerator 950]]&lt;br /&gt;
** Seagate Momentus 7200.3 ST9160411ASG (160 GB SATA 7200 RPM) [http://www.thinkwiki.org/wiki/Talk:Problem_with_hard_drive_clicking  reflashed to Dell OEM Firmware]&lt;br /&gt;
** Ultrabay Enhanced DVD±RW Burner (GMA-4082N, FRU 39T2723)&lt;br /&gt;
** Intel HD Audio with [[AD1981HD]] codec&lt;br /&gt;
** [[Broadcom Gigabit Ethernet (10/100/1000)]]&lt;br /&gt;
** [[ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)]]&lt;br /&gt;
** [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]&lt;br /&gt;
** [[IrDA]] 1.1 (FIR - 4Mbps)&lt;br /&gt;
** [[SD_Card_slot|4-in-1 digital media reader]] (MultiMedia Card, MemoryStick, SD)&lt;br /&gt;
** [[Integrated Fingerprint Reader]]&lt;br /&gt;
** [[ThinkLight]]&lt;br /&gt;
** [[UltraNav]]&lt;br /&gt;
** [[CardBus]] slot (Type 2)&lt;br /&gt;
** [[ExpressCard slot]] (54 or 34)&lt;br /&gt;
** [[UltraBay|UltraBay Enhanced]]&lt;br /&gt;
** 3x USB 2.0, Firewire, VGA out, S-Video out, Headphone Jack, Microphone Jack&lt;br /&gt;
** Built-in Microphone&lt;br /&gt;
&lt;br /&gt;
= Hardware Support =&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;2&amp;quot;&lt;br /&gt;
|Device / Function&lt;br /&gt;
|Works?&lt;br /&gt;
|Comment&lt;br /&gt;
|-&lt;br /&gt;
|Suspend &amp;amp; Hibernate&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Intel GMA950 2D and 3D&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Intel 3945ABG WiFi&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Broadcom Gigabit Ethernet&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|DVD±RW Burner&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Ultrabay Hotswapping&lt;br /&gt;
|{{Cpart}} &lt;br /&gt;
|hotswapping optical drives (like DVD±RW) works out of the box, for HDD hotswapping  [http://www.thinkwiki.org/wiki/How_to_hotswap_Ultrabay_devices#Using_libata-acpi_and_udev look here]&lt;br /&gt;
|-&lt;br /&gt;
|Hard Drive Active Protection System&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|must be activated and configured. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Hard_Drive_Active_Protection_System See here]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Intel HDA Sound&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box, modem must be enabled in BIOS&lt;br /&gt;
|-&lt;br /&gt;
|PCMCIA&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Express Card&lt;br /&gt;
|{{Cunk}} (should work) &lt;br /&gt;
|not tested&lt;br /&gt;
|-&lt;br /&gt;
|TPM&lt;br /&gt;
|{{Cunk}} (should work)  &lt;br /&gt;
|not tested, for further information check out these links [http://die-klapsmuehle.org/2009/01/29/how-to-use-a-tpm-with-ubuntu/], [https://www.grounation.org/index.php?post/2008/07/04/8-how-to-use-a-tpm-with-linux] &lt;br /&gt;
|-&lt;br /&gt;
|Firewire&lt;br /&gt;
|{{Cunk}} (should work) &lt;br /&gt;
|not tested&lt;br /&gt;
|-&lt;br /&gt;
|USB&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|IRDA&lt;br /&gt;
|{{Cunk}} (should work) &lt;br /&gt;
|not tested&lt;br /&gt;
|-&lt;br /&gt;
|Docking&lt;br /&gt;
|{{Cunk}} (should work)  &lt;br /&gt;
|not tested&lt;br /&gt;
|-&lt;br /&gt;
|Fingerprint Reader&lt;br /&gt;
|{{Cyes}}&lt;br /&gt;
|works with ThinkFinger. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Fingerprint_Reader See here]&lt;br /&gt;
|-&lt;br /&gt;
|VGA out&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|S-Video out&lt;br /&gt;
|{{Cpart}} &lt;br /&gt;
|a 100 Hz Sony TV was recognized as a 30 Hz TV, poor picture&lt;br /&gt;
|-&lt;br /&gt;
|Modem&lt;br /&gt;
|{{Cunk}} &lt;br /&gt;
|not tested&lt;br /&gt;
|-&lt;br /&gt;
|Microphone&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|both internal and external mics work out of the box, but are muted by default. See bellow&lt;br /&gt;
|-&lt;br /&gt;
|Headphones&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Touchpad&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Trackpoint&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box, to enable middle button scrolling see bellow&lt;br /&gt;
|-&lt;br /&gt;
|Multimedia Card Reader&lt;br /&gt;
|{{Cyes}}?&lt;br /&gt;
|works out of the box with all kinds of SD cards. No other cards have been tested&lt;br /&gt;
|-&lt;br /&gt;
|{{key|Fn}}{{key|Fx}}, {{key|Fn}}{{key|PageUp}}, {{key|Fn}}{{key|Home}}, {{key|Fn}}{{key|End}}&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box, except of {{key|Fn}}{{key|F9}} and {{key|Fn}}{{key|Space}}. For configuring {{key|Fn}}{{key|Space}} [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work see here]&lt;br /&gt;
|-&lt;br /&gt;
|{{key|Fn}}{{key|Up}}, {{key|Fn}}{{key|Down}}, {{key|Fn}}{{key|Left}}, {{key|Fn}}{{key|Right}}&lt;br /&gt;
|{{Cpart}}&lt;br /&gt;
|depends on the player, works out of the box with Rhytmbox but not Audacious. Thus, needs additional configuration&lt;br /&gt;
|-&lt;br /&gt;
|{{ibmkey|ThinkVantage|#495988}}&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|does nothing by default, but can be easily mapped to something useful. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Map_ThinkVantage_Button See here]&lt;br /&gt;
|-&lt;br /&gt;
|{{ibmkey|Volume up|#494949}}, {{ibmkey|Volume down|#494949}}, {{ibmkey|Volume mute|#494949}}&lt;br /&gt;
|{{Cpart}} &lt;br /&gt;
|the volume buttons work but don't affect the software (Pulse Audio) mixer. For possible workarounds [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Workaround_for_the_Volume_Buttons see here]&lt;br /&gt;
|-&lt;br /&gt;
|Back and Forward keys (near the arrow keys)&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|{{key|Fn}}{{key|Space}} (Screen Magnify)&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|requires some acpi hacking. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work See here]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Z61m]]&lt;br /&gt;
&lt;br /&gt;
= HOWTOS = &lt;br /&gt;
&lt;br /&gt;
==  Setup the Middle Button Scrolling  == &lt;br /&gt;
&lt;br /&gt;
Start a terminal and run &lt;br /&gt;
&lt;br /&gt;
 sudo gedit /usr/lib/X11/xorg.conf.d/20-trackpoint.conf&lt;br /&gt;
&lt;br /&gt;
paste this &lt;br /&gt;
&lt;br /&gt;
 Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
     Identifier      &amp;quot;Trackpoint&amp;quot;&lt;br /&gt;
     MatchProduct    &amp;quot;TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint&amp;quot;&lt;br /&gt;
     MatchDevicePath &amp;quot;/dev/input/event*&amp;quot;&lt;br /&gt;
     Option          &amp;quot;EmulateWheel&amp;quot; &amp;quot;true&amp;quot;&lt;br /&gt;
     Option          &amp;quot;EmulateWheelButton&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
     Option          &amp;quot;EmulateWheelTimeout&amp;quot; &amp;quot;200&amp;quot; &lt;br /&gt;
     Option	    &amp;quot;Emulate3Buttons&amp;quot;	&amp;quot;false&amp;quot;&lt;br /&gt;
     Option          &amp;quot;YAxisMapping&amp;quot; &amp;quot;4 5&amp;quot;&lt;br /&gt;
     Option          &amp;quot;XAxisMapping&amp;quot; &amp;quot;6 7&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
and save. Reboot.&lt;br /&gt;
&lt;br /&gt;
== Configure Trackpoint and Touchpad ==&lt;br /&gt;
The most convenient way to do this is to install GPointing Device Settings via &lt;br /&gt;
 sudo apt-get install gpointing-device-settings&lt;br /&gt;
After that you will find it in System -&amp;gt; Preferences -&amp;gt; Pointing Devices&lt;br /&gt;
&lt;br /&gt;
[[image:Screenshot-GPointing Device Settings-TrackPoint.png]]&lt;br /&gt;
&lt;br /&gt;
GPointing Device Settings, however, can't configure such important Trackpoint settings as sensitivity, speed and press to select. To do this, open a terminal, run&lt;br /&gt;
 sudo apt-get install sysfsutils&lt;br /&gt;
 sudo gedit /etc/rc.local&lt;br /&gt;
paste &lt;br /&gt;
&lt;br /&gt;
 for i in 1 2 3&lt;br /&gt;
 do&lt;br /&gt;
  if [ -d /sys/devices/platform/i8042/serio1/serio$i ]; then&lt;br /&gt;
   echo -n 200 &amp;gt; /sys/devices/platform/i8042/serio1/serio$i/speed&lt;br /&gt;
   echo -n 150 &amp;gt; /sys/devices/platform/i8042/serio1/serio$i/sensitivity&lt;br /&gt;
   echo -n 1 &amp;gt; /sys/devices/platform/i8042/serio1/serio$i/press_to_select&lt;br /&gt;
  fi&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
before &lt;br /&gt;
 exit 0&lt;br /&gt;
and save. This will set sensitivity to 200, speed to 150 and activate press to select. Replacing &amp;quot;echo -n 1&amp;quot; by &amp;quot;echo -n 0&amp;quot; in the file will deactivate press to select. To find the right speed and sensitivity values, you should do some tests before by issuing&lt;br /&gt;
 echo -n 200 | sudo tee /sys/devices/platform/i8042/serio1/serio?/sensitivity&lt;br /&gt;
 echo -n 150 | sudo tee /sys/devices/platform/i8042/serio1/serio?/speed&lt;br /&gt;
in the terminal and using different numerical values between 0 and 255. The default values are 128 for sensitivity and 97 for speed.&lt;br /&gt;
&lt;br /&gt;
== Workaround for the Volume Buttons ==&lt;br /&gt;
&lt;br /&gt;
Volume buttons work but don't control software mixer settings. Thus you effectively get two volume scales completely independent from each other: Ubuntu's software mixer and Z61m's hardware mixer. That's confusing and inconvenient but as of 2010-05-05 (see [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/357673 Bug #357673]) still unfixed. &lt;br /&gt;
&lt;br /&gt;
=== Possible Workaround #1 ===&lt;br /&gt;
&lt;br /&gt;
A simple workaround is to set hardware volume control to an acceptable level and not to use those volume buttons afterwards. Instead, you can use the software mixer only. It's easy to configure {{key|Win}}{{key|F1}} and {{key|Win}}{{key|F2}} which are not used in Ubuntu by default to act as volume buttons for the software mixer. To do this go to '''System -&amp;gt; Preferenced -&amp;gt; Keyboard shortcuts''', click on &amp;quot;Volume Down&amp;quot; and press {{key|Win}}{{key|F1}}. Now click on &amp;quot;Volume Up&amp;quot; and press {{key|Win}}{{key|F2}}. If you also need mute, you can define {{key|Win}}{{key|1}} for that. The changes will be applied immediately.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot-Keyboard_Shortcuts.png]]&lt;br /&gt;
&lt;br /&gt;
=== Possible Workaround #2 ===&lt;br /&gt;
&lt;br /&gt;
If you still want to use volume keys for volume control, you should run&lt;br /&gt;
 sudo gedit /etc/rc.local&lt;br /&gt;
and add this before &amp;quot;exit 0&amp;quot;&lt;br /&gt;
 cp /sys/devices/platform/thinkpad_acpi/hotkey_all_mask /sys/devices/platform/thinkpad_acpi/hotkey_mask&lt;br /&gt;
This solution is still not really acceptable because it uses a quite weird volume scale resulting in maximum loudness already on 50% of the software mixer. If you've already applied workaround #1, be sure to map &amp;quot;Volume Up&amp;quot; and &amp;quot;Volume Down&amp;quot; back to the Thinkpad volume keys&lt;br /&gt;
&lt;br /&gt;
== Make Fn-Space (Screen Magnify) work ==&lt;br /&gt;
&lt;br /&gt;
Open a terminal and run&lt;br /&gt;
 sudo apt-get install kmag&lt;br /&gt;
 sudo gedit /etc/acpi/events/asus-rotate&lt;br /&gt;
replace it's content by the following&lt;br /&gt;
 # /etc/acpi/events/ibmwireless&lt;br /&gt;
 # This is called when the user presses Fn-Space&lt;br /&gt;
 event=ibm/hotkey HKEY 00000080 00001014&lt;br /&gt;
 action=/etc/acpi/ibm-zoom.sh&lt;br /&gt;
and save. Now run&lt;br /&gt;
 sudo cp /etc/acpi/ibm-wireless.sh /etc/acpi/ibm-zoom.sh&lt;br /&gt;
 sudo gedit /etc/acpi/ibm-zoom.sh&lt;br /&gt;
and replace its content by the following&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # This script activates gnome-mag when Fn+Space is pressed&lt;br /&gt;
 test -f /usr/share/acpi-support/key-constants || exit 0&lt;br /&gt;
 . /usr/share/acpi-support/power-funcs&lt;br /&gt;
 magnifier_pid=`pidof kmag`&lt;br /&gt;
 for x in /tmp/.X11-unix/*; do&lt;br /&gt;
        displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`&lt;br /&gt;
        getXconsole;&lt;br /&gt;
        if [ x&amp;quot;$XAUTHORITY&amp;quot; != x&amp;quot;&amp;quot; ]; then&lt;br /&gt;
            export DISPLAY=&amp;quot;:$displaynum&amp;quot;&lt;br /&gt;
            if [ &amp;quot;$magnifier_pid&amp;quot; != &amp;quot;&amp;quot; ]; then	    &lt;br /&gt;
 		/usr/bin/killall kmag&lt;br /&gt;
            break&lt;br /&gt;
            else&lt;br /&gt;
                /usr/bin/kmag &amp;amp;&lt;br /&gt;
                break&lt;br /&gt;
            fi&lt;br /&gt;
        fi&lt;br /&gt;
 done&lt;br /&gt;
Save and reboot. Now when pressing Fn-Space you can open KMagnifier. Pressing Fn-Space once again will close KMagnifier. You can configure KMagnifier as you like and your settings will be saved automatically&lt;br /&gt;
&lt;br /&gt;
== Map ThinkVantage Button ==&lt;br /&gt;
ThinkVantage Button is recognized but is not mapped to any function so that pressing it does nothing. To change this go to '''System-&amp;gt;Preferences-&amp;gt; Keyboard shortcuts'''. There you can look for some predefined actions ThinkVantage Button might do for you. To map the button to a certain action simply click on the action and press {{ibmkey|ThinkVantage|#495988}}. Via Add you can also add your own commands, for instance to start your browser or e-mail client.&lt;br /&gt;
&lt;br /&gt;
==  Setup External Monitor or Beamer (VGA)  == &lt;br /&gt;
&lt;br /&gt;
Connect your monitor/beamer to VGA port and go to '''System -&amp;gt; Preferences -&amp;gt; Monitors'''. For quick access to those settings it might be useful to activate &amp;quot;Show monitors in panel&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Lucid_ext_Monitor_new.png]]&lt;br /&gt;
&lt;br /&gt;
You can also use this to configure an external device connected to S-Video Out.&lt;br /&gt;
&lt;br /&gt;
[[File:Z61m_svideo.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Setup Color Management  == &lt;br /&gt;
To use ICC/ICM profiles you should install [http://projects.gnome.org/gnome-color-manager/ GNOME Color Manager] via&lt;br /&gt;
 sudo apt-get install gnome-color-manager&lt;br /&gt;
After that it should appear under '''System -&amp;gt; Preferences -&amp;gt; Color Profiles'''. Alternatively you can start it from the terminal by issuing&lt;br /&gt;
 gcm-prefs&lt;br /&gt;
GCM should detect your Thinkpad monitor automatically. All you need to do is supply the correct ICC/ICM profile by clicking on the list under '''Color Profile''' and selecting '''Other profile ...'''&lt;br /&gt;
&lt;br /&gt;
[[File:CMgment.jpg]]&lt;br /&gt;
&lt;br /&gt;
Lenovo does supply ICM profiles for most Thinkpads, but in order to open the appropriate .exe-archive under Linux you'll need Wine. Install Wine by running&lt;br /&gt;
 sudo apt-get install wine&lt;br /&gt;
After that download [http://www-307.ibm.com/pc/support/site.wss/migr-62923.html 79oi22ww.exe] and right-click the file. Go to the '''Properties''' tab and tick '''Allow executing file as program''' In the '''Open With''' tab select '''Wine Windows Program Loader''' and close the dialog. Now double-click 79oi22ww.exe, and hit Next -&amp;gt; I accept the agreement -&amp;gt; Next -&amp;gt; Next -&amp;gt; Install -&amp;gt; Finish. Using Nautilus go to &amp;quot;~/.wine/drive_c/DRIVERS/WIN/MONITOR&amp;quot;. There you'll find different ICM profiles which can be used by GCM. '''TPFLX.icm''' is for [http://www.thinkwiki.org/wiki/Flexview#Flexview_.28IPS.29 FlexView] panels whereas '''TPMB60.ICM''' and '''TPMB72.ICM''' are for [http://www.thinkwiki.org/wiki/Flexview#MaxBright MaxBright] panels. If you have only a plain TFT panel (not MaxBright) then stick to '''TPLCD.icm'''. &lt;br /&gt;
&lt;br /&gt;
After importing the appropriate profile to GCM and selecting it, be sure to go to '''Defaults''' tab and select '''Apply display correction'''  and '''Set profile for color managed applications''' Unfortunately, GCM doesn't seem to support manual adjustments of gamma, brightness or contrast on Thinkpad displays. &lt;br /&gt;
&lt;br /&gt;
At least adjusting gamma is possible when using '''xgamma'''. In a terminal run &lt;br /&gt;
 xgamma&lt;br /&gt;
to see you current gamma settings. You should see something like&lt;br /&gt;
 -&amp;gt; Red  1.000, Green  1.000, Blue  1.000&lt;br /&gt;
It is possible to adjust gamma values for all colors at the same time by issuing something like&lt;br /&gt;
 xgamma -gamma 0.9&lt;br /&gt;
or for red, green and blue separately&lt;br /&gt;
 xgamma -rgamma 0.815 -ggamma 0.844 -bgamma 1.0&lt;br /&gt;
If you want to be able to relate RGB gamma values to a certain colour temperature, take a look at [http://www.vendian.org/mncharity/dir3/blackbody/UnstableURLs/bbr_color.html this page by Mitchell Charity]. Thus, to get something like 7800K you'll have to issue&lt;br /&gt;
 xgamma -rgamma 0.8115 -ggamma 0.8351 -bgamma 1.0&lt;br /&gt;
After having found your favourite settings, you'll probably want to make them persistent. To do this go to '''System -&amp;gt; Preferences -&amp;gt; Startup Applications''', select the &amp;quot;Startup Programms&amp;quot; tab, click Add and add something like this&lt;br /&gt;
 Name: xgamma&lt;br /&gt;
 Command: xgamma -rgamma 0.8 -ggamma 0.8 -bgamma 1.0&lt;br /&gt;
(replace these values by your values) Click Add and then Close. Now these xgamma settings will be applied on each Gnome startup&lt;br /&gt;
&lt;br /&gt;
==  Setup Fingerprint Reader  == &lt;br /&gt;
&lt;br /&gt;
Although thinkfinger can be installed from Lucid repos, it contains some regressions which&lt;br /&gt;
prevent fingerprint authentication from working properly. For more information check out &lt;br /&gt;
[https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/256429 Bug #256429] Martin Schwenke &lt;br /&gt;
provides a PPA with the fixed version of thinkfinger which seems to work quite well.&lt;br /&gt;
&lt;br /&gt;
To install thinkfinger open a terminal and run &lt;br /&gt;
 sudo add-apt-repository ppa:martin-meltin/ppa&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install libpam-thinkfinger=0.3+r118-0ubuntu4ppamartinmeltin5&lt;br /&gt;
 sudo /usr/lib/pam-thinkfinger/pam-thinkfinger-enable&lt;br /&gt;
after that run&lt;br /&gt;
 tf-tool --acquire $USERNAME&lt;br /&gt;
to acquire your fingerprint. Now you can use Z61m's fingerprint reader when using sudo/gksudo or in GDM login screen.&lt;br /&gt;
&lt;br /&gt;
There seems to be a gnome-keyring related problem in Lucid when using fingerprint to log in. In that case Network Manager (nm-applet) may not appear in the panel or freeze when trying to change connection settings ([https://bugs.launchpad.net/ubuntu/+source/seahorse/+bug/529338 Bug #529338]). A known workaround is not to use fingerprint when logging in. You, however, still can use fingerprint for sudo, gksudo and all other supported authentication prompts.&lt;br /&gt;
&lt;br /&gt;
== Setup Hard Drive Active Protection System ==&lt;br /&gt;
Open a terminal and run&lt;br /&gt;
 sudo apt-get install tp-smapi-dkms&lt;br /&gt;
 sudo apt-get install python python-gtk2 python-gnome2 hdapsd&lt;br /&gt;
Now run&lt;br /&gt;
 sudo gedit /etc/modules&lt;br /&gt;
and add &lt;br /&gt;
 tp_smapi &lt;br /&gt;
to the very end of the file so that it looks like this (example)&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 lp&lt;br /&gt;
 tp_smapi&lt;br /&gt;
&lt;br /&gt;
Reboot. Now HDAPS should work. If you want to have a HDAPS icon in your notification area&lt;br /&gt;
like in Windows, follow these steps to install [http://thpani.at/projects/thinkhdaps/ ThinkHDAPS]&lt;br /&gt;
&lt;br /&gt;
Download [https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb] and put it into your home directory. Right click on the file and select &amp;quot;Extract Here&amp;quot;. In terminal run&lt;br /&gt;
 cd ~&lt;br /&gt;
 cd thinkhdaps_0.2.1-1_all&lt;br /&gt;
 sudo cp&lt;br /&gt;
 tar -zxvf data.tar.gz &lt;br /&gt;
 sudo cp usr/bin/thinkhdaps /usr/bin/&lt;br /&gt;
 sudo chmod +x /usr/bin/thinkhdaps&lt;br /&gt;
 sudo cp usr/share/pixmaps/* /usr/share/pixmaps/&lt;br /&gt;
&lt;br /&gt;
Now you can run&lt;br /&gt;
 thinkhdaps &amp;amp;&lt;br /&gt;
to make the '''ThinkHDAPS''' icon appear in the notification area&lt;br /&gt;
&lt;br /&gt;
[[File:ThinkHDAPS.png]]&lt;br /&gt;
&lt;br /&gt;
To make it autostart go to '''System -&amp;gt; Preferences -&amp;gt; Startup Applications''', select the &amp;quot;Startup Programms&amp;quot; tab, click Add and add this &lt;br /&gt;
 Name: thinkhdaps&lt;br /&gt;
 Command: thinkhdaps&lt;br /&gt;
Click Add and then Close. Now the ThinkHDAPS icon should be always visible in the notification area.&lt;br /&gt;
&lt;br /&gt;
To change the sensitivity run&lt;br /&gt;
 sudo gedit /etc/default/hdapsd&lt;br /&gt;
and change the SENSITIVITY value. Default is 15 whereas higher values mean less sensitive. For example 25 seems to be just fine.&lt;br /&gt;
&lt;br /&gt;
== Set up HDAPS accelerometer event ==&lt;br /&gt;
This section assumes you have set up tp_smapi (see [http://www.thinkwiki.org/wiki/Tp_smapi#Installation_on_Ubuntu_Lucid] for instructions).&lt;br /&gt;
&lt;br /&gt;
To add the device rule (this worked for X61t, for more info about the udev rule see [http://www.thinkwiki.org/wiki/Talk:HDAPS#Question_regarding_the_example_udev_rule_.3F])&lt;br /&gt;
 echo 'KERNEL==&amp;quot;event[0-9]*&amp;quot;, ATTRS{phys}==&amp;quot;hdaps/input1&amp;quot;,ATTRS{modalias}==&amp;quot;input:b0019v1014p5054e4801-*&amp;quot;,SYMLINK+=&amp;quot;input/hdaps/accelerometer-event&amp;quot;' | sudo tee /etc/udev/rules.d/51-hdaps.rules&lt;br /&gt;
Then force the reloading of rules.d&lt;br /&gt;
 sudo udevadm trigger&lt;br /&gt;
Now you should have a&lt;br /&gt;
 /dev/input/hdaps/accelerometer-event&lt;br /&gt;
&lt;br /&gt;
= Power Management =&lt;br /&gt;
&lt;br /&gt;
== Fix the hard drive clicking bug ==&lt;br /&gt;
If you don't know what the hard drive clicking bug is, read [http://www.thinkwiki.org/wiki/Problem_with_hard_drive_clicking this]. Although this bug was apparently fixed in Ubuntu Karmic, Lucid seems to be affected. &lt;br /&gt;
&lt;br /&gt;
{{WARN|Here is a solution that worked for me. It's a bit dirty and turns off the power management of your HDD. This will slightly decrease your battery life but greatly improve your drive's lifetime.}} &lt;br /&gt;
{{HINT|If you have a better solution, be sure to share it here}} &lt;br /&gt;
&lt;br /&gt;
To fix the bug open a terminal and run&lt;br /&gt;
 sudo cp /usr/lib/pm-utils/power.d/95hdparm-apm /etc/pm/power.d/&lt;br /&gt;
 sudo gedit /etc/pm/power.d/95hdparm-apm&lt;br /&gt;
&lt;br /&gt;
Insert &amp;quot;hdparm -B 254 /dev/sda&amp;quot; after &amp;quot;resume_hdparm_apm&amp;quot; so that the appropriate section looks like this&lt;br /&gt;
&lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
 	thaw|resume|true|false) # true and false for power.d&lt;br /&gt;
                 resume_hdparm_apm&lt;br /&gt;
                 hdparm -B 254 /dev/sda&lt;br /&gt;
                 ;;&lt;br /&gt;
            *)&lt;br /&gt;
                 exit 254&lt;br /&gt;
                 ;;&lt;br /&gt;
                 esac&lt;br /&gt;
&lt;br /&gt;
To test the fix try suspending/resuming and plugging/unpluging AC power. After each process run&lt;br /&gt;
 sudo hdparm -B /dev/sda&lt;br /&gt;
hdparm should always report&lt;br /&gt;
&lt;br /&gt;
 /dev/sda:&lt;br /&gt;
  APM_level	= 254&lt;br /&gt;
&lt;br /&gt;
== Setup Fan Control ==&lt;br /&gt;
&lt;br /&gt;
{{WARN|Wrong fan control settings may seriously damage you Thinkpad. You do it on your own risk!}} &lt;br /&gt;
&lt;br /&gt;
To override BIOS fan control you can install '''ThinkPad Fan Control'''. Go to '''System -&amp;gt; Administration -&amp;gt; Synaptic Package Manager'''. Switch to the &amp;quot;Third Party Software&amp;quot; tab and click on &amp;quot;Add&amp;quot;. As APT line add this&lt;br /&gt;
 deb http://ppa.launchpad.net/tp-fan/ppa/ubuntu jaunty main&lt;br /&gt;
Click &amp;quot;Add Source&amp;quot; then &amp;quot;Close&amp;quot; and finally &amp;quot;Reload&amp;quot; as suggested. Now use &amp;quot;Synaptic Package Manager&amp;quot; to install following packages&lt;br /&gt;
 tpfand tpfan-admin tpfand-profiles&lt;br /&gt;
Go to '''System -&amp;gt; Administration -&amp;gt; ThinkPad Fan Control''' and click on &amp;quot;Unlock&amp;quot;. Select &amp;quot;Control system fan by software&amp;quot; and you're done.&lt;br /&gt;
&lt;br /&gt;
It's also possible to define your own fan control rules thus overriding the default settings. To do this select &amp;quot;Manually configure system fan trigger temperatures&amp;quot;. Here is an example for a Z61m with Core2Duo T5500 and GMA 950. &lt;br /&gt;
Models with discrete graphics (like FireGL) will probably need lower threshholds as they usually produce more heat and thus require better cooling.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot-ThinkPad_Fan_Control_Configuration.png]]&lt;br /&gt;
&lt;br /&gt;
{{HELP|Did someone else experience this problem and test the workaround?}}&lt;br /&gt;
&lt;br /&gt;
Sometimes ThinkPad Fan Control's daemon '''tpfand''' crashes for unknown reasons causing software fan control to stop working (i.e. BIOS starts controlling the fan). It seems that this problem is somehow HAL related, since tpfand relies on HAL for determining the ThinkPad's model. If the detection routine fails, '''tpfand''' stops immediately(see [https://bugs.launchpad.net/tp-fan/+bug/575199 Bug #575199]). A quick and dirty solution is to tweak this detection by editing tpfand's settings.py&lt;br /&gt;
 sudo gedit /usr/lib/python2.6/dist-packages/tpfand/settings.py&lt;br /&gt;
and replacing&lt;br /&gt;
 self.product_id = None&lt;br /&gt;
 self.product_name = None&lt;br /&gt;
 self.product_pretty_vendor = None&lt;br /&gt;
 self.product_pretty_name = None&lt;br /&gt;
 self.product_pretty_id = None&lt;br /&gt;
by &lt;br /&gt;
 self.product_id = ''&lt;br /&gt;
 self.product_name = ''&lt;br /&gt;
 self.product_pretty_vendor = ''&lt;br /&gt;
 self.product_pretty_name = ''&lt;br /&gt;
 self.product_pretty_id = ''&lt;br /&gt;
this will prevent '''tpfand''' from crashing even if it wasn't able to detect your ThinkPad's model.&lt;br /&gt;
&lt;br /&gt;
== Configure Battery Charge Control ==&lt;br /&gt;
&lt;br /&gt;
In a terminal run&lt;br /&gt;
 sudo apt-get install sysfsutils&lt;br /&gt;
 sudo apt-get install tp-smapi-dkms&lt;br /&gt;
&lt;br /&gt;
Now run&lt;br /&gt;
 sudo gedit /etc/modules&lt;br /&gt;
and add &lt;br /&gt;
 tp_smapi &lt;br /&gt;
to the very end of the file. Run&lt;br /&gt;
 sudo gedit /etc/sysfs.conf&lt;br /&gt;
and add &lt;br /&gt;
 devices/platform/smapi/BAT0/start_charge_thresh=85&lt;br /&gt;
 devices/platform/smapi/BAT0/stop_charge_thresh=96&lt;br /&gt;
to the very end of the file. Save and reboot. With this values your battery will start charging at 80% and stop charging at 96%. Of course you can also put other values between 1 and 100.&lt;br /&gt;
&lt;br /&gt;
To check the current thresholds run&lt;br /&gt;
 cat /sys/devices/platform/smapi/BAT0/start_charge_thresh&lt;br /&gt;
and&lt;br /&gt;
 cat /sys/devices/platform/smapi/BAT0/stop_charge_thresh&lt;br /&gt;
&lt;br /&gt;
= External Sources =&lt;br /&gt;
*[http://wiki.ubuntuusers.de/Trackpoint] Trackpoint Configuration (wiki.ubuntuusers.de)&lt;br /&gt;
*[http://fedoraproject.org/wiki/Features/ColorManagement] Gnome Color Manager (fedoraproject.org)&lt;br /&gt;
*[http://www.ubuntufieldmanual.com/?q=node/38] Calibrate your monitor (Ubuntu Field Manual)&lt;/div&gt;</summary>
		<author><name>Tripwired</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&amp;diff=49015</id>
		<title>Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad Z61m</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&amp;diff=49015"/>
		<updated>2010-07-12T02:17:55Z</updated>

		<summary type="html">&lt;p&gt;Tripwired: accelerometer event howto&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Installing from USB stick=&lt;br /&gt;
&lt;br /&gt;
If you already use Ubuntu 9.10 Karmic, installing Ubuntu 10.04 from USB stick is very easy. Just download the [http://www.ubuntu.com/getubuntu/download latest ISO], plug the USB stick in and run System--&amp;gt;Administration--&amp;gt;Create a USB startup disk. Load the downloaded ISO and hit &amp;quot;Make Startup Disk&amp;quot;. For more information check [https://help.ubuntu.com/community/Installation/FromUSBStick#Creating%20a%20bootable%20USB%20Drive this page]. After that reboot your Thinkpad and press F12. This will allow you to boot from USB stick and start the installation routine.&lt;br /&gt;
&lt;br /&gt;
= Tested Configuration =&lt;br /&gt;
* Lenovo ThinkPad {{Z61m}} (9450-H9G)&lt;br /&gt;
** [[Intel Core 2 Duo]] T5500 (1,66 GHz, 2 MB L2, 667MHz FSB)&lt;br /&gt;
** 2 GB RAM (2x 1 GB [[PC2-5300]] DDR2 667MHz)&lt;br /&gt;
** 15.4&amp;quot; wide-screen TFT WXGA 1280x800&lt;br /&gt;
** [[Intel Graphics Media Accelerator 950]]&lt;br /&gt;
** Seagate Momentus 7200.3 ST9160411ASG (160 GB SATA 7200 RPM) [http://www.thinkwiki.org/wiki/Talk:Problem_with_hard_drive_clicking  reflashed to Dell OEM Firmware]&lt;br /&gt;
** Ultrabay Enhanced DVD±RW Burner (GMA-4082N, FRU 39T2723)&lt;br /&gt;
** Intel HD Audio with [[AD1981HD]] codec&lt;br /&gt;
** [[Broadcom Gigabit Ethernet (10/100/1000)]]&lt;br /&gt;
** [[ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)]]&lt;br /&gt;
** [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]&lt;br /&gt;
** [[IrDA]] 1.1 (FIR - 4Mbps)&lt;br /&gt;
** [[SD_Card_slot|4-in-1 digital media reader]] (MultiMedia Card, MemoryStick, SD)&lt;br /&gt;
** [[Integrated Fingerprint Reader]]&lt;br /&gt;
** [[ThinkLight]]&lt;br /&gt;
** [[UltraNav]]&lt;br /&gt;
** [[CardBus]] slot (Type 2)&lt;br /&gt;
** [[ExpressCard slot]] (54 or 34)&lt;br /&gt;
** [[UltraBay|UltraBay Enhanced]]&lt;br /&gt;
** 3x USB 2.0, Firewire, VGA out, S-Video out, Headphone Jack, Microphone Jack&lt;br /&gt;
** Built-in Microphone&lt;br /&gt;
&lt;br /&gt;
= Hardware Support =&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;2&amp;quot;&lt;br /&gt;
|Device / Function&lt;br /&gt;
|Works?&lt;br /&gt;
|Comment&lt;br /&gt;
|-&lt;br /&gt;
|Suspend &amp;amp; Hibernate&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Intel GMA950 2D and 3D&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Intel 3945ABG WiFi&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Broadcom Gigabit Ethernet&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|DVD±RW Burner&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Ultrabay Hotswapping&lt;br /&gt;
|{{Cpart}} &lt;br /&gt;
|hotswapping optical drives (like DVD±RW) works out of the box, for HDD hotswapping  [http://www.thinkwiki.org/wiki/How_to_hotswap_Ultrabay_devices#Using_libata-acpi_and_udev look here]&lt;br /&gt;
|-&lt;br /&gt;
|Hard Drive Active Protection System&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|must be activated and configured. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Hard_Drive_Active_Protection_System See here]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Intel HDA Sound&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box, modem must be enabled in BIOS&lt;br /&gt;
|-&lt;br /&gt;
|PCMCIA&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Express Card&lt;br /&gt;
|{{Cunk}} (should work) &lt;br /&gt;
|not tested&lt;br /&gt;
|-&lt;br /&gt;
|TPM&lt;br /&gt;
|{{Cunk}} (should work)  &lt;br /&gt;
|not tested, for further information check out these links [http://die-klapsmuehle.org/2009/01/29/how-to-use-a-tpm-with-ubuntu/], [https://www.grounation.org/index.php?post/2008/07/04/8-how-to-use-a-tpm-with-linux] &lt;br /&gt;
|-&lt;br /&gt;
|Firewire&lt;br /&gt;
|{{Cunk}} (should work) &lt;br /&gt;
|not tested&lt;br /&gt;
|-&lt;br /&gt;
|USB&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|IRDA&lt;br /&gt;
|{{Cunk}} (should work) &lt;br /&gt;
|not tested&lt;br /&gt;
|-&lt;br /&gt;
|Docking&lt;br /&gt;
|{{Cunk}} (should work)  &lt;br /&gt;
|not tested&lt;br /&gt;
|-&lt;br /&gt;
|Fingerprint Reader&lt;br /&gt;
|{{Cyes}}&lt;br /&gt;
|works with ThinkFinger. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Fingerprint_Reader See here]&lt;br /&gt;
|-&lt;br /&gt;
|VGA out&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|S-Video out&lt;br /&gt;
|{{Cpart}} &lt;br /&gt;
|a 100 Hz Sony TV was recognized as a 30 Hz TV, poor picture&lt;br /&gt;
|-&lt;br /&gt;
|Modem&lt;br /&gt;
|{{Cunk}} &lt;br /&gt;
|not tested&lt;br /&gt;
|-&lt;br /&gt;
|Microphone&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|both internal and external mics work out of the box, but are muted by default. See bellow&lt;br /&gt;
|-&lt;br /&gt;
|Headphones&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Touchpad&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|Trackpoint&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box, to enable middle button scrolling see bellow&lt;br /&gt;
|-&lt;br /&gt;
|Multimedia Card Reader&lt;br /&gt;
|{{Cyes}}?&lt;br /&gt;
|works out of the box with all kinds of SD cards. No other cards have been tested&lt;br /&gt;
|-&lt;br /&gt;
|{{key|Fn}}{{key|Fx}}, {{key|Fn}}{{key|PageUp}}, {{key|Fn}}{{key|Home}}, {{key|Fn}}{{key|End}}&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box, except of {{key|Fn}}{{key|F9}} and {{key|Fn}}{{key|Space}}. For configuring {{key|Fn}}{{key|Space}} [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work see here]&lt;br /&gt;
|-&lt;br /&gt;
|{{key|Fn}}{{key|Up}}, {{key|Fn}}{{key|Down}}, {{key|Fn}}{{key|Left}}, {{key|Fn}}{{key|Right}}&lt;br /&gt;
|{{Cpart}}&lt;br /&gt;
|depends on the player, works out of the box with Rhytmbox but not Audacious. Thus, needs additional configuration&lt;br /&gt;
|-&lt;br /&gt;
|{{ibmkey|ThinkVantage|#495988}}&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|does nothing by default, but can be easily mapped to something useful. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Map_ThinkVantage_Button See here]&lt;br /&gt;
|-&lt;br /&gt;
|{{ibmkey|Volume up|#494949}}, {{ibmkey|Volume down|#494949}}, {{ibmkey|Volume mute|#494949}}&lt;br /&gt;
|{{Cpart}} &lt;br /&gt;
|the volume buttons work but don't affect the software (Pulse Audio) mixer. For possible workarounds [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Workaround_for_the_Volume_Buttons see here]&lt;br /&gt;
|-&lt;br /&gt;
|Back and Forward keys (near the arrow keys)&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|out of the box&lt;br /&gt;
|-&lt;br /&gt;
|{{key|Fn}}{{key|Space}} (Screen Magnify)&lt;br /&gt;
|{{Cyes}} &lt;br /&gt;
|requires some acpi hacking. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work See here]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Z61m]]&lt;br /&gt;
&lt;br /&gt;
= HOWTOS = &lt;br /&gt;
&lt;br /&gt;
==  Setup the Middle Button Scrolling  == &lt;br /&gt;
&lt;br /&gt;
Start a terminal and run &lt;br /&gt;
&lt;br /&gt;
 sudo gedit /usr/lib/X11/xorg.conf.d/20-trackpoint.conf&lt;br /&gt;
&lt;br /&gt;
paste this &lt;br /&gt;
&lt;br /&gt;
 Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
     Identifier      &amp;quot;Trackpoint&amp;quot;&lt;br /&gt;
     MatchProduct    &amp;quot;TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint&amp;quot;&lt;br /&gt;
     MatchDevicePath &amp;quot;/dev/input/event*&amp;quot;&lt;br /&gt;
     Option          &amp;quot;EmulateWheel&amp;quot; &amp;quot;true&amp;quot;&lt;br /&gt;
     Option          &amp;quot;EmulateWheelButton&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
     Option          &amp;quot;EmulateWheelTimeout&amp;quot; &amp;quot;200&amp;quot; &lt;br /&gt;
     Option	    &amp;quot;Emulate3Buttons&amp;quot;	&amp;quot;false&amp;quot;&lt;br /&gt;
     Option          &amp;quot;YAxisMapping&amp;quot; &amp;quot;4 5&amp;quot;&lt;br /&gt;
     Option          &amp;quot;XAxisMapping&amp;quot; &amp;quot;6 7&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
and save. Reboot.&lt;br /&gt;
&lt;br /&gt;
== Configure Trackpoint and Touchpad ==&lt;br /&gt;
The most convenient way to do this is to install GPointing Device Settings via &lt;br /&gt;
 sudo apt-get install gpointing-device-settings&lt;br /&gt;
After that you will find it in System -&amp;gt; Preferences -&amp;gt; Pointing Devices&lt;br /&gt;
&lt;br /&gt;
[[image:Screenshot-GPointing Device Settings-TrackPoint.png]]&lt;br /&gt;
&lt;br /&gt;
GPointing Device Settings, however, can't configure such important Trackpoint settings as sensitivity, speed and press to select. To do this, open a terminal, run&lt;br /&gt;
 sudo apt-get install sysfsutils&lt;br /&gt;
 sudo gedit /etc/rc.local&lt;br /&gt;
paste &lt;br /&gt;
&lt;br /&gt;
 for i in 1 2 3&lt;br /&gt;
 do&lt;br /&gt;
  if [ -d /sys/devices/platform/i8042/serio1/serio$i ]; then&lt;br /&gt;
   echo -n 200 &amp;gt; /sys/devices/platform/i8042/serio1/serio$i/speed&lt;br /&gt;
   echo -n 150 &amp;gt; /sys/devices/platform/i8042/serio1/serio$i/sensitivity&lt;br /&gt;
   echo -n 1 &amp;gt; /sys/devices/platform/i8042/serio1/serio$i/press_to_select&lt;br /&gt;
  fi&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
before &lt;br /&gt;
 exit 0&lt;br /&gt;
and save. This will set sensitivity to 200, speed to 150 and activate press to select. Replacing &amp;quot;echo -n 1&amp;quot; by &amp;quot;echo -n 0&amp;quot; in the file will deactivate press to select. To find the right speed and sensitivity values, you should do some tests before by issuing&lt;br /&gt;
 echo -n 200 | sudo tee /sys/devices/platform/i8042/serio1/serio?/sensitivity&lt;br /&gt;
 echo -n 150 | sudo tee /sys/devices/platform/i8042/serio1/serio?/speed&lt;br /&gt;
in the terminal and using different numerical values between 0 and 255. The default values are 128 for sensitivity and 97 for speed.&lt;br /&gt;
&lt;br /&gt;
== Workaround for the Volume Buttons ==&lt;br /&gt;
&lt;br /&gt;
Volume buttons work but don't control software mixer settings. Thus you effectively get two volume scales completely independent from each other: Ubuntu's software mixer and Z61m's hardware mixer. That's confusing and inconvenient but as of 2010-05-05 (see [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/357673 Bug #357673]) still unfixed. &lt;br /&gt;
&lt;br /&gt;
=== Possible Workaround #1 ===&lt;br /&gt;
&lt;br /&gt;
A simple workaround is to set hardware volume control to an acceptable level and not to use those volume buttons afterwards. Instead, you can use the software mixer only. It's easy to configure {{key|Win}}{{key|F1}} and {{key|Win}}{{key|F2}} which are not used in Ubuntu by default to act as volume buttons for the software mixer. To do this go to '''System -&amp;gt; Preferenced -&amp;gt; Keyboard shortcuts''', click on &amp;quot;Volume Down&amp;quot; and press {{key|Win}}{{key|F1}}. Now click on &amp;quot;Volume Up&amp;quot; and press {{key|Win}}{{key|F2}}. If you also need mute, you can define {{key|Win}}{{key|1}} for that. The changes will be applied immediately.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot-Keyboard_Shortcuts.png]]&lt;br /&gt;
&lt;br /&gt;
=== Possible Workaround #2 ===&lt;br /&gt;
&lt;br /&gt;
If you still want to use volume keys for volume control, you should run&lt;br /&gt;
 sudo gedit /etc/rc.local&lt;br /&gt;
and add this before &amp;quot;exit 0&amp;quot;&lt;br /&gt;
 cp /sys/devices/platform/thinkpad_acpi/hotkey_all_mask /sys/devices/platform/thinkpad_acpi/hotkey_mask&lt;br /&gt;
This solution is still not really acceptable because it uses a quite weird volume scale resulting in maximum loudness already on 50% of the software mixer. If you've already applied workaround #1, be sure to map &amp;quot;Volume Up&amp;quot; and &amp;quot;Volume Down&amp;quot; back to the Thinkpad volume keys&lt;br /&gt;
&lt;br /&gt;
== Make Fn-Space (Screen Magnify) work ==&lt;br /&gt;
&lt;br /&gt;
Open a terminal and run&lt;br /&gt;
 sudo apt-get install kmag&lt;br /&gt;
 sudo gedit /etc/acpi/events/asus-rotate&lt;br /&gt;
replace it's content by the following&lt;br /&gt;
 # /etc/acpi/events/ibmwireless&lt;br /&gt;
 # This is called when the user presses Fn-Space&lt;br /&gt;
 event=ibm/hotkey HKEY 00000080 00001014&lt;br /&gt;
 action=/etc/acpi/ibm-zoom.sh&lt;br /&gt;
and save. Now run&lt;br /&gt;
 sudo cp /etc/acpi/ibm-wireless.sh /etc/acpi/ibm-zoom.sh&lt;br /&gt;
 sudo gedit /etc/acpi/ibm-zoom.sh&lt;br /&gt;
and replace its content by the following&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # This script activates gnome-mag when Fn+Space is pressed&lt;br /&gt;
 test -f /usr/share/acpi-support/key-constants || exit 0&lt;br /&gt;
 . /usr/share/acpi-support/power-funcs&lt;br /&gt;
 magnifier_pid=`pidof kmag`&lt;br /&gt;
 for x in /tmp/.X11-unix/*; do&lt;br /&gt;
        displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`&lt;br /&gt;
        getXconsole;&lt;br /&gt;
        if [ x&amp;quot;$XAUTHORITY&amp;quot; != x&amp;quot;&amp;quot; ]; then&lt;br /&gt;
            export DISPLAY=&amp;quot;:$displaynum&amp;quot;&lt;br /&gt;
            if [ &amp;quot;$magnifier_pid&amp;quot; != &amp;quot;&amp;quot; ]; then	    &lt;br /&gt;
 		/usr/bin/killall kmag&lt;br /&gt;
            break&lt;br /&gt;
            else&lt;br /&gt;
                /usr/bin/kmag &amp;amp;&lt;br /&gt;
                break&lt;br /&gt;
            fi&lt;br /&gt;
        fi&lt;br /&gt;
 done&lt;br /&gt;
Save and reboot. Now when pressing Fn-Space you can open KMagnifier. Pressing Fn-Space once again will close KMagnifier. You can configure KMagnifier as you like and your settings will be saved automatically&lt;br /&gt;
&lt;br /&gt;
== Map ThinkVantage Button ==&lt;br /&gt;
ThinkVantage Button is recognized but is not mapped to any function so that pressing it does nothing. To change this go to '''System-&amp;gt;Preferences-&amp;gt; Keyboard shortcuts'''. There you can look for some predefined actions ThinkVantage Button might do for you. To map the button to a certain action simply click on the action and press {{ibmkey|ThinkVantage|#495988}}. Via Add you can also add your own commands, for instance to start your browser or e-mail client.&lt;br /&gt;
&lt;br /&gt;
==  Setup External Monitor or Beamer (VGA)  == &lt;br /&gt;
&lt;br /&gt;
Connect your monitor/beamer to VGA port and go to '''System -&amp;gt; Preferences -&amp;gt; Monitors'''. For quick access to those settings it might be useful to activate &amp;quot;Show monitors in panel&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Lucid_ext_Monitor_new.png]]&lt;br /&gt;
&lt;br /&gt;
You can also use this to configure an external device connected to S-Video Out.&lt;br /&gt;
&lt;br /&gt;
[[File:Z61m_svideo.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Setup Color Management  == &lt;br /&gt;
To use ICC/ICM profiles you should install [http://projects.gnome.org/gnome-color-manager/ GNOME Color Manager] via&lt;br /&gt;
 sudo apt-get install gnome-color-manager&lt;br /&gt;
After that it should appear under '''System -&amp;gt; Preferences -&amp;gt; Color Profiles'''. Alternatively you can start it from the terminal by issuing&lt;br /&gt;
 gcm-prefs&lt;br /&gt;
GCM should detect your Thinkpad monitor automatically. All you need to do is supply the correct ICC/ICM profile by clicking on the list under '''Color Profile''' and selecting '''Other profile ...'''&lt;br /&gt;
&lt;br /&gt;
[[File:CMgment.jpg]]&lt;br /&gt;
&lt;br /&gt;
Lenovo does supply ICM profiles for most Thinkpads, but in order to open the appropriate .exe-archive under Linux you'll need Wine. Install Wine by running&lt;br /&gt;
 sudo apt-get install wine&lt;br /&gt;
After that download [http://www-307.ibm.com/pc/support/site.wss/migr-62923.html 79oi22ww.exe] and right-click the file. Go to the '''Properties''' tab and tick '''Allow executing file as program''' In the '''Open With''' tab select '''Wine Windows Program Loader''' and close the dialog. Now double-click 79oi22ww.exe, and hit Next -&amp;gt; I accept the agreement -&amp;gt; Next -&amp;gt; Next -&amp;gt; Install -&amp;gt; Finish. Using Nautilus go to &amp;quot;~/.wine/drive_c/DRIVERS/WIN/MONITOR&amp;quot;. There you'll find different ICM profiles which can be used by GCM. '''TPFLX.icm''' is for [http://www.thinkwiki.org/wiki/Flexview#Flexview_.28IPS.29 FlexView] panels whereas '''TPMB60.ICM''' and '''TPMB72.ICM''' are for [http://www.thinkwiki.org/wiki/Flexview#MaxBright MaxBright] panels. If you have only a plain TFT panel (not MaxBright) then stick to '''TPLCD.icm'''. &lt;br /&gt;
&lt;br /&gt;
After importing the appropriate profile to GCM and selecting it, be sure to go to '''Defaults''' tab and select '''Apply display correction'''  and '''Set profile for color managed applications''' Unfortunately, GCM doesn't seem to support manual adjustments of gamma, brightness or contrast on Thinkpad displays. &lt;br /&gt;
&lt;br /&gt;
At least adjusting gamma is possible when using '''xgamma'''. In a terminal run &lt;br /&gt;
 xgamma&lt;br /&gt;
to see you current gamma settings. You should see something like&lt;br /&gt;
 -&amp;gt; Red  1.000, Green  1.000, Blue  1.000&lt;br /&gt;
It is possible to adjust gamma values for all colors at the same time by issuing something like&lt;br /&gt;
 xgamma -gamma 0.9&lt;br /&gt;
or for red, green and blue separately&lt;br /&gt;
 xgamma -rgamma 0.815 -ggamma 0.844 -bgamma 1.0&lt;br /&gt;
If you want to be able to relate RGB gamma values to a certain colour temperature, take a look at [http://www.vendian.org/mncharity/dir3/blackbody/UnstableURLs/bbr_color.html this page by Mitchell Charity]. Thus, to get something like 7800K you'll have to issue&lt;br /&gt;
 xgamma -rgamma 0.8115 -ggamma 0.8351 -bgamma 1.0&lt;br /&gt;
After having found your favourite settings, you'll probably want to make them persistent. To do this go to '''System -&amp;gt; Preferences -&amp;gt; Startup Applications''', select the &amp;quot;Startup Programms&amp;quot; tab, click Add and add something like this&lt;br /&gt;
 Name: xgamma&lt;br /&gt;
 Command: xgamma -rgamma 0.8 -ggamma 0.8 -bgamma 1.0&lt;br /&gt;
(replace these values by your values) Click Add and then Close. Now these xgamma settings will be applied on each Gnome startup&lt;br /&gt;
&lt;br /&gt;
==  Setup Fingerprint Reader  == &lt;br /&gt;
&lt;br /&gt;
Although thinkfinger can be installed from Lucid repos, it contains some regressions which&lt;br /&gt;
prevent fingerprint authentication from working properly. For more information check out &lt;br /&gt;
[https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/256429 Bug #256429] Martin Schwenke &lt;br /&gt;
provides a PPA with the fixed version of thinkfinger which seems to work quite well.&lt;br /&gt;
&lt;br /&gt;
To install thinkfinger open a terminal and run &lt;br /&gt;
 sudo add-apt-repository ppa:martin-meltin/ppa&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install libpam-thinkfinger=0.3+r118-0ubuntu4ppamartinmeltin5&lt;br /&gt;
 sudo /usr/lib/pam-thinkfinger/pam-thinkfinger-enable&lt;br /&gt;
after that run&lt;br /&gt;
 tf-tool --acquire $USERNAME&lt;br /&gt;
to acquire your fingerprint. Now you can use Z61m's fingerprint reader when using sudo/gksudo or in GDM login screen.&lt;br /&gt;
&lt;br /&gt;
There seems to be a gnome-keyring related problem in Lucid when using fingerprint to log in. In that case Network Manager (nm-applet) may not appear in the panel or freeze when trying to change connection settings ([https://bugs.launchpad.net/ubuntu/+source/seahorse/+bug/529338 Bug #529338]). A known workaround is not to use fingerprint when logging in. You, however, still can use fingerprint for sudo, gksudo and all other supported authentication prompts.&lt;br /&gt;
&lt;br /&gt;
== Setup Hard Drive Active Protection System ==&lt;br /&gt;
Open a terminal and run&lt;br /&gt;
 sudo apt-get install tp-smapi-dkms&lt;br /&gt;
 sudo apt-get install python python-gtk2 python-gnome2 hdapsd&lt;br /&gt;
Now run&lt;br /&gt;
 sudo gedit /etc/modules&lt;br /&gt;
and add &lt;br /&gt;
 tp_smapi &lt;br /&gt;
to the very end of the file so that it looks like this (example)&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 lp&lt;br /&gt;
 tp_smapi&lt;br /&gt;
&lt;br /&gt;
Reboot. Now HDAPS should work. If you want to have a HDAPS icon in your notification area&lt;br /&gt;
like in Windows, follow these steps to install [http://thpani.at/projects/thinkhdaps/ ThinkHDAPS]&lt;br /&gt;
&lt;br /&gt;
Download [https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb] and put it into your home directory. Right click on the file and select &amp;quot;Extract Here&amp;quot;. In terminal run&lt;br /&gt;
 cd ~&lt;br /&gt;
 cd thinkhdaps_0.2.1-1_all&lt;br /&gt;
 sudo cp&lt;br /&gt;
 tar -zxvf data.tar.gz &lt;br /&gt;
 sudo cp usr/bin/thinkhdaps /usr/bin/&lt;br /&gt;
 sudo chmod +x /usr/bin/thinkhdaps&lt;br /&gt;
 sudo cp usr/share/pixmaps/* /usr/share/pixmaps/&lt;br /&gt;
&lt;br /&gt;
Now you can run&lt;br /&gt;
 thinkhdaps &amp;amp;&lt;br /&gt;
to make the '''ThinkHDAPS''' icon appear in the notification area&lt;br /&gt;
&lt;br /&gt;
[[File:ThinkHDAPS.png]]&lt;br /&gt;
&lt;br /&gt;
To make it autostart go to '''System -&amp;gt; Preferences -&amp;gt; Startup Applications''', select the &amp;quot;Startup Programms&amp;quot; tab, click Add and add this &lt;br /&gt;
 Name: thinkhdaps&lt;br /&gt;
 Command: thinkhdaps&lt;br /&gt;
Click Add and then Close. Now the ThinkHDAPS icon should be always visible in the notification area.&lt;br /&gt;
&lt;br /&gt;
To change the sensitivity run&lt;br /&gt;
 sudo gedit /etc/default/hdapsd&lt;br /&gt;
and change the SENSITIVITY value. Default is 15 whereas higher values mean less sensitive. For example 25 seems to be just fine.&lt;br /&gt;
&lt;br /&gt;
== Set up HDAPS accelerometer event ==&lt;br /&gt;
To add the device rule (this worked for X61t, for more info about the udev rule see [http://www.thinkwiki.org/wiki/Talk:HDAPS#Question_regarding_the_example_udev_rule_.3F])&lt;br /&gt;
 echo 'KERNEL==&amp;quot;event[0-9]*&amp;quot;, ATTRS{phys}==&amp;quot;hdaps/input1&amp;quot;,ATTRS{modalias}==&amp;quot;input:b0019v1014p5054e4801-*&amp;quot;,SYMLINK+=&amp;quot;input/hdaps/accelerometer-event&amp;quot;' | sudo tee /etc/udev/rules.d/51-hdaps.rules&lt;br /&gt;
Then force the reloading of rules.d&lt;br /&gt;
 sudo udevadm trigger&lt;br /&gt;
Now you should have a&lt;br /&gt;
 /dev/input/hdaps/accelerometer-event&lt;br /&gt;
&lt;br /&gt;
= Power Management =&lt;br /&gt;
&lt;br /&gt;
== Fix the hard drive clicking bug ==&lt;br /&gt;
If you don't know what the hard drive clicking bug is, read [http://www.thinkwiki.org/wiki/Problem_with_hard_drive_clicking this]. Although this bug was apparently fixed in Ubuntu Karmic, Lucid seems to be affected. &lt;br /&gt;
&lt;br /&gt;
{{WARN|Here is a solution that worked for me. It's a bit dirty and turns off the power management of your HDD. This will slightly decrease your battery life but greatly improve your drive's lifetime.}} &lt;br /&gt;
{{HINT|If you have a better solution, be sure to share it here}} &lt;br /&gt;
&lt;br /&gt;
To fix the bug open a terminal and run&lt;br /&gt;
 sudo cp /usr/lib/pm-utils/power.d/95hdparm-apm /etc/pm/power.d/&lt;br /&gt;
 sudo gedit /etc/pm/power.d/95hdparm-apm&lt;br /&gt;
&lt;br /&gt;
Insert &amp;quot;hdparm -B 254 /dev/sda&amp;quot; after &amp;quot;resume_hdparm_apm&amp;quot; so that the appropriate section looks like this&lt;br /&gt;
&lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
 	thaw|resume|true|false) # true and false for power.d&lt;br /&gt;
                 resume_hdparm_apm&lt;br /&gt;
                 hdparm -B 254 /dev/sda&lt;br /&gt;
                 ;;&lt;br /&gt;
            *)&lt;br /&gt;
                 exit 254&lt;br /&gt;
                 ;;&lt;br /&gt;
                 esac&lt;br /&gt;
&lt;br /&gt;
To test the fix try suspending/resuming and plugging/unpluging AC power. After each process run&lt;br /&gt;
 sudo hdparm -B /dev/sda&lt;br /&gt;
hdparm should always report&lt;br /&gt;
&lt;br /&gt;
 /dev/sda:&lt;br /&gt;
  APM_level	= 254&lt;br /&gt;
&lt;br /&gt;
== Setup Fan Control ==&lt;br /&gt;
&lt;br /&gt;
{{WARN|Wrong fan control settings may seriously damage you Thinkpad. You do it on your own risk!}} &lt;br /&gt;
&lt;br /&gt;
To override BIOS fan control you can install '''ThinkPad Fan Control'''. Go to '''System -&amp;gt; Administration -&amp;gt; Synaptic Package Manager'''. Switch to the &amp;quot;Third Party Software&amp;quot; tab and click on &amp;quot;Add&amp;quot;. As APT line add this&lt;br /&gt;
 deb http://ppa.launchpad.net/tp-fan/ppa/ubuntu jaunty main&lt;br /&gt;
Click &amp;quot;Add Source&amp;quot; then &amp;quot;Close&amp;quot; and finally &amp;quot;Reload&amp;quot; as suggested. Now use &amp;quot;Synaptic Package Manager&amp;quot; to install following packages&lt;br /&gt;
 tpfand tpfan-admin tpfand-profiles&lt;br /&gt;
Go to '''System -&amp;gt; Administration -&amp;gt; ThinkPad Fan Control''' and click on &amp;quot;Unlock&amp;quot;. Select &amp;quot;Control system fan by software&amp;quot; and you're done.&lt;br /&gt;
&lt;br /&gt;
It's also possible to define your own fan control rules thus overriding the default settings. To do this select &amp;quot;Manually configure system fan trigger temperatures&amp;quot;. Here is an example for a Z61m with Core2Duo T5500 and GMA 950. &lt;br /&gt;
Models with discrete graphics (like FireGL) will probably need lower threshholds as they usually produce more heat and thus require better cooling.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot-ThinkPad_Fan_Control_Configuration.png]]&lt;br /&gt;
&lt;br /&gt;
{{HELP|Did someone else experience this problem and test the workaround?}}&lt;br /&gt;
&lt;br /&gt;
Sometimes ThinkPad Fan Control's daemon '''tpfand''' crashes for unknown reasons causing software fan control to stop working (i.e. BIOS starts controlling the fan). It seems that this problem is somehow HAL related, since tpfand relies on HAL for determining the ThinkPad's model. If the detection routine fails, '''tpfand''' stops immediately(see [https://bugs.launchpad.net/tp-fan/+bug/575199 Bug #575199]). A quick and dirty solution is to tweak this detection by editing tpfand's settings.py&lt;br /&gt;
 sudo gedit /usr/lib/python2.6/dist-packages/tpfand/settings.py&lt;br /&gt;
and replacing&lt;br /&gt;
 self.product_id = None&lt;br /&gt;
 self.product_name = None&lt;br /&gt;
 self.product_pretty_vendor = None&lt;br /&gt;
 self.product_pretty_name = None&lt;br /&gt;
 self.product_pretty_id = None&lt;br /&gt;
by &lt;br /&gt;
 self.product_id = ''&lt;br /&gt;
 self.product_name = ''&lt;br /&gt;
 self.product_pretty_vendor = ''&lt;br /&gt;
 self.product_pretty_name = ''&lt;br /&gt;
 self.product_pretty_id = ''&lt;br /&gt;
this will prevent '''tpfand''' from crashing even if it wasn't able to detect your ThinkPad's model.&lt;br /&gt;
&lt;br /&gt;
== Configure Battery Charge Control ==&lt;br /&gt;
&lt;br /&gt;
In a terminal run&lt;br /&gt;
 sudo apt-get install sysfsutils&lt;br /&gt;
 sudo apt-get install tp-smapi-dkms&lt;br /&gt;
&lt;br /&gt;
Now run&lt;br /&gt;
 sudo gedit /etc/modules&lt;br /&gt;
and add &lt;br /&gt;
 tp_smapi &lt;br /&gt;
to the very end of the file. Run&lt;br /&gt;
 sudo gedit /etc/sysfs.conf&lt;br /&gt;
and add &lt;br /&gt;
 devices/platform/smapi/BAT0/start_charge_thresh=85&lt;br /&gt;
 devices/platform/smapi/BAT0/stop_charge_thresh=96&lt;br /&gt;
to the very end of the file. Save and reboot. With this values your battery will start charging at 80% and stop charging at 96%. Of course you can also put other values between 1 and 100.&lt;br /&gt;
&lt;br /&gt;
To check the current thresholds run&lt;br /&gt;
 cat /sys/devices/platform/smapi/BAT0/start_charge_thresh&lt;br /&gt;
and&lt;br /&gt;
 cat /sys/devices/platform/smapi/BAT0/stop_charge_thresh&lt;br /&gt;
&lt;br /&gt;
= External Sources =&lt;br /&gt;
*[http://wiki.ubuntuusers.de/Trackpoint] Trackpoint Configuration (wiki.ubuntuusers.de)&lt;br /&gt;
*[http://fedoraproject.org/wiki/Features/ColorManagement] Gnome Color Manager (fedoraproject.org)&lt;br /&gt;
*[http://www.ubuntufieldmanual.com/?q=node/38] Calibrate your monitor (Ubuntu Field Manual)&lt;/div&gt;</summary>
		<author><name>Tripwired</name></author>
		
	</entry>
</feed>