<?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=Samoht</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=Samoht"/>
	<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/wiki/Special:Contributions/Samoht"/>
	<updated>2026-04-16T23:49:29Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.12</generator>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_on_a_ThinkPad_X60_Tablet&amp;diff=43975</id>
		<title>Installing Ubuntu on a ThinkPad X60 Tablet</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_on_a_ThinkPad_X60_Tablet&amp;diff=43975"/>
		<updated>2009-08-18T16:35:50Z</updated>

		<summary type="html">&lt;p&gt;Samoht: /* What works out-of-the-box */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This report describes the installation and customization of Ubuntu Jaunty (9.04) on a Thinkpad X60 (6363) Tablet.&lt;br /&gt;
&lt;br /&gt;
= Installing without CD-Rom =&lt;br /&gt;
&lt;br /&gt;
I considered going the simple way and created a bootable usbstick with [http://unetbootin.sourceforge.net UNetbootin].&lt;br /&gt;
Choose Ubuntu &amp;quot;live&amp;quot; (9.04) and all the required data is downloaded automagically and a proper stick is built.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= What works out-of-the-box =&lt;br /&gt;
&lt;br /&gt;
* Suspend to disk&lt;br /&gt;
* Suspend to RAM&lt;br /&gt;
* Atheros Wifi (ath5k)&lt;br /&gt;
* Fn Hotkeys&lt;br /&gt;
* Intel GMA 945 Acceleration (this breaks display rotation though...)&lt;br /&gt;
* Bluetooth&lt;br /&gt;
* Ethernet&lt;br /&gt;
* Wacom stylus input&lt;br /&gt;
&lt;br /&gt;
= What does not work out-of-the-box =&lt;br /&gt;
&lt;br /&gt;
== Automatic screen rotation on swivel ==&lt;br /&gt;
&lt;br /&gt;
1. Check out this repository and build a package:&lt;br /&gt;
  bzr branch lp:~karl.hegbloom/tabuntu/tablet-screen-rotation-support&lt;br /&gt;
  cd tablet-screen-rotation-support&lt;br /&gt;
  dpkg-buildpackage &lt;br /&gt;
  cd ..&lt;br /&gt;
  sudo dpkg -i tablet-screen-rotation-support_0.1.8_i386.deb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Edit sudoers file...&lt;br /&gt;
  visudo &lt;br /&gt;
... add this line..&lt;br /&gt;
  %video ALL=NOPASSWD: /usr/bin/setkeycodes&lt;br /&gt;
... and add your user to the 'video' group.&lt;br /&gt;
  sudo adduser $USER video&lt;br /&gt;
&lt;br /&gt;
3. After a reboot the display and stylus rotate but unfortunately the screen gets garbled because of some graphic drivers bug. You have to turn of DRI to fix it. So you can get either DRI and desktop effects OR rotation. :(&lt;br /&gt;
&lt;br /&gt;
  sudo gedit /etc/X11/xorg.conf&lt;br /&gt;
add following line to your &amp;quot;Devices&amp;quot; section:&lt;br /&gt;
  Option		&amp;quot;DRI&amp;quot;	&amp;quot;off&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Ubuntu]]&lt;/div&gt;</summary>
		<author><name>Samoht</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_on_a_ThinkPad_X60_Tablet&amp;diff=43974</id>
		<title>Installing Ubuntu on a ThinkPad X60 Tablet</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_on_a_ThinkPad_X60_Tablet&amp;diff=43974"/>
		<updated>2009-08-18T16:34:05Z</updated>

		<summary type="html">&lt;p&gt;Samoht: /* Automatic screen rotation on swivel */  intel bug&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This report describes the installation and customization of Ubuntu Jaunty (9.04) on a Thinkpad X60 (6363) Tablet.&lt;br /&gt;
&lt;br /&gt;
= Installing without CD-Rom =&lt;br /&gt;
&lt;br /&gt;
I considered going the simple way and created a bootable usbstick with [http://unetbootin.sourceforge.net UNetbootin].&lt;br /&gt;
Choose Ubuntu &amp;quot;live&amp;quot; (9.04) and all the required data is downloaded automagically and a proper stick is built.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= What works out-of-the-box =&lt;br /&gt;
&lt;br /&gt;
* Suspend to disk&lt;br /&gt;
* Suspend to RAM&lt;br /&gt;
* Atheros Wifi (madwifi)&lt;br /&gt;
* Fn Hotkeys&lt;br /&gt;
* Intel video driver: fancy 3D compositing is enabled&lt;br /&gt;
* Bluetooth&lt;br /&gt;
* Ethernet&lt;br /&gt;
* Wacom stylus input&lt;br /&gt;
&lt;br /&gt;
= What does not work out-of-the-box =&lt;br /&gt;
&lt;br /&gt;
== Automatic screen rotation on swivel ==&lt;br /&gt;
&lt;br /&gt;
1. Check out this repository and build a package:&lt;br /&gt;
  bzr branch lp:~karl.hegbloom/tabuntu/tablet-screen-rotation-support&lt;br /&gt;
  cd tablet-screen-rotation-support&lt;br /&gt;
  dpkg-buildpackage &lt;br /&gt;
  cd ..&lt;br /&gt;
  sudo dpkg -i tablet-screen-rotation-support_0.1.8_i386.deb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Edit sudoers file...&lt;br /&gt;
  visudo &lt;br /&gt;
... add this line..&lt;br /&gt;
  %video ALL=NOPASSWD: /usr/bin/setkeycodes&lt;br /&gt;
... and add your user to the 'video' group.&lt;br /&gt;
  sudo adduser $USER video&lt;br /&gt;
&lt;br /&gt;
3. After a reboot the display and stylus rotate but unfortunately the screen gets garbled because of some graphic drivers bug. You have to turn of DRI to fix it. So you can get either DRI and desktop effects OR rotation. :(&lt;br /&gt;
&lt;br /&gt;
  sudo gedit /etc/X11/xorg.conf&lt;br /&gt;
add following line to your &amp;quot;Devices&amp;quot; section:&lt;br /&gt;
  Option		&amp;quot;DRI&amp;quot;	&amp;quot;off&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Ubuntu]]&lt;/div&gt;</summary>
		<author><name>Samoht</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_on_a_ThinkPad_X60_Tablet&amp;diff=43950</id>
		<title>Installing Ubuntu on a ThinkPad X60 Tablet</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_on_a_ThinkPad_X60_Tablet&amp;diff=43950"/>
		<updated>2009-08-15T11:30:25Z</updated>

		<summary type="html">&lt;p&gt;Samoht: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This report describes the installation and customization of Ubuntu Jaunty (9.04) on a Thinkpad X60 (6363) Tablet.&lt;br /&gt;
&lt;br /&gt;
= Installing without CD-Rom =&lt;br /&gt;
&lt;br /&gt;
I considered going the simple way and created a bootable usbstick with [http://unetbootin.sourceforge.net UNetbootin].&lt;br /&gt;
Choose Ubuntu &amp;quot;live&amp;quot; (9.04) and all the required data is downloaded automagically and a proper stick is built.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= What works out-of-the-box =&lt;br /&gt;
&lt;br /&gt;
* Suspend to disk&lt;br /&gt;
* Suspend to RAM&lt;br /&gt;
* Atheros Wifi (madwifi)&lt;br /&gt;
* Fn Hotkeys&lt;br /&gt;
* Intel video driver: fancy 3D compositing is enabled&lt;br /&gt;
* Bluetooth&lt;br /&gt;
* Ethernet&lt;br /&gt;
* Wacom stylus input&lt;br /&gt;
&lt;br /&gt;
= What does not work out-of-the-box =&lt;br /&gt;
&lt;br /&gt;
== Automatic screen rotation on swivel ==&lt;br /&gt;
&lt;br /&gt;
Check out and build this repository:&lt;br /&gt;
  bzr branch lp:~karl.hegbloom/tabuntu/tablet-screen-rotation-support&lt;br /&gt;
  cd tablet-screen-rotation-support&lt;br /&gt;
  dpkg-buildpackage &lt;br /&gt;
  cd ..&lt;br /&gt;
  sudo dpkg -i tablet-screen-rotation-support_0.1.8_i386.deb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Edit sudoers file...&lt;br /&gt;
  visudo &lt;br /&gt;
... add this line..&lt;br /&gt;
  %video ALL=NOPASSWD: /usr/bin/setkeycodes&lt;br /&gt;
... and add your user to the 'video' group.&lt;br /&gt;
  sudo adduser $USER video&lt;br /&gt;
&lt;br /&gt;
[[Category:Ubuntu]]&lt;/div&gt;</summary>
		<author><name>Samoht</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_on_a_ThinkPad_X60_Tablet&amp;diff=43949</id>
		<title>Installing Ubuntu on a ThinkPad X60 Tablet</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_on_a_ThinkPad_X60_Tablet&amp;diff=43949"/>
		<updated>2009-08-15T11:20:11Z</updated>

		<summary type="html">&lt;p&gt;Samoht: Update to ubuntu 9.04&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This report describes the installation and customization of Ubuntu Jaunty (9.04) on a Thinkpad X60 (6363) Tablet.&lt;br /&gt;
&lt;br /&gt;
= Installing without CD-Rom =&lt;br /&gt;
&lt;br /&gt;
I considered going the simple way and created a bootable usbstick with [http://unetbootin.sourceforge.net UNetbootin].&lt;br /&gt;
Choose Ubuntu &amp;quot;live&amp;quot; (9.04) and all the required data is downloaded automagically and a proper stick is built.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= What works out-of-the-box =&lt;br /&gt;
&lt;br /&gt;
* Suspend to disk&lt;br /&gt;
* Suspend to RAM&lt;br /&gt;
* Atheros Wifi (madwifi)&lt;br /&gt;
* Fn Hotkeys&lt;br /&gt;
* Intel video driver: fancy 3D compositing is enabled&lt;br /&gt;
* Bluetooth&lt;br /&gt;
* Ethernet&lt;br /&gt;
* Wacom stylus input&lt;br /&gt;
&lt;br /&gt;
= What does not work out-of-the-box =&lt;br /&gt;
&lt;br /&gt;
== Automatic screen rotation on swivel ==&lt;br /&gt;
&lt;br /&gt;
Check out and build this repository:&lt;br /&gt;
  bzr branch lp:~karl.hegbloom/tabuntu/tablet-screen-rotation-support&lt;br /&gt;
  ./configure --prefix=/usr&lt;br /&gt;
  make&lt;br /&gt;
  sudo make install&lt;br /&gt;
&lt;br /&gt;
Edit sudoers file...&lt;br /&gt;
  visudo &lt;br /&gt;
... add this line..&lt;br /&gt;
  %video ALL=NOPASSWD: /usr/bin/setkeycodes&lt;br /&gt;
... and add your user to the 'video' group.&lt;br /&gt;
  sudo adduser $USER video&lt;br /&gt;
&lt;br /&gt;
[[Category:Ubuntu]]&lt;/div&gt;</summary>
		<author><name>Samoht</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_on_a_ThinkPad_X60_Tablet&amp;diff=38855</id>
		<title>Installing Ubuntu on a ThinkPad X60 Tablet</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_on_a_ThinkPad_X60_Tablet&amp;diff=38855"/>
		<updated>2008-09-18T13:57:11Z</updated>

		<summary type="html">&lt;p&gt;Samoht: /* What does not work out-of-the-box */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This report describes the installation and customization of Ubuntu Hardy (8.04) on a Thinkpad X60 6363.&lt;br /&gt;
&lt;br /&gt;
= Installing without CD-Rom =&lt;br /&gt;
&lt;br /&gt;
I considered going the simple way and created a bootable usbstick with UNetbootin under Windows.&lt;br /&gt;
Choose Ubuntu &amp;quot;netinstall&amp;quot; (8.04) and all the required data is downloaded automagically and a proper stick is built.&lt;br /&gt;
Make sure that the ethernet cable is plugged in '''before''' booting the stick. There's a bug in the ethernet driver (e1000/e) which prevents the device from settling down.&lt;br /&gt;
Check ubuntuwiki for more: [https://help.ubuntu.com/community/Installation/FromUSBStick Install Ubuntu from usbstick]&lt;br /&gt;
&lt;br /&gt;
= What works out-of-the-box =&lt;br /&gt;
&lt;br /&gt;
* Suspend to disk&lt;br /&gt;
* Suspend to RAM&lt;br /&gt;
* Atheros Wifi (madwifi)&lt;br /&gt;
* Most Fn-Keys&lt;br /&gt;
* video driver: fancy 3D compositing is enabled&lt;br /&gt;
* Bluetooth&lt;br /&gt;
&lt;br /&gt;
= What does not work out-of-the-box =&lt;br /&gt;
&lt;br /&gt;
* Ethernet (e1000/e) bug&lt;br /&gt;
* Wacom stylus input&lt;br /&gt;
* Screen rotation on swivel&lt;br /&gt;
* Fingerprint reader&lt;br /&gt;
* APS harddisk protection&lt;br /&gt;
&lt;br /&gt;
= Powersaving / Performance customizatons =&lt;br /&gt;
&lt;br /&gt;
== Daemons ==&lt;br /&gt;
Disable unnecessary daemons which are enabled by default with &amp;quot;sysv-rc-conf&amp;quot;:&lt;br /&gt;
 * brltty&lt;br /&gt;
 * (pcmciautils)&lt;br /&gt;
 * (bluetooth)&lt;br /&gt;
 * pppd-dns&lt;br /&gt;
 * timidity&lt;br /&gt;
 * rsync&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
- stylus, screen rotation, handwriting input panel (cellwriter), fingerprint reader, powersaving customizations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Ubuntu]]&lt;/div&gt;</summary>
		<author><name>Samoht</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_on_a_ThinkPad_X60_Tablet&amp;diff=38828</id>
		<title>Installing Ubuntu on a ThinkPad X60 Tablet</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_on_a_ThinkPad_X60_Tablet&amp;diff=38828"/>
		<updated>2008-09-16T11:49:59Z</updated>

		<summary type="html">&lt;p&gt;Samoht: /* What does not work out-of-the-box */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This report describes the installation and customization of Ubuntu Hardy (8.04) on a Thinkpad X60 6363.&lt;br /&gt;
&lt;br /&gt;
= Installing without CD-Rom =&lt;br /&gt;
&lt;br /&gt;
I considered going the simple way and created a bootable usbstick with UNetbootin under Windows.&lt;br /&gt;
Choose Ubuntu &amp;quot;netinstall&amp;quot; (8.04) and all the required data is downloaded automagically and a proper stick is built.&lt;br /&gt;
Make sure that the ethernet cable is plugged in '''before''' booting the stick. There's a bug in the ethernet driver (e1000/e) which prevents the device from settling down.&lt;br /&gt;
Check ubuntuwiki for more: [https://help.ubuntu.com/community/Installation/FromUSBStick Install Ubuntu from usbstick]&lt;br /&gt;
&lt;br /&gt;
= What works out-of-the-box =&lt;br /&gt;
&lt;br /&gt;
* Suspend to disk&lt;br /&gt;
* Suspend to RAM&lt;br /&gt;
* Atheros Wifi (madwifi)&lt;br /&gt;
* Most Fn-Keys&lt;br /&gt;
* video driver: fancy 3D compositing is enabled&lt;br /&gt;
* Bluetooth&lt;br /&gt;
&lt;br /&gt;
= What does not work out-of-the-box =&lt;br /&gt;
&lt;br /&gt;
* Wacom stylus input&lt;br /&gt;
* Screen rotation on swivel&lt;br /&gt;
* Fingerprint reader&lt;br /&gt;
* APS harddisk protection&lt;br /&gt;
&lt;br /&gt;
= Powersaving / Performance customizatons =&lt;br /&gt;
&lt;br /&gt;
== Daemons ==&lt;br /&gt;
Disable unnecessary daemons which are enabled by default with &amp;quot;sysv-rc-conf&amp;quot;:&lt;br /&gt;
 * brltty&lt;br /&gt;
 * (pcmciautils)&lt;br /&gt;
 * (bluetooth)&lt;br /&gt;
 * pppd-dns&lt;br /&gt;
 * timidity&lt;br /&gt;
 * rsync&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
- stylus, screen rotation, handwriting input panel (cellwriter), fingerprint reader, powersaving customizations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Ubuntu]]&lt;/div&gt;</summary>
		<author><name>Samoht</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_on_a_ThinkPad_X60_Tablet&amp;diff=38827</id>
		<title>Installing Ubuntu on a ThinkPad X60 Tablet</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_on_a_ThinkPad_X60_Tablet&amp;diff=38827"/>
		<updated>2008-09-16T11:27:18Z</updated>

		<summary type="html">&lt;p&gt;Samoht: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This report describes the installation and customization of Ubuntu Hardy (8.04) on a Thinkpad X60 6363.&lt;br /&gt;
&lt;br /&gt;
= Installing without CD-Rom =&lt;br /&gt;
&lt;br /&gt;
I considered going the simple way and created a bootable usbstick with UNetbootin under Windows.&lt;br /&gt;
Choose Ubuntu &amp;quot;netinstall&amp;quot; (8.04) and all the required data is downloaded automagically and a proper stick is built.&lt;br /&gt;
Make sure that the ethernet cable is plugged in '''before''' booting the stick. There's a bug in the ethernet driver (e1000/e) which prevents the device from settling down.&lt;br /&gt;
Check ubuntuwiki for more: [https://help.ubuntu.com/community/Installation/FromUSBStick Install Ubuntu from usbstick]&lt;br /&gt;
&lt;br /&gt;
= What works out-of-the-box =&lt;br /&gt;
&lt;br /&gt;
* Suspend to disk&lt;br /&gt;
* Suspend to RAM&lt;br /&gt;
* Atheros Wifi (madwifi)&lt;br /&gt;
* Most Fn-Keys&lt;br /&gt;
* video driver: fancy 3D compositing is enabled&lt;br /&gt;
* Bluetooth&lt;br /&gt;
&lt;br /&gt;
= What does not work out-of-the-box =&lt;br /&gt;
&lt;br /&gt;
* Wacom stylus input&lt;br /&gt;
* Screen rotation on swivel&lt;br /&gt;
* Fingerprint reader&lt;br /&gt;
&lt;br /&gt;
= Powersaving / Performance customizatons =&lt;br /&gt;
&lt;br /&gt;
== Daemons ==&lt;br /&gt;
Disable unnecessary daemons which are enabled by default with &amp;quot;sysv-rc-conf&amp;quot;:&lt;br /&gt;
 * brltty&lt;br /&gt;
 * (pcmciautils)&lt;br /&gt;
 * (bluetooth)&lt;br /&gt;
 * pppd-dns&lt;br /&gt;
 * timidity&lt;br /&gt;
 * rsync&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
- stylus, screen rotation, handwriting input panel (cellwriter), fingerprint reader, powersaving customizations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Ubuntu]]&lt;/div&gt;</summary>
		<author><name>Samoht</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_on_a_ThinkPad_X60_Tablet&amp;diff=38826</id>
		<title>Installing Ubuntu on a ThinkPad X60 Tablet</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_on_a_ThinkPad_X60_Tablet&amp;diff=38826"/>
		<updated>2008-09-16T11:26:20Z</updated>

		<summary type="html">&lt;p&gt;Samoht: diable daemons&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This report describes the installation and customization of Ubuntu Hardy (8.04) on a Thinkpad X60 6363.&lt;br /&gt;
&lt;br /&gt;
= Installing without CD-Rom =&lt;br /&gt;
&lt;br /&gt;
I considered going the simple way and created a bootable usbstick with UNetbootin under Windows.&lt;br /&gt;
Choose Ubuntu &amp;quot;netinstall&amp;quot; (8.04) and all the required data is downloaded automagically and a proper stick is built.&lt;br /&gt;
Make sure that the ethernet cable is plugged in '''before''' booting the stick. There's a bug in the ethernet driver (e1000/e) which prevents the device from settling down.&lt;br /&gt;
Check ubuntuwiki for more: [https://help.ubuntu.com/community/Installation/FromUSBStick Install Ubuntu from usbstick]&lt;br /&gt;
&lt;br /&gt;
= What works out-of-the-box =&lt;br /&gt;
&lt;br /&gt;
* Suspend to disk&lt;br /&gt;
* Suspend to RAM&lt;br /&gt;
* Atheros Wifi (madwifi)&lt;br /&gt;
* Most Fn-Keys&lt;br /&gt;
* video driver: fancy 3D compositing is enabled&lt;br /&gt;
* Bluetooth&lt;br /&gt;
&lt;br /&gt;
= What does not work out-of-the-box =&lt;br /&gt;
&lt;br /&gt;
* Wacom stylus input&lt;br /&gt;
* Screen rotation on swivel&lt;br /&gt;
* Fingerprint reader&lt;br /&gt;
&lt;br /&gt;
= Powersaving / Performance customizatons =&lt;br /&gt;
* disable unnecessary daemons which are enabled by default with &amp;quot;sysv-rc-conf&amp;quot;.&lt;br /&gt;
 * brltty&lt;br /&gt;
 * (pcmciautils)&lt;br /&gt;
 * (bluetooth)&lt;br /&gt;
 * pppd-dns&lt;br /&gt;
 * timidity&lt;br /&gt;
 * rsync&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
- stylus, screen rotation, handwriting input panel (cellwriter), fingerprint reader, powersaving customizations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Ubuntu]]&lt;/div&gt;</summary>
		<author><name>Samoht</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_on_a_ThinkPad_X60_Tablet&amp;diff=38823</id>
		<title>Installing Ubuntu on a ThinkPad X60 Tablet</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_on_a_ThinkPad_X60_Tablet&amp;diff=38823"/>
		<updated>2008-09-15T20:44:05Z</updated>

		<summary type="html">&lt;p&gt;Samoht: â†Created page with 'This report describes the installation and customization of Ubuntu Hardy (8.04) on a Thinkpad X60 6363.  = Installing without CD-Rom =  I considered going the simple way a...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This report describes the installation and customization of Ubuntu Hardy (8.04) on a Thinkpad X60 6363.&lt;br /&gt;
&lt;br /&gt;
= Installing without CD-Rom =&lt;br /&gt;
&lt;br /&gt;
I considered going the simple way and created a bootable usbstick with UNetbootin under Windows.&lt;br /&gt;
Choose Ubuntu &amp;quot;netinstall&amp;quot; (8.04) and all the required data is downloaded automagically and a proper stick is built.&lt;br /&gt;
Make sure that the ethernet cable is plugged in '''before''' booting the stick. There's a bug in the ethernet driver (e1000/e) which prevents the device from settling down.&lt;br /&gt;
Check ubuntuwiki for more: [https://help.ubuntu.com/community/Installation/FromUSBStick Install Ubuntu from usbstick]&lt;br /&gt;
&lt;br /&gt;
= What works out-of-the-box =&lt;br /&gt;
&lt;br /&gt;
* Suspend to disk&lt;br /&gt;
* Suspend to RAM&lt;br /&gt;
* Atheros Wifi (madwifi)&lt;br /&gt;
* Most Fn-Keys&lt;br /&gt;
* video driver: fancy 3D compositing is enabled&lt;br /&gt;
* Bluetooth&lt;br /&gt;
&lt;br /&gt;
= What does not work out-of-the-box =&lt;br /&gt;
&lt;br /&gt;
* Wacom stylus input&lt;br /&gt;
* Screen rotation on swivel&lt;br /&gt;
* Fingerprint reader&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
- stylus, screen rotation, handwriting input panel (cellwriter), fingerprint reader, powersaving customizations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Ubuntu]]&lt;/div&gt;</summary>
		<author><name>Samoht</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:Installing_Gentoo_on_a_ThinkPad_X60_Tablet&amp;diff=36899</id>
		<title>Talk:Installing Gentoo on a ThinkPad X60 Tablet</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:Installing_Gentoo_on_a_ThinkPad_X60_Tablet&amp;diff=36899"/>
		<updated>2008-03-07T10:03:38Z</updated>

		<summary type="html">&lt;p&gt;Samoht: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Good to see others with Gentoo on the X60T.&lt;br /&gt;
&lt;br /&gt;
Re: Pen not working with particular kernels (known to be affected suspend2-sources-2.6.22-r2, gentoo-sources-2.6.22-r5)&lt;br /&gt;
&lt;br /&gt;
For me I got the error: &lt;br /&gt;
 Cannot set serial info: Invalid argument&lt;br /&gt;
this is a bug with the way the kernel handles serial ports, I believe it may be fixed in later 2.6.22 releases but haven't had the opportunity to test yet.&lt;br /&gt;
&lt;br /&gt;
I also have aiglx working lovely also, worked pretty much out the box with a few tweaks on top of the [http://wiki.gentoo-xeffects.org/ Gentoo xeffects wiki] (which I think is slightly out of date in some places)&lt;br /&gt;
&lt;br /&gt;
Does anybody know of any particular power management tips? I have frequency scaling working, but battery life is much reduced than when running windows (plus my thinkpad gets rather warm on the right palm rest, which it doesn't do in windows)&lt;br /&gt;
&lt;br /&gt;
--[[User:Duwamish|Duwamish]] 11:58, 4 November 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Hey, I have a weird problem with my stylus:&lt;br /&gt;
Your rotate script works fine, and even the cursors directions are rotated with xsetwacom. But it seems that the cursor still uses the old specs of the display, it's not shown on the actual position i move the pen.&lt;br /&gt;
So, if i rotate left 90 degrees, the resolution is 768x1024, but the stylus behaves relative to 1024x768. Do you know the problem? I tried different versions of linuxwacom (up to latest development) but can't get it working. :(&lt;/div&gt;</summary>
		<author><name>Samoht</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:Automatically_reduce_brightness&amp;diff=36478</id>
		<title>Talk:Automatically reduce brightness</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:Automatically_reduce_brightness&amp;diff=36478"/>
		<updated>2008-02-16T09:54:18Z</updated>

		<summary type="html">&lt;p&gt;Samoht: Removing all content from page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Samoht</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=User:Samoht&amp;diff=36477</id>
		<title>User:Samoht</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=User:Samoht&amp;diff=36477"/>
		<updated>2008-02-16T09:53:38Z</updated>

		<summary type="html">&lt;p&gt;Samoht: Removing all content from page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Samoht</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:Automatically_reduce_brightness&amp;diff=32483</id>
		<title>Talk:Automatically reduce brightness</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:Automatically_reduce_brightness&amp;diff=32483"/>
		<updated>2007-08-26T14:35:36Z</updated>

		<summary type="html">&lt;p&gt;Samoht: compile error&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hey,&lt;br /&gt;
the new version (0.4_beta1) doesn't compile on Debian Etch.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; make&lt;br /&gt;
 gcc  -g -Wall -lX11 -lXss -o brightd brightd.c&lt;br /&gt;
 brightd.c:48:25: error: sys/inotify.h: No such file or directory&lt;br /&gt;
 brightd.c: In function 'main':&lt;br /&gt;
 brightd.c:530: warning: implicit declaration of function 'inotify_init'&lt;br /&gt;
 brightd.c:532: warning: implicit declaration of function 'inotify_add_watch'&lt;br /&gt;
 brightd.c:532: error: 'IN_CREATE' undeclared (first use in this function)&lt;br /&gt;
 brightd.c:532: error: (Each undeclared identifier is reported only once&lt;br /&gt;
 brightd.c:532: error: for each function it appears in.)&lt;br /&gt;
 brightd.c:593: error: invalid application of 'sizeof' to incomplete type 'struct inotify_event' &lt;br /&gt;
 brightd.c:595: error: dereferencing pointer to incomplete type&lt;br /&gt;
 brightd.c:715: error: invalid application of 'sizeof' to incomplete type 'struct inotify_event' &lt;br /&gt;
 brightd.c:716: error: invalid application of 'sizeof' to incomplete type 'struct inotify_event' &lt;br /&gt;
 brightd.c:718: error: dereferencing pointer to incomplete type&lt;br /&gt;
 brightd.c:718: error: dereferencing pointer to incomplete type&lt;br /&gt;
 brightd.c:719: error: dereferencing pointer to incomplete type&lt;br /&gt;
 make: *** [brightd] Error 1&lt;br /&gt;
&lt;br /&gt;
So I changed the line&lt;br /&gt;
 #include &amp;lt;sys/inotify.h&amp;gt;&lt;br /&gt;
to&lt;br /&gt;
 #include &amp;lt;linux/inotify.h&amp;gt;&lt;br /&gt;
which gives me:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; make&lt;br /&gt;
 gcc  -g -Wall -lX11 -lXss -o brightd brightd.c&lt;br /&gt;
 brightd.c: In function 'main':&lt;br /&gt;
 brightd.c:530: warning: implicit declaration of function 'inotify_init'&lt;br /&gt;
 brightd.c:532: warning: implicit declaration of function 'inotify_add_watch'&lt;br /&gt;
 /tmp/ccIEzkru.o: In function `main':&lt;br /&gt;
 /home/thomas/downloads/brightd-0.4_beta4/brightd.c:530: undefined reference to `inotify_init'&lt;br /&gt;
 /home/thomas/downloads/brightd-0.4_beta4/brightd.c:532: undefined reference to `inotify_add_watch'&lt;br /&gt;
 /home/thomas/downloads/brightd-0.4_beta4/brightd.c:576: undefined reference to `inotify_init'&lt;br /&gt;
 /home/thomas/downloads/brightd-0.4_beta4/brightd.c:578: undefined reference to `inotify_add_watch'&lt;br /&gt;
 collect2: ld returned 1 exit status&lt;br /&gt;
 make: *** [brightd] Error 1&lt;br /&gt;
&lt;br /&gt;
Do I need a special version of inotify? Sry, I have no real experience in c programming.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; uname -a&lt;br /&gt;
 Linux phooka 2.6.22 #1 PREEMPT Wed Aug 1 11:47:42 CEST 2007 i686 GNU/Linux&lt;/div&gt;</summary>
		<author><name>Samoht</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:Installing_Ubuntu_(Gutsy_Gibbon)_7.10_on_a_ThinkPad_R60&amp;diff=31091</id>
		<title>Talk:Installing Ubuntu (Gutsy Gibbon) 7.10 on a ThinkPad R60</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:Installing_Ubuntu_(Gutsy_Gibbon)_7.10_on_a_ThinkPad_R60&amp;diff=31091"/>
		<updated>2007-07-09T13:06:16Z</updated>

		<summary type="html">&lt;p&gt;Samoht: â†Created page with 'The problem with hdapsd is, that you need a special kernel patch that allows to freeze the head of the harddisk. It's described here: http://www.thinkwiki.org/wiki/How_to_...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The problem with hdapsd is, that you need a special kernel patch that allows to freeze the head of the harddisk.&lt;br /&gt;
It's described here: http://www.thinkwiki.org/wiki/How_to_protect_the_harddisk_through_APS#Adding_kernel_support&lt;/div&gt;</summary>
		<author><name>Samoht</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Default_meanings_of_special_keys&amp;diff=29868</id>
		<title>Default meanings of special keys</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Default_meanings_of_special_keys&amp;diff=29868"/>
		<updated>2007-05-18T12:10:42Z</updated>

		<summary type="html">&lt;p&gt;Samoht: /* Z Series */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot; columns=&amp;quot;2&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;&amp;quot; rowspan=&amp;quot;2&amp;quot; | __TOC__&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
The following table lists the associated functionalities for special keys on ThinkPads.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; {{prettytable}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| Models&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F1}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F2}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F3}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F4}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F5}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F6}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F7}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F8}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F9}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F10}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F11}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F12}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|Home}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|End}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|PageUp}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|Space}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|left}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|right}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|up}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|down}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=21 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===Numbered===&lt;br /&gt;
|-&lt;br /&gt;
| {{240}}, {{240X}}, 240Z&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{365C}}, {{365CD}}, {{365CS}}, {{365CSD}}, {{365E}}, {{365ED}}, {{365X}}, {{365XD}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{380}}, {{380D}}, {{380E}}, {{380ED}}, {{385D}}, {{385ED}}, {{380XD}}, {{385XD}}, {{380Z}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{390}}, {{390E}}, {{390X}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{560}}, {{560E}}, {{560X}}, {{560Z}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{570}}, {{570E}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{600}}, {{600E}}, {{600X}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{750}}, {{750CS}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{755C}}, {{755CS}}, {{755CE}}, {{755CSE}}, {{755CD}}, {{755CX}}, {{755CV}}, {{755CDV}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{760C}}, {{760CD}}, {{760L}}, {{760LD}}, {{760E}}, {{760ED}}, {{760EL}}, {{760ELD}}, {{760XD}}, {{765D}}, {{765L}}, {{760XL}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{770}}, {{770E}}, {{770ED}}, {{770X}}, {{770Z}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=21 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===i Series===&lt;br /&gt;
|-&lt;br /&gt;
| {{i1720}}, {{i1721}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=21 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===A Series===&lt;br /&gt;
|-&lt;br /&gt;
| {{A20m}}, {{A20p}}, {{A21e}}, {{A21m}}, {{A21p}}, {{A22e}}, {{A22m}}, {{A22m}}, {{A22p}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{A30}}, {{A30p}}, {{A31}}, {{A31p}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=21 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
===G Series===&lt;br /&gt;
|-&lt;br /&gt;
| {{G40}}, {{G41}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=21 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
===R Series===&lt;br /&gt;
|-&lt;br /&gt;
| {{R30}}, {{R31}}, {{R32}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{R40}}, {{R40e}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{R50}}, {{R50e}}, {{R50p}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{R51}}, {{R51e}}, {{R52}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{R60}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=21 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===T Series===&lt;br /&gt;
|-&lt;br /&gt;
| {{T20}}, {{T21}}, {{T22}}, {{T23}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{T30}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{T40}}, {{T40p}}, {{T41}}, {{T41p}}, {{T42}}, {{T42p}}, {{T43}}, {{T43p}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| blank screen&lt;br /&gt;
| suspend to ram&lt;br /&gt;
| switch wireless&lt;br /&gt;
|&lt;br /&gt;
| switch display&lt;br /&gt;
| zoom(?)&lt;br /&gt;
| (un)dock&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| suspend to disk&lt;br /&gt;
| brightness increase&lt;br /&gt;
| brightness decrease&lt;br /&gt;
| thinklight&lt;br /&gt;
| zoom&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{T60}}, {{T60p}}&lt;br /&gt;
|&lt;br /&gt;
| lock screen&lt;br /&gt;
| energy manager/ settings&lt;br /&gt;
| suspend to ram&lt;br /&gt;
| wireless/bluetooth&lt;br /&gt;
|&lt;br /&gt;
| switch display&lt;br /&gt;
| control ultranav&lt;br /&gt;
| eject&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| suspend to disk&lt;br /&gt;
| brightness up&lt;br /&gt;
| brightness down&lt;br /&gt;
| thinklight&lt;br /&gt;
| zoom&lt;br /&gt;
| last track&lt;br /&gt;
| next track&lt;br /&gt;
| stop&lt;br /&gt;
| play / pause&lt;br /&gt;
|-&lt;br /&gt;
! colspan=21 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===X Series===&lt;br /&gt;
|-&lt;br /&gt;
| {{X20}}, {{X21}}, {{X22}}, {{X23}}, {{X24}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{X30}}, {{X31}}, {{X32}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{X40}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{X41}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{X41T}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{X60}}, {{X60s}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{X60t}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=21 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===Z Series===&lt;br /&gt;
|-&lt;br /&gt;
| {{Z60m}}, {{Z60t}}&lt;br /&gt;
|&lt;br /&gt;
| lock desktop&lt;br /&gt;
| show state of battery&lt;br /&gt;
| suspend to ram (sleep)&lt;br /&gt;
| toggle bluetooth&lt;br /&gt;
| &lt;br /&gt;
| switch to external vga-output&lt;br /&gt;
| switch between trackpoint and touchpad&lt;br /&gt;
| eject dock&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| suspend to disk (hibernate)&lt;br /&gt;
| brightness increase&lt;br /&gt;
| brightness decrease&lt;br /&gt;
| thinklight&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{Z61e}}, {{Z61m}}, {{Z61p}}, {{Z61t}}&lt;br /&gt;
|&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| suspend to ram&lt;br /&gt;
| switch wireless&lt;br /&gt;
| &lt;br /&gt;
| switch display&lt;br /&gt;
| switch trackpoint / touchpad&lt;br /&gt;
| (un)dock&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| suspend to disk&lt;br /&gt;
| brightness increase&lt;br /&gt;
| brightness decrease&lt;br /&gt;
| thinklight&lt;br /&gt;
| zoom&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=21 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
|-&lt;br /&gt;
| {{TransNote}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Tables]]&lt;/div&gt;</summary>
		<author><name>Samoht</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Default_meanings_of_special_keys&amp;diff=29867</id>
		<title>Default meanings of special keys</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Default_meanings_of_special_keys&amp;diff=29867"/>
		<updated>2007-05-18T12:08:33Z</updated>

		<summary type="html">&lt;p&gt;Samoht: /* Z Series */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot; columns=&amp;quot;2&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;&amp;quot; rowspan=&amp;quot;2&amp;quot; | __TOC__&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
The following table lists the associated functionalities for special keys on ThinkPads.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; {{prettytable}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| Models&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F1}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F2}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F3}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F4}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F5}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F6}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F7}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F8}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F9}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F10}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F11}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F12}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|Home}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|End}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|PageUp}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|Space}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|left}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|right}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|up}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|down}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=21 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===Numbered===&lt;br /&gt;
|-&lt;br /&gt;
| {{240}}, {{240X}}, 240Z&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{365C}}, {{365CD}}, {{365CS}}, {{365CSD}}, {{365E}}, {{365ED}}, {{365X}}, {{365XD}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{380}}, {{380D}}, {{380E}}, {{380ED}}, {{385D}}, {{385ED}}, {{380XD}}, {{385XD}}, {{380Z}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{390}}, {{390E}}, {{390X}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{560}}, {{560E}}, {{560X}}, {{560Z}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{570}}, {{570E}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{600}}, {{600E}}, {{600X}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{750}}, {{750CS}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{755C}}, {{755CS}}, {{755CE}}, {{755CSE}}, {{755CD}}, {{755CX}}, {{755CV}}, {{755CDV}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{760C}}, {{760CD}}, {{760L}}, {{760LD}}, {{760E}}, {{760ED}}, {{760EL}}, {{760ELD}}, {{760XD}}, {{765D}}, {{765L}}, {{760XL}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{770}}, {{770E}}, {{770ED}}, {{770X}}, {{770Z}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=21 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===i Series===&lt;br /&gt;
|-&lt;br /&gt;
| {{i1720}}, {{i1721}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=21 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===A Series===&lt;br /&gt;
|-&lt;br /&gt;
| {{A20m}}, {{A20p}}, {{A21e}}, {{A21m}}, {{A21p}}, {{A22e}}, {{A22m}}, {{A22m}}, {{A22p}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{A30}}, {{A30p}}, {{A31}}, {{A31p}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=21 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
===G Series===&lt;br /&gt;
|-&lt;br /&gt;
| {{G40}}, {{G41}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=21 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
===R Series===&lt;br /&gt;
|-&lt;br /&gt;
| {{R30}}, {{R31}}, {{R32}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{R40}}, {{R40e}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{R50}}, {{R50e}}, {{R50p}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{R51}}, {{R51e}}, {{R52}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{R60}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=21 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===T Series===&lt;br /&gt;
|-&lt;br /&gt;
| {{T20}}, {{T21}}, {{T22}}, {{T23}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{T30}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{T40}}, {{T40p}}, {{T41}}, {{T41p}}, {{T42}}, {{T42p}}, {{T43}}, {{T43p}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| blank screen&lt;br /&gt;
| suspend to ram&lt;br /&gt;
| switch wireless&lt;br /&gt;
|&lt;br /&gt;
| switch display&lt;br /&gt;
| zoom(?)&lt;br /&gt;
| (un)dock&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| suspend to disk&lt;br /&gt;
| brightness increase&lt;br /&gt;
| brightness decrease&lt;br /&gt;
| thinklight&lt;br /&gt;
| zoom&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{T60}}, {{T60p}}&lt;br /&gt;
|&lt;br /&gt;
| lock screen&lt;br /&gt;
| energy manager/ settings&lt;br /&gt;
| suspend to ram&lt;br /&gt;
| wireless/bluetooth&lt;br /&gt;
|&lt;br /&gt;
| switch display&lt;br /&gt;
| control ultranav&lt;br /&gt;
| eject&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| suspend to disk&lt;br /&gt;
| brightness up&lt;br /&gt;
| brightness down&lt;br /&gt;
| thinklight&lt;br /&gt;
| zoom&lt;br /&gt;
| last track&lt;br /&gt;
| next track&lt;br /&gt;
| stop&lt;br /&gt;
| play / pause&lt;br /&gt;
|-&lt;br /&gt;
! colspan=21 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===X Series===&lt;br /&gt;
|-&lt;br /&gt;
| {{X20}}, {{X21}}, {{X22}}, {{X23}}, {{X24}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{X30}}, {{X31}}, {{X32}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{X40}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{X41}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{X41T}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{X60}}, {{X60s}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{X60t}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=21 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===Z Series===&lt;br /&gt;
|-&lt;br /&gt;
| {{Z60m}}, {{Z60t}}&lt;br /&gt;
|&lt;br /&gt;
| lock desktop&lt;br /&gt;
| show state of battery&lt;br /&gt;
| suspend to ram (sleep)&lt;br /&gt;
| toggle bluetooth&lt;br /&gt;
| &lt;br /&gt;
| switch to external vga-output&lt;br /&gt;
| switch between trackpoint and touchpad&lt;br /&gt;
| eject dock&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| suspend to disk (hibernate)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{Z61e}}, {{Z61m}}, {{Z61p}}, {{Z61t}}&lt;br /&gt;
|&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| suspend to ram&lt;br /&gt;
| switch wireless&lt;br /&gt;
| &lt;br /&gt;
| switch display&lt;br /&gt;
| switch trackpoint / touchpad&lt;br /&gt;
| (un)dock&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| suspend to disk&lt;br /&gt;
| brightness increase&lt;br /&gt;
| brightness decrease&lt;br /&gt;
| thinklight&lt;br /&gt;
| zoom&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=21 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
|-&lt;br /&gt;
| {{TransNote}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Tables]]&lt;/div&gt;</summary>
		<author><name>Samoht</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Etch_on_a_ThinkPad_Z60m&amp;diff=29502</id>
		<title>Installing Debian Etch on a ThinkPad Z60m</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Etch_on_a_ThinkPad_Z60m&amp;diff=29502"/>
		<updated>2007-04-26T07:10:15Z</updated>

		<summary type="html">&lt;p&gt;Samoht: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Special Keys ==&lt;br /&gt;
For the powermanagement-keys (Fn + F4, ...) install acpi-support:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install acpi-support}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For Fn - Arrow-keys I have customized my {{path|~/.xmodmap}}:&lt;br /&gt;
&lt;br /&gt;
 keycode 164 = XF86AudioStop&lt;br /&gt;
 keycode 162 = XF86AudioPlay&lt;br /&gt;
 keycode 153 = XF86AudioNext&lt;br /&gt;
 keycode 144 = XF86AudioPrev&lt;br /&gt;
 keycode 234 = F19&lt;br /&gt;
 keycode 233 = F20&lt;br /&gt;
&lt;br /&gt;
For using the Back/Forward-keys in Firefox go on [http://www.thinkwiki.org/wiki/How_to_get_special_keys_to_work#Firefox here].&lt;br /&gt;
&lt;br /&gt;
== Wireless Networking ==&lt;br /&gt;
&lt;br /&gt;
The module for this chip is in kernel mainline (ipw2200). The only showstopper is the missing firmware.&lt;br /&gt;
&lt;br /&gt;
Get it here: [http://ipw2200.sourceforge.net/firmware.php?fid=7 firmware v3.0]&lt;br /&gt;
&lt;br /&gt;
Extract it: &lt;br /&gt;
&lt;br /&gt;
{{cmdroot| tar zxvf ipw2200-fw-3.0.tgz}}&lt;br /&gt;
&lt;br /&gt;
Move the *.fw files to {{path|/lib/firmware/}}&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|mv *.fw /lib/firmware/}}&lt;br /&gt;
&lt;br /&gt;
Reload the module:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|rmmod ipw2200 &amp;amp;&amp;amp; modprobe ipw2200}}&lt;br /&gt;
&lt;br /&gt;
== CPU Throttling ==&lt;br /&gt;
&lt;br /&gt;
Load the kernelmodule:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|modprobe speedstep_centrino}}&lt;br /&gt;
&lt;br /&gt;
Add line &amp;quot;speedstep_centrino&amp;quot; to {{path|/etc/modules}} to load the module on boot.&lt;br /&gt;
&lt;br /&gt;
Install the throttling-daemon:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install powernowd}}&lt;br /&gt;
&lt;br /&gt;
Done.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Active Protection System==&lt;br /&gt;
&lt;br /&gt;
=== Preparing the kernel ===&lt;br /&gt;
&lt;br /&gt;
To get the headdisk-parking working you have to build your own kernel with the hdaps_protect-patch applied:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Install the prerequisites that we need to compile the new kernel:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install kernel-package ncurses-dev fakeroot wget bzip2}}&lt;br /&gt;
&lt;br /&gt;
Get the recent debian-etch-kernel (2.6.18):&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install linux-tree-2.6.18}}&lt;br /&gt;
&lt;br /&gt;
Go to the sources and unpack them:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|cd /usr/src}}&lt;br /&gt;
{{cmdroot| tar jxvf linux-source-2.6.18.tar.bz2}}&lt;br /&gt;
&lt;br /&gt;
As etchs kernel is 2.6.18-4 its propably a good idea to get the hdaps_protect patch for 2.6.18-3:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot| wget http://www.dresco.co.uk/hdaps/hdaps_protect-2.6.18.3-2.patch}}&lt;br /&gt;
&lt;br /&gt;
Apply the patch:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|cd linux-source-2.6.18/}}&lt;br /&gt;
{{cmdroot|patch -p1 &amp;lt; ../hdaps_protect-2.6.18.3-2.patch}}&lt;br /&gt;
&lt;br /&gt;
Copy the default-config to the sourcetree:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|cp /boot/config-2.6.18-4-486 ./.config}}&lt;br /&gt;
&lt;br /&gt;
Build the kernel &amp;amp; packages:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|make-kpkg clean}}&lt;br /&gt;
{{cmdroot|make-kpkg fakeroot make-kpkg --initrd --revision=thinkpad.1.0 kernel_image}}&lt;br /&gt;
&lt;br /&gt;
Install the new kernel. Grub-menu should be updated automatically.&lt;br /&gt;
&lt;br /&gt;
{{cmdroot| dpkg -i linux-image-2.6.18_thinkpad.1.0_i386.deb }}&lt;br /&gt;
&lt;br /&gt;
Reboot and select the new kernel. Verify with 'uname -a'.&lt;br /&gt;
If all things work you can set the new kernel default in {{path|/boot/grub/menu.lst}} with default $entry-number (0..1..2..)&lt;br /&gt;
&lt;br /&gt;
===Preparing userspace===&lt;br /&gt;
&lt;br /&gt;
Installing the daemon:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install hdapsd}}&lt;br /&gt;
&lt;br /&gt;
To set your harddrive, edit {{path|/etc/default/hdapsd}}:&lt;br /&gt;
&lt;br /&gt;
 # start hdapsd at boottime?&lt;br /&gt;
 '''START=yes'''&lt;br /&gt;
 #&lt;br /&gt;
 # the name of the disk device that hdapsd should monitor.&lt;br /&gt;
 #&lt;br /&gt;
 # usually this is 'hda' the primary master or 'sda'&lt;br /&gt;
 # on SATA ThinkPads.&lt;br /&gt;
 '''DISK=sda'''&lt;br /&gt;
 #&lt;br /&gt;
 # other options to pass to hdapsd.&lt;br /&gt;
 # the -d and -b options are always passed.&lt;br /&gt;
 OPTIONS=&lt;br /&gt;
&lt;br /&gt;
Restart hdapsd:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|/etc/init.d/hdapsd restart}}&lt;br /&gt;
&lt;br /&gt;
You should get something like that in {{path| /var/log/syslog}} when throwing your thinkpad off the table: (No, seriously, shaking it carefully should be sufficient :-) )&lt;br /&gt;
&lt;br /&gt;
 Mar 20 12:25:37 localhost kernel: ata_scsi_issue_protect_fn(): unload support reported by drive..&lt;br /&gt;
 Mar 20 12:25:37 localhost kernel: scsi_protect_queue(): head parked..&lt;br /&gt;
 Mar 20 12:25:38 localhost kernel: scsi_unprotect_queue(): No pending I/O, re-enabling power management..&lt;br /&gt;
 Mar 20 12:25:38 localhost hdapsd[12522]: Tue Mar 20 12:25:38 2007: un-parking&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fingerprint-Reader ==&lt;br /&gt;
&lt;br /&gt;
=== Install userspace-tools ===&lt;br /&gt;
I got the fingerprint reader working with the new [http://thinkfinger.sourceforge.net/ ThinkFinger-drivers] (opensource). They are working much better than the closed-source UPEK drivers and don't have this ugly QT-dialog.&lt;br /&gt;
&lt;br /&gt;
Get some debian-packages from [http://www.rubixlinux.org/debian/thinkfinger/ here] and install them with:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot| dpkg -i *.deb}}&lt;br /&gt;
&lt;br /&gt;
=== Enroll your fingers ===&lt;br /&gt;
Enroll your fingers with:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|tf-tool --add-user &amp;lt;login&amp;gt;}}&lt;br /&gt;
 &lt;br /&gt;
 # tf-tool --add-user name&lt;br /&gt;
 ThinkFinger 0.2.2 (http://thinkfinger.sourceforge.net/)&lt;br /&gt;
 Copyright (C) 2006, 2007 Timo Hoenig &amp;lt;thoenig@suse.de&amp;gt;&lt;br /&gt;
 Initializing... done.&lt;br /&gt;
 Please swipe your finger (successful swipes 3/3, failed swipes: 0)... done.&lt;br /&gt;
 Storing data (/etc/pam_thinkfinger/name.bir)... done.&lt;br /&gt;
&lt;br /&gt;
=== Configuring PAM to use ThinkFinger ===&lt;br /&gt;
Now you can configure pam to use ThinkFinger:&lt;br /&gt;
&lt;br /&gt;
Open {{path|/etc/pam.d/common-auth}}:&lt;br /&gt;
&lt;br /&gt;
 # /etc/pam.d/common-auth - authentication settings common to all services&lt;br /&gt;
 #&lt;br /&gt;
 # This file is included from other service-specific PAM config files,&lt;br /&gt;
 # and should contain a list of the authentication modules that define&lt;br /&gt;
 # the central authentication scheme for use on the system&lt;br /&gt;
 # (e.g., /etc/shadow, LDAP, Kerberos, etc.).  The default is to use the&lt;br /&gt;
 # traditional Unix authentication mechanisms.&lt;br /&gt;
 #&lt;br /&gt;
 '''auth     sufficient     pam_thinkfinger.so'''&lt;br /&gt;
 auth     required     pam_unix.so '''try_first_pass'''&lt;br /&gt;
&lt;br /&gt;
Ready! Works flawlessly with gdm for instance!&lt;br /&gt;
Enroll user 'root' to use your fingerprint for 'sudo'.&lt;br /&gt;
&lt;br /&gt;
== System Information ==&lt;br /&gt;
&lt;br /&gt;
=== uname -a ===&lt;br /&gt;
&lt;br /&gt;
 Linux phooka 2.6.18 #1 PREEMPT Thu Apr 5 13:09:55 CEST 2007 i686 GNU/Linux&lt;br /&gt;
&lt;br /&gt;
=== lspci ===&lt;br /&gt;
&lt;br /&gt;
 00:00.0 Host bridge [0600]: Intel Corporation Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller [8086:2590] (rev 03)&lt;br /&gt;
 	Subsystem: IBM Unknown device [1014:0575]&lt;br /&gt;
 	Flags: bus master, fast devsel, latency 0&lt;br /&gt;
 	Capabilities: [e0] Vendor Specific Information&lt;br /&gt;
 &lt;br /&gt;
 00:02.0 VGA compatible controller [0300]: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller [8086:2592] (rev 03) (prog-if 00 [VGA])&lt;br /&gt;
 	Subsystem: IBM Unknown device [1014:058c]&lt;br /&gt;
 	Flags: bus master, fast devsel, latency 0, IRQ 11&lt;br /&gt;
 	Memory at a0080000 (32-bit, non-prefetchable) [size=512K]&lt;br /&gt;
 	I/O ports at 1800 [size=8]&lt;br /&gt;
 	Memory at c0000000 (32-bit, prefetchable) [size=256M]&lt;br /&gt;
 	Memory at a0040000 (32-bit, non-prefetchable) [size=256K]&lt;br /&gt;
 	Capabilities: [d0] Power Management version 2&lt;br /&gt;
 &lt;br /&gt;
  00:02.1 Display controller [0380]: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller [8086:2792] (rev 03)&lt;br /&gt;
 	Subsystem: IBM Unknown device [1014:058c]&lt;br /&gt;
 	Flags: fast devsel&lt;br /&gt;
 	Memory at 30000000 (32-bit, non-prefetchable) [disabled] [size=512K]&lt;br /&gt;
 	Capabilities: [d0] Power Management version 2  &lt;br /&gt;
 &lt;br /&gt;
 00:1b.0 Audio device [0403]: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller [8086:2668] (rev 03)&lt;br /&gt;
 	Subsystem: IBM Unknown device [1014:05b7]&lt;br /&gt;
 	Flags: bus master, fast devsel, latency 0, IRQ 11&lt;br /&gt;
 	Memory at a0000000 (64-bit, non-prefetchable) [size=16K]&lt;br /&gt;
 	Capabilities: [50] Power Management version 2&lt;br /&gt;
 	Capabilities: [60] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable-&lt;br /&gt;
 	Capabilities: [70] Express Unknown type IRQ 0&lt;br /&gt;
 	Capabilities: [100] Virtual Channel&lt;br /&gt;
 	Capabilities: [130] Unknown (5) &lt;br /&gt;
 &lt;br /&gt;
 00:1c.0 PCI bridge [0604]: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 [8086:2660] (rev 03) (prog-if 00 [Normal decode])&lt;br /&gt;
 	Flags: bus master, fast devsel, latency 0&lt;br /&gt;
 	Bus: primary=00, secondary=02, subordinate=02, sec-latency=0&lt;br /&gt;
 	Memory behind bridge: a0100000-a01fffff&lt;br /&gt;
 	Capabilities: [40] Express Root Port (Slot+) IRQ 0&lt;br /&gt;
 	Capabilities: [80] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable-&lt;br /&gt;
 	Capabilities: [90] Subsystem: IBM Unknown device [1014:05b8]&lt;br /&gt;
 	Capabilities: [a0] Power Management version 2&lt;br /&gt;
 	Capabilities: [100] Virtual Channel&lt;br /&gt;
 	Capabilities: [180] Unknown (5) &lt;br /&gt;
 &lt;br /&gt;
 00:1c.1 PCI bridge [0604]: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 2 [8086:2662] (rev 03) (prog-if 00 [Normal decode])&lt;br /&gt;
 	Flags: bus master, fast devsel, latency 0&lt;br /&gt;
 	Bus: primary=00, secondary=03, subordinate=0a, sec-latency=0&lt;br /&gt;
 	I/O behind bridge: 00002000-00003fff&lt;br /&gt;
 	Memory behind bridge: a2000000-a3ffffff&lt;br /&gt;
 	Prefetchable memory behind bridge: 00000000d0000000-00000000d00fffff&lt;br /&gt;
 	Capabilities: [40] Express Root Port (Slot+) IRQ 0&lt;br /&gt;
 	Capabilities: [80] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable-&lt;br /&gt;
 	Capabilities: [90] Subsystem: IBM Unknown device [1014:05b8]&lt;br /&gt;
 	Capabilities: [a0] Power Management version 2&lt;br /&gt;
 	Capabilities: [100] Virtual Channel&lt;br /&gt;
 	Capabilities: [180] Unknown (5)  &lt;br /&gt;
 &lt;br /&gt;
 00:1c.2 PCI bridge [0604]: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 3 [8086:2664] (rev 03) (prog-if 00 [Normal decode])&lt;br /&gt;
 	Flags: bus master, fast devsel, latency 0&lt;br /&gt;
 	Bus: primary=00, secondary=0b, subordinate=12, sec-latency=0&lt;br /&gt;
 	I/O behind bridge: 00004000-00005fff&lt;br /&gt;
 	Memory behind bridge: a4000000-a5ffffff&lt;br /&gt;
 	Prefetchable memory behind bridge: 00000000b0100000-00000000b01fffff&lt;br /&gt;
 	Capabilities: [40] Express Root Port (Slot+) IRQ 0&lt;br /&gt;
 	Capabilities: [80] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable-&lt;br /&gt;
 	Capabilities: [90] Subsystem: IBM Unknown device [1014:05b8]&lt;br /&gt;
 	Capabilities: [a0] Power Management version 2&lt;br /&gt;
 	Capabilities: [100] Virtual Channel&lt;br /&gt;
 	Capabilities: [180] Unknown (5) &lt;br /&gt;
 &lt;br /&gt;
 00:1c.3 PCI bridge [0604]: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 4 [8086:2666] (rev 03) (prog-if 00 [Normal decode])&lt;br /&gt;
 	Flags: bus master, fast devsel, latency 0&lt;br /&gt;
 	Bus: primary=00, secondary=13, subordinate=13, sec-latency=0&lt;br /&gt;
 	I/O behind bridge: 00006000-00007fff&lt;br /&gt;
 	Memory behind bridge: a6000000-a7ffffff&lt;br /&gt;
 	Prefetchable memory behind bridge: 00000000d0100000-00000000d01fffff&lt;br /&gt;
 	Capabilities: [40] Express Root Port (Slot+) IRQ 0&lt;br /&gt;
 	Capabilities: [80] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable-&lt;br /&gt;
 	Capabilities: [90] Subsystem: IBM Unknown device [1014:05b8]&lt;br /&gt;
 	Capabilities: [a0] Power Management version 2&lt;br /&gt;
 	Capabilities: [100] Virtual Channel&lt;br /&gt;
 	Capabilities: [180] Unknown (5) &lt;br /&gt;
 &lt;br /&gt;
 00:1d.0 USB Controller [0c03]: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 [8086:2658] (rev 03) (prog-if 00 [UHCI])&lt;br /&gt;
 	 Subsystem: IBM Unknown device [1014:0565]&lt;br /&gt;
 	 Flags: bus master, medium devsel, latency 0, IRQ 11&lt;br /&gt;
 	 I/O ports at 1820 [size=32]&lt;br /&gt;
 &lt;br /&gt;
 00:1d.1 USB Controller [0c03]: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 [8086:2659] (rev 03) (prog-if 00 [UHCI])&lt;br /&gt;
 	Subsystem: IBM Unknown device [1014:0565]&lt;br /&gt;
 	Flags: bus master, medium devsel, latency 0, IRQ 11&lt;br /&gt;
 	I/O ports at 1840 [size=32] &lt;br /&gt;
 &lt;br /&gt;
 00:1d.2 USB Controller [0c03]: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 [8086:265a] (rev 03) (prog-if 00 [UHCI])&lt;br /&gt;
 	Subsystem: IBM Unknown device [1014:0565]&lt;br /&gt;
 	Flags: bus master, medium devsel, latency 0, IRQ 11&lt;br /&gt;
 	I/O ports at 1860 [size=32] &lt;br /&gt;
 &lt;br /&gt;
 00:1d.3 USB Controller [0c03]: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 [8086:265b] (rev 03) (prog-if 00 [UHCI])&lt;br /&gt;
 	 Subsystem: IBM Unknown device [1014:0565]&lt;br /&gt;
 	 Flags: bus master, medium devsel, latency 0, IRQ 11&lt;br /&gt;
 	 I/O ports at 1880 [size=32]&lt;br /&gt;
 &lt;br /&gt;
 00:1d.7 USB Controller [0c03]: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller [8086:265c] (rev 03) (prog-if 20 [EHCI])&lt;br /&gt;
 	 Subsystem: IBM Unknown device [1014:0566]&lt;br /&gt;
 	 Flags: bus master, medium devsel, latency 0, IRQ 11&lt;br /&gt;
 	 Memory at a0004000 (32-bit, non-prefetchable) [size=1K]&lt;br /&gt;
 	 Capabilities: [50] Power Management version 2&lt;br /&gt;
 	 Capabilities: [58] Debug port &lt;br /&gt;
 &lt;br /&gt;
 00:1e.0 PCI bridge [0604]: Intel Corporation 82801 Mobile PCI Bridge [8086:2448] (rev d3) (prog-if 01 [Subtractive decode])&lt;br /&gt;
 	 Flags: bus master, fast devsel, latency 0&lt;br /&gt;
 	 Bus: primary=00, secondary=14, subordinate=17, sec-latency=64&lt;br /&gt;
 	 I/O behind bridge: 00008000-0000bfff&lt;br /&gt;
 	 Memory behind bridge: a8000000-b00fffff&lt;br /&gt;
 	 Prefetchable memory behind bridge: 00000000d8000000-00000000dfffffff&lt;br /&gt;
 	 Capabilities: [50] Subsystem: Gammagraphx, Inc. Unknown device [0000:0000]&lt;br /&gt;
 &lt;br /&gt;
 00:1f.0 ISA bridge [0601]: Intel Corporation 82801FBM (ICH6M) LPC Interface Bridge [8086:2641] (rev 03)&lt;br /&gt;
 	Subsystem: IBM Unknown device [1014:0568]&lt;br /&gt;
 	Flags: bus master, medium devsel, latency 0 &lt;br /&gt;
  &lt;br /&gt;
 00:1f.2 IDE interface [0101]: Intel Corporation 82801FBM (ICH6M) SATA Controller [8086:2653] (rev 03) (prog-if 80 [Master])&lt;br /&gt;
 	Subsystem: IBM Unknown device [1014:056a]&lt;br /&gt;
 	Flags: bus master, 66MHz, medium devsel, latency 0&lt;br /&gt;
 	I/O ports at &amp;lt;unassigned&amp;gt;&lt;br /&gt;
 	I/O ports at &amp;lt;unassigned&amp;gt;&lt;br /&gt;
 	I/O ports at &amp;lt;unassigned&amp;gt;&lt;br /&gt;
 	I/O ports at &amp;lt;unassigned&amp;gt;&lt;br /&gt;
 	I/O ports at 1810 [size=16]&lt;br /&gt;
 	Capabilities: [70] Power Management version 2 &lt;br /&gt;
 &lt;br /&gt;
 00:1f.3 SMBus [0c05]: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller [8086:266a] (rev 03)&lt;br /&gt;
 	Subsystem: IBM Unknown device [1014:056b]&lt;br /&gt;
 	Flags: medium devsel, IRQ 11&lt;br /&gt;
 	I/O ports at 18a0 [size=32]&lt;br /&gt;
 &lt;br /&gt;
 02:00.0 Ethernet controller [0200]: Broadcom Corporation NetXtreme BCM5751M Gigabit Ethernet PCI Express [14e4:167d] (rev 11)&lt;br /&gt;
 	Subsystem: IBM Unknown device [1014:0577]&lt;br /&gt;
 	Flags: bus master, fast devsel, latency 0, IRQ 11&lt;br /&gt;
 	Memory at a0100000 (64-bit, non-prefetchable) [size=64K]&lt;br /&gt;
 	Capabilities: [48] Power Management version 2&lt;br /&gt;
 	Capabilities: [50] Vital Product Data&lt;br /&gt;
 	Capabilities: [58] Message Signalled Interrupts: Mask- 64bit+ Queue=0/3 Enable-&lt;br /&gt;
 	Capabilities: [d0] Express Endpoint IRQ 0&lt;br /&gt;
 	Capabilities: [100] Advanced Error Reporting&lt;br /&gt;
 	Capabilities: [13c] Virtual Channel&lt;br /&gt;
 &lt;br /&gt;
 14:00.0 CardBus bridge [0607]: Ricoh Co Ltd RL5c476 II [1180:0476] (rev b3)&lt;br /&gt;
 	Subsystem: IBM Unknown device [1014:056c]&lt;br /&gt;
 	Flags: bus master, medium devsel, latency 64, IRQ 11&lt;br /&gt;
 	Memory at b0000000 (32-bit, non-prefetchable) [size=4K]&lt;br /&gt;
 	Bus: primary=14, secondary=15, subordinate=16, sec-latency=176&lt;br /&gt;
 	Memory window 0: d8000000-d9fff000 (prefetchable)&lt;br /&gt;
 	Memory window 1: a8000000-a9fff000 (prefetchable)&lt;br /&gt;
 	I/O window 0: 00008000-000080ff&lt;br /&gt;
 	I/O window 1: 00008400-000084ff&lt;br /&gt;
 	16-bit legacy interface ports at 0001&lt;br /&gt;
 &lt;br /&gt;
 14:00.1 FireWire (IEEE 1394) [0c00]: Ricoh Co Ltd R5C552 IEEE 1394 Controller [1180:0552] (rev 08) (prog-if 10 [OHCI])&lt;br /&gt;
 	Subsystem: IBM ThinkPad A/T/X Series [1014:0511]&lt;br /&gt;
 	Flags: bus master, medium devsel, latency 64, IRQ 11&lt;br /&gt;
 	Memory at b0001000 (32-bit, non-prefetchable) [size=2K]&lt;br /&gt;
 	Capabilities: [dc] Power Management version 2&lt;br /&gt;
 &lt;br /&gt;
 14:00.2 Generic system peripheral [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter [1180:0822] (rev 17)&lt;br /&gt;
 	Subsystem: IBM Thinkpad Z60m [1014:0598]&lt;br /&gt;
 	Flags: bus master, medium devsel, latency 64, IRQ 11&lt;br /&gt;
 	Memory at b0001800 (32-bit, non-prefetchable) [size=256]&lt;br /&gt;
 	Capabilities: [80] Power Management version 2&lt;br /&gt;
 &lt;br /&gt;
 14:00.3 System peripheral [0880]: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter [1180:0592] (rev 08)&lt;br /&gt;
 	Subsystem: IBM Unknown device [1014:0596]&lt;br /&gt;
 	Flags: medium devsel, IRQ 11&lt;br /&gt;
 	Memory at b0001c00 (32-bit, non-prefetchable) [size=256]&lt;br /&gt;
 	Capabilities: [80] Power Management version 2&lt;br /&gt;
  &lt;br /&gt;
 14:02.0 Network controller [0280]: Intel Corporation PRO/Wireless 2915ABG Network Connection [8086:4224] (rev 05)&lt;br /&gt;
 	Subsystem: Intel Corporation Unknown device [8086:1011]&lt;br /&gt;
 	Flags: bus master, medium devsel, latency 64, IRQ 11&lt;br /&gt;
 	Memory at b0002000 (32-bit, non-prefetchable) [size=4K]&lt;br /&gt;
 	Capabilities: [dc] Power Management version 2&lt;br /&gt;
&lt;br /&gt;
=== lsmod ===&lt;br /&gt;
&lt;br /&gt;
 Module                  Size  Used by&lt;br /&gt;
 wacom                  15168  0 &lt;br /&gt;
 i915                   17344  2 &lt;br /&gt;
 drm                    61140  3 i915&lt;br /&gt;
 binfmt_misc            10568  1 &lt;br /&gt;
 ipv6                  221472  10 &lt;br /&gt;
 ieee80211_crypt_ccmp     6784  3 &lt;br /&gt;
 cpufreq_ondemand        5744  0 &lt;br /&gt;
 speedstep_centrino      7120  1 &lt;br /&gt;
 cpufreq_userspace       3860  1 &lt;br /&gt;
 freq_table              4292  1 speedstep_centrino&lt;br /&gt;
 ac                      5060  0 &lt;br /&gt;
 battery                 9476  0 &lt;br /&gt;
 ibm_acpi               24320  0 &lt;br /&gt;
 hdaps                   8816  0 &lt;br /&gt;
 sbp2                   20744  0 &lt;br /&gt;
 ieee1394               86008  1 sbp2&lt;br /&gt;
 loop                   14536  0 &lt;br /&gt;
 tsdev                   7360  0 &lt;br /&gt;
 joydev                  8960  0 &lt;br /&gt;
 snd_hda_intel          16916  0 &lt;br /&gt;
 snd_hda_codec         137728  1 snd_hda_intel&lt;br /&gt;
 ipw2200                93568  0 &lt;br /&gt;
 snd_pcm_oss            38112  0 &lt;br /&gt;
 ieee80211              29064  1 ipw2200&lt;br /&gt;
 ieee80211_crypt         5824  2 ieee80211_crypt_ccmp,ieee80211&lt;br /&gt;
 snd_mixer_oss          15168  1 snd_pcm_oss&lt;br /&gt;
 firmware_class          9536  1 ipw2200&lt;br /&gt;
 snd_pcm                68616  3 snd_hda_intel,snd_hda_codec,snd_pcm_oss&lt;br /&gt;
 snd_timer              20868  1 snd_pcm&lt;br /&gt;
 sdhci                  16140  0 &lt;br /&gt;
 mmc_core               22608  1 sdhci&lt;br /&gt;
 i2c_i801                7308  0 &lt;br /&gt;
 snd                    46564  6 snd_hda_intel,snd_hda_codec,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_timer&lt;br /&gt;
 soundcore               9248  1 snd&lt;br /&gt;
 i2c_core               19792  1 i2c_i801&lt;br /&gt;
 psmouse                34568  0 &lt;br /&gt;
 snd_page_alloc          9480  2 snd_hda_intel,snd_pcm&lt;br /&gt;
 intel_agp              20892  1 &lt;br /&gt;
 rtc                    12276  0 &lt;br /&gt;
 evdev                   8896  1 &lt;br /&gt;
 agpgart                29360  3 drm,intel_agp&lt;br /&gt;
 sg                     31068  0 &lt;br /&gt;
 sr_mod                 15716  0 &lt;br /&gt;
 cdrom                  32416  1 sr_mod&lt;br /&gt;
 ext3                  117640  3 &lt;br /&gt;
 jbd                    51816  1 ext3&lt;br /&gt;
 mbcache                 8260  1 ext3&lt;br /&gt;
 sha256                 10944  0 &lt;br /&gt;
 aes                    28032  5 &lt;br /&gt;
 dm_crypt               10696  1 &lt;br /&gt;
 dm_mirror              18704  0 &lt;br /&gt;
 dm_snapshot            15324  0 &lt;br /&gt;
 dm_mod                 49848  12 dm_crypt,dm_mirror,dm_snapshot&lt;br /&gt;
 ide_generic             1280  0 [permanent]&lt;br /&gt;
 sd_mod                 18896  3 &lt;br /&gt;
 generic                 5316  0 [permanent]&lt;br /&gt;
 ide_core              109040  2 ide_generic,generic&lt;br /&gt;
 ata_piix               13384  2 &lt;br /&gt;
 ahci                   17220  0 &lt;br /&gt;
 libata                 90200  2 ata_piix,ahci&lt;br /&gt;
 scsi_mod              125256  6 sbp2,sg,sr_mod,sd_mod,ahci,libata&lt;br /&gt;
 tg3                    94020  0 &lt;br /&gt;
 ehci_hcd               27848  0 &lt;br /&gt;
 uhci_hcd               20876  0 &lt;br /&gt;
 usbcore               111940  4 wacom,ehci_hcd,uhci_hcd&lt;br /&gt;
 thermal                13384  0 &lt;br /&gt;
 processor              23724  2 speedstep_centrino,thermal&lt;br /&gt;
 fan                     4676  0 &lt;br /&gt;
&lt;br /&gt;
=== /proc/cpuinfo === &lt;br /&gt;
&lt;br /&gt;
 processor	: 0&lt;br /&gt;
 vendor_id	: GenuineIntel&lt;br /&gt;
 cpu family	: 6&lt;br /&gt;
 model		: 13&lt;br /&gt;
 model name	: Intel(R) Pentium(R) M processor 1.86GHz&lt;br /&gt;
 stepping	: 8&lt;br /&gt;
 cpu MHz		: 800.000&lt;br /&gt;
 cache size	: 2048 KB&lt;br /&gt;
 fdiv_bug	: no&lt;br /&gt;
 hlt_bug		: no&lt;br /&gt;
 f00f_bug	: no&lt;br /&gt;
 coma_bug	: no&lt;br /&gt;
 fpu		: yes&lt;br /&gt;
 fpu_exception	: yes&lt;br /&gt;
 cpuid level	: 2&lt;br /&gt;
 wp		: yes&lt;br /&gt;
 flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe nx est tm2&lt;br /&gt;
 bogomips	: 1597.51 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== hdparm -I -tT /dev/sda ===&lt;br /&gt;
&lt;br /&gt;
 /dev/sda:&lt;br /&gt;
 &lt;br /&gt;
 ATA device, with non-removable media&lt;br /&gt;
 	Model Number:       HTS541080G9SA00                         &lt;br /&gt;
 	Serial Number:      MPBDL0X6H9KRTM&lt;br /&gt;
 	Firmware Revision:  MB4IC60H&lt;br /&gt;
 Standards:&lt;br /&gt;
 	Used: ATA/ATAPI-7 T13 1532D revision 1 &lt;br /&gt;
 	Supported: 7 6 5 4 &lt;br /&gt;
 Configuration:&lt;br /&gt;
 	Logical		max	current&lt;br /&gt;
 	cylinders	16383	16383&lt;br /&gt;
 	heads		16	16&lt;br /&gt;
 	sectors/track	63	63&lt;br /&gt;
 	--&lt;br /&gt;
 	CHS current addressable sectors:   16514064&lt;br /&gt;
 	LBA    user addressable sectors:  156301488&lt;br /&gt;
 	LBA48  user addressable sectors:  156301488&lt;br /&gt;
 	device size with M = 1024*1024:       76319 MBytes&lt;br /&gt;
 	device size with M = 1000*1000:       80026 MBytes (80 GB)&lt;br /&gt;
 Capabilities:&lt;br /&gt;
 	LBA, IORDY(can be disabled)&lt;br /&gt;
 	Standby timer values: spec'd by Vendor, no device specific minimum&lt;br /&gt;
 	R/W multiple sector transfer: Max = 16	Current = 16&lt;br /&gt;
 	Advanced power management level: 128 (0x80)&lt;br /&gt;
 	Recommended acoustic management value: 128, current value: 254&lt;br /&gt;
 	DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 *udma5 &lt;br /&gt;
 	     Cycle time: min=120ns recommended=120ns&lt;br /&gt;
 	PIO: pio0 pio1 pio2 pio3 pio4 &lt;br /&gt;
 	     Cycle time: no flow control=240ns  IORDY flow control=120ns&lt;br /&gt;
 Commands/features:&lt;br /&gt;
 	Enabled	Supported:&lt;br /&gt;
 	   *	SMART feature set&lt;br /&gt;
 	    	Security Mode feature set&lt;br /&gt;
 	   *	Power Management feature set&lt;br /&gt;
 	   *	Write cache&lt;br /&gt;
 	   *	Look-ahead&lt;br /&gt;
 	   *	Host Protected Area feature set&lt;br /&gt;
 	   *	WRITE_BUFFER command&lt;br /&gt;
 	   *	READ_BUFFER command&lt;br /&gt;
 	   *	NOP cmd&lt;br /&gt;
 	   *	DOWNLOAD_MICROCODE&lt;br /&gt;
 	   *	Advanced Power Management feature set&lt;br /&gt;
 	    	Power-Up In Standby feature set&lt;br /&gt;
 	   *	SET_FEATURES required to spinup after power up&lt;br /&gt;
 	    	SET_MAX security extension&lt;br /&gt;
 	    	Automatic Acoustic Management feature set&lt;br /&gt;
 	   *	48-bit Address feature set&lt;br /&gt;
 	   *	Device Configuration Overlay feature set&lt;br /&gt;
 	   *	Mandatory FLUSH_CACHE&lt;br /&gt;
 	   *	FLUSH_CACHE_EXT&lt;br /&gt;
 	   *	SMART error logging&lt;br /&gt;
 	   *	SMART self-test&lt;br /&gt;
 	   *	General Purpose Logging feature set&lt;br /&gt;
 	   *	WRITE_{DMA|MULTIPLE}_FUA_EXT&lt;br /&gt;
 	   *	IDLE_IMMEDIATE with UNLOAD&lt;br /&gt;
 	   *	SATA-I signaling speed (1.5Gb/s)&lt;br /&gt;
 	   *	Host-initiated interface power management&lt;br /&gt;
 	   *	Device-initiated interface power management&lt;br /&gt;
 	   *	Software settings preservation&lt;br /&gt;
 Security: &lt;br /&gt;
 	Master password revision code = &lt;br /&gt;
 		supported&lt;br /&gt;
 	not	enabled&lt;br /&gt;
 	not	locked&lt;br /&gt;
 		frozen&lt;br /&gt;
 	not	expired: security count&lt;br /&gt;
 	not	supported: enhanced erase&lt;br /&gt;
 	52min for SECURITY ERASE UNIT. &lt;br /&gt;
 Checksum: correct&lt;br /&gt;
  Timing cached reads:   1140 MB in  2.00 seconds = 569.77 MB/sec&lt;br /&gt;
  Timing buffered disk reads:   74 MB in  3.07 seconds =  24.13 MB/sec&lt;br /&gt;
&lt;br /&gt;
[[Category:Z60m]][[Category:Debian]]&lt;/div&gt;</summary>
		<author><name>Samoht</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Etch_on_a_ThinkPad_Z60m&amp;diff=29256</id>
		<title>Installing Debian Etch on a ThinkPad Z60m</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Etch_on_a_ThinkPad_Z60m&amp;diff=29256"/>
		<updated>2007-04-12T09:54:27Z</updated>

		<summary type="html">&lt;p&gt;Samoht: added hardware &amp;amp; system information&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NOTE|This article is not finished yet!}}&lt;br /&gt;
&lt;br /&gt;
== Special Keys ==&lt;br /&gt;
For the powermanagement-keys (Fn + F4, ...) install acpi-support:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install acpi-support}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For Fn - Arrow-keys I have customized my {{path|~/.xmodmap}}:&lt;br /&gt;
&lt;br /&gt;
 keycode 164 = XF86AudioStop&lt;br /&gt;
 keycode 162 = XF86AudioPlay&lt;br /&gt;
 keycode 153 = XF86AudioNext&lt;br /&gt;
 keycode 144 = XF86AudioPrev&lt;br /&gt;
 keycode 234 = F19&lt;br /&gt;
 keycode 233 = F20&lt;br /&gt;
&lt;br /&gt;
For using the Back/Forward-keys in Firefox go on [http://www.thinkwiki.org/wiki/How_to_get_special_keys_to_work#Firefox here].&lt;br /&gt;
&lt;br /&gt;
== Wireless Networking ==&lt;br /&gt;
&lt;br /&gt;
The module for this chip is in kernel mainline (ipw2200). The only showstopper is the missing firmware.&lt;br /&gt;
&lt;br /&gt;
Get it here: [http://ipw2200.sourceforge.net/firmware.php?fid=7 firmware v3.0]&lt;br /&gt;
&lt;br /&gt;
Extract it: &lt;br /&gt;
&lt;br /&gt;
{{cmdroot| tar zxvf ipw2200-fw-3.0.tgz}}&lt;br /&gt;
&lt;br /&gt;
Move the *.fw files to {{path|/lib/firmware/}}&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|mv *.fw /lib/firmware/}}&lt;br /&gt;
&lt;br /&gt;
Reload the module:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|rmmod ipw2200 &amp;amp;&amp;amp; modprobe ipw2200}}&lt;br /&gt;
&lt;br /&gt;
== CPU Throttling ==&lt;br /&gt;
&lt;br /&gt;
Load the kernelmodule:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|modprobe speedstep_centrino}}&lt;br /&gt;
&lt;br /&gt;
Add line &amp;quot;speedstep_centrino&amp;quot; to {{path|/etc/modules}} to load the module on boot.&lt;br /&gt;
&lt;br /&gt;
Install the throttling-daemon:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install powernowd}}&lt;br /&gt;
&lt;br /&gt;
Done.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Active Protection System==&lt;br /&gt;
&lt;br /&gt;
=== Preparing the kernel ===&lt;br /&gt;
&lt;br /&gt;
To get the headdisk-parking working you have to build your own kernel with the hdaps_protect-patch applied:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Install the prerequisites that we need to compile the new kernel:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install kernel-package ncurses-dev fakeroot wget bzip2}}&lt;br /&gt;
&lt;br /&gt;
Get the recent debian-etch-kernel (2.6.18):&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install linux-tree-2.6.18}}&lt;br /&gt;
&lt;br /&gt;
Go to the sources and unpack them:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|cd /usr/src}}&lt;br /&gt;
{{cmdroot| tar jxvf linux-source-2.6.18.tar.bz2}}&lt;br /&gt;
&lt;br /&gt;
As etchs kernel is 2.6.18-4 its propably a good idea to get the hdaps_protect patch for 2.6.18-3:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot| wget http://www.dresco.co.uk/hdaps/hdaps_protect-2.6.18.3-2.patch}}&lt;br /&gt;
&lt;br /&gt;
Apply the patch:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|cd linux-source-2.6.18/}}&lt;br /&gt;
{{cmdroot|patch -p1 &amp;lt; ../hdaps_protect-2.6.18.3-2.patch}}&lt;br /&gt;
&lt;br /&gt;
Copy the default-config to the sourcetree:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|cp /boot/config-2.6.18-4-486 ./.config}}&lt;br /&gt;
&lt;br /&gt;
Build the kernel &amp;amp; packages:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|make-kpkg clean}}&lt;br /&gt;
{{cmdroot|make-kpkg fakeroot make-kpkg --initrd --revision=thinkpad.1.0 kernel_image}}&lt;br /&gt;
&lt;br /&gt;
Install the new kernel. Grub-menu should be updated automatically.&lt;br /&gt;
&lt;br /&gt;
{{cmdroot| dpkg -i linux-image-2.6.18_thinkpad.1.0_i386.deb }}&lt;br /&gt;
&lt;br /&gt;
Reboot and select the new kernel. Verify with 'uname -a'.&lt;br /&gt;
If all things work you can set the new kernel default in {{path|/boot/grub/menu.lst}} with default $entry-number (0..1..2..)&lt;br /&gt;
&lt;br /&gt;
===Preparing userspace===&lt;br /&gt;
&lt;br /&gt;
Installing the daemon:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install hdapsd}}&lt;br /&gt;
&lt;br /&gt;
To set your harddrive, edit {{path|/etc/default/hdapsd}}:&lt;br /&gt;
&lt;br /&gt;
 # start hdapsd at boottime?&lt;br /&gt;
 '''START=yes'''&lt;br /&gt;
 #&lt;br /&gt;
 # the name of the disk device that hdapsd should monitor.&lt;br /&gt;
 #&lt;br /&gt;
 # usually this is 'hda' the primary master or 'sda'&lt;br /&gt;
 # on SATA ThinkPads.&lt;br /&gt;
 '''DISK=sda'''&lt;br /&gt;
 #&lt;br /&gt;
 # other options to pass to hdapsd.&lt;br /&gt;
 # the -d and -b options are always passed.&lt;br /&gt;
 OPTIONS=&lt;br /&gt;
&lt;br /&gt;
Restart hdapsd:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|/etc/init.d/hdapsd restart}}&lt;br /&gt;
&lt;br /&gt;
You should get something like that in {{path| /var/log/syslog}} when throwing your thinkpad off the table: (No, seriously, shaking it carefully should be sufficient :-) )&lt;br /&gt;
&lt;br /&gt;
 Mar 20 12:25:37 localhost kernel: ata_scsi_issue_protect_fn(): unload support reported by drive..&lt;br /&gt;
 Mar 20 12:25:37 localhost kernel: scsi_protect_queue(): head parked..&lt;br /&gt;
 Mar 20 12:25:38 localhost kernel: scsi_unprotect_queue(): No pending I/O, re-enabling power management..&lt;br /&gt;
 Mar 20 12:25:38 localhost hdapsd[12522]: Tue Mar 20 12:25:38 2007: un-parking&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fingerprint-Reader ==&lt;br /&gt;
&lt;br /&gt;
=== Install userspace-tools ===&lt;br /&gt;
I got the fingerprint reader working with the new [http://thinkfinger.sourceforge.net/ ThinkFinger-drivers] (opensource). They are working much better than the closed-source UPEK drivers and don't have this ugly QT-dialog.&lt;br /&gt;
&lt;br /&gt;
Get some debian-packages from [http://www.rubixlinux.org/debian/thinkfinger/ here] and install them with:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot| dpkg -i *.deb}}&lt;br /&gt;
&lt;br /&gt;
=== Enroll your fingers ===&lt;br /&gt;
Enroll your fingers with:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|tf-tool --add-user &amp;lt;login&amp;gt;}}&lt;br /&gt;
 &lt;br /&gt;
 # tf-tool --add-user name&lt;br /&gt;
 ThinkFinger 0.2.2 (http://thinkfinger.sourceforge.net/)&lt;br /&gt;
 Copyright (C) 2006, 2007 Timo Hoenig &amp;lt;thoenig@suse.de&amp;gt;&lt;br /&gt;
 Initializing... done.&lt;br /&gt;
 Please swipe your finger (successful swipes 3/3, failed swipes: 0)... done.&lt;br /&gt;
 Storing data (/etc/pam_thinkfinger/name.bir)... done.&lt;br /&gt;
&lt;br /&gt;
=== Configuring PAM to use ThinkFinger ===&lt;br /&gt;
Now you can configure pam to use ThinkFinger:&lt;br /&gt;
&lt;br /&gt;
Open {{path|/etc/pam.d/common-auth}}:&lt;br /&gt;
&lt;br /&gt;
 # /etc/pam.d/common-auth - authentication settings common to all services&lt;br /&gt;
 #&lt;br /&gt;
 # This file is included from other service-specific PAM config files,&lt;br /&gt;
 # and should contain a list of the authentication modules that define&lt;br /&gt;
 # the central authentication scheme for use on the system&lt;br /&gt;
 # (e.g., /etc/shadow, LDAP, Kerberos, etc.).  The default is to use the&lt;br /&gt;
 # traditional Unix authentication mechanisms.&lt;br /&gt;
 #&lt;br /&gt;
 '''auth     sufficient     pam_thinkfinger.so'''&lt;br /&gt;
 auth     required     pam_unix.so '''try_first_pass'''&lt;br /&gt;
&lt;br /&gt;
Ready! Works flawlessly with gdm for instance!&lt;br /&gt;
Enroll user 'root' to use your fingerprint for 'sudo'.&lt;br /&gt;
&lt;br /&gt;
== System Information ==&lt;br /&gt;
&lt;br /&gt;
=== uname -a ===&lt;br /&gt;
&lt;br /&gt;
 Linux phooka 2.6.18 #1 PREEMPT Thu Apr 5 13:09:55 CEST 2007 i686 GNU/Linux&lt;br /&gt;
&lt;br /&gt;
=== lspci ===&lt;br /&gt;
&lt;br /&gt;
 00:00.0 Host bridge [0600]: Intel Corporation Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller [8086:2590] (rev 03)&lt;br /&gt;
 	Subsystem: IBM Unknown device [1014:0575]&lt;br /&gt;
 	Flags: bus master, fast devsel, latency 0&lt;br /&gt;
 	Capabilities: [e0] Vendor Specific Information&lt;br /&gt;
 &lt;br /&gt;
 00:02.0 VGA compatible controller [0300]: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller [8086:2592] (rev 03) (prog-if 00 [VGA])&lt;br /&gt;
 	Subsystem: IBM Unknown device [1014:058c]&lt;br /&gt;
 	Flags: bus master, fast devsel, latency 0, IRQ 11&lt;br /&gt;
 	Memory at a0080000 (32-bit, non-prefetchable) [size=512K]&lt;br /&gt;
 	I/O ports at 1800 [size=8]&lt;br /&gt;
 	Memory at c0000000 (32-bit, prefetchable) [size=256M]&lt;br /&gt;
 	Memory at a0040000 (32-bit, non-prefetchable) [size=256K]&lt;br /&gt;
 	Capabilities: [d0] Power Management version 2&lt;br /&gt;
 &lt;br /&gt;
  00:02.1 Display controller [0380]: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller [8086:2792] (rev 03)&lt;br /&gt;
 	Subsystem: IBM Unknown device [1014:058c]&lt;br /&gt;
 	Flags: fast devsel&lt;br /&gt;
 	Memory at 30000000 (32-bit, non-prefetchable) [disabled] [size=512K]&lt;br /&gt;
 	Capabilities: [d0] Power Management version 2  &lt;br /&gt;
 &lt;br /&gt;
 00:1b.0 Audio device [0403]: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller [8086:2668] (rev 03)&lt;br /&gt;
 	Subsystem: IBM Unknown device [1014:05b7]&lt;br /&gt;
 	Flags: bus master, fast devsel, latency 0, IRQ 11&lt;br /&gt;
 	Memory at a0000000 (64-bit, non-prefetchable) [size=16K]&lt;br /&gt;
 	Capabilities: [50] Power Management version 2&lt;br /&gt;
 	Capabilities: [60] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable-&lt;br /&gt;
 	Capabilities: [70] Express Unknown type IRQ 0&lt;br /&gt;
 	Capabilities: [100] Virtual Channel&lt;br /&gt;
 	Capabilities: [130] Unknown (5) &lt;br /&gt;
 &lt;br /&gt;
 00:1c.0 PCI bridge [0604]: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 [8086:2660] (rev 03) (prog-if 00 [Normal decode])&lt;br /&gt;
 	Flags: bus master, fast devsel, latency 0&lt;br /&gt;
 	Bus: primary=00, secondary=02, subordinate=02, sec-latency=0&lt;br /&gt;
 	Memory behind bridge: a0100000-a01fffff&lt;br /&gt;
 	Capabilities: [40] Express Root Port (Slot+) IRQ 0&lt;br /&gt;
 	Capabilities: [80] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable-&lt;br /&gt;
 	Capabilities: [90] Subsystem: IBM Unknown device [1014:05b8]&lt;br /&gt;
 	Capabilities: [a0] Power Management version 2&lt;br /&gt;
 	Capabilities: [100] Virtual Channel&lt;br /&gt;
 	Capabilities: [180] Unknown (5) &lt;br /&gt;
 &lt;br /&gt;
 00:1c.1 PCI bridge [0604]: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 2 [8086:2662] (rev 03) (prog-if 00 [Normal decode])&lt;br /&gt;
 	Flags: bus master, fast devsel, latency 0&lt;br /&gt;
 	Bus: primary=00, secondary=03, subordinate=0a, sec-latency=0&lt;br /&gt;
 	I/O behind bridge: 00002000-00003fff&lt;br /&gt;
 	Memory behind bridge: a2000000-a3ffffff&lt;br /&gt;
 	Prefetchable memory behind bridge: 00000000d0000000-00000000d00fffff&lt;br /&gt;
 	Capabilities: [40] Express Root Port (Slot+) IRQ 0&lt;br /&gt;
 	Capabilities: [80] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable-&lt;br /&gt;
 	Capabilities: [90] Subsystem: IBM Unknown device [1014:05b8]&lt;br /&gt;
 	Capabilities: [a0] Power Management version 2&lt;br /&gt;
 	Capabilities: [100] Virtual Channel&lt;br /&gt;
 	Capabilities: [180] Unknown (5)  &lt;br /&gt;
 &lt;br /&gt;
 00:1c.2 PCI bridge [0604]: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 3 [8086:2664] (rev 03) (prog-if 00 [Normal decode])&lt;br /&gt;
 	Flags: bus master, fast devsel, latency 0&lt;br /&gt;
 	Bus: primary=00, secondary=0b, subordinate=12, sec-latency=0&lt;br /&gt;
 	I/O behind bridge: 00004000-00005fff&lt;br /&gt;
 	Memory behind bridge: a4000000-a5ffffff&lt;br /&gt;
 	Prefetchable memory behind bridge: 00000000b0100000-00000000b01fffff&lt;br /&gt;
 	Capabilities: [40] Express Root Port (Slot+) IRQ 0&lt;br /&gt;
 	Capabilities: [80] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable-&lt;br /&gt;
 	Capabilities: [90] Subsystem: IBM Unknown device [1014:05b8]&lt;br /&gt;
 	Capabilities: [a0] Power Management version 2&lt;br /&gt;
 	Capabilities: [100] Virtual Channel&lt;br /&gt;
 	Capabilities: [180] Unknown (5) &lt;br /&gt;
 &lt;br /&gt;
 00:1c.3 PCI bridge [0604]: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 4 [8086:2666] (rev 03) (prog-if 00 [Normal decode])&lt;br /&gt;
 	Flags: bus master, fast devsel, latency 0&lt;br /&gt;
 	Bus: primary=00, secondary=13, subordinate=13, sec-latency=0&lt;br /&gt;
 	I/O behind bridge: 00006000-00007fff&lt;br /&gt;
 	Memory behind bridge: a6000000-a7ffffff&lt;br /&gt;
 	Prefetchable memory behind bridge: 00000000d0100000-00000000d01fffff&lt;br /&gt;
 	Capabilities: [40] Express Root Port (Slot+) IRQ 0&lt;br /&gt;
 	Capabilities: [80] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable-&lt;br /&gt;
 	Capabilities: [90] Subsystem: IBM Unknown device [1014:05b8]&lt;br /&gt;
 	Capabilities: [a0] Power Management version 2&lt;br /&gt;
 	Capabilities: [100] Virtual Channel&lt;br /&gt;
 	Capabilities: [180] Unknown (5) &lt;br /&gt;
 &lt;br /&gt;
 00:1d.0 USB Controller [0c03]: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 [8086:2658] (rev 03) (prog-if 00 [UHCI])&lt;br /&gt;
 	 Subsystem: IBM Unknown device [1014:0565]&lt;br /&gt;
 	 Flags: bus master, medium devsel, latency 0, IRQ 11&lt;br /&gt;
 	 I/O ports at 1820 [size=32]&lt;br /&gt;
 &lt;br /&gt;
 00:1d.1 USB Controller [0c03]: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 [8086:2659] (rev 03) (prog-if 00 [UHCI])&lt;br /&gt;
 	Subsystem: IBM Unknown device [1014:0565]&lt;br /&gt;
 	Flags: bus master, medium devsel, latency 0, IRQ 11&lt;br /&gt;
 	I/O ports at 1840 [size=32] &lt;br /&gt;
 &lt;br /&gt;
 00:1d.2 USB Controller [0c03]: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 [8086:265a] (rev 03) (prog-if 00 [UHCI])&lt;br /&gt;
 	Subsystem: IBM Unknown device [1014:0565]&lt;br /&gt;
 	Flags: bus master, medium devsel, latency 0, IRQ 11&lt;br /&gt;
 	I/O ports at 1860 [size=32] &lt;br /&gt;
 &lt;br /&gt;
 00:1d.3 USB Controller [0c03]: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 [8086:265b] (rev 03) (prog-if 00 [UHCI])&lt;br /&gt;
 	 Subsystem: IBM Unknown device [1014:0565]&lt;br /&gt;
 	 Flags: bus master, medium devsel, latency 0, IRQ 11&lt;br /&gt;
 	 I/O ports at 1880 [size=32]&lt;br /&gt;
 &lt;br /&gt;
 00:1d.7 USB Controller [0c03]: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller [8086:265c] (rev 03) (prog-if 20 [EHCI])&lt;br /&gt;
 	 Subsystem: IBM Unknown device [1014:0566]&lt;br /&gt;
 	 Flags: bus master, medium devsel, latency 0, IRQ 11&lt;br /&gt;
 	 Memory at a0004000 (32-bit, non-prefetchable) [size=1K]&lt;br /&gt;
 	 Capabilities: [50] Power Management version 2&lt;br /&gt;
 	 Capabilities: [58] Debug port &lt;br /&gt;
 &lt;br /&gt;
 00:1e.0 PCI bridge [0604]: Intel Corporation 82801 Mobile PCI Bridge [8086:2448] (rev d3) (prog-if 01 [Subtractive decode])&lt;br /&gt;
 	 Flags: bus master, fast devsel, latency 0&lt;br /&gt;
 	 Bus: primary=00, secondary=14, subordinate=17, sec-latency=64&lt;br /&gt;
 	 I/O behind bridge: 00008000-0000bfff&lt;br /&gt;
 	 Memory behind bridge: a8000000-b00fffff&lt;br /&gt;
 	 Prefetchable memory behind bridge: 00000000d8000000-00000000dfffffff&lt;br /&gt;
 	 Capabilities: [50] Subsystem: Gammagraphx, Inc. Unknown device [0000:0000]&lt;br /&gt;
 &lt;br /&gt;
 00:1f.0 ISA bridge [0601]: Intel Corporation 82801FBM (ICH6M) LPC Interface Bridge [8086:2641] (rev 03)&lt;br /&gt;
 	Subsystem: IBM Unknown device [1014:0568]&lt;br /&gt;
 	Flags: bus master, medium devsel, latency 0 &lt;br /&gt;
  &lt;br /&gt;
 00:1f.2 IDE interface [0101]: Intel Corporation 82801FBM (ICH6M) SATA Controller [8086:2653] (rev 03) (prog-if 80 [Master])&lt;br /&gt;
 	Subsystem: IBM Unknown device [1014:056a]&lt;br /&gt;
 	Flags: bus master, 66MHz, medium devsel, latency 0&lt;br /&gt;
 	I/O ports at &amp;lt;unassigned&amp;gt;&lt;br /&gt;
 	I/O ports at &amp;lt;unassigned&amp;gt;&lt;br /&gt;
 	I/O ports at &amp;lt;unassigned&amp;gt;&lt;br /&gt;
 	I/O ports at &amp;lt;unassigned&amp;gt;&lt;br /&gt;
 	I/O ports at 1810 [size=16]&lt;br /&gt;
 	Capabilities: [70] Power Management version 2 &lt;br /&gt;
 &lt;br /&gt;
 00:1f.3 SMBus [0c05]: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller [8086:266a] (rev 03)&lt;br /&gt;
 	Subsystem: IBM Unknown device [1014:056b]&lt;br /&gt;
 	Flags: medium devsel, IRQ 11&lt;br /&gt;
 	I/O ports at 18a0 [size=32]&lt;br /&gt;
 &lt;br /&gt;
 02:00.0 Ethernet controller [0200]: Broadcom Corporation NetXtreme BCM5751M Gigabit Ethernet PCI Express [14e4:167d] (rev 11)&lt;br /&gt;
 	Subsystem: IBM Unknown device [1014:0577]&lt;br /&gt;
 	Flags: bus master, fast devsel, latency 0, IRQ 11&lt;br /&gt;
 	Memory at a0100000 (64-bit, non-prefetchable) [size=64K]&lt;br /&gt;
 	Capabilities: [48] Power Management version 2&lt;br /&gt;
 	Capabilities: [50] Vital Product Data&lt;br /&gt;
 	Capabilities: [58] Message Signalled Interrupts: Mask- 64bit+ Queue=0/3 Enable-&lt;br /&gt;
 	Capabilities: [d0] Express Endpoint IRQ 0&lt;br /&gt;
 	Capabilities: [100] Advanced Error Reporting&lt;br /&gt;
 	Capabilities: [13c] Virtual Channel&lt;br /&gt;
 &lt;br /&gt;
 14:00.0 CardBus bridge [0607]: Ricoh Co Ltd RL5c476 II [1180:0476] (rev b3)&lt;br /&gt;
 	Subsystem: IBM Unknown device [1014:056c]&lt;br /&gt;
 	Flags: bus master, medium devsel, latency 64, IRQ 11&lt;br /&gt;
 	Memory at b0000000 (32-bit, non-prefetchable) [size=4K]&lt;br /&gt;
 	Bus: primary=14, secondary=15, subordinate=16, sec-latency=176&lt;br /&gt;
 	Memory window 0: d8000000-d9fff000 (prefetchable)&lt;br /&gt;
 	Memory window 1: a8000000-a9fff000 (prefetchable)&lt;br /&gt;
 	I/O window 0: 00008000-000080ff&lt;br /&gt;
 	I/O window 1: 00008400-000084ff&lt;br /&gt;
 	16-bit legacy interface ports at 0001&lt;br /&gt;
 &lt;br /&gt;
 14:00.1 FireWire (IEEE 1394) [0c00]: Ricoh Co Ltd R5C552 IEEE 1394 Controller [1180:0552] (rev 08) (prog-if 10 [OHCI])&lt;br /&gt;
 	Subsystem: IBM ThinkPad A/T/X Series [1014:0511]&lt;br /&gt;
 	Flags: bus master, medium devsel, latency 64, IRQ 11&lt;br /&gt;
 	Memory at b0001000 (32-bit, non-prefetchable) [size=2K]&lt;br /&gt;
 	Capabilities: [dc] Power Management version 2&lt;br /&gt;
 &lt;br /&gt;
 14:00.2 Generic system peripheral [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter [1180:0822] (rev 17)&lt;br /&gt;
 	Subsystem: IBM Thinkpad Z60m [1014:0598]&lt;br /&gt;
 	Flags: bus master, medium devsel, latency 64, IRQ 11&lt;br /&gt;
 	Memory at b0001800 (32-bit, non-prefetchable) [size=256]&lt;br /&gt;
 	Capabilities: [80] Power Management version 2&lt;br /&gt;
 &lt;br /&gt;
 14:00.3 System peripheral [0880]: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter [1180:0592] (rev 08)&lt;br /&gt;
 	Subsystem: IBM Unknown device [1014:0596]&lt;br /&gt;
 	Flags: medium devsel, IRQ 11&lt;br /&gt;
 	Memory at b0001c00 (32-bit, non-prefetchable) [size=256]&lt;br /&gt;
 	Capabilities: [80] Power Management version 2&lt;br /&gt;
  &lt;br /&gt;
 14:02.0 Network controller [0280]: Intel Corporation PRO/Wireless 2915ABG Network Connection [8086:4224] (rev 05)&lt;br /&gt;
 	Subsystem: Intel Corporation Unknown device [8086:1011]&lt;br /&gt;
 	Flags: bus master, medium devsel, latency 64, IRQ 11&lt;br /&gt;
 	Memory at b0002000 (32-bit, non-prefetchable) [size=4K]&lt;br /&gt;
 	Capabilities: [dc] Power Management version 2&lt;br /&gt;
&lt;br /&gt;
=== lsmod ===&lt;br /&gt;
&lt;br /&gt;
 Module                  Size  Used by&lt;br /&gt;
 wacom                  15168  0 &lt;br /&gt;
 i915                   17344  2 &lt;br /&gt;
 drm                    61140  3 i915&lt;br /&gt;
 binfmt_misc            10568  1 &lt;br /&gt;
 ipv6                  221472  10 &lt;br /&gt;
 ieee80211_crypt_ccmp     6784  3 &lt;br /&gt;
 cpufreq_ondemand        5744  0 &lt;br /&gt;
 speedstep_centrino      7120  1 &lt;br /&gt;
 cpufreq_userspace       3860  1 &lt;br /&gt;
 freq_table              4292  1 speedstep_centrino&lt;br /&gt;
 ac                      5060  0 &lt;br /&gt;
 battery                 9476  0 &lt;br /&gt;
 ibm_acpi               24320  0 &lt;br /&gt;
 hdaps                   8816  0 &lt;br /&gt;
 sbp2                   20744  0 &lt;br /&gt;
 ieee1394               86008  1 sbp2&lt;br /&gt;
 loop                   14536  0 &lt;br /&gt;
 tsdev                   7360  0 &lt;br /&gt;
 joydev                  8960  0 &lt;br /&gt;
 snd_hda_intel          16916  0 &lt;br /&gt;
 snd_hda_codec         137728  1 snd_hda_intel&lt;br /&gt;
 ipw2200                93568  0 &lt;br /&gt;
 snd_pcm_oss            38112  0 &lt;br /&gt;
 ieee80211              29064  1 ipw2200&lt;br /&gt;
 ieee80211_crypt         5824  2 ieee80211_crypt_ccmp,ieee80211&lt;br /&gt;
 snd_mixer_oss          15168  1 snd_pcm_oss&lt;br /&gt;
 firmware_class          9536  1 ipw2200&lt;br /&gt;
 snd_pcm                68616  3 snd_hda_intel,snd_hda_codec,snd_pcm_oss&lt;br /&gt;
 snd_timer              20868  1 snd_pcm&lt;br /&gt;
 sdhci                  16140  0 &lt;br /&gt;
 mmc_core               22608  1 sdhci&lt;br /&gt;
 i2c_i801                7308  0 &lt;br /&gt;
 snd                    46564  6 snd_hda_intel,snd_hda_codec,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_timer&lt;br /&gt;
 soundcore               9248  1 snd&lt;br /&gt;
 i2c_core               19792  1 i2c_i801&lt;br /&gt;
 psmouse                34568  0 &lt;br /&gt;
 snd_page_alloc          9480  2 snd_hda_intel,snd_pcm&lt;br /&gt;
 intel_agp              20892  1 &lt;br /&gt;
 rtc                    12276  0 &lt;br /&gt;
 evdev                   8896  1 &lt;br /&gt;
 agpgart                29360  3 drm,intel_agp&lt;br /&gt;
 sg                     31068  0 &lt;br /&gt;
 sr_mod                 15716  0 &lt;br /&gt;
 cdrom                  32416  1 sr_mod&lt;br /&gt;
 ext3                  117640  3 &lt;br /&gt;
 jbd                    51816  1 ext3&lt;br /&gt;
 mbcache                 8260  1 ext3&lt;br /&gt;
 sha256                 10944  0 &lt;br /&gt;
 aes                    28032  5 &lt;br /&gt;
 dm_crypt               10696  1 &lt;br /&gt;
 dm_mirror              18704  0 &lt;br /&gt;
 dm_snapshot            15324  0 &lt;br /&gt;
 dm_mod                 49848  12 dm_crypt,dm_mirror,dm_snapshot&lt;br /&gt;
 ide_generic             1280  0 [permanent]&lt;br /&gt;
 sd_mod                 18896  3 &lt;br /&gt;
 generic                 5316  0 [permanent]&lt;br /&gt;
 ide_core              109040  2 ide_generic,generic&lt;br /&gt;
 ata_piix               13384  2 &lt;br /&gt;
 ahci                   17220  0 &lt;br /&gt;
 libata                 90200  2 ata_piix,ahci&lt;br /&gt;
 scsi_mod              125256  6 sbp2,sg,sr_mod,sd_mod,ahci,libata&lt;br /&gt;
 tg3                    94020  0 &lt;br /&gt;
 ehci_hcd               27848  0 &lt;br /&gt;
 uhci_hcd               20876  0 &lt;br /&gt;
 usbcore               111940  4 wacom,ehci_hcd,uhci_hcd&lt;br /&gt;
 thermal                13384  0 &lt;br /&gt;
 processor              23724  2 speedstep_centrino,thermal&lt;br /&gt;
 fan                     4676  0 &lt;br /&gt;
&lt;br /&gt;
=== /proc/cpuinfo === &lt;br /&gt;
&lt;br /&gt;
 processor	: 0&lt;br /&gt;
 vendor_id	: GenuineIntel&lt;br /&gt;
 cpu family	: 6&lt;br /&gt;
 model		: 13&lt;br /&gt;
 model name	: Intel(R) Pentium(R) M processor 1.86GHz&lt;br /&gt;
 stepping	: 8&lt;br /&gt;
 cpu MHz		: 800.000&lt;br /&gt;
 cache size	: 2048 KB&lt;br /&gt;
 fdiv_bug	: no&lt;br /&gt;
 hlt_bug		: no&lt;br /&gt;
 f00f_bug	: no&lt;br /&gt;
 coma_bug	: no&lt;br /&gt;
 fpu		: yes&lt;br /&gt;
 fpu_exception	: yes&lt;br /&gt;
 cpuid level	: 2&lt;br /&gt;
 wp		: yes&lt;br /&gt;
 flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe nx est tm2&lt;br /&gt;
 bogomips	: 1597.51 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== hdparm -I -tT /dev/sda ===&lt;br /&gt;
&lt;br /&gt;
 /dev/sda:&lt;br /&gt;
 &lt;br /&gt;
 ATA device, with non-removable media&lt;br /&gt;
 	Model Number:       HTS541080G9SA00                         &lt;br /&gt;
 	Serial Number:      MPBDL0X6H9KRTM&lt;br /&gt;
 	Firmware Revision:  MB4IC60H&lt;br /&gt;
 Standards:&lt;br /&gt;
 	Used: ATA/ATAPI-7 T13 1532D revision 1 &lt;br /&gt;
 	Supported: 7 6 5 4 &lt;br /&gt;
 Configuration:&lt;br /&gt;
 	Logical		max	current&lt;br /&gt;
 	cylinders	16383	16383&lt;br /&gt;
 	heads		16	16&lt;br /&gt;
 	sectors/track	63	63&lt;br /&gt;
 	--&lt;br /&gt;
 	CHS current addressable sectors:   16514064&lt;br /&gt;
 	LBA    user addressable sectors:  156301488&lt;br /&gt;
 	LBA48  user addressable sectors:  156301488&lt;br /&gt;
 	device size with M = 1024*1024:       76319 MBytes&lt;br /&gt;
 	device size with M = 1000*1000:       80026 MBytes (80 GB)&lt;br /&gt;
 Capabilities:&lt;br /&gt;
 	LBA, IORDY(can be disabled)&lt;br /&gt;
 	Standby timer values: spec'd by Vendor, no device specific minimum&lt;br /&gt;
 	R/W multiple sector transfer: Max = 16	Current = 16&lt;br /&gt;
 	Advanced power management level: 128 (0x80)&lt;br /&gt;
 	Recommended acoustic management value: 128, current value: 254&lt;br /&gt;
 	DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 *udma5 &lt;br /&gt;
 	     Cycle time: min=120ns recommended=120ns&lt;br /&gt;
 	PIO: pio0 pio1 pio2 pio3 pio4 &lt;br /&gt;
 	     Cycle time: no flow control=240ns  IORDY flow control=120ns&lt;br /&gt;
 Commands/features:&lt;br /&gt;
 	Enabled	Supported:&lt;br /&gt;
 	   *	SMART feature set&lt;br /&gt;
 	    	Security Mode feature set&lt;br /&gt;
 	   *	Power Management feature set&lt;br /&gt;
 	   *	Write cache&lt;br /&gt;
 	   *	Look-ahead&lt;br /&gt;
 	   *	Host Protected Area feature set&lt;br /&gt;
 	   *	WRITE_BUFFER command&lt;br /&gt;
 	   *	READ_BUFFER command&lt;br /&gt;
 	   *	NOP cmd&lt;br /&gt;
 	   *	DOWNLOAD_MICROCODE&lt;br /&gt;
 	   *	Advanced Power Management feature set&lt;br /&gt;
 	    	Power-Up In Standby feature set&lt;br /&gt;
 	   *	SET_FEATURES required to spinup after power up&lt;br /&gt;
 	    	SET_MAX security extension&lt;br /&gt;
 	    	Automatic Acoustic Management feature set&lt;br /&gt;
 	   *	48-bit Address feature set&lt;br /&gt;
 	   *	Device Configuration Overlay feature set&lt;br /&gt;
 	   *	Mandatory FLUSH_CACHE&lt;br /&gt;
 	   *	FLUSH_CACHE_EXT&lt;br /&gt;
 	   *	SMART error logging&lt;br /&gt;
 	   *	SMART self-test&lt;br /&gt;
 	   *	General Purpose Logging feature set&lt;br /&gt;
 	   *	WRITE_{DMA|MULTIPLE}_FUA_EXT&lt;br /&gt;
 	   *	IDLE_IMMEDIATE with UNLOAD&lt;br /&gt;
 	   *	SATA-I signaling speed (1.5Gb/s)&lt;br /&gt;
 	   *	Host-initiated interface power management&lt;br /&gt;
 	   *	Device-initiated interface power management&lt;br /&gt;
 	   *	Software settings preservation&lt;br /&gt;
 Security: &lt;br /&gt;
 	Master password revision code = &lt;br /&gt;
 		supported&lt;br /&gt;
 	not	enabled&lt;br /&gt;
 	not	locked&lt;br /&gt;
 		frozen&lt;br /&gt;
 	not	expired: security count&lt;br /&gt;
 	not	supported: enhanced erase&lt;br /&gt;
 	52min for SECURITY ERASE UNIT. &lt;br /&gt;
 Checksum: correct&lt;br /&gt;
  Timing cached reads:   1140 MB in  2.00 seconds = 569.77 MB/sec&lt;br /&gt;
  Timing buffered disk reads:   74 MB in  3.07 seconds =  24.13 MB/sec&lt;br /&gt;
&lt;br /&gt;
[[Category:Z60m]][[Category:Debian]]&lt;/div&gt;</summary>
		<author><name>Samoht</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Issues_with_the_Wiki&amp;diff=28872</id>
		<title>Issues with the Wiki</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Issues_with_the_Wiki&amp;diff=28872"/>
		<updated>2007-03-21T09:32:19Z</updated>

		<summary type="html">&lt;p&gt;Samoht: Problem with template cmdroot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is a provisorium. It's a list of things that are going wrong after the update to help [[User:akw|Akw]] track and fix them.&lt;br /&gt;
&lt;br /&gt;
== Troubles encountered ==&lt;br /&gt;
&lt;br /&gt;
'''Problem with cmdroot'''&lt;br /&gt;
&lt;br /&gt;
Following String is not handled correct by template cmdroot:&lt;br /&gt;
&amp;quot;fakeroot make-kpkg --initrd --revision=thinkpad.1.0 kernel_image&amp;quot;&lt;br /&gt;
&lt;br /&gt;
see here:&lt;br /&gt;
{{cmdroot|fakeroot make-kpkg --initrd --revision=thinkpad.1.0 kernel_image}}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Can not open page to edit without introducing modifications'''&lt;br /&gt;
&lt;br /&gt;
If I open the [[X31]] model page and without touching anything I hit preview, the div token is decomposed and appears in the preview page, and of course, the photo is not in the right place.&lt;br /&gt;
 &lt;br /&gt;
:[[User:Ungoliant|Ungoliant]] 19:24, 20 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Can not upload SVG'''&lt;br /&gt;
 I get the upload warning:&lt;br /&gt;
 &amp;quot;.svg&amp;quot; is not a recommended image file format.&lt;br /&gt;
:[[User:Matt|Matt]] 14:02, 3 December 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Is there a way to contact a registered user, for example to confirm information.  I have found that AdamZ claims that the X20 is bootable via USB.  My information indicates the contrary.  Isn't there a way to contact a registered user through MediaWiki?  --[[User:Rolf|Rolf]] 00:30, 9 September 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
php error encountered when attempting to update Bios Upgrade page:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 133781 bytes) in /home/akw/htdocs/thinkwiki.org/mediawiki-1.5.6/includes/MagicWord.php on line 250&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
--[[User:roadends|roadends]] 02:30, 20 March 2006 (EDT)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
* [[ThinkWiki:SpamBlackList]] does not appear to work anymore&lt;br /&gt;
--[[User:Tonko|Tonko]] 03:40, 11 March 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
You can't (easliy do a multiline {{cmdresult|cmdresult}}, can you? See:&lt;br /&gt;
&lt;br /&gt;
{{cmdresult|foo&lt;br /&gt;
bar&lt;br /&gt;
baz}}&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
{{cmdresult|foo&lt;br /&gt;
  bar (after whitespace)&lt;br /&gt;
  baz (after whitespace)}}&lt;br /&gt;
&lt;br /&gt;
This works (but is not so nice)&lt;br /&gt;
&lt;br /&gt;
{{cmdresult|foo&lt;br /&gt;
&lt;br /&gt;
bar (after empty line)&lt;br /&gt;
&lt;br /&gt;
baz (after empty line)}}&lt;br /&gt;
&lt;br /&gt;
Any suggestions?&lt;br /&gt;
&lt;br /&gt;
[[User:Pebolle|Paul Bolle]] 10:27, 24 January 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
I think the best way is to use single cmdresult calls for each line and prefix them with a colon. Like so:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
:{{cmdresult|foo}}&lt;br /&gt;
:{{cmdresult|bar}}&lt;br /&gt;
:{{cmdresult|baz}}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;, which results in&lt;br /&gt;
:{{cmdresult|foo}}&lt;br /&gt;
:{{cmdresult|bar}}&lt;br /&gt;
:{{cmdresult|baz}}&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can use &amp;amp;lt;br /&amp;amp;gt; at the ende of each line within one call, like this:&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;{{cmdresult|foo&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
bar&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
baz}}&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
, which will result in&lt;br /&gt;
&lt;br /&gt;
{{cmdresult|foo&amp;lt;br /&amp;gt;&lt;br /&gt;
bar&amp;lt;br /&amp;gt;&lt;br /&gt;
baz}}&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 12:13, 24 January 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
I have just got a MySQL problem when I edited a page, a query was not to its liking. It is quite easy to reproduce, just edit any page ;-)&lt;br /&gt;
&lt;br /&gt;
History did get updated, and the page was also updated, so I have no idea what broke when that query failed.&lt;br /&gt;
&lt;br /&gt;
 A database query syntax error has occurred. This may indicate a bug in the software. The last attempted database query was:&lt;br /&gt;
 (SQL query hidden)&lt;br /&gt;
 from within function &amp;quot;SearchMySQL4::update&amp;quot;. MySQL returned error &amp;quot;1062: Duplicate entry ' ' for key 3 (localhost)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[User:Hmh|hmh]] 2006-02-17, 20:12 UTC&lt;br /&gt;
----&lt;br /&gt;
More database problems, this time the search function:&lt;br /&gt;
&lt;br /&gt;
 A database query syntax error has occurred. This may indicate a bug in the software. The last attempted database query was:&lt;br /&gt;
 (SQL query hidden)&lt;br /&gt;
 from within function &amp;quot;&amp;quot;. MySQL returned error &amp;quot;145: Table './thinkwiki/searchindex' is marked as crashed and should be repaired (localhost)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[User:Hmh|hmh]] 2006-02-21, 15:07 UTC&lt;br /&gt;
----&lt;br /&gt;
The server time would appear to be off a lot, is it possible to setup ntpd, or to run ntpdate every hour or so using cron?&lt;br /&gt;
--[[User:Tonko|Tonko]] 05:11, 22 February 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
Search still seems broken, searching for DVI brings up nothing.&lt;br /&gt;
--[[User:Jumpfroggy|Jumpfroggy]] 00:03, 17 March 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
== Troubles confirmed ==&lt;br /&gt;
* [[Special:Benchmarks]] doesn't find it's data&lt;br /&gt;
&lt;br /&gt;
== Fixed problems ==&lt;br /&gt;
* http://thinkwiki.org/ reverted again to the default MediaWiki theme. '''Cannot reproduce this one (15.01.06, akw)'''&lt;br /&gt;
* File upload is disabled - '''Argh. Fixed (15.01.06, akw)'''&lt;br /&gt;
* URL contains index.php(/) before the actual page name - '''This has been fixed (28.05.05, akw)'''&lt;br /&gt;
* The categories page doesn't link to [[:Category:ThinkWiki]] - '''Fixed (29.05.05, akw)'''&lt;br /&gt;
* http://thinkwiki.org/ is broken (no www prefix), this was working before - '''Fixed (29.05.05, akw)'''&lt;br /&gt;
* On logging in a requester pops up asking to confirm a password change - '''seems like it's implicitly been fixed (29.05.2005, wyrfel)'''&lt;br /&gt;
* In Navigation bar, &amp;quot;&amp;amp;amp;lt;download&amp;amp;amp;gt;&amp;quot; leads to [http://www.thinkwiki.org/wiki/--error:_link_target_missing--] - '''fixed (30.06.2005)'''&lt;br /&gt;
* direct link to [[:Category:Models]] missing in Navigation '''Fixed (10.07.05, akw)'''&lt;br /&gt;
* It seems the Wiki has trouble updating the edit history, i'm getting mysql query errors on saving pages. The pages get saved, however. '''Fixed (12.05.2005)'''&lt;/div&gt;</summary>
		<author><name>Samoht</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_protect_the_harddisk_through_APS&amp;diff=28871</id>
		<title>How to protect the harddisk through APS</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_protect_the_harddisk_through_APS&amp;diff=28871"/>
		<updated>2007-03-21T09:20:28Z</updated>

		<summary type="html">&lt;p&gt;Samoht: Added link to my debian instructions&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;
This page tells you how to make the [[Active Protection System]] work under Linux to protect your harddrive from damage in case of a notebook drop or other kind of impact while it is running.&lt;br /&gt;
&lt;br /&gt;
Specific instructions for {{Fedora}} can be found [[Installing_Fedora_Core_5_on_a_ThinkPad_X41_Tablet#Harddrive_Active_Protection_System_.28HDAPS.29|here]].&lt;br /&gt;
&lt;br /&gt;
For {{Debian}} (Etch) have a look at [[Installing_Debian_Etch_on_a_ThinkPad_Z60m#Active_Protection_System|this]].&lt;br /&gt;
&lt;br /&gt;
== How APS works in Linux ==&lt;br /&gt;
APS in Linux consists of four components on the software side:&lt;br /&gt;
* The [[HDAPS]] driver (included in recent kernels). It exports a sysfs interface providing the acceleration values.&lt;br /&gt;
* The [http://www.dresco.co.uk/hdaps/ &amp;lt;tt&amp;gt;hdaps_protect&amp;lt;/tt&amp;gt;] disk protection kernel patch, which exports a sysfs interface that enables an ide or sata disk to be protected by a userspace process.&lt;br /&gt;
* The [http://www.dresco.co.uk/hdaps/ &amp;lt;tt&amp;gt;hdapsd&amp;lt;/tt&amp;gt;] disk protection userspace daemon. It monitors the acceleration values through the HDAPS interface and automatically initiates disk protection through the hdaps_protect interface - given that the movement exceeds a user specified threshold.&lt;br /&gt;
* Optional: the [http://roy.marples.name/node/269 &amp;lt;tt&amp;gt;khdapsmonitor KDE System Tray applet&amp;lt;/tt&amp;gt;] or the [http://www.dresco.co.uk/hdaps/ &amp;lt;tt&amp;gt;gnome-hdaps-applet&amp;lt;/tt&amp;gt;]. These applets provide a visual indication of the disk protection status and also a graphical interface for adjusting configuration options for &amp;lt;tt&amp;gt;hdapsd&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
As mentioned above, the hdaps kernel driver found in recent kernels is only responsible for reading the accelerometer data and exporting it through the sysfs interface. &lt;br /&gt;
&lt;br /&gt;
In order to use this information to protect the disk, some additional steps are required.&lt;br /&gt;
&lt;br /&gt;
* Download and build the latest hdaps_protect disk protection kernel patches.&lt;br /&gt;
* Enable the drivers in the kernel (requires kernel rebuild).&lt;br /&gt;
* Download, build and configure the hdapsd userspace daemon.&lt;br /&gt;
* Download and build one of the applets to get a real-time representation of the disk protection status.&lt;br /&gt;
&lt;br /&gt;
===Getting the files===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! Latest Sources&lt;br /&gt;
|&lt;br /&gt;
See [[HDAPS#Disk_head_parking|HDAPS - Disk head parking]]&lt;br /&gt;
|-&lt;br /&gt;
! {{Debian}}&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;tt&amp;gt;hdapsd&amp;lt;/tt&amp;gt; package: http://packages.debian.org/unstable/misc/hdapsd&lt;br /&gt;
|-&lt;br /&gt;
! {{Fedora}}&lt;br /&gt;
| see instructions [[Installing_Fedora_Core_5_on_a_ThinkPad_X41_Tablet#Harddrive_Active_Protection_System_.28HDAPS.29|here]]&lt;br /&gt;
*kernel RPM packages including &amp;lt;tt&amp;gt;hdaps_protect&amp;lt;/tt&amp;gt;: http://www.dresco.co.uk/hdaps/ &lt;br /&gt;
*kernel RPM packages including &amp;lt;tt&amp;gt;hdaps_protect&amp;lt;/tt&amp;gt; and [[Software Suspend 2]]: http://mhensler.de/swsusp/download/yum/development/fc5/ (build 2084_2 and up)&lt;br /&gt;
|-&lt;br /&gt;
! {{Gentoo}}&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;tt&amp;gt;hdapsd&amp;lt;/tt&amp;gt;: [http://sources.gentoo.org/viewcvs.py/gentoo-x86/app-laptop/hdapsd available]&lt;br /&gt;
*&amp;lt;tt&amp;gt;khdapsmonitor&amp;lt;/tt&amp;gt;: [http://sources.gentoo.org/viewcvs.py/gentoo-x86/app-laptop/khdapsmonitor available]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Adding kernel support ===&lt;br /&gt;
A kernel patch is required for disk head parking and queue freezing.&lt;br /&gt;
&lt;br /&gt;
==== Manually patching and compiling a kernel ====&lt;br /&gt;
As root, do:&lt;br /&gt;
:{{cmdroot|cd /usr/src/linux}}&lt;br /&gt;
:{{cmdroot|patch -p1 &amp;lt; ~/hdaps_protect.20060409.patch}}&lt;br /&gt;
:{{cmdroot|make clean}}&lt;br /&gt;
:{{cmdroot|make}}&lt;br /&gt;
:{{cmdroot|make modules_install}}&lt;br /&gt;
&lt;br /&gt;
=== Installing hdapsd ===&lt;br /&gt;
==== Manual compilation from source ====&lt;br /&gt;
* Download the &amp;lt;tt&amp;gt;hdapsd&amp;lt;/tt&amp;gt; sources (see above)&lt;br /&gt;
* Compile using {{cmdroot|gcc -o hdapsd hdapsd-*.c}}&lt;br /&gt;
* Run {{cmdroot|./hdapsd -d sda -s 12 -a}} (replace &amp;lt;tt&amp;gt;sda&amp;lt;/tt&amp;gt; with your hard disk device; run {{cmdroot|./hdapsd}} without arguments for help)&lt;br /&gt;
&lt;br /&gt;
==== Gentoo ====&lt;br /&gt;
{{NOTE|1=hdapsd was added to the official portage tree on the 26th June 2006.}}&lt;br /&gt;
{{Gentoo}} users can try the ebuild attached to [http://bugs.gentoo.org/show_bug.cgi?id=119845 gentoo bug 119845].&lt;br /&gt;
*Add hdapsd support in your kernel: device drivers -&amp;gt; hardware monitoring -&amp;gt; ... (you need it as a module if you want to use tp_smapi and hdaps, see [[Tp_smapi]])&lt;br /&gt;
*Download the ebuild, use same ebuild date as the kernel-patch.&lt;br /&gt;
*Make known the portage an extern ebuild path and add the following line to {{path|/etc/make.conf}}:&lt;br /&gt;
 PORTDIR_OVERLAY=&amp;quot;/usr/local/portage/&amp;quot; (or any other location)&lt;br /&gt;
*Create directory {{path|/usr/local/portage}} and {{path|/usr/local/portage/app-laptop/}}&lt;br /&gt;
*Copy the downloaded ebuild to {{path|/usr/local/portage/app-laptop}} ({{path|/usr/local/portage/app-laptop/hdapsd}} should now exists)&lt;br /&gt;
*Make portage known the new ebuild and creat digist with:&lt;br /&gt;
:{{cmdroot|ebuild /usr/local/portage/app-laptop/hdapsd/hdapsd-20060326.ebuild digest}}&lt;br /&gt;
*Optional: Copy source file to portage distfiles (if no internet connection is available): &lt;br /&gt;
:{{cmdroot|cp hdapsd-20060326.c /usr/portage/distfiles}}&lt;br /&gt;
*Accept the x86 keyword for this package: {{cmdroot|echo &amp;quot;app-laptop/hdapsd ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords}}&lt;br /&gt;
*Install hdapsd with: {{cmdroot|emerge hdapsd}}.&lt;br /&gt;
*Edit {{path|/etc/conf.d/hdapsd}} (change your harddrive if neccessary: mine is sda, and change the value from 5, 5 is to sensitive, 12 is a good value in my opinion).&lt;br /&gt;
*start deamon with: {{cmdroot|/etc/init.d/hdapsd start}}&lt;br /&gt;
*Optional: add to default runlevel: {{cmdroot|rc-update add hdapsd default, rc-update add hdapsd battery}}&lt;br /&gt;
Write an eMail to abartel[Ã¤d]htwm.de, if you want to get my hdapsd-20060326.ebuild and please upload it.&lt;br /&gt;
&lt;br /&gt;
=== Building an applet ===&lt;br /&gt;
====hdaps-gl====&lt;br /&gt;
*Make sure you have installed hdaps [and loaded] and ?opengl?&lt;br /&gt;
*Download &amp;lt;tt&amp;gt;hdaps-gl-0.0.5&amp;lt;/tt&amp;gt; from the web.&lt;br /&gt;
*Extract files to {{path|/opt/hdaps-gl}}.&lt;br /&gt;
*{{cmdroot|make}}&lt;br /&gt;
*Start the applet: {{cmdroot|./hdaps-gl}}&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
See the [[Problem with APS harddisk parking]] page for troubleshooting APS issues.&lt;br /&gt;
{{NOTE|1=If you use [[tp_smapi]], remember to include the option &amp;lt;tt&amp;gt;HDAPS=1&amp;lt;/tt&amp;gt; when [[Tp_smapi#Installation|installing tp_smapi]]. Also, you might need to build the hdaps driver as module.}}&lt;br /&gt;
&lt;br /&gt;
==Further Information==&lt;br /&gt;
*Additonal information and support is available through the [[Mailinglists#HDAPS Developers Mailinglist|hdaps-devel]] mailinglist and its archive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:R50]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]] [[Category:Z61m]]&lt;/div&gt;</summary>
		<author><name>Samoht</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Etch_on_a_ThinkPad_Z60m&amp;diff=28870</id>
		<title>Installing Debian Etch on a ThinkPad Z60m</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Etch_on_a_ThinkPad_Z60m&amp;diff=28870"/>
		<updated>2007-03-21T09:15:25Z</updated>

		<summary type="html">&lt;p&gt;Samoht: added special keys&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NOTE|This article is not finished yet!}}&lt;br /&gt;
&lt;br /&gt;
== Special Keys ==&lt;br /&gt;
For the powermanagement-keys (Fn + F4, ...) install acpi-support:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install acpi-support}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For Fn - Arrow-keys I have customized my {{path|~/.xmodmap}}:&lt;br /&gt;
&lt;br /&gt;
 keycode 164 = XF86AudioStop&lt;br /&gt;
 keycode 162 = XF86AudioPlay&lt;br /&gt;
 keycode 153 = XF86AudioNext&lt;br /&gt;
 keycode 144 = XF86AudioPrev&lt;br /&gt;
 keycode 234 = F19&lt;br /&gt;
 keycode 233 = F20&lt;br /&gt;
&lt;br /&gt;
For using the Back/Forward-keys in Firefox go on [http://www.thinkwiki.org/wiki/How_to_get_special_keys_to_work#Firefox here].&lt;br /&gt;
&lt;br /&gt;
== Wireless Networking ==&lt;br /&gt;
&lt;br /&gt;
The module for this chip is in kernel mainline (ipw2200). The only showstopper is the missing firmware.&lt;br /&gt;
&lt;br /&gt;
Get it here: [http://ipw2200.sourceforge.net/firmware.php?fid=7 firmware v3.0]&lt;br /&gt;
&lt;br /&gt;
Extract it: &lt;br /&gt;
&lt;br /&gt;
{{cmdroot| tar zxvf ipw2200-fw-3.0.tgz}}&lt;br /&gt;
&lt;br /&gt;
Move the *.fw files to {{path|/lib/firmware/}}&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|mv *.fw /lib/firmware/}}&lt;br /&gt;
&lt;br /&gt;
Reload the module:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|rmmod ipw2200 &amp;amp;&amp;amp; modprobe ipw2200}}&lt;br /&gt;
&lt;br /&gt;
== CPU Throttling ==&lt;br /&gt;
&lt;br /&gt;
Load the kernelmodule:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|modprobe speedstep_centrino}}&lt;br /&gt;
&lt;br /&gt;
Add line &amp;quot;speedstep_centrino&amp;quot; to {{path|/etc/modules}} to load the module on boot.&lt;br /&gt;
&lt;br /&gt;
Install the throttling-daemon:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install powernowd}}&lt;br /&gt;
&lt;br /&gt;
Done.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Active Protection System==&lt;br /&gt;
&lt;br /&gt;
=== Preparing the kernel ===&lt;br /&gt;
&lt;br /&gt;
To get the headdisk-parking working you have to build your own kernel with the hdaps_protect-patch applied:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Install the prerequisites that we need to compile the new kernel:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install kernel-package ncurses-dev fakeroot wget bzip2}}&lt;br /&gt;
&lt;br /&gt;
Get the recent debian-etch-kernel (2.6.18):&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install linux-tree-2.6.18}}&lt;br /&gt;
&lt;br /&gt;
Go to the sources and unpack them:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|cd /usr/src}}&lt;br /&gt;
{{cmdroot| tar jxvf linux-source-2.6.18.tar.bz2}}&lt;br /&gt;
&lt;br /&gt;
As etchs kernel is 2.6.18-4 its propably a good idea to get the hdaps_protect patch for 2.6.18-3:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot| wget http://www.dresco.co.uk/hdaps/hdaps_protect-2.6.18.3-2.patch}}&lt;br /&gt;
&lt;br /&gt;
Apply the patch:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|cd linux-source-2.6.18/}}&lt;br /&gt;
{{cmdroot|patch -p1 &amp;lt; ../hdaps_protect-2.6.18.3-2.patch}}&lt;br /&gt;
&lt;br /&gt;
Copy the default-config to the sourcetree:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|cp /boot/config-2.6.18-4-486 ./.config}}&lt;br /&gt;
&lt;br /&gt;
Build the kernel &amp;amp; packages:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|make-kpkg clean}}&lt;br /&gt;
{{cmdroot|make-kpkg fakeroot make-kpkg --initrd --revision=thinkpad.1.0 kernel_image}}&lt;br /&gt;
&lt;br /&gt;
Install the new kernel. Grub-menu should be updated automatically.&lt;br /&gt;
&lt;br /&gt;
{{cmdroot| dpkg -i linux-image-2.6.18_thinkpad.1.0_i386.deb }}&lt;br /&gt;
&lt;br /&gt;
Reboot and select the new kernel. Verify with 'uname -a'.&lt;br /&gt;
If all things work you can set the new kernel default in {{path|/boot/grub/menu.lst}} with default $entry-number (0..1..2..)&lt;br /&gt;
&lt;br /&gt;
===Preparing userspace===&lt;br /&gt;
&lt;br /&gt;
Installing the daemon:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install hdapsd}}&lt;br /&gt;
&lt;br /&gt;
To set your harddrive, edit {{path|/etc/default/hdapsd}}:&lt;br /&gt;
&lt;br /&gt;
 # start hdapsd at boottime?&lt;br /&gt;
 '''START=yes'''&lt;br /&gt;
 #&lt;br /&gt;
 # the name of the disk device that hdapsd should monitor.&lt;br /&gt;
 #&lt;br /&gt;
 # usually this is 'hda' the primary master or 'sda'&lt;br /&gt;
 # on SATA ThinkPads.&lt;br /&gt;
 '''DISK=sda'''&lt;br /&gt;
 #&lt;br /&gt;
 # other options to pass to hdapsd.&lt;br /&gt;
 # the -d and -b options are always passed.&lt;br /&gt;
 OPTIONS=&lt;br /&gt;
&lt;br /&gt;
Restart hdapsd:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|/etc/init.d/hdapsd restart}}&lt;br /&gt;
&lt;br /&gt;
You should get something like that in {{path| /var/log/syslog}} when throwing your thinkpad off the table: (No, seriously, shaking it carefully should be sufficient :-) )&lt;br /&gt;
&lt;br /&gt;
 Mar 20 12:25:37 localhost kernel: ata_scsi_issue_protect_fn(): unload support reported by drive..&lt;br /&gt;
 Mar 20 12:25:37 localhost kernel: scsi_protect_queue(): head parked..&lt;br /&gt;
 Mar 20 12:25:38 localhost kernel: scsi_unprotect_queue(): No pending I/O, re-enabling power management..&lt;br /&gt;
 Mar 20 12:25:38 localhost hdapsd[12522]: Tue Mar 20 12:25:38 2007: un-parking&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fingerprint-Reader ==&lt;br /&gt;
&lt;br /&gt;
=== Install userspace-tools ===&lt;br /&gt;
I got the fingerprint reader working with the new [http://thinkfinger.sourceforge.net/ ThinkFinger-drivers] (opensource). They are working much better than the closed-source UPEK drivers and don't have this ugly QT-dialog.&lt;br /&gt;
&lt;br /&gt;
Get some debian-packages from [http://www.rubixlinux.org/debian/thinkfinger/ here] and install them with:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot| dpkg -i *.deb}}&lt;br /&gt;
&lt;br /&gt;
=== Enroll your fingers ===&lt;br /&gt;
Enroll your fingers with:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|tf-tool --add-user &amp;lt;login&amp;gt;}}&lt;br /&gt;
 &lt;br /&gt;
 # tf-tool --add-user name&lt;br /&gt;
 ThinkFinger 0.2.2 (http://thinkfinger.sourceforge.net/)&lt;br /&gt;
 Copyright (C) 2006, 2007 Timo Hoenig &amp;lt;thoenig@suse.de&amp;gt;&lt;br /&gt;
 Initializing... done.&lt;br /&gt;
 Please swipe your finger (successful swipes 3/3, failed swipes: 0)... done.&lt;br /&gt;
 Storing data (/etc/pam_thinkfinger/name.bir)... done.&lt;br /&gt;
&lt;br /&gt;
=== Configuring PAM to use ThinkFinger ===&lt;br /&gt;
Now you can configure pam to use ThinkFinger:&lt;br /&gt;
&lt;br /&gt;
Open {{path|/etc/pam.d/common-auth}}:&lt;br /&gt;
&lt;br /&gt;
 # /etc/pam.d/common-auth - authentication settings common to all services&lt;br /&gt;
 #&lt;br /&gt;
 # This file is included from other service-specific PAM config files,&lt;br /&gt;
 # and should contain a list of the authentication modules that define&lt;br /&gt;
 # the central authentication scheme for use on the system&lt;br /&gt;
 # (e.g., /etc/shadow, LDAP, Kerberos, etc.).  The default is to use the&lt;br /&gt;
 # traditional Unix authentication mechanisms.&lt;br /&gt;
 #&lt;br /&gt;
 '''auth     sufficient     pam_thinkfinger.so'''&lt;br /&gt;
 auth     required     pam_unix.so '''try_first_pass'''&lt;br /&gt;
&lt;br /&gt;
Ready! Works flawlessly with gdm for instance!&lt;br /&gt;
Enroll user 'root' to use your fingerprint for 'sudo'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Z60m]][[Category:Debian]]&lt;/div&gt;</summary>
		<author><name>Samoht</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_save_memory&amp;diff=28868</id>
		<title>How to save memory</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_save_memory&amp;diff=28868"/>
		<updated>2007-03-21T08:38:56Z</updated>

		<summary type="html">&lt;p&gt;Samoht: added window manager improved 2 :)&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; |This page is meant as a collection of information on how to save memory to make Linux work reasonable on older system with limited amount of RAM.&lt;br /&gt;
&lt;br /&gt;
Most distributions nowadays don't take much care about it anymore, so there are a lot of things you can do to save memory. To get a smoothly working linux environment on a low memory machine you will need to conciously choose a lot of aspects of your system, most importantly the graphical environment, desktop environment and applications. This page provides detailed information about these various optimization possibilities.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Alternative graphical environments==&lt;br /&gt;
{{Todo|...}}&lt;br /&gt;
&lt;br /&gt;
==Streamlining the desktop environment==&lt;br /&gt;
The common Desktop environments GNOME and KDE are, in their modern state, focused more on features, integration, and beauty rather than on resource saving. Understandable, but running Linux on an older ThinkPad with limited RAM requires conscious and sensitive resource usage more than anything else. The good thing about Linux is that a lot of things stay adjustable and customizable. So lets see what we can do about desktops.&lt;br /&gt;
&lt;br /&gt;
One of the most important things is to decide for one graphical widget library and stick with that when you are choosing your desktop environment and applications. Having several toolkits in use means more libraries being loaded and hence more memory being used by those. Possibilities are:&lt;br /&gt;
* [http://www.fltk.org/ FLTK]&lt;br /&gt;
* [http://www.fox-toolkit.org/ FOX toolkit]&lt;br /&gt;
* [http://www.gnustep.org GNUstep toolkit]&lt;br /&gt;
* [http://www.gtk.org/ GTK] &amp;lt;tt&amp;gt;(not recommended, use GTK 2 if possible)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [http://www.gtk.org/ GTK 2]&lt;br /&gt;
* [http://www.lesstif.org/ Lesstif] / [http://www.openmotif.org/ OpenMotif]&lt;br /&gt;
* [http://www.trolltech.com/products/qt/index.html QT]&lt;br /&gt;
* [http://www.windowmaker.org/development-wings.html WINGs] &amp;lt;tt&amp;gt;(kind of a lightweight GNUstep toolkit, provided by the WindowMaker developers)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [http://www.x.org/ X Toolkit]&lt;br /&gt;
&lt;br /&gt;
Of those, at current state, there are enough applications for the X Toolkit, GTK, GTK 2 and QT to provide you with a solution for every task you should want.&lt;br /&gt;
&lt;br /&gt;
===GNOME===&lt;br /&gt;
It's like with humans, the worst feature is in most cases also the best one. For GNOME it is probably the many little parts it consists of. Makes it hard to install, but enables one to customize the installation. So, the first thing you should do to streamline GNOME is not to launch it. Sound stupid? Well, lets have a look.&lt;br /&gt;
&lt;br /&gt;
GNOME is basically a set of libraries built around the GTK+ libs and extending its functionality. Add some nice little applications, a session manager, a panel, beautiful icons, and some other stuff and you have GNOME as you know it. Reversing those additions is what you can do to use GNOME applications on a machine that this desktop environment would normally take your nerves on.&lt;br /&gt;
&lt;br /&gt;
The GNOME panel, the session manager, the desktop manager and the window manager are all parts of GNOME that eat a lot of memory for something that others can do in a maybe little less beautiful but much more resource saving way.&lt;br /&gt;
So first off configure your login manager not to launch gnome-session at login. If you are using GDM this is quite straight forward, you just need to add a different session script, launching your favorite window manager. See the list below and pick one, lets say i.e. WindowMaker. WindowMaker uses a desktop menu, a dock and a notification area to provide you with an organized way of launching applications and iconfying running ones. So we don't need a panel anymore. Also, think if you really need icons on your desktop. If you do, think about using something like ROX filer instead of nautilus for that. In any case, tell nautilus not to manage the desktop by default by unchecking the according setting within gconf-editor. To keep GNOME applications happy we would need to have gconf and gnome-settings-manager running at every session start. One way to do this is to either include them in your new session script. They both need to be running to make GNOME applications realize their settings properly.&lt;br /&gt;
&lt;br /&gt;
===KDE===&lt;br /&gt;
{{Todo|...}}&lt;br /&gt;
&lt;br /&gt;
===Alternative Desktop Environments===&lt;br /&gt;
First of all, it is important to notice that GNOME and KDE are not the only Desktop Environments around.&lt;br /&gt;
Other complete (featuring most of: window management, session management, desktop management, file management and panel) desktop environments are:&lt;br /&gt;
* [http://xfce.org/ XFCE] &amp;lt;tt&amp;gt;uses GTK 2&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [http://rox.sourceforge.net ROX Desktop]&lt;br /&gt;
* [http://ede.sourceforge.net Equinox Desktop Environment] &amp;lt;tt&amp;gt;uses eFLTK, a modified version of FLTK&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [http://www.nongnu.org/antiright/ AntiRight Desktop Environment] &amp;lt;tt&amp;gt;uses LessTif / OpenMotif&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [http://foxdesktop.sourceforge.net/ FOX Desktop Environment] &amp;lt;tt&amp;gt;uses FOX Toolkit&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [http://www.gnustep.org/ GNUstep] &amp;lt;tt&amp;gt;provides it's own toolkit&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But also, some Window Managers exceed the task of managing windows towards providing a functional workbench. See below for a list.&lt;br /&gt;
&lt;br /&gt;
===Building your own Desktop===&lt;br /&gt;
&lt;br /&gt;
====Window Manager====&lt;br /&gt;
If you want to build your own customized desktop, a good start is choosing the window manager of your liking.  A list of window managers is at [http://xwinman.org].&lt;br /&gt;
&lt;br /&gt;
Here's a list of some of them:&lt;br /&gt;
*including basic Desktop Environment functionality&lt;br /&gt;
**the [[Wikipedia:NextStep|NextStep]] alike ones&lt;br /&gt;
***[http://www.windowmaker.org/ WindowMaker] &amp;lt;tt&amp;gt;(probably the most widespread NextStep like WM)&amp;lt;/tt&amp;gt;&lt;br /&gt;
***[http://www.afterstep.org/ AfterStep] &amp;lt;tt&amp;gt;(another one of those)&amp;lt;/tt&amp;gt;&lt;br /&gt;
**the Blackbox-like ones&lt;br /&gt;
***[http://blackboxwm.sourceforge.net/ BlackBox]&lt;br /&gt;
***[http://fluxbox.sourceforge.net/ FluxBox] &amp;lt;tt&amp;gt;(tabbed windows, lighweight)&amp;lt;/tt&amp;gt;&lt;br /&gt;
**others&lt;br /&gt;
***[http://www.icewm.org/ IceWM] &amp;lt;tt&amp;gt;(lightweight, widespread)&amp;lt;/tt&amp;gt;&lt;br /&gt;
***[http://enlightenment.sourceforge.net/ Enlightenment] &amp;lt;tt&amp;gt;(lots of features and eye candy)&amp;lt;/tt&amp;gt;&lt;br /&gt;
***[http://www.pekwm.org PekWM] &amp;lt;tt&amp;gt;(kind of a one man show, but feature rich and extremely customizable)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*pure WindowManagers &lt;br /&gt;
**[http://golem.sourceforge.net/ Golem]&lt;br /&gt;
**[http://home.earthlink.net/~lab1701/larswm/ LarsWM] &amp;lt;tt&amp;gt;(unique tiling Window Manager)&amp;lt;/tt&amp;gt;&lt;br /&gt;
**[http://www.nongnu.org/ratpoison/ ratpoison] &amp;lt;tt&amp;gt;(modeled after gnu screen)&amp;lt;/tt&amp;gt;&lt;br /&gt;
**[http://fvwm.org/ fvwm] &amp;lt;tt&amp;gt;(small but powerful)&amp;lt;/tt&amp;gt;&lt;br /&gt;
**[http://www.jfc.org.uk/software/lwm.html lwm] &amp;lt;tt&amp;gt;(very small, and fast)&amp;lt;/tt&amp;gt;&lt;br /&gt;
**[http://www.all-day-breakfast.com/wm2/ wm2] &amp;lt;tt&amp;gt;really small Window Manager&amp;lt;/tt&amp;gt;&lt;br /&gt;
**[http://www.all-day-breakfast.com/wmx/ wmx] &amp;lt;tt&amp;gt;slightly more featureful version of wm2&amp;lt;/tt&amp;gt;&lt;br /&gt;
**[http://wmii.suckless.org wmii] &amp;lt;tt&amp;gt;keyboard driven approach, very small, dynamic window managing&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Taskbar/Panel====&lt;br /&gt;
Another thing that especially users coming to Linux from the Windows world would probably like is a Panel or Taskbar.&lt;br /&gt;
&lt;br /&gt;
Here's a collection of independant low resource panels:&lt;br /&gt;
*[http://www.chatjunkies.org/fspanel/ F***ing Small Panel] &amp;lt;tt&amp;gt;(doesn't use any toolkit)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*[http://freshmeat.net/projects/hpanel/ HPanel] &amp;lt;tt&amp;gt;(doesn't use any toolkit)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*[http://fbpanel.sourceforge.net/ fbpanel] &amp;lt;tt&amp;gt;(depends on GTK 2)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*[http://jodrell.net/projects/perlpanel Perl Panel] &amp;lt;tt&amp;gt;(depends on GTK 2, gnomevfs, perl)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*[http://www.gkrellm.net/ GKrellM] &amp;lt;tt&amp;gt;(depends on GTK 2, flexible plugin based skinable vertical panel)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Desktop Pinboard====&lt;br /&gt;
Then, the next thing you might be looking for is how to get icons onto your desktop. Usually this is done by the file manager who displays the content of a special directory as icons on the desktop. See the File Manager section to follow this approach.&lt;br /&gt;
&lt;br /&gt;
However, you might decide for a really lightwight file manager which doesn't offer this feature. In that case all hope is not lost, for there are also special programs specialized in desktop icon management. Such are:&lt;br /&gt;
* [http://idesk.sourceforge.net/ iDesk] &amp;lt;tt&amp;gt;(recent versions need imlib2 only)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====File Manager====&lt;br /&gt;
File Managers are the fourth really important compontent of a desktop environment. There are plenty out their ranging from resource hugs to really lightweight and slim ones.&lt;br /&gt;
&lt;br /&gt;
File Managers come with three distinct general user interface approaches: the two pane gui, the spacial and the browser gui. The browser gui is the one the Windows Explorer starting from Windows 2000 uses as well as earlier versions of Nautilus. The spacial view is the one known from Windows 95 and more recent versions of Nautilus. The two pane view is know to many from Norten Commander, Directory Opus or your favorite FTP client.&lt;br /&gt;
&lt;br /&gt;
The following list provides an overview.&lt;br /&gt;
*FLTK&lt;br /&gt;
** [http://www.oksid.ch/flfm/ Fast Light File Manager] &amp;lt;tt&amp;gt;(spacial gui)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* FOX toolkit&lt;br /&gt;
** [http://roland65.free.fr/xfe/ X File Explorer] &amp;lt;tt&amp;gt;(browser and two pane gui)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*GTK&lt;br /&gt;
** [http://www.kaisersite.de/dfm/ Desktop File Manager] &amp;lt;tt&amp;gt;(spacial gui, incl. desktop icon management)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://www.uwyn.com/projects/fm/ FM] &amp;lt;tt&amp;gt;(spacial, MAC OS 9 like gui)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://radekc.regnet.cz/ Seksi Commander] &amp;lt;tt&amp;gt;(two pane gui)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*GTK 2&lt;br /&gt;
** [http://rox.sourceforge.net/ ROX Filer] &amp;lt;tt&amp;gt;(highly productive spacial gui, incl. panel and desktop icon management)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://blog.perldude.de/projects/filer/ Filer] &amp;lt;tt&amp;gt;(browser and two pane gui, requires Perl)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://xffm.sourceforge.net/ XFFM] &amp;lt;tt&amp;gt;(browser and spacial gui, requires some XFCE libs)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://logicaldesktop.sourceforge.net/ Logical Desktop] &amp;lt;tt&amp;gt;(browser gui, actually a very special approach)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://tuxcmd.sourceforge.net/ Tux Commander] &amp;lt;tt&amp;gt;(two pane gui)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://www.nongnu.org/gcmd/index.html Gnome Commander] &amp;lt;tt&amp;gt;(two pane gui)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://emelfm2.net/emelFM2/ emelFM2] &amp;lt;tt&amp;gt;(two pane gui with full customizable menu and toolbar, the best for power users)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://thunar.xfce.org/index.xhtml Thunar] &amp;lt;tt&amp;gt;(requires some XFCE libs)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://pcmanfm.sourceforge.net/ PCMan File Manager] &amp;lt;tt&amp;gt;(An extremly fast and lightweight file manager which features tabbed browsing and user-friendly interface. Requires GTK+ version 2.8.x)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* OpenMotif&lt;br /&gt;
** [http://www.musikwissenschaft.uni-mainz.de/~ag/xplore/xplore.php Xplore] &amp;lt;tt&amp;gt;(browser gui with productive 4 pane concept)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* QT 2&lt;br /&gt;
** [http://www.hi-net.cz/blaza/bfcommander/en/index.html BF-Commander] &amp;lt;tt&amp;gt;(two pane gui)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Qt3&lt;br /&gt;
** [http://www.beesoft.org/download_bsc.html Beesoft Commander] &amp;lt;tt&amp;gt; (fast &amp;amp; easy two panel file manager, like Norton Commander)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Tcl/Tk&lt;br /&gt;
** [http://users.tkk.fi/~mkivinie/X-Files/ X-Files] &amp;lt;tt&amp;gt;(two pane gui)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*X Toolkit&lt;br /&gt;
** [http://www.musikwissenschaft.uni-mainz.de/~ag/xfm/ X File Manager] &amp;lt;tt&amp;gt;(spacial gui)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://www.boomerangsworld.de/worker/ Worker] &amp;lt;tt&amp;gt;(two pane gui, highly productive and configurable)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://xnc.dubna.su/ X Northern Captain] &amp;lt;tt&amp;gt;(interesting flexible two pane gui)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*3D Filemanagers&lt;br /&gt;
** [http://www.determinate.net/webdata/seg/tdfsb.html TDFSB] &amp;lt;tt&amp;gt;(3D gui, the most impressing 3D file browser so far)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://www.forchheimer.se/bfm/ Brutal File Manager] &amp;lt;tt&amp;gt;(3D gui more for fun than productivity)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://turma.sourceforge.net/software/3dfile/ 3DFile] &amp;lt;tt&amp;gt;(3D gui)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://orbis.sourceforge.net/ Orbis] &amp;lt;tt&amp;gt;(3D gui)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Choosing applications==&lt;br /&gt;
===Web Browser===&lt;br /&gt;
This is highly dependent on the way you use your browser, it's often worth it to try out all and just track general&lt;br /&gt;
memory usage. Remember that &amp;lt;tt&amp;gt;top&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ps&amp;lt;/tt&amp;gt; don't report correct memory usage, track totals only.&lt;br /&gt;
&lt;br /&gt;
====Firefox====&lt;br /&gt;
Firefox is graphical web browser. One can install features like AdBlock and FlashClicktoplay which will decrease memory  and&lt;br /&gt;
processor usage by hiding Flash and Java -adverts.&lt;br /&gt;
&lt;br /&gt;
====Opera====&lt;br /&gt;
Opera is graphical web browser. You can easily enable/disable plug-ins and java (press F12) and decrease memory usage.&lt;br /&gt;
Opera uses QT as toolkit, so you may shave off some Mbytes off memory usage by using dynamically linked version if you use KDE.&lt;br /&gt;
&lt;br /&gt;
====Konqueror====&lt;br /&gt;
Konqueror is graphical web browser. It's integrated with KDE and has several advanced features (esp. ca. KDE 3.5).&lt;br /&gt;
You may save some megabytes by using it instead of other browsers when using KDE.&lt;br /&gt;
It's not necessarily heavy even when used without running KDE.&lt;br /&gt;
&lt;br /&gt;
====Dillo====&lt;br /&gt;
Dillo is minimalistic and very small graphical web browser. &lt;br /&gt;
&lt;br /&gt;
====Elinks/Lynx====&lt;br /&gt;
elinks/lynx are both text mode web browsers. &amp;lt;tt&amp;gt;elinks&amp;lt;/tt&amp;gt; handles tables and formatting much nicer than &amp;lt;tt&amp;gt;lynx&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Both go very easy on memory footprint.&lt;br /&gt;
&lt;br /&gt;
{{Todo|...}}&lt;br /&gt;
&lt;br /&gt;
==Disabling unneeded system deamons==&lt;br /&gt;
Another thing you can do to improve performance is to get rid of unneaded system daemons launched from your init scripts. Disable them by using the according configuration interface of your distro or by deleting links in the according runlevel directories (usually in &amp;lt;code&amp;gt;/etc/rc.d/&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Daemons you usually don't need:&lt;br /&gt;
* httpd &amp;lt;tt&amp;gt;(Apache web server)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* mysqld &amp;lt;tt&amp;gt;(MySQL database server)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* smbd &amp;lt;tt&amp;gt;(SMB windows filesharing server)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* pppd &amp;lt;tt&amp;gt;(PPP server for connections through modems and serial lines)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Adjusting filesystems==&lt;br /&gt;
You can also try to optimize memory usage by making sure that you have as little as possible of your filesystem residing in RAM. To do this make sure that the following mount points are set to reside on your harddisk in {{path|/etc/fstab}}.&lt;br /&gt;
* /dev (not possible if you use udev)&lt;br /&gt;
* /tmp&lt;br /&gt;
&lt;br /&gt;
Also make sure that you mount filesystems with extensive usage with noatime parameter (mount -o remount,ro /...), which disabled access time writes every time you access some file. Note that many incremental backups needs atime to work, such backups will then behave like full backup everytime. This depends on backup systems.&lt;br /&gt;
&lt;br /&gt;
==Other tips==&lt;br /&gt;
===Disk space===&lt;br /&gt;
When using Debian/Ubuntu/other derivative, use &amp;lt;tt&amp;gt;aptitude&amp;lt;/tt&amp;gt; as package manager, and use it as soon as possible. Use it and only it to install and remove packages.&lt;br /&gt;
&lt;br /&gt;
One of its most useful features is that it tracks packages you install and marks packages installed via dependency as such, so when you remove a package that is no longer used, or package updates and doesn't use a library anymore, that dependency will get uninstalled.&lt;br /&gt;
&lt;br /&gt;
You can mark packages installed as automatically installed by hitting 'M' (uppercase m), it will be marked for deinstallation if it's not longer required.&lt;br /&gt;
&lt;br /&gt;
You could also install &amp;lt;tt&amp;gt;localepurge&amp;lt;/tt&amp;gt; wich will remove all unneeded locales and localized manpages for packages you install.&lt;br /&gt;
&lt;br /&gt;
===System clock===&lt;br /&gt;
&amp;lt;tt&amp;gt;ntpd&amp;lt;/tt&amp;gt; can occupy around 4MB of memory, which is a substantial proportion of many older systems' total. [http://chrony.sunsite.dk/ &amp;lt;tt&amp;gt;chrony&amp;lt;/tt&amp;gt;] is a pair of programs that replace the standard &amp;lt;tt&amp;gt;ntp&amp;lt;/tt&amp;gt; and require much less memory.&lt;/div&gt;</summary>
		<author><name>Samoht</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=User:Samoht&amp;diff=28839</id>
		<title>User:Samoht</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=User:Samoht&amp;diff=28839"/>
		<updated>2007-03-20T12:41:46Z</updated>

		<summary type="html">&lt;p&gt;Samoht: added infos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Contact me via jabber (samoht@mabber.de) or mail (samoht at karmann-paf.de).&lt;/div&gt;</summary>
		<author><name>Samoht</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Etch_on_a_ThinkPad_Z60m&amp;diff=28838</id>
		<title>Installing Debian Etch on a ThinkPad Z60m</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Etch_on_a_ThinkPad_Z60m&amp;diff=28838"/>
		<updated>2007-03-20T12:40:13Z</updated>

		<summary type="html">&lt;p&gt;Samoht: /* Wireless Networking */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NOTE|This article is not finished yet!}}&lt;br /&gt;
&lt;br /&gt;
== Wireless Networking ==&lt;br /&gt;
&lt;br /&gt;
The module for this chip is in kernel mainline (ipw2200). The only showstopper is the missing firmware.&lt;br /&gt;
&lt;br /&gt;
Get it here: [http://ipw2200.sourceforge.net/firmware.php?fid=7 firmware v3.0]&lt;br /&gt;
&lt;br /&gt;
Extract it: &lt;br /&gt;
&lt;br /&gt;
{{cmdroot| tar zxvf ipw2200-fw-3.0.tgz}}&lt;br /&gt;
&lt;br /&gt;
Move the *.fw files to {{path|/lib/firmware/}}&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|mv *.fw /lib/firmware/}}&lt;br /&gt;
&lt;br /&gt;
Reload the module:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|rmmod ipw2200 &amp;amp;&amp;amp; modprobe ipw2200}}&lt;br /&gt;
&lt;br /&gt;
== CPU Throttling ==&lt;br /&gt;
&lt;br /&gt;
Load the kernelmodule:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|modprobe speedstep_centrino}}&lt;br /&gt;
&lt;br /&gt;
Add line &amp;quot;speedstep_centrino&amp;quot; to {{path|/etc/modules}} to load the module on boot.&lt;br /&gt;
&lt;br /&gt;
Install the throttling-daemon:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install powernowd}}&lt;br /&gt;
&lt;br /&gt;
Done.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Active Protection System==&lt;br /&gt;
&lt;br /&gt;
=== Preparing the kernel ===&lt;br /&gt;
&lt;br /&gt;
To get the headdisk-parking working you have to build your own kernel with the hdaps_protect-patch applied:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Install the prerequisites that we need to compile the new kernel:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install kernel-package ncurses-dev fakeroot wget bzip2}}&lt;br /&gt;
&lt;br /&gt;
Get the recent debian-etch-kernel (2.6.18):&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install linux-tree-2.6.18}}&lt;br /&gt;
&lt;br /&gt;
Go to the sources and unpack them:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|cd /usr/src}}&lt;br /&gt;
{{cmdroot| tar jxvf linux-source-2.6.18.tar.bz2}}&lt;br /&gt;
&lt;br /&gt;
As etchs kernel is 2.6.18-4 its propably a good idea to get the hdaps_protect patch for 2.6.18-3:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot| wget http://www.dresco.co.uk/hdaps/hdaps_protect-2.6.18.3-2.patch}}&lt;br /&gt;
&lt;br /&gt;
Apply the patch:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|cd linux-source-2.6.18/}}&lt;br /&gt;
{{cmdroot|patch -p1 &amp;lt; ../hdaps_protect-2.6.18.3-2.patch}}&lt;br /&gt;
&lt;br /&gt;
Copy the default-config to the sourcetree:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|cp /boot/config-2.6.18-4-486 ./.config}}&lt;br /&gt;
&lt;br /&gt;
Build the kernel &amp;amp; packages:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|make-kpkg clean}}&lt;br /&gt;
{{cmdroot|make-kpkg fakeroot make-kpkg --initrd --revision=thinkpad.1.0 kernel_image}}&lt;br /&gt;
&lt;br /&gt;
Install the new kernel. Grub-menu should be updated automatically.&lt;br /&gt;
&lt;br /&gt;
{{cmdroot| dpkg -i linux-image-2.6.18_thinkpad.1.0_i386.deb }}&lt;br /&gt;
&lt;br /&gt;
Reboot and select the new kernel. Verify with 'uname -a'.&lt;br /&gt;
If all things work you can set the new kernel default in {{path|/boot/grub/menu.lst}} with default $entry-number (0..1..2..)&lt;br /&gt;
&lt;br /&gt;
===Preparing userspace===&lt;br /&gt;
&lt;br /&gt;
Installing the daemon:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install hdapsd}}&lt;br /&gt;
&lt;br /&gt;
To set your harddrive, edit {{path|/etc/default/hdapsd}}:&lt;br /&gt;
&lt;br /&gt;
 # start hdapsd at boottime?&lt;br /&gt;
 '''START=yes'''&lt;br /&gt;
 #&lt;br /&gt;
 # the name of the disk device that hdapsd should monitor.&lt;br /&gt;
 #&lt;br /&gt;
 # usually this is 'hda' the primary master or 'sda'&lt;br /&gt;
 # on SATA ThinkPads.&lt;br /&gt;
 '''DISK=sda'''&lt;br /&gt;
 #&lt;br /&gt;
 # other options to pass to hdapsd.&lt;br /&gt;
 # the -d and -b options are always passed.&lt;br /&gt;
 OPTIONS=&lt;br /&gt;
&lt;br /&gt;
Restart hdapsd:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|/etc/init.d/hdapsd restart}}&lt;br /&gt;
&lt;br /&gt;
You should get something like that in {{path| /var/log/syslog}} when throwing your thinkpad off the table: (No, seriously, shaking it carefully should be sufficient :-) )&lt;br /&gt;
&lt;br /&gt;
 Mar 20 12:25:37 localhost kernel: ata_scsi_issue_protect_fn(): unload support reported by drive..&lt;br /&gt;
 Mar 20 12:25:37 localhost kernel: scsi_protect_queue(): head parked..&lt;br /&gt;
 Mar 20 12:25:38 localhost kernel: scsi_unprotect_queue(): No pending I/O, re-enabling power management..&lt;br /&gt;
 Mar 20 12:25:38 localhost hdapsd[12522]: Tue Mar 20 12:25:38 2007: un-parking&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fingerprint-Reader ==&lt;br /&gt;
&lt;br /&gt;
=== Install userspace-tools ===&lt;br /&gt;
I got the fingerprint reader working with the new [http://thinkfinger.sourceforge.net/ ThinkFinger-drivers] (opensource). They are working much better than the closed-source UPEK drivers and don't have this ugly QT-dialog.&lt;br /&gt;
&lt;br /&gt;
Get some debian-packages from [http://www.rubixlinux.org/debian/thinkfinger/ here] and install them with:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot| dpkg -i *.deb}}&lt;br /&gt;
&lt;br /&gt;
=== Enroll your fingers ===&lt;br /&gt;
Enroll your fingers with:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|tf-tool --add-user &amp;lt;login&amp;gt;}}&lt;br /&gt;
 &lt;br /&gt;
 # tf-tool --add-user name&lt;br /&gt;
 ThinkFinger 0.2.2 (http://thinkfinger.sourceforge.net/)&lt;br /&gt;
 Copyright (C) 2006, 2007 Timo Hoenig &amp;lt;thoenig@suse.de&amp;gt;&lt;br /&gt;
 Initializing... done.&lt;br /&gt;
 Please swipe your finger (successful swipes 3/3, failed swipes: 0)... done.&lt;br /&gt;
 Storing data (/etc/pam_thinkfinger/name.bir)... done.&lt;br /&gt;
&lt;br /&gt;
=== Configuring PAM to use ThinkFinger ===&lt;br /&gt;
Now you can configure pam to use ThinkFinger:&lt;br /&gt;
&lt;br /&gt;
Open {{path|/etc/pam.d/common-auth}}:&lt;br /&gt;
&lt;br /&gt;
 # /etc/pam.d/common-auth - authentication settings common to all services&lt;br /&gt;
 #&lt;br /&gt;
 # This file is included from other service-specific PAM config files,&lt;br /&gt;
 # and should contain a list of the authentication modules that define&lt;br /&gt;
 # the central authentication scheme for use on the system&lt;br /&gt;
 # (e.g., /etc/shadow, LDAP, Kerberos, etc.).  The default is to use the&lt;br /&gt;
 # traditional Unix authentication mechanisms.&lt;br /&gt;
 #&lt;br /&gt;
 '''auth     sufficient     pam_thinkfinger.so'''&lt;br /&gt;
 auth     required     pam_unix.so '''try_first_pass'''&lt;br /&gt;
&lt;br /&gt;
Ready! Works flawlessly with gdm for instance!&lt;br /&gt;
Enroll user 'root' to use your fingerprint for 'sudo'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Z60m]][[Category:Debian]]&lt;/div&gt;</summary>
		<author><name>Samoht</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Etch_on_a_ThinkPad_Z60m&amp;diff=28837</id>
		<title>Installing Debian Etch on a ThinkPad Z60m</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Etch_on_a_ThinkPad_Z60m&amp;diff=28837"/>
		<updated>2007-03-20T12:39:53Z</updated>

		<summary type="html">&lt;p&gt;Samoht: /* Wireless Networking */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NOTE|This article is not finished yet!}}&lt;br /&gt;
&lt;br /&gt;
== Wireless Networking ==&lt;br /&gt;
&lt;br /&gt;
The module for this chip is in kernel mainline (ipw2200). The only showstopper is the missing firmware.&lt;br /&gt;
&lt;br /&gt;
Get it here: [http://ipw2200.sourceforge.net/firmware.php?fid=7 firmware v3.0]&lt;br /&gt;
&lt;br /&gt;
Extract it: &lt;br /&gt;
&lt;br /&gt;
{{cmdroot| tar zxvf ipw2200-fw-3.0.tgz}}&lt;br /&gt;
&lt;br /&gt;
Move the *.fw files to {{path|/lib/firmware/}&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|mv *.fw /lib/firmware/}}&lt;br /&gt;
&lt;br /&gt;
Reload the module:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|rmmod ipw2200 &amp;amp;&amp;amp; modprobe ipw2200}}&lt;br /&gt;
&lt;br /&gt;
== CPU Throttling ==&lt;br /&gt;
&lt;br /&gt;
Load the kernelmodule:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|modprobe speedstep_centrino}}&lt;br /&gt;
&lt;br /&gt;
Add line &amp;quot;speedstep_centrino&amp;quot; to {{path|/etc/modules}} to load the module on boot.&lt;br /&gt;
&lt;br /&gt;
Install the throttling-daemon:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install powernowd}}&lt;br /&gt;
&lt;br /&gt;
Done.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Active Protection System==&lt;br /&gt;
&lt;br /&gt;
=== Preparing the kernel ===&lt;br /&gt;
&lt;br /&gt;
To get the headdisk-parking working you have to build your own kernel with the hdaps_protect-patch applied:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Install the prerequisites that we need to compile the new kernel:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install kernel-package ncurses-dev fakeroot wget bzip2}}&lt;br /&gt;
&lt;br /&gt;
Get the recent debian-etch-kernel (2.6.18):&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install linux-tree-2.6.18}}&lt;br /&gt;
&lt;br /&gt;
Go to the sources and unpack them:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|cd /usr/src}}&lt;br /&gt;
{{cmdroot| tar jxvf linux-source-2.6.18.tar.bz2}}&lt;br /&gt;
&lt;br /&gt;
As etchs kernel is 2.6.18-4 its propably a good idea to get the hdaps_protect patch for 2.6.18-3:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot| wget http://www.dresco.co.uk/hdaps/hdaps_protect-2.6.18.3-2.patch}}&lt;br /&gt;
&lt;br /&gt;
Apply the patch:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|cd linux-source-2.6.18/}}&lt;br /&gt;
{{cmdroot|patch -p1 &amp;lt; ../hdaps_protect-2.6.18.3-2.patch}}&lt;br /&gt;
&lt;br /&gt;
Copy the default-config to the sourcetree:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|cp /boot/config-2.6.18-4-486 ./.config}}&lt;br /&gt;
&lt;br /&gt;
Build the kernel &amp;amp; packages:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|make-kpkg clean}}&lt;br /&gt;
{{cmdroot|make-kpkg fakeroot make-kpkg --initrd --revision=thinkpad.1.0 kernel_image}}&lt;br /&gt;
&lt;br /&gt;
Install the new kernel. Grub-menu should be updated automatically.&lt;br /&gt;
&lt;br /&gt;
{{cmdroot| dpkg -i linux-image-2.6.18_thinkpad.1.0_i386.deb }}&lt;br /&gt;
&lt;br /&gt;
Reboot and select the new kernel. Verify with 'uname -a'.&lt;br /&gt;
If all things work you can set the new kernel default in {{path|/boot/grub/menu.lst}} with default $entry-number (0..1..2..)&lt;br /&gt;
&lt;br /&gt;
===Preparing userspace===&lt;br /&gt;
&lt;br /&gt;
Installing the daemon:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install hdapsd}}&lt;br /&gt;
&lt;br /&gt;
To set your harddrive, edit {{path|/etc/default/hdapsd}}:&lt;br /&gt;
&lt;br /&gt;
 # start hdapsd at boottime?&lt;br /&gt;
 '''START=yes'''&lt;br /&gt;
 #&lt;br /&gt;
 # the name of the disk device that hdapsd should monitor.&lt;br /&gt;
 #&lt;br /&gt;
 # usually this is 'hda' the primary master or 'sda'&lt;br /&gt;
 # on SATA ThinkPads.&lt;br /&gt;
 '''DISK=sda'''&lt;br /&gt;
 #&lt;br /&gt;
 # other options to pass to hdapsd.&lt;br /&gt;
 # the -d and -b options are always passed.&lt;br /&gt;
 OPTIONS=&lt;br /&gt;
&lt;br /&gt;
Restart hdapsd:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|/etc/init.d/hdapsd restart}}&lt;br /&gt;
&lt;br /&gt;
You should get something like that in {{path| /var/log/syslog}} when throwing your thinkpad off the table: (No, seriously, shaking it carefully should be sufficient :-) )&lt;br /&gt;
&lt;br /&gt;
 Mar 20 12:25:37 localhost kernel: ata_scsi_issue_protect_fn(): unload support reported by drive..&lt;br /&gt;
 Mar 20 12:25:37 localhost kernel: scsi_protect_queue(): head parked..&lt;br /&gt;
 Mar 20 12:25:38 localhost kernel: scsi_unprotect_queue(): No pending I/O, re-enabling power management..&lt;br /&gt;
 Mar 20 12:25:38 localhost hdapsd[12522]: Tue Mar 20 12:25:38 2007: un-parking&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fingerprint-Reader ==&lt;br /&gt;
&lt;br /&gt;
=== Install userspace-tools ===&lt;br /&gt;
I got the fingerprint reader working with the new [http://thinkfinger.sourceforge.net/ ThinkFinger-drivers] (opensource). They are working much better than the closed-source UPEK drivers and don't have this ugly QT-dialog.&lt;br /&gt;
&lt;br /&gt;
Get some debian-packages from [http://www.rubixlinux.org/debian/thinkfinger/ here] and install them with:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot| dpkg -i *.deb}}&lt;br /&gt;
&lt;br /&gt;
=== Enroll your fingers ===&lt;br /&gt;
Enroll your fingers with:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|tf-tool --add-user &amp;lt;login&amp;gt;}}&lt;br /&gt;
 &lt;br /&gt;
 # tf-tool --add-user name&lt;br /&gt;
 ThinkFinger 0.2.2 (http://thinkfinger.sourceforge.net/)&lt;br /&gt;
 Copyright (C) 2006, 2007 Timo Hoenig &amp;lt;thoenig@suse.de&amp;gt;&lt;br /&gt;
 Initializing... done.&lt;br /&gt;
 Please swipe your finger (successful swipes 3/3, failed swipes: 0)... done.&lt;br /&gt;
 Storing data (/etc/pam_thinkfinger/name.bir)... done.&lt;br /&gt;
&lt;br /&gt;
=== Configuring PAM to use ThinkFinger ===&lt;br /&gt;
Now you can configure pam to use ThinkFinger:&lt;br /&gt;
&lt;br /&gt;
Open {{path|/etc/pam.d/common-auth}}:&lt;br /&gt;
&lt;br /&gt;
 # /etc/pam.d/common-auth - authentication settings common to all services&lt;br /&gt;
 #&lt;br /&gt;
 # This file is included from other service-specific PAM config files,&lt;br /&gt;
 # and should contain a list of the authentication modules that define&lt;br /&gt;
 # the central authentication scheme for use on the system&lt;br /&gt;
 # (e.g., /etc/shadow, LDAP, Kerberos, etc.).  The default is to use the&lt;br /&gt;
 # traditional Unix authentication mechanisms.&lt;br /&gt;
 #&lt;br /&gt;
 '''auth     sufficient     pam_thinkfinger.so'''&lt;br /&gt;
 auth     required     pam_unix.so '''try_first_pass'''&lt;br /&gt;
&lt;br /&gt;
Ready! Works flawlessly with gdm for instance!&lt;br /&gt;
Enroll user 'root' to use your fingerprint for 'sudo'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Z60m]][[Category:Debian]]&lt;/div&gt;</summary>
		<author><name>Samoht</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Etch_on_a_ThinkPad_Z60m&amp;diff=28836</id>
		<title>Installing Debian Etch on a ThinkPad Z60m</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Etch_on_a_ThinkPad_Z60m&amp;diff=28836"/>
		<updated>2007-03-20T12:39:29Z</updated>

		<summary type="html">&lt;p&gt;Samoht: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NOTE|This article is not finished yet!}}&lt;br /&gt;
&lt;br /&gt;
== Wireless Networking ==&lt;br /&gt;
&lt;br /&gt;
The module for this chip is in kernel mainline (ipw2200). The only showstopper is the missing firmware.&lt;br /&gt;
&lt;br /&gt;
Get it here: [http://ipw2200.sourceforge.net/firmware.php?fid=7 firmware v3.0]&lt;br /&gt;
&lt;br /&gt;
Extract it: &lt;br /&gt;
&lt;br /&gt;
{{cmdroot| tar zxvf ipw2200-fw-3.0.tgz}}&lt;br /&gt;
&lt;br /&gt;
Move the *.fw files to {{path|/lib/firmware/}&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|mv *.fw /lib/firmware/}&lt;br /&gt;
&lt;br /&gt;
Reload the module:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|rmmod ipw2200 &amp;amp;&amp;amp; modprobe ipw2200}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== CPU Throttling ==&lt;br /&gt;
&lt;br /&gt;
Load the kernelmodule:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|modprobe speedstep_centrino}}&lt;br /&gt;
&lt;br /&gt;
Add line &amp;quot;speedstep_centrino&amp;quot; to {{path|/etc/modules}} to load the module on boot.&lt;br /&gt;
&lt;br /&gt;
Install the throttling-daemon:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install powernowd}}&lt;br /&gt;
&lt;br /&gt;
Done.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Active Protection System==&lt;br /&gt;
&lt;br /&gt;
=== Preparing the kernel ===&lt;br /&gt;
&lt;br /&gt;
To get the headdisk-parking working you have to build your own kernel with the hdaps_protect-patch applied:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Install the prerequisites that we need to compile the new kernel:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install kernel-package ncurses-dev fakeroot wget bzip2}}&lt;br /&gt;
&lt;br /&gt;
Get the recent debian-etch-kernel (2.6.18):&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install linux-tree-2.6.18}}&lt;br /&gt;
&lt;br /&gt;
Go to the sources and unpack them:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|cd /usr/src}}&lt;br /&gt;
{{cmdroot| tar jxvf linux-source-2.6.18.tar.bz2}}&lt;br /&gt;
&lt;br /&gt;
As etchs kernel is 2.6.18-4 its propably a good idea to get the hdaps_protect patch for 2.6.18-3:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot| wget http://www.dresco.co.uk/hdaps/hdaps_protect-2.6.18.3-2.patch}}&lt;br /&gt;
&lt;br /&gt;
Apply the patch:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|cd linux-source-2.6.18/}}&lt;br /&gt;
{{cmdroot|patch -p1 &amp;lt; ../hdaps_protect-2.6.18.3-2.patch}}&lt;br /&gt;
&lt;br /&gt;
Copy the default-config to the sourcetree:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|cp /boot/config-2.6.18-4-486 ./.config}}&lt;br /&gt;
&lt;br /&gt;
Build the kernel &amp;amp; packages:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|make-kpkg clean}}&lt;br /&gt;
{{cmdroot|make-kpkg fakeroot make-kpkg --initrd --revision=thinkpad.1.0 kernel_image}}&lt;br /&gt;
&lt;br /&gt;
Install the new kernel. Grub-menu should be updated automatically.&lt;br /&gt;
&lt;br /&gt;
{{cmdroot| dpkg -i linux-image-2.6.18_thinkpad.1.0_i386.deb }}&lt;br /&gt;
&lt;br /&gt;
Reboot and select the new kernel. Verify with 'uname -a'.&lt;br /&gt;
If all things work you can set the new kernel default in {{path|/boot/grub/menu.lst}} with default $entry-number (0..1..2..)&lt;br /&gt;
&lt;br /&gt;
===Preparing userspace===&lt;br /&gt;
&lt;br /&gt;
Installing the daemon:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install hdapsd}}&lt;br /&gt;
&lt;br /&gt;
To set your harddrive, edit {{path|/etc/default/hdapsd}}:&lt;br /&gt;
&lt;br /&gt;
 # start hdapsd at boottime?&lt;br /&gt;
 '''START=yes'''&lt;br /&gt;
 #&lt;br /&gt;
 # the name of the disk device that hdapsd should monitor.&lt;br /&gt;
 #&lt;br /&gt;
 # usually this is 'hda' the primary master or 'sda'&lt;br /&gt;
 # on SATA ThinkPads.&lt;br /&gt;
 '''DISK=sda'''&lt;br /&gt;
 #&lt;br /&gt;
 # other options to pass to hdapsd.&lt;br /&gt;
 # the -d and -b options are always passed.&lt;br /&gt;
 OPTIONS=&lt;br /&gt;
&lt;br /&gt;
Restart hdapsd:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|/etc/init.d/hdapsd restart}}&lt;br /&gt;
&lt;br /&gt;
You should get something like that in {{path| /var/log/syslog}} when throwing your thinkpad off the table: (No, seriously, shaking it carefully should be sufficient :-) )&lt;br /&gt;
&lt;br /&gt;
 Mar 20 12:25:37 localhost kernel: ata_scsi_issue_protect_fn(): unload support reported by drive..&lt;br /&gt;
 Mar 20 12:25:37 localhost kernel: scsi_protect_queue(): head parked..&lt;br /&gt;
 Mar 20 12:25:38 localhost kernel: scsi_unprotect_queue(): No pending I/O, re-enabling power management..&lt;br /&gt;
 Mar 20 12:25:38 localhost hdapsd[12522]: Tue Mar 20 12:25:38 2007: un-parking&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fingerprint-Reader ==&lt;br /&gt;
&lt;br /&gt;
=== Install userspace-tools ===&lt;br /&gt;
I got the fingerprint reader working with the new [http://thinkfinger.sourceforge.net/ ThinkFinger-drivers] (opensource). They are working much better than the closed-source UPEK drivers and don't have this ugly QT-dialog.&lt;br /&gt;
&lt;br /&gt;
Get some debian-packages from [http://www.rubixlinux.org/debian/thinkfinger/ here] and install them with:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot| dpkg -i *.deb}}&lt;br /&gt;
&lt;br /&gt;
=== Enroll your fingers ===&lt;br /&gt;
Enroll your fingers with:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|tf-tool --add-user &amp;lt;login&amp;gt;}}&lt;br /&gt;
 &lt;br /&gt;
 # tf-tool --add-user name&lt;br /&gt;
 ThinkFinger 0.2.2 (http://thinkfinger.sourceforge.net/)&lt;br /&gt;
 Copyright (C) 2006, 2007 Timo Hoenig &amp;lt;thoenig@suse.de&amp;gt;&lt;br /&gt;
 Initializing... done.&lt;br /&gt;
 Please swipe your finger (successful swipes 3/3, failed swipes: 0)... done.&lt;br /&gt;
 Storing data (/etc/pam_thinkfinger/name.bir)... done.&lt;br /&gt;
&lt;br /&gt;
=== Configuring PAM to use ThinkFinger ===&lt;br /&gt;
Now you can configure pam to use ThinkFinger:&lt;br /&gt;
&lt;br /&gt;
Open {{path|/etc/pam.d/common-auth}}:&lt;br /&gt;
&lt;br /&gt;
 # /etc/pam.d/common-auth - authentication settings common to all services&lt;br /&gt;
 #&lt;br /&gt;
 # This file is included from other service-specific PAM config files,&lt;br /&gt;
 # and should contain a list of the authentication modules that define&lt;br /&gt;
 # the central authentication scheme for use on the system&lt;br /&gt;
 # (e.g., /etc/shadow, LDAP, Kerberos, etc.).  The default is to use the&lt;br /&gt;
 # traditional Unix authentication mechanisms.&lt;br /&gt;
 #&lt;br /&gt;
 '''auth     sufficient     pam_thinkfinger.so'''&lt;br /&gt;
 auth     required     pam_unix.so '''try_first_pass'''&lt;br /&gt;
&lt;br /&gt;
Ready! Works flawlessly with gdm for instance!&lt;br /&gt;
Enroll user 'root' to use your fingerprint for 'sudo'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Z60m]][[Category:Debian]]&lt;/div&gt;</summary>
		<author><name>Samoht</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Etch_on_a_ThinkPad_Z60m&amp;diff=28835</id>
		<title>Installing Debian Etch on a ThinkPad Z60m</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Etch_on_a_ThinkPad_Z60m&amp;diff=28835"/>
		<updated>2007-03-20T12:32:34Z</updated>

		<summary type="html">&lt;p&gt;Samoht: added cpu throttling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NOTE|This article is not finished yet!}}&lt;br /&gt;
&lt;br /&gt;
== CPU Throttling ==&lt;br /&gt;
&lt;br /&gt;
Load the kernelmodule:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|modprobe speedstep_centrino}}&lt;br /&gt;
&lt;br /&gt;
Add line &amp;quot;speedstep_centrino&amp;quot; to {{path|/etc/modules}} to load the module on boot.&lt;br /&gt;
&lt;br /&gt;
Install the throttling-daemon:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install powernowd}}&lt;br /&gt;
&lt;br /&gt;
Done.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Active Protection System==&lt;br /&gt;
&lt;br /&gt;
=== Preparing the kernel ===&lt;br /&gt;
&lt;br /&gt;
To get the headdisk-parking working you have to build your own kernel with the hdaps_protect-patch applied:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Install the prerequisites that we need to compile the new kernel:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install kernel-package ncurses-dev fakeroot wget bzip2}}&lt;br /&gt;
&lt;br /&gt;
Get the recent debian-etch-kernel (2.6.18):&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install linux-tree-2.6.18}}&lt;br /&gt;
&lt;br /&gt;
Go to the sources and unpack them:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|cd /usr/src}}&lt;br /&gt;
{{cmdroot| tar jxvf linux-source-2.6.18.tar.bz2}}&lt;br /&gt;
&lt;br /&gt;
As etchs kernel is 2.6.18-4 its propably a good idea to get the hdaps_protect patch for 2.6.18-3:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot| wget http://www.dresco.co.uk/hdaps/hdaps_protect-2.6.18.3-2.patch}}&lt;br /&gt;
&lt;br /&gt;
Apply the patch:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|cd linux-source-2.6.18/}}&lt;br /&gt;
{{cmdroot|patch -p1 &amp;lt; ../hdaps_protect-2.6.18.3-2.patch}}&lt;br /&gt;
&lt;br /&gt;
Copy the default-config to the sourcetree:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|cp /boot/config-2.6.18-4-486 ./.config}}&lt;br /&gt;
&lt;br /&gt;
Build the kernel &amp;amp; packages:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|make-kpkg clean}}&lt;br /&gt;
{{cmdroot|make-kpkg fakeroot make-kpkg --initrd --revision=thinkpad.1.0 kernel_image}}&lt;br /&gt;
&lt;br /&gt;
Install the new kernel. Grub-menu should be updated automatically.&lt;br /&gt;
&lt;br /&gt;
{{cmdroot| dpkg -i linux-image-2.6.18_thinkpad.1.0_i386.deb }}&lt;br /&gt;
&lt;br /&gt;
Reboot and select the new kernel. Verify with 'uname -a'.&lt;br /&gt;
If all things work you can set the new kernel default in {{path|/boot/grub/menu.lst}} with default $entry-number (0..1..2..)&lt;br /&gt;
&lt;br /&gt;
===Preparing userspace===&lt;br /&gt;
&lt;br /&gt;
Installing the daemon:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install hdapsd}}&lt;br /&gt;
&lt;br /&gt;
To set your harddrive, edit {{path|/etc/default/hdapsd}}:&lt;br /&gt;
&lt;br /&gt;
 # start hdapsd at boottime?&lt;br /&gt;
 '''START=yes'''&lt;br /&gt;
 #&lt;br /&gt;
 # the name of the disk device that hdapsd should monitor.&lt;br /&gt;
 #&lt;br /&gt;
 # usually this is 'hda' the primary master or 'sda'&lt;br /&gt;
 # on SATA ThinkPads.&lt;br /&gt;
 '''DISK=sda'''&lt;br /&gt;
 #&lt;br /&gt;
 # other options to pass to hdapsd.&lt;br /&gt;
 # the -d and -b options are always passed.&lt;br /&gt;
 OPTIONS=&lt;br /&gt;
&lt;br /&gt;
Restart hdapsd:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|/etc/init.d/hdapsd restart}}&lt;br /&gt;
&lt;br /&gt;
You should get something like that in {{path| /var/log/syslog}} when throwing your thinkpad off the table: (No, seriously, shaking it carefully should be sufficient :-) )&lt;br /&gt;
&lt;br /&gt;
 Mar 20 12:25:37 localhost kernel: ata_scsi_issue_protect_fn(): unload support reported by drive..&lt;br /&gt;
 Mar 20 12:25:37 localhost kernel: scsi_protect_queue(): head parked..&lt;br /&gt;
 Mar 20 12:25:38 localhost kernel: scsi_unprotect_queue(): No pending I/O, re-enabling power management..&lt;br /&gt;
 Mar 20 12:25:38 localhost hdapsd[12522]: Tue Mar 20 12:25:38 2007: un-parking&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fingerprint-Reader ==&lt;br /&gt;
&lt;br /&gt;
=== Install userspace-tools ===&lt;br /&gt;
I got the fingerprint reader working with the new [http://thinkfinger.sourceforge.net/ ThinkFinger-drivers] (opensource). They are working much better than the closed-source UPEK drivers and don't have this ugly QT-dialog.&lt;br /&gt;
&lt;br /&gt;
Get some debian-packages from [http://www.rubixlinux.org/debian/thinkfinger/ here] and install them with:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot| dpkg -i *.deb}}&lt;br /&gt;
&lt;br /&gt;
=== Enroll your fingers ===&lt;br /&gt;
Enroll your fingers with:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|tf-tool --add-user &amp;lt;login&amp;gt;}}&lt;br /&gt;
 &lt;br /&gt;
 # tf-tool --add-user name&lt;br /&gt;
 ThinkFinger 0.2.2 (http://thinkfinger.sourceforge.net/)&lt;br /&gt;
 Copyright (C) 2006, 2007 Timo Hoenig &amp;lt;thoenig@suse.de&amp;gt;&lt;br /&gt;
 Initializing... done.&lt;br /&gt;
 Please swipe your finger (successful swipes 3/3, failed swipes: 0)... done.&lt;br /&gt;
 Storing data (/etc/pam_thinkfinger/name.bir)... done.&lt;br /&gt;
&lt;br /&gt;
=== Configuring PAM to use ThinkFinger ===&lt;br /&gt;
Now you can configure pam to use ThinkFinger:&lt;br /&gt;
&lt;br /&gt;
Open {{path|/etc/pam.d/common-auth}}:&lt;br /&gt;
&lt;br /&gt;
 # /etc/pam.d/common-auth - authentication settings common to all services&lt;br /&gt;
 #&lt;br /&gt;
 # This file is included from other service-specific PAM config files,&lt;br /&gt;
 # and should contain a list of the authentication modules that define&lt;br /&gt;
 # the central authentication scheme for use on the system&lt;br /&gt;
 # (e.g., /etc/shadow, LDAP, Kerberos, etc.).  The default is to use the&lt;br /&gt;
 # traditional Unix authentication mechanisms.&lt;br /&gt;
 #&lt;br /&gt;
 '''auth     sufficient     pam_thinkfinger.so'''&lt;br /&gt;
 auth     required     pam_unix.so '''try_first_pass'''&lt;br /&gt;
&lt;br /&gt;
Ready! Works flawlessly with gdm for instance!&lt;br /&gt;
Enroll user 'root' to use your fingerprint for 'sudo'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Z60m]][[Category:Debian]]&lt;/div&gt;</summary>
		<author><name>Samoht</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Etch_on_a_ThinkPad_Z60m&amp;diff=28834</id>
		<title>Installing Debian Etch on a ThinkPad Z60m</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Etch_on_a_ThinkPad_Z60m&amp;diff=28834"/>
		<updated>2007-03-20T11:55:30Z</updated>

		<summary type="html">&lt;p&gt;Samoht: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NOTE|This article is not finished yet!}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Active Protection System==&lt;br /&gt;
&lt;br /&gt;
=== Preparing the kernel ===&lt;br /&gt;
&lt;br /&gt;
To get the headdisk-parking working you have to build your own kernel with the hdaps_protect-patch applied:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Install the prerequisites that we need to compile the new kernel:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install kernel-package ncurses-dev fakeroot wget bzip2}}&lt;br /&gt;
&lt;br /&gt;
Get the recent debian-etch-kernel (2.6.18):&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install linux-tree-2.6.18}}&lt;br /&gt;
&lt;br /&gt;
Go to the sources and unpack them:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|cd /usr/src}}&lt;br /&gt;
{{cmdroot| tar jxvf linux-source-2.6.18.tar.bz2}}&lt;br /&gt;
&lt;br /&gt;
As etchs kernel is 2.6.18-4 its propably a good idea to get the hdaps_protect patch for 2.6.18-3:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot| wget http://www.dresco.co.uk/hdaps/hdaps_protect-2.6.18.3-2.patch}}&lt;br /&gt;
&lt;br /&gt;
Apply the patch:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|cd linux-source-2.6.18/}}&lt;br /&gt;
{{cmdroot|patch -p1 &amp;lt; ../hdaps_protect-2.6.18.3-2.patch}}&lt;br /&gt;
&lt;br /&gt;
Copy the default-config to the sourcetree:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|cp /boot/config-2.6.18-4-486 ./.config}}&lt;br /&gt;
&lt;br /&gt;
Build the kernel &amp;amp; packages:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|make-kpkg clean}}&lt;br /&gt;
{{cmdroot|make-kpkg fakeroot make-kpkg --initrd --revision=thinkpad.1.0 kernel_image}}&lt;br /&gt;
&lt;br /&gt;
Install the new kernel. Grub-menu should be updated automatically.&lt;br /&gt;
&lt;br /&gt;
{{cmdroot| dpkg -i linux-image-2.6.18_thinkpad.1.0_i386.deb }}&lt;br /&gt;
&lt;br /&gt;
Reboot and select the new kernel. Verify with 'uname -a'.&lt;br /&gt;
If all things work you can set the new kernel default in {{path|/boot/grub/menu.lst}} with default $entry-number (0..1..2..)&lt;br /&gt;
&lt;br /&gt;
===Preparing userspace===&lt;br /&gt;
&lt;br /&gt;
Installing the daemon:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install hdapsd}}&lt;br /&gt;
&lt;br /&gt;
To set your harddrive, edit {{path|/etc/default/hdapsd}}:&lt;br /&gt;
&lt;br /&gt;
 # start hdapsd at boottime?&lt;br /&gt;
 '''START=yes'''&lt;br /&gt;
 #&lt;br /&gt;
 # the name of the disk device that hdapsd should monitor.&lt;br /&gt;
 #&lt;br /&gt;
 # usually this is 'hda' the primary master or 'sda'&lt;br /&gt;
 # on SATA ThinkPads.&lt;br /&gt;
 '''DISK=sda'''&lt;br /&gt;
 #&lt;br /&gt;
 # other options to pass to hdapsd.&lt;br /&gt;
 # the -d and -b options are always passed.&lt;br /&gt;
 OPTIONS=&lt;br /&gt;
&lt;br /&gt;
Restart hdapsd:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|/etc/init.d/hdapsd restart}}&lt;br /&gt;
&lt;br /&gt;
You should get something like that in {{path| /var/log/syslog}} when throwing your thinkpad off the table: (No, seriously, shaking it carefully should be sufficient :-) )&lt;br /&gt;
&lt;br /&gt;
 Mar 20 12:25:37 localhost kernel: ata_scsi_issue_protect_fn(): unload support reported by drive..&lt;br /&gt;
 Mar 20 12:25:37 localhost kernel: scsi_protect_queue(): head parked..&lt;br /&gt;
 Mar 20 12:25:38 localhost kernel: scsi_unprotect_queue(): No pending I/O, re-enabling power management..&lt;br /&gt;
 Mar 20 12:25:38 localhost hdapsd[12522]: Tue Mar 20 12:25:38 2007: un-parking&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fingerprint-Reader ==&lt;br /&gt;
&lt;br /&gt;
=== Install userspace-tools ===&lt;br /&gt;
I got the fingerprint reader working with the new [http://thinkfinger.sourceforge.net/ ThinkFinger-drivers] (opensource). They are working much better than the closed-source UPEK drivers and don't have this ugly QT-dialog.&lt;br /&gt;
&lt;br /&gt;
Get some debian-packages from [http://www.rubixlinux.org/debian/thinkfinger/ here] and install them with:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot| dpkg -i *.deb}}&lt;br /&gt;
&lt;br /&gt;
=== Enroll your fingers ===&lt;br /&gt;
Enroll your fingers with:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|tf-tool --add-user &amp;lt;login&amp;gt;}}&lt;br /&gt;
 &lt;br /&gt;
 # tf-tool --add-user name&lt;br /&gt;
 ThinkFinger 0.2.2 (http://thinkfinger.sourceforge.net/)&lt;br /&gt;
 Copyright (C) 2006, 2007 Timo Hoenig &amp;lt;thoenig@suse.de&amp;gt;&lt;br /&gt;
 Initializing... done.&lt;br /&gt;
 Please swipe your finger (successful swipes 3/3, failed swipes: 0)... done.&lt;br /&gt;
 Storing data (/etc/pam_thinkfinger/name.bir)... done.&lt;br /&gt;
&lt;br /&gt;
=== Configuring PAM to use ThinkFinger ===&lt;br /&gt;
Now you can configure pam to use ThinkFinger:&lt;br /&gt;
&lt;br /&gt;
Open {{path|/etc/pam.d/common-auth}}:&lt;br /&gt;
&lt;br /&gt;
 # /etc/pam.d/common-auth - authentication settings common to all services&lt;br /&gt;
 #&lt;br /&gt;
 # This file is included from other service-specific PAM config files,&lt;br /&gt;
 # and should contain a list of the authentication modules that define&lt;br /&gt;
 # the central authentication scheme for use on the system&lt;br /&gt;
 # (e.g., /etc/shadow, LDAP, Kerberos, etc.).  The default is to use the&lt;br /&gt;
 # traditional Unix authentication mechanisms.&lt;br /&gt;
 #&lt;br /&gt;
 '''auth     sufficient     pam_thinkfinger.so'''&lt;br /&gt;
 auth     required     pam_unix.so '''try_first_pass'''&lt;br /&gt;
&lt;br /&gt;
Ready! Works flawlessly with gdm for instance!&lt;br /&gt;
Enroll user 'root' to use your fingerprint for 'sudo'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Z60m]][[Category:Debian]]&lt;/div&gt;</summary>
		<author><name>Samoht</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Etch_on_a_ThinkPad_Z60m&amp;diff=28833</id>
		<title>Installing Debian Etch on a ThinkPad Z60m</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Etch_on_a_ThinkPad_Z60m&amp;diff=28833"/>
		<updated>2007-03-20T11:37:07Z</updated>

		<summary type="html">&lt;p&gt;Samoht: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NOTE|This article is not finished yet!}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Active Protection System==&lt;br /&gt;
&lt;br /&gt;
=== Preparing the kernel ===&lt;br /&gt;
&lt;br /&gt;
To get the headdisk-parking working you have to build your own kernel with the hdaps_protect-patch applied:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Install the prerequisites that we need to compile the new kernel:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install kernel-package ncurses-dev fakeroot wget bzip2}}&lt;br /&gt;
&lt;br /&gt;
Get the recent debian-etch-kernel (2.6.18):&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install linux-tree-2.6.18}}&lt;br /&gt;
&lt;br /&gt;
Go to the sources and unpack them:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|cd /usr/src}}&lt;br /&gt;
{{cmdroot| tar jxvf linux-source-2.6.18.tar.bz2}}&lt;br /&gt;
&lt;br /&gt;
As etchs kernel is 2.6.18-4 its propably a good idea to get the hdaps_protect patch for 2.6.18-3:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot| wget http://www.dresco.co.uk/hdaps/hdaps_protect-2.6.18.3-2.patch}}&lt;br /&gt;
&lt;br /&gt;
Apply the patch:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|cd linux-source-2.6.18/}}&lt;br /&gt;
{{cmdroot|patch -p1 &amp;lt; ../hdaps_protect-2.6.18.3-2.patch}}&lt;br /&gt;
&lt;br /&gt;
Copy the default-config to the sourcetree:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|cp /boot/config-2.6.18-4-486 ./.config}}&lt;br /&gt;
&lt;br /&gt;
Build the kernel &amp;amp; packages:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|make-kpkg clean}}&lt;br /&gt;
{{cmdroot|make-kpkg fakeroot make-kpkg --initrd --revision=thinkpad.1.0 kernel_image}}&lt;br /&gt;
&lt;br /&gt;
Install the new kernel. Grub-menu should be updated automatically.&lt;br /&gt;
&lt;br /&gt;
{{cmdroot| dpkg -i linux-image-2.6.18_thinkpad.1.0_i386.deb }}&lt;br /&gt;
&lt;br /&gt;
Reboot and select the new kernel. Verify with 'uname -a'.&lt;br /&gt;
If all things work you can set the new kernel default in {{path|/boot/grub/menu.lst}} with default $entry-number (0..1..2..)&lt;br /&gt;
&lt;br /&gt;
===Preparing userspace===&lt;br /&gt;
&lt;br /&gt;
Installing the daemon:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install hdapsd}}&lt;br /&gt;
&lt;br /&gt;
To set your harddrive, edit {{path|/etc/default/hdapsd}}:&lt;br /&gt;
&lt;br /&gt;
 # start hdapsd at boottime?&lt;br /&gt;
 '''START=yes'''&lt;br /&gt;
 #&lt;br /&gt;
 # the name of the disk device that hdapsd should monitor.&lt;br /&gt;
 #&lt;br /&gt;
 # usually this is 'hda' the primary master or 'sda'&lt;br /&gt;
 # on SATA ThinkPads.&lt;br /&gt;
 '''DISK=sda'''&lt;br /&gt;
 #&lt;br /&gt;
 # other options to pass to hdapsd.&lt;br /&gt;
 # the -d and -b options are always passed.&lt;br /&gt;
 OPTIONS=&lt;br /&gt;
&lt;br /&gt;
Restart hdapsd:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|/etc/init.d/hdapsd restart}}&lt;br /&gt;
&lt;br /&gt;
You should get something like that in {{path| /var/log/syslog}} when throwing your thinkpad off the table: (No, seriously, shaking it carefully should be sufficient :-) )&lt;br /&gt;
&lt;br /&gt;
 Mar 20 12:25:37 localhost kernel: ata_scsi_issue_protect_fn(): unload support reported by drive..&lt;br /&gt;
 Mar 20 12:25:37 localhost kernel: scsi_protect_queue(): head parked..&lt;br /&gt;
 Mar 20 12:25:38 localhost kernel: scsi_unprotect_queue(): No pending I/O, re-enabling power management..&lt;br /&gt;
 Mar 20 12:25:38 localhost hdapsd[12522]: Tue Mar 20 12:25:38 2007: un-parking&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Z60m]][[Category:Debian]]&lt;/div&gt;</summary>
		<author><name>Samoht</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Etch_on_a_ThinkPad_Z60m&amp;diff=28832</id>
		<title>Installing Debian Etch on a ThinkPad Z60m</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Etch_on_a_ThinkPad_Z60m&amp;diff=28832"/>
		<updated>2007-03-20T11:28:35Z</updated>

		<summary type="html">&lt;p&gt;Samoht: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NOTE|This article is not finished yet!}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Active Protection System==&lt;br /&gt;
&lt;br /&gt;
=== Preparing the kernel ===&lt;br /&gt;
&lt;br /&gt;
To get the headdisk-parking working you have to build your own kernel with the hdaps_protect-patch applied:&lt;br /&gt;
&lt;br /&gt;
Install the prerequisites that we need to compile the new kernel:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install kernel-package ncurses-dev fakeroot wget bzip2}}&lt;br /&gt;
&lt;br /&gt;
Get the recent debian-etch-kernel (2.6.18):&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install linux-tree-2.6.18}}&lt;br /&gt;
&lt;br /&gt;
Go to the sources and unpack them:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|cd /usr/src}}&lt;br /&gt;
{{cmdroot| tar jxvf linux-source-2.6.18.tar.bz2}}&lt;br /&gt;
&lt;br /&gt;
As etchs kernel is 2.6.18-4 its propably a good idea to get the hdaps_protect patch for 2.6.18-3:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot| wget http://www.dresco.co.uk/hdaps/hdaps_protect-2.6.18.3-2.patch}}&lt;br /&gt;
&lt;br /&gt;
Apply the patch:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|cd linux-source-2.6.18/}}&lt;br /&gt;
{{cmdroot|patch -p1 &amp;lt; ../hdaps_protect-2.6.18.3-2.patch}}&lt;br /&gt;
&lt;br /&gt;
Copy the default-config to the sourcetree:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|cp /boot/config-2.6.18-4-486 ./.config}}&lt;br /&gt;
&lt;br /&gt;
Build the kernel &amp;amp; packages:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|make-kpkg clean}}&lt;br /&gt;
{{cmdroot|make-kpkg fakeroot make-kpkg --initrd --revision=thinkpad.1.0 kernel_image}}&lt;br /&gt;
&lt;br /&gt;
Install the new kernel. Grub-menu should be updated automatically.&lt;br /&gt;
&lt;br /&gt;
{{cmdroot| dpkg -i linux-image-2.6.18_thinkpad.1.0_i386.deb }}&lt;br /&gt;
&lt;br /&gt;
Reboot and select the new kernel. Verify with 'uname -a'.&lt;br /&gt;
If all things work you can set the new kernel default in {{configpath|/boot/grub/menu.lst}} with default $entry-number (0..1..2..)&lt;br /&gt;
&lt;br /&gt;
===Preparing userspace===&lt;br /&gt;
&lt;br /&gt;
Installing the daemon:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install hdapsd}}&lt;br /&gt;
&lt;br /&gt;
To set your harddrive, edit {{path|/etc/default/hdapsd}}:&lt;br /&gt;
&lt;br /&gt;
 # start hdapsd at boottime?&lt;br /&gt;
 '''START=yes'''&lt;br /&gt;
 #&lt;br /&gt;
 # the name of the disk device that hdapsd should monitor.&lt;br /&gt;
 #&lt;br /&gt;
 # usually this is 'hda' the primary master or 'sda'&lt;br /&gt;
 # on SATA ThinkPads.&lt;br /&gt;
 '''DISK=sda'''&lt;br /&gt;
 #&lt;br /&gt;
 # other options to pass to hdapsd.&lt;br /&gt;
 # the -d and -b options are always passed.&lt;br /&gt;
 OPTIONS=&lt;br /&gt;
&lt;br /&gt;
Restart hdapsd:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|/etc/init.d/hdapsd restart}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Z60m]][[Category:Debian]]&lt;/div&gt;</summary>
		<author><name>Samoht</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Etch_on_a_ThinkPad_Z60m&amp;diff=28831</id>
		<title>Installing Debian Etch on a ThinkPad Z60m</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Etch_on_a_ThinkPad_Z60m&amp;diff=28831"/>
		<updated>2007-03-20T10:50:04Z</updated>

		<summary type="html">&lt;p&gt;Samoht: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NOTE|This article is not finished yet!}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Active Protection System==&lt;br /&gt;
&lt;br /&gt;
=== Preparing the kernel ===&lt;br /&gt;
&lt;br /&gt;
To get the headdisk-parking working you have to build your own kernel with the hdaps_protect-patch applied:&lt;br /&gt;
&lt;br /&gt;
Install the prerequisites that we need to compile the new kernel:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install kernel-package ncurses-dev fakeroot wget bzip2}}&lt;br /&gt;
&lt;br /&gt;
Get the recent debian-etch-kernel (2.6.18):&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install linux-tree-2.6.18}}&lt;br /&gt;
&lt;br /&gt;
Go to the sources and unpack them:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|cd /usr/src}}&lt;br /&gt;
{{cmdroot| tar jxvf linux-source-2.6.18.tar.bz2}}&lt;br /&gt;
&lt;br /&gt;
As etchs kernel is 2.6.18-4 its propably a good idea to get the hdaps_protect patch for 2.6.18-3:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot| wget http://www.dresco.co.uk/hdaps/hdaps_protect-2.6.18.3-2.patch}}&lt;br /&gt;
&lt;br /&gt;
Apply the patch:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|cd linux-source-2.6.18/}}&lt;br /&gt;
{{cmdroot|patch -p1 &amp;lt; ../hdaps_protect-2.6.18.3-2.patch}}&lt;br /&gt;
&lt;br /&gt;
Copy the default-config to the sourcetree:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|cp /boot/config-2.6.18-4-486 ./.config}}&lt;br /&gt;
&lt;br /&gt;
Build the kernel &amp;amp; packages:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|make-kpkg clean}}&lt;br /&gt;
{{cmdroot|make-kpkg fakeroot make-kpkg --revision=thinkpad.1.0 kernel_image}}&lt;br /&gt;
&lt;br /&gt;
Install the new kernel. Grub-menu should be updated automatically.&lt;br /&gt;
&lt;br /&gt;
{{cmdroot| dpkg -i linux-image-2.6.18_thinkpad.1.0_i386.deb }}&lt;br /&gt;
&lt;br /&gt;
Reboot to use the new kernel. Verify with 'uname -a'.&lt;br /&gt;
&lt;br /&gt;
===Preparing userspace===&lt;br /&gt;
&lt;br /&gt;
Installing the daemon:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install hdapsd}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Z60m]][[Category:Debian]]&lt;/div&gt;</summary>
		<author><name>Samoht</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Etch_on_a_ThinkPad_Z60m&amp;diff=28830</id>
		<title>Installing Debian Etch on a ThinkPad Z60m</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Etch_on_a_ThinkPad_Z60m&amp;diff=28830"/>
		<updated>2007-03-20T10:44:20Z</updated>

		<summary type="html">&lt;p&gt;Samoht: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NOTE|This article is not finished yet!}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Active Protection System==&lt;br /&gt;
&lt;br /&gt;
=== Preparing the kernel ===&lt;br /&gt;
&lt;br /&gt;
To get the headdisk-parking working you have to build your own kernel with the hdaps_protect-patch applied:&lt;br /&gt;
&lt;br /&gt;
Install the prerequisites that we need to compile the new kernel:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install kernel-package ncurses-dev fakeroot wget bzip2}}&lt;br /&gt;
&lt;br /&gt;
Get the recent debian-etch-kernel (2.6.18):&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install linux-tree-2.6.18}}&lt;br /&gt;
&lt;br /&gt;
Go to the sources and unpack them:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|cd /usr/src}}&lt;br /&gt;
{{cmdroot| tar jxvf linux-source-2.6.18.tar.bz2}}&lt;br /&gt;
&lt;br /&gt;
As etchs kernel is 2.6.18-4 its propably a good idea to get the hdaps_protect patch for 2.6.18-3:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot| wget http://www.dresco.co.uk/hdaps/hdaps_protect-2.6.18.3-2.patch}}&lt;br /&gt;
&lt;br /&gt;
Apply the patch:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|cd linux-source-2.6.18/}}&lt;br /&gt;
{{cmdroot|patch -p1 &amp;lt; ../hdaps_protect-2.6.18.3-2.patch}}&lt;br /&gt;
&lt;br /&gt;
Copy the default-config to the sourcetree:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|cp /boot/config-2.6.18-4-486 ./.config}}&lt;br /&gt;
&lt;br /&gt;
Build the kernel &amp;amp; packages:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|make-kpkg clean}}&lt;br /&gt;
{{cmdroot|make-kpkg fakeroot make-kpkg --revision=thinkpad.1.0 kernel_image}}&lt;br /&gt;
&lt;br /&gt;
Reboot to use the new kernel. Verify with 'uname -a'.&lt;br /&gt;
&lt;br /&gt;
===Preparing userspace===&lt;br /&gt;
&lt;br /&gt;
Installing the daemon:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install hdapsd}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Z60m]][[Category:Debian]]&lt;/div&gt;</summary>
		<author><name>Samoht</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Etch_on_a_ThinkPad_Z60m&amp;diff=28829</id>
		<title>Installing Debian Etch on a ThinkPad Z60m</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Etch_on_a_ThinkPad_Z60m&amp;diff=28829"/>
		<updated>2007-03-20T10:43:20Z</updated>

		<summary type="html">&lt;p&gt;Samoht: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NOTE|This article is not finished yet!}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Active Protection System==&lt;br /&gt;
&lt;br /&gt;
=== Preparing the kernel ===&lt;br /&gt;
&lt;br /&gt;
To get the headdisk-parking working you have to build your own kernel with the hdaps_protect-patch applied:&lt;br /&gt;
&lt;br /&gt;
Install the prerequisites that we need to compile the new kernel:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install kernel-package ncurses-dev fakeroot wget bzip2}}&lt;br /&gt;
&lt;br /&gt;
Get the recent debian-etch-kernel (2.6.18):&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install linux-tree-2.6.18}}&lt;br /&gt;
&lt;br /&gt;
Go to the sources and unpack them:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|cd /usr/src}}&lt;br /&gt;
{{cmdroot| tar jxvf linux-source-2.6.18.tar.bz2}}&lt;br /&gt;
&lt;br /&gt;
As etchs kernel is 2.6.18-4 its propably a good idea to get the hdaps_protect patch for 2.6.18-3:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot| wget http://www.dresco.co.uk/hdaps/hdaps_protect-2.6.18.3-2.patch}}&lt;br /&gt;
&lt;br /&gt;
Apply the patch:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|cd linux-source-2.6.18/}}&lt;br /&gt;
{{cmdroot|patch -p1 &amp;lt; ../hdaps_protect-2.6.18.3-2.patch}}&lt;br /&gt;
&lt;br /&gt;
Copy the default-config to the sourcetree:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|cp /boot/config-2.6.18-4-486 ./.config}}&lt;br /&gt;
&lt;br /&gt;
Build the kernel &amp;amp; packages:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|make-kpkg clean}}&lt;br /&gt;
{{cmdroot|make-kpkg fakeroot make-kpkg --revision=thinkpad.1.0 kernel_image}}&lt;br /&gt;
&lt;br /&gt;
Reboot to use the new kernel. Verify with 'uname -a'.&lt;br /&gt;
&lt;br /&gt;
===Preparing userspace===&lt;br /&gt;
&lt;br /&gt;
Installing the daemon:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|apt-get install hdapsd}&lt;/div&gt;</summary>
		<author><name>Samoht</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_enable_the_integrated_fingerprint_reader_with_ThinkFinger&amp;diff=28712</id>
		<title>How to enable the integrated fingerprint reader with ThinkFinger</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_enable_the_integrated_fingerprint_reader_with_ThinkFinger&amp;diff=28712"/>
		<updated>2007-03-13T19:09:30Z</updated>

		<summary type="html">&lt;p&gt;Samoht: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[How to enable the fingerprint reader]] has a good explanation for using the fingerprint reader with the closed-source binary driver. But there is also an opensource project called [http://thinkfinger.sourceforge.net ThinkFinger] which does the same, but open.&lt;br /&gt;
&lt;br /&gt;
== Installing from source ==&lt;br /&gt;
Speaking for Debian, there are no packages of ThinkFinger in the repositories yet (cf. [http://bugs.debian.org/409563 bug #409563]), so I describe the installation from source. If you're on Gentoo, you can find an ebuild at [https://bugs.gentoo.org/show_bug.cgi?id=162297 bug 162297].&lt;br /&gt;
&lt;br /&gt;
{{NOTE|packages for Debian (testing) are available here: [http://www.rubixlinux.org/debian/thinkfinger/]}}&lt;br /&gt;
&lt;br /&gt;
Download thinkfinger-0.2.2.tar.gz from the [http://thinkfinger.sourceforge.net/ homepage] and unpack it somewhere, make sure you have libusb-dev and libpam0g-dev installed, then:&lt;br /&gt;
&lt;br /&gt;
{{cmduser|cd thinkfinger-0.2.2}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code style=&amp;quot;white-space:nowrap;color:#495988;background-color:white;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;$&amp;lt;/nowiki&amp;gt; ./configure --with-securedir=/lib/security --with-birdir=/etc/pam_thinkfinger&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{cmduser|make}}&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|make install}}&lt;br /&gt;
&lt;br /&gt;
{{NOTE|/lib/security is the dir, where pam assumes its modules on Debian, it may vary for your distro!}}&lt;br /&gt;
&lt;br /&gt;
If everything went ok assert that you find pam_thinkfinger.so in /lib/security typing:&lt;br /&gt;
&lt;br /&gt;
{{cmduser|ls /lib/security}}&lt;br /&gt;
&lt;br /&gt;
== Testing the driver ==&lt;br /&gt;
Now the driver is installed and should be working. You can try it with&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|tf-tool --acquire}}&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|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;
== Configuring PAM to use ThinkFinger ==&lt;br /&gt;
Now you can configure pam to use ThinkFinger:&lt;br /&gt;
&lt;br /&gt;
Open /etc/pam.d/common-auth:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|nano -w /etc/pam.d/common-auth}}&lt;br /&gt;
&lt;br /&gt;
Add this line before any pam_unix or pam_unix2 directives:&lt;br /&gt;
 auth     sufficient     pam_thinkfinger.so&lt;br /&gt;
&lt;br /&gt;
If your PAM uses the pam_unix and not the pam_unix2 module, you need to pass a specific argument in&lt;br /&gt;
the /etc/pam.d/common-auth directive to make it consider the password entered at the pam_thinkfinger prompt.&lt;br /&gt;
 auth     required     pam_unix.so try_first_pass&lt;br /&gt;
&lt;br /&gt;
For instance my /etc/pam.d/common-auth looks like this:&lt;br /&gt;
 auth    sufficient      pam_thinkfinger.so&lt;br /&gt;
 auth    required        pam_unix.so nullok_secure try_first_pass&lt;br /&gt;
&lt;br /&gt;
Now we are ready to add users to thinkfinger. As make install did not create /etc/pam_thinkfinger, we need to create it now:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|mkdir /etc/pam_thinkfinger}}&lt;br /&gt;
&lt;br /&gt;
And now we can add a fingerprint for a user with:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|tf-tool --add-user $USERNAME}}&lt;br /&gt;
&lt;br /&gt;
Now the user should be able to login with his finger, instead of the password.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This Howto was copied from [[Installing Ubuntu 6.06 on a ThinkPad T43#Fingerprint_Reader]] and then slightly modified by me.&lt;/div&gt;</summary>
		<author><name>Samoht</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_enable_the_integrated_fingerprint_reader_with_ThinkFinger&amp;diff=28711</id>
		<title>How to enable the integrated fingerprint reader with ThinkFinger</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_enable_the_integrated_fingerprint_reader_with_ThinkFinger&amp;diff=28711"/>
		<updated>2007-03-13T19:08:46Z</updated>

		<summary type="html">&lt;p&gt;Samoht: added url to debian packages&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[How to enable the fingerprint reader]] has a good explanation for using the fingerprint reader with the closed-source binary driver. But there is also an opensource project called [http://thinkfinger.sourceforge.net ThinkFinger] which does the same, but open.&lt;br /&gt;
&lt;br /&gt;
== Installing from source ==&lt;br /&gt;
Speaking for Debian, there are no packages of ThinkFinger in the repositories yet (cf. [http://bugs.debian.org/409563 bug #409563]), so I describe the installation from source. If you're on Gentoo, you can find an ebuild at [https://bugs.gentoo.org/show_bug.cgi?id=162297 bug 162297].&lt;br /&gt;
&lt;br /&gt;
{{NOTE|packages for Debian are available here: [http://www.rubixlinux.org/debian/thinkfinger/]}}&lt;br /&gt;
&lt;br /&gt;
Download thinkfinger-0.2.2.tar.gz from the [http://thinkfinger.sourceforge.net/ homepage] and unpack it somewhere, make sure you have libusb-dev and libpam0g-dev installed, then:&lt;br /&gt;
&lt;br /&gt;
{{cmduser|cd thinkfinger-0.2.2}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code style=&amp;quot;white-space:nowrap;color:#495988;background-color:white;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;$&amp;lt;/nowiki&amp;gt; ./configure --with-securedir=/lib/security --with-birdir=/etc/pam_thinkfinger&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{cmduser|make}}&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|make install}}&lt;br /&gt;
&lt;br /&gt;
{{NOTE|/lib/security is the dir, where pam assumes its modules on Debian, it may vary for your distro!}}&lt;br /&gt;
&lt;br /&gt;
If everything went ok assert that you find pam_thinkfinger.so in /lib/security typing:&lt;br /&gt;
&lt;br /&gt;
{{cmduser|ls /lib/security}}&lt;br /&gt;
&lt;br /&gt;
== Testing the driver ==&lt;br /&gt;
Now the driver is installed and should be working. You can try it with&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|tf-tool --acquire}}&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|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;
== Configuring PAM to use ThinkFinger ==&lt;br /&gt;
Now you can configure pam to use ThinkFinger:&lt;br /&gt;
&lt;br /&gt;
Open /etc/pam.d/common-auth:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|nano -w /etc/pam.d/common-auth}}&lt;br /&gt;
&lt;br /&gt;
Add this line before any pam_unix or pam_unix2 directives:&lt;br /&gt;
 auth     sufficient     pam_thinkfinger.so&lt;br /&gt;
&lt;br /&gt;
If your PAM uses the pam_unix and not the pam_unix2 module, you need to pass a specific argument in&lt;br /&gt;
the /etc/pam.d/common-auth directive to make it consider the password entered at the pam_thinkfinger prompt.&lt;br /&gt;
 auth     required     pam_unix.so try_first_pass&lt;br /&gt;
&lt;br /&gt;
For instance my /etc/pam.d/common-auth looks like this:&lt;br /&gt;
 auth    sufficient      pam_thinkfinger.so&lt;br /&gt;
 auth    required        pam_unix.so nullok_secure try_first_pass&lt;br /&gt;
&lt;br /&gt;
Now we are ready to add users to thinkfinger. As make install did not create /etc/pam_thinkfinger, we need to create it now:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|mkdir /etc/pam_thinkfinger}}&lt;br /&gt;
&lt;br /&gt;
And now we can add a fingerprint for a user with:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|tf-tool --add-user $USERNAME}}&lt;br /&gt;
&lt;br /&gt;
Now the user should be able to login with his finger, instead of the password.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This Howto was copied from [[Installing Ubuntu 6.06 on a ThinkPad T43#Fingerprint_Reader]] and then slightly modified by me.&lt;/div&gt;</summary>
		<author><name>Samoht</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:How_to_enable_integrated_fingerprint_reader_with_BioAPI&amp;diff=28119</id>
		<title>Talk:How to enable integrated fingerprint reader with BioAPI</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:How_to_enable_integrated_fingerprint_reader_with_BioAPI&amp;diff=28119"/>
		<updated>2007-02-05T19:28:26Z</updated>

		<summary type="html">&lt;p&gt;Samoht: /* Alternative ThinkFinger &amp;quot;Driver&amp;quot; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Removing the GUI Prompt ==&lt;br /&gt;
For all of you that have had the oppertunity to see the fingerprint image, I think we can all agree that this needs to be changed at ounce. A couple of ideas come to mind, first is to trick bioapi to think that X is not running, and secound is to figure out where the images are being pulled from and then edit them. The later would be nice, but I have been experimenting with strace for several hours and have came up with nothing. Any other ideas?&lt;br /&gt;
&lt;br /&gt;
--[[User:Paul Strefling|Paul Strefling]] 18:42, 18 July 2006 (CEST)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== chmod 777 -R /usr/local/var/bioapi/ ==&lt;br /&gt;
&lt;br /&gt;
Is the above necessary? I just made a debian package of xscreensaver with the patch applied, and when using the bioapi debian pacakge from [http://www.qrivy.net/~michael/temp/ Michael R. Crusoe's site] which has this directory put in /usr/var/bioapi I had not to change the permissions to world-writeable there. Write access to the logfile and usb device are necessary, but that directory works with 755 as well (even though it comes with 777 in Michael's package), and all files and subdirectories are 644/755 too.&lt;br /&gt;
&lt;br /&gt;
--[[User:Spiney|spiney]] 00:08, 11 Nov 2005 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Qt Compilation Success ==&lt;br /&gt;
&lt;br /&gt;
Here it worked with qt ;)&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
I didn't get it to work anyway, but I'm curious about your Qt version(s) as it seemed to want Qt 3 when I was playing with it.&lt;br /&gt;
&lt;br /&gt;
--[[User:Keegan|keegan]] 05:07, 24 Dec 2005 (CET)&lt;br /&gt;
&lt;br /&gt;
== using absolute paths for commands ==&lt;br /&gt;
&lt;br /&gt;
I don't know whether using absolute paths in the articles is a good idea, at least not for tools like {{cmd|lsusb|}} which are not established utilities (i.e. used for more than a decade or something ;)) and happen to be in different locations in different distributions. E.g. said {{cmd|lsusb|}} resides in {{path|/usr/sbin|}} on Debian systems.&lt;br /&gt;
&lt;br /&gt;
--[[User:Spiney|spiney]] 16:45, 12 Nov 2005 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
I'm using debian testing and it's in {{path|/usr/bin|}}.  I agree that the confusion is bad; dropping the absolute paths and adding a general note about checking {{cmd|$PATH|}} in case of problems is probably good.&lt;br /&gt;
&lt;br /&gt;
--[[User:keegan|keegan]]&lt;br /&gt;
&lt;br /&gt;
== BioAPI error #3 ==&lt;br /&gt;
&lt;br /&gt;
Its kind of strage it used to work with everythig (kdm,console,lock,etc)&lt;br /&gt;
Now it only works with kdm. It allways gives back:&lt;br /&gt;
&lt;br /&gt;
pam_bioapi[8113]: Unable to initialize Bioapi framework, BioAPI error #:3.&lt;br /&gt;
&lt;br /&gt;
Even when I set the right permissions on /proc/bus/usb.&lt;br /&gt;
&lt;br /&gt;
I am able to run the Sample program as normal user after setting the permissions, but when I change within a user session by su I amnot able to run the Sample program a also get an error Code #3.&lt;br /&gt;
&lt;br /&gt;
From an other terminal (alt+strg+Fx) I am able to run the Sample program but at the login I still get the error #3.&lt;br /&gt;
&lt;br /&gt;
I cant remember to have changed anything an d bevor I was able to login in a console with my fingerprint now only kdm is working even kde lock-session       &lt;br /&gt;
isnt working anymore.&lt;br /&gt;
&lt;br /&gt;
Any suggestions ?&lt;br /&gt;
&lt;br /&gt;
==Permission errors exclusive to xscreensaver==&lt;br /&gt;
&lt;br /&gt;
I followed the instructions above and got everything working, including non-root programs like xscreensaver.  However, the script to change usbfs permissions is finicky and fails to work with a lot of things like suspend/resume.  Therefore, I switched to specifying &amp;lt;tt&amp;gt;devgid=108,devmode=0660,busgid=108,busmode=0770,listgid=108,listmode=0660&amp;lt;/tt&amp;gt; as mount parameters for usbfs, where group 108 is a group I created and added my normal user to.  This seems like a much better way of doing things, and it almost works.  However, xscreensaver (using the newer patch) gives the familiar &amp;lt;tt&amp;gt;Unable to load BioAPI BSP with UUID of &amp;lt;nowiki&amp;gt;{&amp;lt;/nowiki&amp;gt;5550454b-2054-464d-2f45-535320425350&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;, BioAPI error #194d.&amp;lt;/tt&amp;gt; error in {{path|/var/log/auth.log|}}.  I don't think this is a straightfoward permissions problem because&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;the permissions in {{path|/proc/bus/usb|}} are correct by inspection&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;I can write to the device file as my normal user&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;other programs like {{cmd|test_verify-pam_bioapi|}} and [http://pamtester.sourceforge.net/ {{cmd|pamtester|}}] work as my normal user&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;the weirdest one: xscreensaver works when the {{cmd|xscreensaver|}} daemon is launched from within {{cmd|strace|}}.  It's still running as my normal user ({{cmd|strace|}} is not setuid root).  I have absolutely no idea what would cause this.  I thought it might be an environment issue, but the difference in environment between the {{cmd|strace|}} session and my normal session is trivial.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point I'm hoping it's something dumb, but I'm out of ideas.  The {{cmd|xscreensaver|}} error is &amp;lt;tt&amp;gt;pam_authenticate (...) ==&amp;amp;gt; 7 (Authentication failure)&amp;lt;/tt&amp;gt;, for the record.&lt;br /&gt;
&lt;br /&gt;
--[[User:keegan|keegan]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
I had the same problem and found that it was caused by the setuid permission on xscreensaver. After chmod'ing it to 755 and restarting xscreensaver, bioapi authentication worked.&lt;br /&gt;
&lt;br /&gt;
--[[User:henning|henning]] 09:22, 8 Aug 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Could you provide all the log lines between pam_start and pam_end when running {{cmd|xscreensaver -verbose|}}?&lt;br /&gt;
&lt;br /&gt;
BTW, the idea with using the mount options for usbfs is very good, maybe you should add that info to the article page? I use the permission changing script without problems, also after resume, but the usbfs version is probably easier to set up, most people will be able to find {{path|/etc/fstab|}}.&lt;br /&gt;
&lt;br /&gt;
--[[User:Spiney|spiney]] 10:12, 23 Dec 2005 (CET)&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xscreensaver: 20:56:01: alternative_pam:  1 -&amp;gt; pam service: xscreensaver-alternative&lt;br /&gt;
xscreensaver: 20:56:01: pam_start (&amp;quot;xscreensaver-alternative&amp;quot;, &amp;quot;keegan&amp;quot;, ...) ==&amp;gt; 0 (Success)&lt;br /&gt;
xscreensaver: 20:56:01:   pam_set_item (p, PAM_TTY, &amp;quot;:0.0&amp;quot;) ==&amp;gt; 0 (Success)&lt;br /&gt;
xscreensaver: 20:56:01:     PAM ECHO_OFF(&amp;quot;Password: &amp;quot;) ==&amp;gt; password&lt;br /&gt;
xscreensaver: 20:56:03:   pam_authenticate (...) ==&amp;gt; 7 (Authentication failure)&lt;br /&gt;
xscreensaver: 20:56:03: pam_end (...) ==&amp;gt; 0 (Success)&lt;br /&gt;
xscreensaver: 20:56:03: prompting for password.&lt;br /&gt;
xscreensaver: 20:56:03: 0: creating password dialog.&lt;br /&gt;
xscreensaver: 20:56:03: 0: mouse is at 442,412.&lt;br /&gt;
xscreensaver: 20:56:03: grabbing server...&lt;br /&gt;
xscreensaver: 20:56:03: 0: ungrabbing mouse (was 0x48).&lt;br /&gt;
xscreensaver: 20:56:03: 0: grabbing mouse on 0xe0002b... GrabSuccess.&lt;br /&gt;
xscreensaver: 20:56:03: ungrabbing server.&lt;br /&gt;
xscreensaver: 20:56:05: alternative_pam:  12582928 -&amp;gt; pam service: xscreensaver&lt;br /&gt;
xscreensaver: 20:56:05: pam_start (&amp;quot;xscreensaver&amp;quot;, &amp;quot;keegan&amp;quot;, ...) ==&amp;gt; 0 (Success)&lt;br /&gt;
xscreensaver: 20:56:05:   pam_set_item (p, PAM_TTY, &amp;quot;:0.0&amp;quot;) ==&amp;gt; 0 (Success)&lt;br /&gt;
xscreensaver: 20:56:05:     PAM ECHO_OFF(&amp;quot;Password: &amp;quot;) ==&amp;gt; password&lt;br /&gt;
xscreensaver: 20:56:05:   pam_authenticate (...) ==&amp;gt; 0 (Success)&lt;br /&gt;
xscreensaver: 20:56:05:   pam_acct_mgmt (...) ==&amp;gt; 9 (Authentication service cannot retrieve authentication info.)&lt;br /&gt;
xscreensaver: 20:56:05:   pam_setcred (...) ==&amp;gt; 0 (Success)&lt;br /&gt;
xscreensaver: 20:56:05: pam_end (...) ==&amp;gt; 0 (Success)&lt;br /&gt;
xscreensaver: 20:56:05: password correct.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So we've got the first attempt with {{cmd|pam_bioapi|}}, which fails immediately (no sign of the GUI fingerprint prompt, nor a &amp;quot;silent&amp;quot; chance to swipe the finger as with xdm), then the fallback to {{cmd|pam_unix|}} which succeeds.  Earlier I had xscreensaver set up to only try {{cmd|pam_bioapi|}}, with essentially the same result -- it gives up on pam entirely and does unix auth itself.&lt;br /&gt;
&lt;br /&gt;
I'd really like to strace the pam module and see what it's attempting to do to {{path|/proc/bus/usb|}}, but as that actually fixes the problem I'm kinda at a loss.  Maybe there's some kernel option to print debugging info for usbfs?  I'd be all for changing the article to suggest using mount options in {{path|/etc/fstab|}}, if it weren't for this one weird bug.  Has anyone else had the same problem?&lt;br /&gt;
&lt;br /&gt;
-- [[User:keegan|keegan]]&lt;br /&gt;
&lt;br /&gt;
Same here, I had the whole setup workin flawlessly (I really need to get that 'never-touch-a-running-system' mantra burnt into the back of my hands), but after a fresh install of the same distro (Ubuntu) and following the same procedure to get things working i get exactly this behaviour. Login works (now even with multifinger, although there are other issues with that), I can use test_verify-pam_bioapi as a user. and the stock xscreensaver works, albeit only after entering a bogus password first.&lt;br /&gt;
The patched xscreensaver works when run within a strace (Now that sucks) but fails otherwise. And as i said before, I had this working...&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
open(&amp;quot;/dev/bus/usb&amp;quot;, O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 13&lt;br /&gt;
fstat64(13, {st_mode=S_IFDIR|0755, st_size=140, ...}) = 0&lt;br /&gt;
fcntl64(13, F_SETFD, FD_CLOEXEC)        = 0&lt;br /&gt;
getdents64(13, /* 7 entries */, 4096)   = 168&lt;br /&gt;
getdents64(13, /* 0 entries */, 4096)   = 0&lt;br /&gt;
close(13)                               = 0&lt;br /&gt;
open(&amp;quot;/dev/bus/usb/003&amp;quot;, O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 13&lt;br /&gt;
fstat64(13, {st_mode=S_IFDIR|0755, st_size=80, ...}) = 0&lt;br /&gt;
fcntl64(13, F_SETFD, FD_CLOEXEC)        = 0&lt;br /&gt;
getdents64(13, /* 4 entries */, 4096)   = 96&lt;br /&gt;
open(&amp;quot;/dev/bus/usb/003/002&amp;quot;, O_RDWR)    = -1 EACCES (Permission denied)&lt;br /&gt;
open(&amp;quot;/dev/bus/usb/003/002&amp;quot;, O_RDONLY)  = 14&lt;br /&gt;
ioctl(14, USBDEVFS_CONNECTINFO, 0xafd5bd34) = -1 EPERM (Operation not permitted)&lt;br /&gt;
read(14, &amp;quot;\22\1\0\1\0\0\0\10\203\4\26 \1\0\1\2\0\1&amp;quot;, 18) = 18&lt;br /&gt;
read(14, &amp;quot;\t\2\'\0\1\1\0\240&amp;quot;, 8)       = 8&lt;br /&gt;
read(14, &amp;quot;2\t\4\0\0\3\377\0\0\0\7\5\201\2@\0\0\7\5\2\2@\0\0\7\5\203&amp;quot;..., 31) = 31&lt;br /&gt;
close(14)                               = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is all the excitement from the strace on xscreensaver.  As I originally thought, you cannot get away with just playing with the proc entries :P  You also need to deal with the counterpart in /dev.  We can wrap up all the permissions issues with a single UDEV rule:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fingerprint fun&lt;br /&gt;
BUS==&amp;quot;usb&amp;quot;, DRIVER==&amp;quot;usb&amp;quot;, SYSFS{product}==&amp;quot;Biometric Coprocessor&amp;quot;, GROUP=&amp;quot;bioapi&amp;quot;, SYMLINK=&amp;quot;misc/fingerprint&amp;quot;, RUN+=&amp;quot;/bin/sh -c 'chgrp bioapi /proc/$RESULT; chmod g+rw /proc/$RESULT'&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I created a 'bioapi' group and configured pam to add groups to anyone logging in ''locally''.  Now all you need to do is amend the pam configuraion files below.  We use 'wdm', but of course its as applicable for all those resource hungry touchy-feely gdm/kdm folk out there too ;)&lt;br /&gt;
&lt;br /&gt;
/etc/security/group.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# local group settings&lt;br /&gt;
login; tty*; *; al0000-2400; audio,floppy,video,cdrom,nvram,plugdev,bioapi&lt;br /&gt;
wdm; :*; *; al0000-2400; audio,floppy,video,cdrom,nvram,plugdev,bioapi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/etc/pam.d/login&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[snipped]&lt;br /&gt;
&lt;br /&gt;
# group *has* to go here&lt;br /&gt;
auth       optional   pam_group.so&lt;br /&gt;
&lt;br /&gt;
# fingerprint action&lt;br /&gt;
auth       sufficient /usr/local/lib/security/pam_bioapi.so {5550454b-2054-464d-2f45-535320425350} /etc/bioapi1.10/pam/&lt;br /&gt;
&lt;br /&gt;
# Standard Un*x authentication.&lt;br /&gt;
@include common-auth&lt;br /&gt;
&lt;br /&gt;
# This allows certain extra groups to be granted to a user&lt;br /&gt;
# based on things like time of day, tty, service, and user.&lt;br /&gt;
# Please edit /etc/security/group.conf to fit your needs&lt;br /&gt;
# (Replaces the `CONSOLE_GROUPS' option in login.defs)&lt;br /&gt;
#auth       optional   pam_group.so&lt;br /&gt;
&lt;br /&gt;
[snipped]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/etc/pam.d/wdm&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#%PAM-1.0&lt;br /&gt;
auth            required        pam_nologin.so&lt;br /&gt;
auth            required        pam_env.so&lt;br /&gt;
&lt;br /&gt;
# local tweak&lt;br /&gt;
auth       optional   pam_group.so&lt;br /&gt;
&lt;br /&gt;
# fingerprint action&lt;br /&gt;
auth       sufficient /usr/local/lib/security/pam_bioapi.so {5550454b-2054-464d-2f45-535320425350} /etc/bioapi1.10/pam/&lt;br /&gt;
&lt;br /&gt;
@include common-auth&lt;br /&gt;
@include common-account&lt;br /&gt;
@include common-session&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''N.B.''' as with all pam related things, the order is important&lt;br /&gt;
&lt;br /&gt;
-- [[User:Jim diGriz|Jim diGriz]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Driver Expiring!!!==&lt;br /&gt;
Don't anyone notice that both betas of the UPEK driver is expiring in&lt;br /&gt;
about a month in the new year, Jan 1st 2006? They really mean it! &lt;br /&gt;
I set my computer date to next year and get a message &amp;quot;the driver has expired&amp;quot; when using fingerprint reader! This is a grave threat to our computer lifestyle, i.e. for those of us who got it working and use it&lt;br /&gt;
daily:) &lt;br /&gt;
Is there any workaround other than setting the date back a year when&lt;br /&gt;
new year come and wait for new driver? Is there a way to figure out where exactly in the driver it checked the date and how? The must have set it &lt;br /&gt;
somewhere in file libtfmessbsp.so, but it is binary and I can't figure out how to Reverse Engineer it.&lt;br /&gt;
&lt;br /&gt;
---Jiang&lt;br /&gt;
&lt;br /&gt;
Yes, the beta driver will expire. The final version (which is due REALLY soon now) will not.&lt;br /&gt;
&lt;br /&gt;
Sumedha&lt;br /&gt;
&lt;br /&gt;
Any news? Just 9 days left to expiry. --[[User:Thinker|Thinker]] 21:36, 22 Dec 2005 (CET)&lt;br /&gt;
&lt;br /&gt;
The final is out, get it at [http://www.upek.com/support/dl_linux_bsp.asp UPEK's download page]. And how does one edit the industry watch section of the main page?&lt;br /&gt;
&lt;br /&gt;
--[[User:Spiney|spiney]] 21:39, 22 Dec 2005 (CET)&lt;br /&gt;
&lt;br /&gt;
Ah, great! Both the article page and the driver page it points to are out of date... For the news, just follow the &amp;quot;[[ThinkWiki:News|News]]&amp;quot; link in the main page. &lt;br /&gt;
&lt;br /&gt;
--[[User:Thinker|Thinker]] 21:44, 22 Dec 2005 (CET)&lt;br /&gt;
&lt;br /&gt;
As this is now very soon I've updated the article page to link to the final driver, which is better in a few ways anyway.  This is unless anyone minds (are there any unresolved issues with the final that don't exist in the betas?).&lt;br /&gt;
&lt;br /&gt;
--[[User:Keegan|keegan]] 05:06, 24 Dec 2005 (CET)&lt;br /&gt;
&lt;br /&gt;
== Updated xscreensaver patch ==&lt;br /&gt;
&lt;br /&gt;
I've tried to address some usability issues with the old patch, e.g. that it calls the PAM bioapi module twice before falling back to the normal authentication methods. It can be found on my [http://linux.spiney.org/debian_gnu_linux_on_an_ibm_thinkpad_t43p_fingerprint_reader Fingerprint Reader] page, feedback is very welcome.&lt;br /&gt;
&lt;br /&gt;
--[[User:Spiney|spiney]] 20:36, 22 Dec 2005 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Fingerprint or password ==&lt;br /&gt;
&lt;br /&gt;
Is there any way to have PAM accept either a password or a finger swipe, right away? Sometimes one is more convenient, sometimes the other, so and it's a lot of trouble to wait for the UPEK scanner prompt and then cancel it in order to reach the password entry.&lt;br /&gt;
&lt;br /&gt;
--[[User:Thinker|Thinker]] 19:27, 24 Dec 2005 (CET)&lt;br /&gt;
&lt;br /&gt;
== KDE screensaver ==&lt;br /&gt;
&lt;br /&gt;
If you get the following in {{path|/var/log/secure}} when you try to unlock the KDE screensaver, it means you forgot to set the USB device permissions.&lt;br /&gt;
 localhost pam_bioapi[24981]: Unable to load BioAPI BSP with UUID of {5550454b-2054-464d-2f45-535320425350}, BioAPI error #194d.&lt;br /&gt;
&lt;br /&gt;
--[[User:Thinker|Thinker]] 21:21, 24 Dec 2005 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== fingerprint reader in action. ==&lt;br /&gt;
&lt;br /&gt;
small video with fingerprint reader in action with login: http://chao.ch/tmp/mov01302.mpg&lt;br /&gt;
&lt;br /&gt;
--[[User:62.202.35.30|62.202.35.30]] 17:57, 29 Dec 2005 (CET)&lt;br /&gt;
&lt;br /&gt;
==A little feedback...==&lt;br /&gt;
...for all the editors of this article:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;[[How to enable the fingerprint reader]] over at ThinkWiki.org is some real exhaustive documentation for getting the fingerprint scanner working on the ThinkPads. There is also a troubleshooting section towards the end that might be very useful to anyone messing around with it.&lt;br /&gt;
&lt;br /&gt;
Thanks to those responsible for taking the time to write up this excellent guide.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Those thanks come from [http://linuxbiometrics.com/modules/news/ LinuxBiometrics.com]&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 01:24, 9 Jan 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==pam_bioapi.so is not linked to libbioapi100.so==&lt;br /&gt;
I downloaded the pam_bioapi package and patched the file by following the wiki. However, I got the following result:&lt;br /&gt;
&lt;br /&gt;
    ~/soft/thinkpad/pam_bioapi-0.2.1/libpam_bioapi/.libs$ ls -la&lt;br /&gt;
    total 48&lt;br /&gt;
    drwxr-xr-x  2 louis users   248 2006-01-12 01:18 ./&lt;br /&gt;
    drwxr-xr-x  4 louis users   312 2006-01-12 01:18 ../&lt;br /&gt;
    lrwxrwxrwx  1 louis users    16 2006-01-12 01:18 pam_bioapi.la -&amp;gt; ../pam_bioapi.la&lt;br /&gt;
    -rw-r--r--  1 louis users   824 2006-01-12 01:18 pam_bioapi.lai&lt;br /&gt;
    -rw-r--r--  1 louis users 19716 2006-01-12 01:18 pam_bioapi.o&lt;br /&gt;
    lrwxrwxrwx  1 louis users    19 2006-01-12 01:18 pam_bioapi.so -&amp;gt; pam_bioapi.so.0.0.0*&lt;br /&gt;
    lrwxrwxrwx  1 louis users    19 2006-01-12 01:18 pam_bioapi.so.0 -&amp;gt; pam_bioapi.so.0.0.0*&lt;br /&gt;
    -rwxr-xr-x  1 louis users 21789 2006-01-12 01:18 pam_bioapi.so.0.0.0*&lt;br /&gt;
    &lt;br /&gt;
    ~/soft/thinkpad/pam_bioapi-0.2.1/libpam_bioapi/.libs$ ldd pam_bioapi.so&lt;br /&gt;
            linux-gate.so.1 =&amp;gt;  (0xffffe000)&lt;br /&gt;
            libc.so.6 =&amp;gt; /lib/tls/libc.so.6 (0x40025000)&lt;br /&gt;
            /lib/ld-linux.so.2 (0x80000000)&lt;br /&gt;
    ~/soft/thinkpad/pam_bioapi-0.2.1/libpam_bioapi/.libs$&lt;br /&gt;
&lt;br /&gt;
pam_bioapi.so is NOT linked to libbioapi100.so. The latter is in the ld path:&lt;br /&gt;
&lt;br /&gt;
    ~/soft/thinkpad/pam_bioapi-0.2.1/libpam_bioapi/.libs$ ldconfig -p |grep bioapi&lt;br /&gt;
            libtfmessbsp.so (libc6) =&amp;gt; /opt/bioapi/lib/libtfmessbsp.so&lt;br /&gt;
            libpwbsp.so.0 (libc6) =&amp;gt; /opt/bioapi/lib/libpwbsp.so.0&lt;br /&gt;
            libpwbsp.so (libc6) =&amp;gt; /opt/bioapi/lib/libpwbsp.so&lt;br /&gt;
            libmds_util.so.0 (libc6) =&amp;gt; /opt/bioapi/lib/libmds_util.so.0&lt;br /&gt;
            libmds_util.so (libc6) =&amp;gt; /opt/bioapi/lib/libmds_util.so&lt;br /&gt;
            libbioapi100.so.0 (libc6) =&amp;gt; /opt/bioapi/lib/libbioapi100.so.0&lt;br /&gt;
            libbioapi100.so (libc6) =&amp;gt; /opt/bioapi/lib/libbioapi100.so&lt;br /&gt;
            libbioapi_mds300.so.0 (libc6) =&amp;gt; /opt/bioapi/lib/libbioapi_mds300.so.0&lt;br /&gt;
            libbioapi_mds300.so (libc6) =&amp;gt; /opt/bioapi/lib/libbioapi_mds300.so&lt;br /&gt;
            libbioapi_dummy100.so.0 (libc6) =&amp;gt; /opt/bioapi/lib/libbioapi_dummy100.so.0&lt;br /&gt;
            libbioapi_dummy100.so (libc6) =&amp;gt; /opt/bioapi/lib/libbioapi_dummy100.so&lt;br /&gt;
&lt;br /&gt;
and the Sample program also works allowing me to enroll and test a fingerprint.&lt;br /&gt;
&lt;br /&gt;
My system is SuSE 10 with the kernel of 2.6.13-15. Any ideas?&lt;br /&gt;
&lt;br /&gt;
Thanks.&lt;br /&gt;
&lt;br /&gt;
--[[User:Tyne|Tyne]] 09:51, 12 Jan 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
==xscreensaver 4.23+fingerprint.patch causes xscreensaver-gl to crash kernel==&lt;br /&gt;
&lt;br /&gt;
I've gotten bioapi and 'Sample' to allow me to enroll my fingerprint, and I've also experienced the 'two logon' issue. &lt;br /&gt;
&lt;br /&gt;
I compiled xscreensaver 4.23 (though it seemed that apt came with 4.24) and applied the patch. My goal was to have the fingerprint prompt come up and to see the &amp;quot;bad image&amp;quot; of the fingerprint scan.&lt;br /&gt;
&lt;br /&gt;
The first time I did this, xscreensaver-gl took a dump and was causing kernel crashes. So I went and got the newest xscreensaver source and patches, and applied the bioapi patch to those. It worked (meaning it didnt crash the kernel anymore ;b )&lt;br /&gt;
&lt;br /&gt;
It would seem that there is a /etc/pam.d/xscreensaver, so I commented everything out of that except the bioapi line. &lt;br /&gt;
&lt;br /&gt;
Locking xscreensaver, then attempting to unlock didnt show me any fingerprint requirements, and my password didnt work.&lt;br /&gt;
&lt;br /&gt;
I'm wondering if theres something that was left out of the xscreensaver howto? or if theres anyone out there who's gotten the xscreensaver portion of this to work, who would be willing to help me out :)&lt;br /&gt;
&lt;br /&gt;
--[[User:Viss|Viss]] 11:15am, 5 Feb 2006 (PST)&lt;br /&gt;
&lt;br /&gt;
== gdm hangs on kde logout ==&lt;br /&gt;
&lt;br /&gt;
Hi.&lt;br /&gt;
&lt;br /&gt;
I am using a Thinkpad t43, installed with gentoo.&lt;br /&gt;
I run gdm as the login manager, with kde 3.4 and enlightenment dr16 as the window manager.&lt;br /&gt;
&lt;br /&gt;
I followed the steps in the wiki, and the biometric scanner is now working fine, appart from the fact that when I close/end the session I just get a blank screen, in place of the gdm login screen.&lt;br /&gt;
&lt;br /&gt;
Disabling the biometrics (by setting the pam.d file back to their originals), the session ends fine. I do this for a few times, and then set the biometrics back again, and it work fine for a few logouts, and then back to the blank screen again.&lt;br /&gt;
&lt;br /&gt;
I can do ctrl+shift+f1 to get to a console window and from there I can issue a shutdown.&lt;br /&gt;
Although this works ok, it is a bit of a pain.&lt;br /&gt;
&lt;br /&gt;
Any ideas ?&lt;br /&gt;
&lt;br /&gt;
== 'gksudo' Doesn't show biopam finger swipe prompt... ==&lt;br /&gt;
&lt;br /&gt;
Hey all,&lt;br /&gt;
&lt;br /&gt;
First off... this is an excellent how-to!  I have no real interest in using fingerprint scanner with xscreensaver, but it was up and working with everything else on my system pretty much effortlessly.&lt;br /&gt;
&lt;br /&gt;
I'm running Ubuntu Breezy Badger 5.10 on an IBM T43p (2678) and have run into two oddities:&lt;br /&gt;
1) /etc/pam.d/xscreensaver - as it is initially configured, if you have an xscreensaver session set to require password (or xlock with screensaver) then you get prompted for the normal text-password entry and then will be prompted to swipe your finger... This is easily fixed by commenting out the '@include common-auth' line in /etc/pam.d/xscreensaver and adding the line 'auth required pam_unix.so nullok_secure'.  After that change it only prompts for the text-password entry challenge.&lt;br /&gt;
&lt;br /&gt;
2) gksudo - This is more of a pain... I can use the fingerprint scanner with gksudo, but gksudo doesn't prompt with the (ugly-but-functional) finger swipe dialog the way that gdm does during login or xscreensaver does when configured as mentioned above (pre-fix).  So, if I start a Gnome app launcher that is prepended with gksudo, nothing appears to happen until I swipe my finger and then the app gets launched.  That's cool and all, but there are times (esp. when multi-tasking) when I forget to swipe and then go &amp;quot;what happened to xxxxx? oh yeah...&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Anyway... does anyone have an idea of what I can do to get the dialog to appear?&lt;br /&gt;
&lt;br /&gt;
thanx&lt;br /&gt;
&lt;br /&gt;
--[[User:JELaVallee|JELaVallee]] 05:56, 20 February 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
The gksudo problem is a restriction from the X server. It doesn't allow to grab the display for other users than the logged-in one. And the pam_bioapi is invoked as root.&lt;br /&gt;
&lt;br /&gt;
--[[User:Whoopie|Whoopie]] 13:10, 20 February 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
That makes sense... so, now I have to wonder, is there a patchable work-around like the xscreensaver one that could allow for this to work?  Where should I research such?  gksu's project or is this more an issue at the X11-level?&lt;br /&gt;
&lt;br /&gt;
--[[User:JELaVallee|JELaVallee]] 19:38, 27 February 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
I got it working. Grab out the newer pam-bioapi from CVS (http://savannah.nongnu.org/cvs/?group=pam-bioapi). This version supports &amp;quot;multi-finger&amp;quot; when using the sqlite3 database. And it supports defining the used display.&lt;br /&gt;
Change your line in your /etc/pam.d/ files like this:&lt;br /&gt;
&lt;br /&gt;
auth            sufficient      pam_bioapi.so   {5550454b-2054-464d-2f45-535320425350}  /etc/bioapi/pam/bioshadow.db :0&lt;br /&gt;
&lt;br /&gt;
--[[User:Whoopie|Whoopie]] 14:27, 1 March 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
Very cool... Did you run into any issues rebuilding/installing this?  I'll give it a shot this evening... THANKS!&lt;br /&gt;
&lt;br /&gt;
--[[User:JELaVallee|JELaVallee]] 21:07, 1 March 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
Invoke 'xhost +local:' should be able to let gksudo work. Or just blindly sweap the finger. ;)&lt;br /&gt;
&lt;br /&gt;
--[[User:YChao|YChao]] 21:25, 7 March 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
Where do I have to put 'xhost +local:'?&lt;br /&gt;
&lt;br /&gt;
== Multifinger ==&lt;br /&gt;
&lt;br /&gt;
Wow, theres a new version of pam_bioapi which supports multifinger enrollment and user identification.&lt;br /&gt;
I'll break my system with that this evening :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Yes, but I'm searching the patch for xdm. The download page from Josef Hajas (http://nax.hn.org/pub/bioapi/) is down. Does anybody have it?&lt;br /&gt;
&lt;br /&gt;
Update: The patch can be found here: http://www.qrivy.net/~michael/blua/xdm_bio.patch&lt;br /&gt;
&lt;br /&gt;
--[[User:Whoopie|Whoopie]] 17:43, 1 March 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
Tried the newest pam-bioapi from CVS (http://savannah.nongnu.org/cvs/?group=pam-bioapi) on FC3. Failed on enrolling fingerprints: ({{path|/var/log/secure|}})&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Mar  9 15:30:40 localhost pam_bioapi[32407]: Can't open database: library routine called out of&lt;br /&gt;
sequence&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Could anyone help?&lt;br /&gt;
&lt;br /&gt;
--[[User:Ychao|Ychao]] 00:38, 10 March 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
I don't know how to solve it. It seems to be a problem with sqlite3. Which version do you use? Under Ubuntu Breezy, it's 3.2.1.&lt;br /&gt;
&lt;br /&gt;
--[[User:Whoopie|Whoopie]] 12:27, 10 March 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Did anybody tried multifinger with BioAPI? I am interested in multifinger at all, not only PAM.&lt;br /&gt;
&lt;br /&gt;
Updated:&lt;br /&gt;
&lt;br /&gt;
succesfully installed pam_bioapi with multifinger support, some info:&lt;br /&gt;
&lt;br /&gt;
use: &amp;lt;code&amp;gt;auth sufficient pam_bioapi.so {5550454b-2054-464d-2f45-535320425350} /etc/bioapi/pam/bioshadow.db :0&amp;lt;/code&amp;gt; in pam.d, the bioshadow column is path to bioapi sqlite database.&lt;br /&gt;
&lt;br /&gt;
if authentication doesn't work, edit /etc/syslog.conf and write line *.alert /var/log/syslog, so you see pam_bioapi messages in /var/log/syslog&lt;br /&gt;
most common error is missing biodata table, newest pam_bioapi version should create it automatically, but if it doesn't, go to /etc/bioapi/pam/ and run command &amp;lt;code&amp;gt;sqlite3 bioshadow.db&amp;lt;/code&amp;gt;, then insert this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;CREATE TABLE biodata (id INTEGER PRIMARY KEY,uid INTEGER,uuid TEXT,header BLOB,data BLOB,signature BLOB,type INTEGER,other BLOB);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you must then enroll at least one fingerprint to the database, do it using test_enroll-pam_bioapi from pam_bioapi distribution. note that you must have root user enrolled in order to use &amp;lt;code&amp;gt;su&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
--[[User:MeBa|MeBa]] 16:58, 22 March 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
== GNOME Screensaver support ==&lt;br /&gt;
&lt;br /&gt;
Did anybody try to port the xscreensaver patch to gnome-screensaver? Since Ubuntu Dapper will be shiped with it, it would be nice to have it working then with the fingerprint reader.&lt;br /&gt;
&lt;br /&gt;
Update: Initial support can be found in gnome-screensaver CVS. See [http://bugzilla.gnome.org/show_bug.cgi?id=338635 bugreport].&lt;br /&gt;
&lt;br /&gt;
--[[User:Whoopie|Whoopie]] 12:36, 16 March 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
I'm just working on changes in pam_bioapi which makes gui callbacks from gnome-screensaver possible. But first I have to debug BioAPI error #194d after hibernation because gnome-screensaver is one of the applications returning this error.&lt;br /&gt;
&lt;br /&gt;
--[[User:Nax|nax]] 23:59, 9 July 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== No sources for bioapi 1.2.3 ==&lt;br /&gt;
&lt;br /&gt;
There doesn't seem to be any sources available for the recommended Debian package bioapi-1.2.3.  That's rather distressing since this is security-related software.  A google search doesn't seem to be turning up anything, either.  Anybody have a lead on where to find sources?&lt;br /&gt;
&lt;br /&gt;
--[[User:TedTso|TedTso]] 7:47, 29 Apri 2006 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Strange issue on GDM login ==&lt;br /&gt;
&lt;br /&gt;
I successfully have the fingerprint reader running. Everything is working nicely, except when I try to login with GDM for the first time. The login seems to work fine (the PAM_BIOAPI seems to return true) but GDM hangs then. This issue does not occur when I already logged in using password and logged out again or if I kill GDM when it hangs after the first attempt. Anyone an idea on this?&lt;br /&gt;
&lt;br /&gt;
--[[User:Dotxp|dotxp]] 22:54, 2 May 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Don't ask for finger scan when lid closed ==&lt;br /&gt;
&lt;br /&gt;
When using an external CRT+keyboard+mouse with the LD lid closed, it's quiet annoying to have to reach over and open the lid in order to do a finger scan.&lt;br /&gt;
Any idea how to make PAM use the fingerprint reader when the lid is open, but skip it when the lid is closed?&lt;br /&gt;
&lt;br /&gt;
--[[User:Thinker|Thinker]] 13:30, 7 May 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
I edited my /etc/gdm/Init/Default script in a way, that it changes /etc/pam.d/common-auth depending on the lid state: When the lid is closed, the file is replaced by a version without the lines for the finterprint reader, and of course the opposite action when the lid is open.&lt;br /&gt;
&lt;br /&gt;
--[[User:Aerials|Aerials]] 15:52, 9 July 2006 (CEST)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Unable to initialize Bioapi framework, BioAPI error #:3 ==&lt;br /&gt;
&lt;br /&gt;
I see some other discussion on this page about the dreaded &amp;quot;Unable to initialize Bioapi framework, BioAPI error #:3&amp;quot; error, but the only solution i can see seems really complicated -- adding users to groups when they log in, etc. Is that really the simplest way to make xscreensaver work? I'm the only user of my laptop -- the only account who will ever log in, the only fingerprint in the database, the only person who will ever run xscreensaver. Is there some quick easy way to make xscreensaver unlock when i swipe my finger?&lt;br /&gt;
&lt;br /&gt;
-- [[User:Mike Schiraldi|Mike Schiraldi]] 19:52, 16 May 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Security level ==&lt;br /&gt;
&lt;br /&gt;
[http://www.upek.com/support/pdf/BioAPI_PerfectMatchBSP1.7.pdf UPEK PerfectMatch Algorithm]&lt;br /&gt;
According to this link, highest security level is 0 which is opposite to 5 mentioned in the article. What is correct?&lt;br /&gt;
&lt;br /&gt;
Update: Well,TFMESS_BSP_LIN.pdf, i downloaded somewhere stated 5 as highest security level. So, ?&lt;br /&gt;
&lt;br /&gt;
== How good is it? ==&lt;br /&gt;
&lt;br /&gt;
How strong is the security that results? Is it actually as good as, say, a 10-character password, or is it the sort of thing you can fool&lt;br /&gt;
with some gelatin and a used glass? My inclination is not to trust it - but perhaps someone more knowledgeable would care to comment?&lt;br /&gt;
-- [[User:RichardNeill|RichardNeill]] 16:58, 25 July 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Patch for new versions of xdm ==&lt;br /&gt;
&lt;br /&gt;
I was having some trouble getting the xdm patch to work using the version of xdm in Debian unstable (1.0.5). Turns out that xdm now checks for blank username and doesn't even bother to call pam. Here's an updated version of the patch that works for me: [http://www.ugcs.caltech.edu/~q/code/xdm_bio-1.0.5.patch]&lt;br /&gt;
&lt;br /&gt;
[[User:Virtualphtn|Virtualphtn]] 02:40, 16 September 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Using instructions with OpenSuSE 10.1 ==&lt;br /&gt;
&lt;br /&gt;
Now, as OpenSuSE has the problem with the gcc4 I followed the (by the way not very detailed) instructions about patching it. I've done the first patch before installing the BioApi($ wget http://upir.cz/linux/patches/bioapi-1.2.2-gcc4.patch &lt;br /&gt;
$ patch -p1 &amp;lt; bioapi-1.2.2-gcc4.patch) but it didn't work(dal_classes.h:460: error: extra qualification 'DAL_DATABASE_INFO_LIST::' on member 'GetDBNamesAndParameters')&lt;br /&gt;
Can somebody help me?&lt;br /&gt;
--[[User:SQLMosquito|SQLMosquito]] 19:53, 29 September 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
I've been having the same problem for quite a while. Though when using the script found here http://www.cryptosecurity.net/Suse_T60_DRAFT.htm (based on the thinkwikiscript) things worked just fine. Don't ask me why, I really tried everything I know to be able to build it by myself. Anyway, it works good now.&lt;br /&gt;
--[[User:Stooofer|Stooofer]] 00:12, 8 January 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
== 64-bit architecture/OSS release ==&lt;br /&gt;
&lt;br /&gt;
Hi,&lt;br /&gt;
&lt;br /&gt;
To all ThinkWiki contributors: Thanks for all the help so far! I've made a lot of progress, but I have a show-stopper for the fingerprint reader. I'm not using x86 architecture! I am using the (new) Thinkpad X60, which just got upgraded to the Core 2 Duo with EM64T support a couple of weeks ago (along with a ton of other upgrades to the product, without changing its name...........!) So consequently I have Fedora Core 6 x86_64 installed. Works great, in general - standby, trackpoint, special buttons, nvram, and wifi supported (although not all out of the box; the ipw3945 driver had to be downloaded from atrpms.) &lt;br /&gt;
&lt;br /&gt;
The distributed shared library provided by the vendor doesn't link against any 64-bit programs, because it's a 32-bit library. Of course, my desktop manager, PAM, etc. are all 64-bit. Without &amp;quot;downgrading&amp;quot; to a 32-bit distro, is there any way to either hack around this, or to bring up Pavel Machek's open-source enrollment program (thinkfinger) up to the vendor's driver's level of integration with BioAPI? Sounds like some development work, but I'm willing to help any way I can!&lt;br /&gt;
&lt;br /&gt;
There should be a way to get this moving - either using a wrapper a la nspluginwrapper to enable an interface to the 32-bit driver on another architecture, or building upwards from Pavel's small test program.&lt;br /&gt;
&lt;br /&gt;
Thanks!&lt;br /&gt;
&lt;br /&gt;
Sean&lt;br /&gt;
&lt;br /&gt;
== Alternative ThinkFinger &amp;quot;Driver&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
The thinkfinger Project http://thinkfinger.sf.net  is a GPL library with a own pam module.&lt;br /&gt;
&lt;br /&gt;
It works... &lt;br /&gt;
It works with all pam application.&lt;br /&gt;
(dont try to display a own gui window). &lt;br /&gt;
It works without the bioapi.&lt;br /&gt;
wow! this is so easy to set up and just works!&lt;/div&gt;</summary>
		<author><name>Samoht</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:How_to_enable_integrated_fingerprint_reader_with_BioAPI&amp;diff=26516</id>
		<title>Talk:How to enable integrated fingerprint reader with BioAPI</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:How_to_enable_integrated_fingerprint_reader_with_BioAPI&amp;diff=26516"/>
		<updated>2006-11-24T13:42:42Z</updated>

		<summary type="html">&lt;p&gt;Samoht: /* 'gksudo' Doesn't show biopam finger swipe prompt... */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Removing the GUI Prompt ==&lt;br /&gt;
For all of you that have had the oppertunity to see the fingerprint image, I think we can all agree that this needs to be changed at ounce. A couple of ideas come to mind, first is to trick bioapi to think that X is not running, and secound is to figure out where the images are being pulled from and then edit them. The later would be nice, but I have been experimenting with strace for several hours and have came up with nothing. Any other ideas?&lt;br /&gt;
&lt;br /&gt;
--[[User:Paul Strefling|Paul Strefling]] 18:42, 18 July 2006 (CEST)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== chmod 777 -R /usr/local/var/bioapi/ ==&lt;br /&gt;
&lt;br /&gt;
Is the above necessary? I just made a debian package of xscreensaver with the patch applied, and when using the bioapi debian pacakge from [http://www.qrivy.net/~michael/temp/ Michael R. Crusoe's site] which has this directory put in /usr/var/bioapi I had not to change the permissions to world-writeable there. Write access to the logfile and usb device are necessary, but that directory works with 755 as well (even though it comes with 777 in Michael's package), and all files and subdirectories are 644/755 too.&lt;br /&gt;
&lt;br /&gt;
--[[User:Spiney|spiney]] 00:08, 11 Nov 2005 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Qt Compilation Success ==&lt;br /&gt;
&lt;br /&gt;
Here it worked with qt ;)&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
I didn't get it to work anyway, but I'm curious about your Qt version(s) as it seemed to want Qt 3 when I was playing with it.&lt;br /&gt;
&lt;br /&gt;
--[[User:Keegan|keegan]] 05:07, 24 Dec 2005 (CET)&lt;br /&gt;
&lt;br /&gt;
== using absolute paths for commands ==&lt;br /&gt;
&lt;br /&gt;
I don't know whether using absolute paths in the articles is a good idea, at least not for tools like {{cmd|lsusb|}} which are not established utilities (i.e. used for more than a decade or something ;)) and happen to be in different locations in different distributions. E.g. said {{cmd|lsusb|}} resides in {{path|/usr/sbin|}} on Debian systems.&lt;br /&gt;
&lt;br /&gt;
--[[User:Spiney|spiney]] 16:45, 12 Nov 2005 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
I'm using debian testing and it's in {{path|/usr/bin|}}.  I agree that the confusion is bad; dropping the absolute paths and adding a general note about checking {{cmd|$PATH|}} in case of problems is probably good.&lt;br /&gt;
&lt;br /&gt;
--[[User:keegan|keegan]]&lt;br /&gt;
&lt;br /&gt;
== BioAPI error #3 ==&lt;br /&gt;
&lt;br /&gt;
Its kind of strage it used to work with everythig (kdm,console,lock,etc)&lt;br /&gt;
Now it only works with kdm. It allways gives back:&lt;br /&gt;
&lt;br /&gt;
pam_bioapi[8113]: Unable to initialize Bioapi framework, BioAPI error #:3.&lt;br /&gt;
&lt;br /&gt;
Even when I set the right permissions on /proc/bus/usb.&lt;br /&gt;
&lt;br /&gt;
I am able to run the Sample program as normal user after setting the permissions, but when I change within a user session by su I amnot able to run the Sample program a also get an error Code #3.&lt;br /&gt;
&lt;br /&gt;
From an other terminal (alt+strg+Fx) I am able to run the Sample program but at the login I still get the error #3.&lt;br /&gt;
&lt;br /&gt;
I cant remember to have changed anything an d bevor I was able to login in a console with my fingerprint now only kdm is working even kde lock-session       &lt;br /&gt;
isnt working anymore.&lt;br /&gt;
&lt;br /&gt;
Any suggestions ?&lt;br /&gt;
&lt;br /&gt;
==Permission errors exclusive to xscreensaver==&lt;br /&gt;
&lt;br /&gt;
I followed the instructions above and got everything working, including non-root programs like xscreensaver.  However, the script to change usbfs permissions is finicky and fails to work with a lot of things like suspend/resume.  Therefore, I switched to specifying &amp;lt;tt&amp;gt;devgid=108,devmode=0660,busgid=108,busmode=0770,listgid=108,listmode=0660&amp;lt;/tt&amp;gt; as mount parameters for usbfs, where group 108 is a group I created and added my normal user to.  This seems like a much better way of doing things, and it almost works.  However, xscreensaver (using the newer patch) gives the familiar &amp;lt;tt&amp;gt;Unable to load BioAPI BSP with UUID of &amp;lt;nowiki&amp;gt;{&amp;lt;/nowiki&amp;gt;5550454b-2054-464d-2f45-535320425350&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;, BioAPI error #194d.&amp;lt;/tt&amp;gt; error in {{path|/var/log/auth.log|}}.  I don't think this is a straightfoward permissions problem because&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;the permissions in {{path|/proc/bus/usb|}} are correct by inspection&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;I can write to the device file as my normal user&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;other programs like {{cmd|test_verify-pam_bioapi|}} and [http://pamtester.sourceforge.net/ {{cmd|pamtester|}}] work as my normal user&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;the weirdest one: xscreensaver works when the {{cmd|xscreensaver|}} daemon is launched from within {{cmd|strace|}}.  It's still running as my normal user ({{cmd|strace|}} is not setuid root).  I have absolutely no idea what would cause this.  I thought it might be an environment issue, but the difference in environment between the {{cmd|strace|}} session and my normal session is trivial.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point I'm hoping it's something dumb, but I'm out of ideas.  The {{cmd|xscreensaver|}} error is &amp;lt;tt&amp;gt;pam_authenticate (...) ==&amp;amp;gt; 7 (Authentication failure)&amp;lt;/tt&amp;gt;, for the record.&lt;br /&gt;
&lt;br /&gt;
--[[User:keegan|keegan]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
I had the same problem and found that it was caused by the setuid permission on xscreensaver. After chmod'ing it to 755 and restarting xscreensaver, bioapi authentication worked.&lt;br /&gt;
&lt;br /&gt;
--[[User:henning|henning]] 09:22, 8 Aug 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Could you provide all the log lines between pam_start and pam_end when running {{cmd|xscreensaver -verbose|}}?&lt;br /&gt;
&lt;br /&gt;
BTW, the idea with using the mount options for usbfs is very good, maybe you should add that info to the article page? I use the permission changing script without problems, also after resume, but the usbfs version is probably easier to set up, most people will be able to find {{path|/etc/fstab|}}.&lt;br /&gt;
&lt;br /&gt;
--[[User:Spiney|spiney]] 10:12, 23 Dec 2005 (CET)&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xscreensaver: 20:56:01: alternative_pam:  1 -&amp;gt; pam service: xscreensaver-alternative&lt;br /&gt;
xscreensaver: 20:56:01: pam_start (&amp;quot;xscreensaver-alternative&amp;quot;, &amp;quot;keegan&amp;quot;, ...) ==&amp;gt; 0 (Success)&lt;br /&gt;
xscreensaver: 20:56:01:   pam_set_item (p, PAM_TTY, &amp;quot;:0.0&amp;quot;) ==&amp;gt; 0 (Success)&lt;br /&gt;
xscreensaver: 20:56:01:     PAM ECHO_OFF(&amp;quot;Password: &amp;quot;) ==&amp;gt; password&lt;br /&gt;
xscreensaver: 20:56:03:   pam_authenticate (...) ==&amp;gt; 7 (Authentication failure)&lt;br /&gt;
xscreensaver: 20:56:03: pam_end (...) ==&amp;gt; 0 (Success)&lt;br /&gt;
xscreensaver: 20:56:03: prompting for password.&lt;br /&gt;
xscreensaver: 20:56:03: 0: creating password dialog.&lt;br /&gt;
xscreensaver: 20:56:03: 0: mouse is at 442,412.&lt;br /&gt;
xscreensaver: 20:56:03: grabbing server...&lt;br /&gt;
xscreensaver: 20:56:03: 0: ungrabbing mouse (was 0x48).&lt;br /&gt;
xscreensaver: 20:56:03: 0: grabbing mouse on 0xe0002b... GrabSuccess.&lt;br /&gt;
xscreensaver: 20:56:03: ungrabbing server.&lt;br /&gt;
xscreensaver: 20:56:05: alternative_pam:  12582928 -&amp;gt; pam service: xscreensaver&lt;br /&gt;
xscreensaver: 20:56:05: pam_start (&amp;quot;xscreensaver&amp;quot;, &amp;quot;keegan&amp;quot;, ...) ==&amp;gt; 0 (Success)&lt;br /&gt;
xscreensaver: 20:56:05:   pam_set_item (p, PAM_TTY, &amp;quot;:0.0&amp;quot;) ==&amp;gt; 0 (Success)&lt;br /&gt;
xscreensaver: 20:56:05:     PAM ECHO_OFF(&amp;quot;Password: &amp;quot;) ==&amp;gt; password&lt;br /&gt;
xscreensaver: 20:56:05:   pam_authenticate (...) ==&amp;gt; 0 (Success)&lt;br /&gt;
xscreensaver: 20:56:05:   pam_acct_mgmt (...) ==&amp;gt; 9 (Authentication service cannot retrieve authentication info.)&lt;br /&gt;
xscreensaver: 20:56:05:   pam_setcred (...) ==&amp;gt; 0 (Success)&lt;br /&gt;
xscreensaver: 20:56:05: pam_end (...) ==&amp;gt; 0 (Success)&lt;br /&gt;
xscreensaver: 20:56:05: password correct.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So we've got the first attempt with {{cmd|pam_bioapi|}}, which fails immediately (no sign of the GUI fingerprint prompt, nor a &amp;quot;silent&amp;quot; chance to swipe the finger as with xdm), then the fallback to {{cmd|pam_unix|}} which succeeds.  Earlier I had xscreensaver set up to only try {{cmd|pam_bioapi|}}, with essentially the same result -- it gives up on pam entirely and does unix auth itself.&lt;br /&gt;
&lt;br /&gt;
I'd really like to strace the pam module and see what it's attempting to do to {{path|/proc/bus/usb|}}, but as that actually fixes the problem I'm kinda at a loss.  Maybe there's some kernel option to print debugging info for usbfs?  I'd be all for changing the article to suggest using mount options in {{path|/etc/fstab|}}, if it weren't for this one weird bug.  Has anyone else had the same problem?&lt;br /&gt;
&lt;br /&gt;
-- [[User:keegan|keegan]]&lt;br /&gt;
&lt;br /&gt;
Same here, I had the whole setup workin flawlessly (I really need to get that 'never-touch-a-running-system' mantra burnt into the back of my hands), but after a fresh install of the same distro (Ubuntu) and following the same procedure to get things working i get exactly this behaviour. Login works (now even with multifinger, although there are other issues with that), I can use test_verify-pam_bioapi as a user. and the stock xscreensaver works, albeit only after entering a bogus password first.&lt;br /&gt;
The patched xscreensaver works when run within a strace (Now that sucks) but fails otherwise. And as i said before, I had this working...&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
open(&amp;quot;/dev/bus/usb&amp;quot;, O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 13&lt;br /&gt;
fstat64(13, {st_mode=S_IFDIR|0755, st_size=140, ...}) = 0&lt;br /&gt;
fcntl64(13, F_SETFD, FD_CLOEXEC)        = 0&lt;br /&gt;
getdents64(13, /* 7 entries */, 4096)   = 168&lt;br /&gt;
getdents64(13, /* 0 entries */, 4096)   = 0&lt;br /&gt;
close(13)                               = 0&lt;br /&gt;
open(&amp;quot;/dev/bus/usb/003&amp;quot;, O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 13&lt;br /&gt;
fstat64(13, {st_mode=S_IFDIR|0755, st_size=80, ...}) = 0&lt;br /&gt;
fcntl64(13, F_SETFD, FD_CLOEXEC)        = 0&lt;br /&gt;
getdents64(13, /* 4 entries */, 4096)   = 96&lt;br /&gt;
open(&amp;quot;/dev/bus/usb/003/002&amp;quot;, O_RDWR)    = -1 EACCES (Permission denied)&lt;br /&gt;
open(&amp;quot;/dev/bus/usb/003/002&amp;quot;, O_RDONLY)  = 14&lt;br /&gt;
ioctl(14, USBDEVFS_CONNECTINFO, 0xafd5bd34) = -1 EPERM (Operation not permitted)&lt;br /&gt;
read(14, &amp;quot;\22\1\0\1\0\0\0\10\203\4\26 \1\0\1\2\0\1&amp;quot;, 18) = 18&lt;br /&gt;
read(14, &amp;quot;\t\2\'\0\1\1\0\240&amp;quot;, 8)       = 8&lt;br /&gt;
read(14, &amp;quot;2\t\4\0\0\3\377\0\0\0\7\5\201\2@\0\0\7\5\2\2@\0\0\7\5\203&amp;quot;..., 31) = 31&lt;br /&gt;
close(14)                               = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is all the excitement from the strace on xscreensaver.  As I originally thought, you cannot get away with just playing with the proc entries :P  You also need to deal with the counterpart in /dev.  We can wrap up all the permissions issues with a single UDEV rule:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fingerprint fun&lt;br /&gt;
BUS==&amp;quot;usb&amp;quot;, DRIVER==&amp;quot;usb&amp;quot;, SYSFS{product}==&amp;quot;Biometric Coprocessor&amp;quot;, GROUP=&amp;quot;bioapi&amp;quot;, SYMLINK=&amp;quot;misc/fingerprint&amp;quot;, RUN+=&amp;quot;/bin/sh -c 'chgrp bioapi /proc/$RESULT; chmod g+rw /proc/$RESULT'&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I created a 'bioapi' group and configured pam to add groups to anyone logging in ''locally''.  Now all you need to do is amend the pam configuraion files below.  We use 'wdm', but of course its as applicable for all those resource hungry touchy-feely gdm/kdm folk out there too ;)&lt;br /&gt;
&lt;br /&gt;
/etc/security/group.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# local group settings&lt;br /&gt;
login; tty*; *; al0000-2400; audio,floppy,video,cdrom,nvram,plugdev,bioapi&lt;br /&gt;
wdm; :*; *; al0000-2400; audio,floppy,video,cdrom,nvram,plugdev,bioapi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/etc/pam.d/login&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[snipped]&lt;br /&gt;
&lt;br /&gt;
# group *has* to go here&lt;br /&gt;
auth       optional   pam_group.so&lt;br /&gt;
&lt;br /&gt;
# fingerprint action&lt;br /&gt;
auth       sufficient /usr/local/lib/security/pam_bioapi.so {5550454b-2054-464d-2f45-535320425350} /etc/bioapi1.10/pam/&lt;br /&gt;
&lt;br /&gt;
# Standard Un*x authentication.&lt;br /&gt;
@include common-auth&lt;br /&gt;
&lt;br /&gt;
# This allows certain extra groups to be granted to a user&lt;br /&gt;
# based on things like time of day, tty, service, and user.&lt;br /&gt;
# Please edit /etc/security/group.conf to fit your needs&lt;br /&gt;
# (Replaces the `CONSOLE_GROUPS' option in login.defs)&lt;br /&gt;
#auth       optional   pam_group.so&lt;br /&gt;
&lt;br /&gt;
[snipped]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/etc/pam.d/wdm&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#%PAM-1.0&lt;br /&gt;
auth            required        pam_nologin.so&lt;br /&gt;
auth            required        pam_env.so&lt;br /&gt;
&lt;br /&gt;
# local tweak&lt;br /&gt;
auth       optional   pam_group.so&lt;br /&gt;
&lt;br /&gt;
# fingerprint action&lt;br /&gt;
auth       sufficient /usr/local/lib/security/pam_bioapi.so {5550454b-2054-464d-2f45-535320425350} /etc/bioapi1.10/pam/&lt;br /&gt;
&lt;br /&gt;
@include common-auth&lt;br /&gt;
@include common-account&lt;br /&gt;
@include common-session&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''N.B.''' as with all pam related things, the order is important&lt;br /&gt;
&lt;br /&gt;
-- [[User:Jim diGriz|Jim diGriz]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Driver Expiring!!!==&lt;br /&gt;
Don't anyone notice that both betas of the UPEK driver is expiring in&lt;br /&gt;
about a month in the new year, Jan 1st 2006? They really mean it! &lt;br /&gt;
I set my computer date to next year and get a message &amp;quot;the driver has expired&amp;quot; when using fingerprint reader! This is a grave threat to our computer lifestyle, i.e. for those of us who got it working and use it&lt;br /&gt;
daily:) &lt;br /&gt;
Is there any workaround other than setting the date back a year when&lt;br /&gt;
new year come and wait for new driver? Is there a way to figure out where exactly in the driver it checked the date and how? The must have set it &lt;br /&gt;
somewhere in file libtfmessbsp.so, but it is binary and I can't figure out how to Reverse Engineer it.&lt;br /&gt;
&lt;br /&gt;
---Jiang&lt;br /&gt;
&lt;br /&gt;
Yes, the beta driver will expire. The final version (which is due REALLY soon now) will not.&lt;br /&gt;
&lt;br /&gt;
Sumedha&lt;br /&gt;
&lt;br /&gt;
Any news? Just 9 days left to expiry. --[[User:Thinker|Thinker]] 21:36, 22 Dec 2005 (CET)&lt;br /&gt;
&lt;br /&gt;
The final is out, get it at [http://www.upek.com/support/dl_linux_bsp.asp UPEK's download page]. And how does one edit the industry watch section of the main page?&lt;br /&gt;
&lt;br /&gt;
--[[User:Spiney|spiney]] 21:39, 22 Dec 2005 (CET)&lt;br /&gt;
&lt;br /&gt;
Ah, great! Both the article page and the driver page it points to are out of date... For the news, just follow the &amp;quot;[[ThinkWiki:News|News]]&amp;quot; link in the main page. &lt;br /&gt;
&lt;br /&gt;
--[[User:Thinker|Thinker]] 21:44, 22 Dec 2005 (CET)&lt;br /&gt;
&lt;br /&gt;
As this is now very soon I've updated the article page to link to the final driver, which is better in a few ways anyway.  This is unless anyone minds (are there any unresolved issues with the final that don't exist in the betas?).&lt;br /&gt;
&lt;br /&gt;
--[[User:Keegan|keegan]] 05:06, 24 Dec 2005 (CET)&lt;br /&gt;
&lt;br /&gt;
== Updated xscreensaver patch ==&lt;br /&gt;
&lt;br /&gt;
I've tried to address some usability issues with the old patch, e.g. that it calls the PAM bioapi module twice before falling back to the normal authentication methods. It can be found on my [http://linux.spiney.org/debian_gnu_linux_on_an_ibm_thinkpad_t43p_fingerprint_reader Fingerprint Reader] page, feedback is very welcome.&lt;br /&gt;
&lt;br /&gt;
--[[User:Spiney|spiney]] 20:36, 22 Dec 2005 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Fingerprint or password ==&lt;br /&gt;
&lt;br /&gt;
Is there any way to have PAM accept either a password or a finger swipe, right away? Sometimes one is more convenient, sometimes the other, so and it's a lot of trouble to wait for the UPEK scanner prompt and then cancel it in order to reach the password entry.&lt;br /&gt;
&lt;br /&gt;
--[[User:Thinker|Thinker]] 19:27, 24 Dec 2005 (CET)&lt;br /&gt;
&lt;br /&gt;
== KDE screensaver ==&lt;br /&gt;
&lt;br /&gt;
If you get the following in {{path|/var/log/secure}} when you try to unlock the KDE screensaver, it means you forgot to set the USB device permissions.&lt;br /&gt;
 localhost pam_bioapi[24981]: Unable to load BioAPI BSP with UUID of {5550454b-2054-464d-2f45-535320425350}, BioAPI error #194d.&lt;br /&gt;
&lt;br /&gt;
--[[User:Thinker|Thinker]] 21:21, 24 Dec 2005 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== fingerprint reader in action. ==&lt;br /&gt;
&lt;br /&gt;
small video with fingerprint reader in action with login: http://chao.ch/tmp/mov01302.mpg&lt;br /&gt;
&lt;br /&gt;
--[[User:62.202.35.30|62.202.35.30]] 17:57, 29 Dec 2005 (CET)&lt;br /&gt;
&lt;br /&gt;
==A little feedback...==&lt;br /&gt;
...for all the editors of this article:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;[[How to enable the fingerprint reader]] over at ThinkWiki.org is some real exhaustive documentation for getting the fingerprint scanner working on the ThinkPads. There is also a troubleshooting section towards the end that might be very useful to anyone messing around with it.&lt;br /&gt;
&lt;br /&gt;
Thanks to those responsible for taking the time to write up this excellent guide.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Those thanks come from [http://linuxbiometrics.com/modules/news/ LinuxBiometrics.com]&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 01:24, 9 Jan 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==pam_bioapi.so is not linked to libbioapi100.so==&lt;br /&gt;
I downloaded the pam_bioapi package and patched the file by following the wiki. However, I got the following result:&lt;br /&gt;
&lt;br /&gt;
    ~/soft/thinkpad/pam_bioapi-0.2.1/libpam_bioapi/.libs$ ls -la&lt;br /&gt;
    total 48&lt;br /&gt;
    drwxr-xr-x  2 louis users   248 2006-01-12 01:18 ./&lt;br /&gt;
    drwxr-xr-x  4 louis users   312 2006-01-12 01:18 ../&lt;br /&gt;
    lrwxrwxrwx  1 louis users    16 2006-01-12 01:18 pam_bioapi.la -&amp;gt; ../pam_bioapi.la&lt;br /&gt;
    -rw-r--r--  1 louis users   824 2006-01-12 01:18 pam_bioapi.lai&lt;br /&gt;
    -rw-r--r--  1 louis users 19716 2006-01-12 01:18 pam_bioapi.o&lt;br /&gt;
    lrwxrwxrwx  1 louis users    19 2006-01-12 01:18 pam_bioapi.so -&amp;gt; pam_bioapi.so.0.0.0*&lt;br /&gt;
    lrwxrwxrwx  1 louis users    19 2006-01-12 01:18 pam_bioapi.so.0 -&amp;gt; pam_bioapi.so.0.0.0*&lt;br /&gt;
    -rwxr-xr-x  1 louis users 21789 2006-01-12 01:18 pam_bioapi.so.0.0.0*&lt;br /&gt;
    &lt;br /&gt;
    ~/soft/thinkpad/pam_bioapi-0.2.1/libpam_bioapi/.libs$ ldd pam_bioapi.so&lt;br /&gt;
            linux-gate.so.1 =&amp;gt;  (0xffffe000)&lt;br /&gt;
            libc.so.6 =&amp;gt; /lib/tls/libc.so.6 (0x40025000)&lt;br /&gt;
            /lib/ld-linux.so.2 (0x80000000)&lt;br /&gt;
    ~/soft/thinkpad/pam_bioapi-0.2.1/libpam_bioapi/.libs$&lt;br /&gt;
&lt;br /&gt;
pam_bioapi.so is NOT linked to libbioapi100.so. The latter is in the ld path:&lt;br /&gt;
&lt;br /&gt;
    ~/soft/thinkpad/pam_bioapi-0.2.1/libpam_bioapi/.libs$ ldconfig -p |grep bioapi&lt;br /&gt;
            libtfmessbsp.so (libc6) =&amp;gt; /opt/bioapi/lib/libtfmessbsp.so&lt;br /&gt;
            libpwbsp.so.0 (libc6) =&amp;gt; /opt/bioapi/lib/libpwbsp.so.0&lt;br /&gt;
            libpwbsp.so (libc6) =&amp;gt; /opt/bioapi/lib/libpwbsp.so&lt;br /&gt;
            libmds_util.so.0 (libc6) =&amp;gt; /opt/bioapi/lib/libmds_util.so.0&lt;br /&gt;
            libmds_util.so (libc6) =&amp;gt; /opt/bioapi/lib/libmds_util.so&lt;br /&gt;
            libbioapi100.so.0 (libc6) =&amp;gt; /opt/bioapi/lib/libbioapi100.so.0&lt;br /&gt;
            libbioapi100.so (libc6) =&amp;gt; /opt/bioapi/lib/libbioapi100.so&lt;br /&gt;
            libbioapi_mds300.so.0 (libc6) =&amp;gt; /opt/bioapi/lib/libbioapi_mds300.so.0&lt;br /&gt;
            libbioapi_mds300.so (libc6) =&amp;gt; /opt/bioapi/lib/libbioapi_mds300.so&lt;br /&gt;
            libbioapi_dummy100.so.0 (libc6) =&amp;gt; /opt/bioapi/lib/libbioapi_dummy100.so.0&lt;br /&gt;
            libbioapi_dummy100.so (libc6) =&amp;gt; /opt/bioapi/lib/libbioapi_dummy100.so&lt;br /&gt;
&lt;br /&gt;
and the Sample program also works allowing me to enroll and test a fingerprint.&lt;br /&gt;
&lt;br /&gt;
My system is SuSE 10 with the kernel of 2.6.13-15. Any ideas?&lt;br /&gt;
&lt;br /&gt;
Thanks.&lt;br /&gt;
&lt;br /&gt;
--[[User:Tyne|Tyne]] 09:51, 12 Jan 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
==xscreensaver 4.23+fingerprint.patch causes xscreensaver-gl to crash kernel==&lt;br /&gt;
&lt;br /&gt;
I've gotten bioapi and 'Sample' to allow me to enroll my fingerprint, and I've also experienced the 'two logon' issue. &lt;br /&gt;
&lt;br /&gt;
I compiled xscreensaver 4.23 (though it seemed that apt came with 4.24) and applied the patch. My goal was to have the fingerprint prompt come up and to see the &amp;quot;bad image&amp;quot; of the fingerprint scan.&lt;br /&gt;
&lt;br /&gt;
The first time I did this, xscreensaver-gl took a dump and was causing kernel crashes. So I went and got the newest xscreensaver source and patches, and applied the bioapi patch to those. It worked (meaning it didnt crash the kernel anymore ;b )&lt;br /&gt;
&lt;br /&gt;
It would seem that there is a /etc/pam.d/xscreensaver, so I commented everything out of that except the bioapi line. &lt;br /&gt;
&lt;br /&gt;
Locking xscreensaver, then attempting to unlock didnt show me any fingerprint requirements, and my password didnt work.&lt;br /&gt;
&lt;br /&gt;
I'm wondering if theres something that was left out of the xscreensaver howto? or if theres anyone out there who's gotten the xscreensaver portion of this to work, who would be willing to help me out :)&lt;br /&gt;
&lt;br /&gt;
--[[User:Viss|Viss]] 11:15am, 5 Feb 2006 (PST)&lt;br /&gt;
&lt;br /&gt;
== gdm hangs on kde logout ==&lt;br /&gt;
&lt;br /&gt;
Hi.&lt;br /&gt;
&lt;br /&gt;
I am using a Thinkpad t43, installed with gentoo.&lt;br /&gt;
I run gdm as the login manager, with kde 3.4 and enlightenment dr16 as the window manager.&lt;br /&gt;
&lt;br /&gt;
I followed the steps in the wiki, and the biometric scanner is now working fine, appart from the fact that when I close/end the session I just get a blank screen, in place of the gdm login screen.&lt;br /&gt;
&lt;br /&gt;
Disabling the biometrics (by setting the pam.d file back to their originals), the session ends fine. I do this for a few times, and then set the biometrics back again, and it work fine for a few logouts, and then back to the blank screen again.&lt;br /&gt;
&lt;br /&gt;
I can do ctrl+shift+f1 to get to a console window and from there I can issue a shutdown.&lt;br /&gt;
Although this works ok, it is a bit of a pain.&lt;br /&gt;
&lt;br /&gt;
Any ideas ?&lt;br /&gt;
&lt;br /&gt;
== 'gksudo' Doesn't show biopam finger swipe prompt... ==&lt;br /&gt;
&lt;br /&gt;
Hey all,&lt;br /&gt;
&lt;br /&gt;
First off... this is an excellent how-to!  I have no real interest in using fingerprint scanner with xscreensaver, but it was up and working with everything else on my system pretty much effortlessly.&lt;br /&gt;
&lt;br /&gt;
I'm running Ubuntu Breezy Badger 5.10 on an IBM T43p (2678) and have run into two oddities:&lt;br /&gt;
1) /etc/pam.d/xscreensaver - as it is initially configured, if you have an xscreensaver session set to require password (or xlock with screensaver) then you get prompted for the normal text-password entry and then will be prompted to swipe your finger... This is easily fixed by commenting out the '@include common-auth' line in /etc/pam.d/xscreensaver and adding the line 'auth required pam_unix.so nullok_secure'.  After that change it only prompts for the text-password entry challenge.&lt;br /&gt;
&lt;br /&gt;
2) gksudo - This is more of a pain... I can use the fingerprint scanner with gksudo, but gksudo doesn't prompt with the (ugly-but-functional) finger swipe dialog the way that gdm does during login or xscreensaver does when configured as mentioned above (pre-fix).  So, if I start a Gnome app launcher that is prepended with gksudo, nothing appears to happen until I swipe my finger and then the app gets launched.  That's cool and all, but there are times (esp. when multi-tasking) when I forget to swipe and then go &amp;quot;what happened to xxxxx? oh yeah...&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Anyway... does anyone have an idea of what I can do to get the dialog to appear?&lt;br /&gt;
&lt;br /&gt;
thanx&lt;br /&gt;
&lt;br /&gt;
--[[User:JELaVallee|JELaVallee]] 05:56, 20 February 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
The gksudo problem is a restriction from the X server. It doesn't allow to grab the display for other users than the logged-in one. And the pam_bioapi is invoked as root.&lt;br /&gt;
&lt;br /&gt;
--[[User:Whoopie|Whoopie]] 13:10, 20 February 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
That makes sense... so, now I have to wonder, is there a patchable work-around like the xscreensaver one that could allow for this to work?  Where should I research such?  gksu's project or is this more an issue at the X11-level?&lt;br /&gt;
&lt;br /&gt;
--[[User:JELaVallee|JELaVallee]] 19:38, 27 February 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
I got it working. Grab out the newer pam-bioapi from CVS (http://savannah.nongnu.org/cvs/?group=pam-bioapi). This version supports &amp;quot;multi-finger&amp;quot; when using the sqlite3 database. And it supports defining the used display.&lt;br /&gt;
Change your line in your /etc/pam.d/ files like this:&lt;br /&gt;
&lt;br /&gt;
auth            sufficient      pam_bioapi.so   {5550454b-2054-464d-2f45-535320425350}  /etc/bioapi/pam/bioshadow.db :0&lt;br /&gt;
&lt;br /&gt;
--[[User:Whoopie|Whoopie]] 14:27, 1 March 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
Very cool... Did you run into any issues rebuilding/installing this?  I'll give it a shot this evening... THANKS!&lt;br /&gt;
&lt;br /&gt;
--[[User:JELaVallee|JELaVallee]] 21:07, 1 March 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
Invoke 'xhost +local:' should be able to let gksudo work. Or just blindly sweap the finger. ;)&lt;br /&gt;
&lt;br /&gt;
--[[User:YChao|YChao]] 21:25, 7 March 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
Where do I have to put 'xhost +local:'?&lt;br /&gt;
&lt;br /&gt;
== Multifinger ==&lt;br /&gt;
&lt;br /&gt;
Wow, theres a new version of pam_bioapi which supports multifinger enrollment and user identification.&lt;br /&gt;
I'll break my system with that this evening :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Yes, but I'm searching the patch for xdm. The download page from Josef Hajas (http://nax.hn.org/pub/bioapi/) is down. Does anybody have it?&lt;br /&gt;
&lt;br /&gt;
Update: The patch can be found here: http://www.qrivy.net/~michael/blua/xdm_bio.patch&lt;br /&gt;
&lt;br /&gt;
--[[User:Whoopie|Whoopie]] 17:43, 1 March 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
Tried the newest pam-bioapi from CVS (http://savannah.nongnu.org/cvs/?group=pam-bioapi) on FC3. Failed on enrolling fingerprints: ({{path|/var/log/secure|}})&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Mar  9 15:30:40 localhost pam_bioapi[32407]: Can't open database: library routine called out of&lt;br /&gt;
sequence&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Could anyone help?&lt;br /&gt;
&lt;br /&gt;
--[[User:Ychao|Ychao]] 00:38, 10 March 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
I don't know how to solve it. It seems to be a problem with sqlite3. Which version do you use? Under Ubuntu Breezy, it's 3.2.1.&lt;br /&gt;
&lt;br /&gt;
--[[User:Whoopie|Whoopie]] 12:27, 10 March 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Did anybody tried multifinger with BioAPI? I am interested in multifinger at all, not only PAM.&lt;br /&gt;
&lt;br /&gt;
Updated:&lt;br /&gt;
&lt;br /&gt;
succesfully installed pam_bioapi with multifinger support, some info:&lt;br /&gt;
&lt;br /&gt;
use: &amp;lt;code&amp;gt;auth sufficient pam_bioapi.so {5550454b-2054-464d-2f45-535320425350} /etc/bioapi/pam/bioshadow.db :0&amp;lt;/code&amp;gt; in pam.d, the bioshadow column is path to bioapi sqlite database.&lt;br /&gt;
&lt;br /&gt;
if authentication doesn't work, edit /etc/syslog.conf and write line *.alert /var/log/syslog, so you see pam_bioapi messages in /var/log/syslog&lt;br /&gt;
most common error is missing biodata table, newest pam_bioapi version should create it automatically, but if it doesn't, go to /etc/bioapi/pam/ and run command &amp;lt;code&amp;gt;sqlite3 bioshadow.db&amp;lt;/code&amp;gt;, then insert this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;CREATE TABLE biodata (id INTEGER PRIMARY KEY,uid INTEGER,uuid TEXT,header BLOB,data BLOB,signature BLOB,type INTEGER,other BLOB);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you must then enroll at least one fingerprint to the database, do it using test_enroll-pam_bioapi from pam_bioapi distribution. note that you must have root user enrolled in order to use &amp;lt;code&amp;gt;su&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
--[[User:MeBa|MeBa]] 16:58, 22 March 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
== GNOME Screensaver support ==&lt;br /&gt;
&lt;br /&gt;
Did anybody try to port the xscreensaver patch to gnome-screensaver? Since Ubuntu Dapper will be shiped with it, it would be nice to have it working then with the fingerprint reader.&lt;br /&gt;
&lt;br /&gt;
Update: Initial support can be found in gnome-screensaver CVS. See [http://bugzilla.gnome.org/show_bug.cgi?id=338635 bugreport].&lt;br /&gt;
&lt;br /&gt;
--[[User:Whoopie|Whoopie]] 12:36, 16 March 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
I'm just working on changes in pam_bioapi which makes gui callbacks from gnome-screensaver possible. But first I have to debug BioAPI error #194d after hibernation because gnome-screensaver is one of the applications returning this error.&lt;br /&gt;
&lt;br /&gt;
--[[User:Nax|nax]] 23:59, 9 July 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== No sources for bioapi 1.2.3 ==&lt;br /&gt;
&lt;br /&gt;
There doesn't seem to be any sources available for the recommended Debian package bioapi-1.2.3.  That's rather distressing since this is security-related software.  A google search doesn't seem to be turning up anything, either.  Anybody have a lead on where to find sources?&lt;br /&gt;
&lt;br /&gt;
--[[User:TedTso|TedTso]] 7:47, 29 Apri 2006 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Strange issue on GDM login ==&lt;br /&gt;
&lt;br /&gt;
I successfully have the fingerprint reader running. Everything is working nicely, except when I try to login with GDM for the first time. The login seems to work fine (the PAM_BIOAPI seems to return true) but GDM hangs then. This issue does not occur when I already logged in using password and logged out again or if I kill GDM when it hangs after the first attempt. Anyone an idea on this?&lt;br /&gt;
&lt;br /&gt;
--[[User:Dotxp|dotxp]] 22:54, 2 May 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Don't ask for finger scan when lid closed ==&lt;br /&gt;
&lt;br /&gt;
When using an external CRT+keyboard+mouse with the LD lid closed, it's quiet annoying to have to reach over and open the lid in order to do a finger scan.&lt;br /&gt;
Any idea how to make PAM use the fingerprint reader when the lid is open, but skip it when the lid is closed?&lt;br /&gt;
&lt;br /&gt;
--[[User:Thinker|Thinker]] 13:30, 7 May 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
I edited my /etc/gdm/Init/Default script in a way, that it changes /etc/pam.d/common-auth depending on the lid state: When the lid is closed, the file is replaced by a version without the lines for the finterprint reader, and of course the opposite action when the lid is open.&lt;br /&gt;
&lt;br /&gt;
--[[User:Aerials|Aerials]] 15:52, 9 July 2006 (CEST)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Unable to initialize Bioapi framework, BioAPI error #:3 ==&lt;br /&gt;
&lt;br /&gt;
I see some other discussion on this page about the dreaded &amp;quot;Unable to initialize Bioapi framework, BioAPI error #:3&amp;quot; error, but the only solution i can see seems really complicated -- adding users to groups when they log in, etc. Is that really the simplest way to make xscreensaver work? I'm the only user of my laptop -- the only account who will ever log in, the only fingerprint in the database, the only person who will ever run xscreensaver. Is there some quick easy way to make xscreensaver unlock when i swipe my finger?&lt;br /&gt;
&lt;br /&gt;
-- [[User:Mike Schiraldi|Mike Schiraldi]] 19:52, 16 May 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Security level ==&lt;br /&gt;
&lt;br /&gt;
[http://www.upek.com/support/pdf/BioAPI_PerfectMatchBSP1.7.pdf UPEK PerfectMatch Algorithm]&lt;br /&gt;
According to this link, highest security level is 0 which is opposite to 5 mentioned in the article. What is correct?&lt;br /&gt;
&lt;br /&gt;
Update: Well,TFMESS_BSP_LIN.pdf, i downloaded somewhere stated 5 as highest security level. So, ?&lt;br /&gt;
&lt;br /&gt;
== How good is it? ==&lt;br /&gt;
&lt;br /&gt;
How strong is the security that results? Is it actually as good as, say, a 10-character password, or is it the sort of thing you can fool&lt;br /&gt;
with some gelatin and a used glass? My inclination is not to trust it - but perhaps someone more knowledgeable would care to comment?&lt;br /&gt;
-- [[User:RichardNeill|RichardNeill]] 16:58, 25 July 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Patch for new versions of xdm ==&lt;br /&gt;
&lt;br /&gt;
I was having some trouble getting the xdm patch to work using the version of xdm in Debian unstable (1.0.5). Turns out that xdm now checks for blank username and doesn't even bother to call pam. Here's an updated version of the patch that works for me: [http://www.ugcs.caltech.edu/~q/code/xdm_bio-1.0.5.patch]&lt;br /&gt;
&lt;br /&gt;
[[User:Virtualphtn|Virtualphtn]] 02:40, 16 September 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Using instructions with OpenSuSE 10.1 ==&lt;br /&gt;
&lt;br /&gt;
Now, as OpenSuSE has the problem with the gcc4 I followed the (by the way not very detailed) instructions about patching it. I've done the first patch before installing the BioApi($ wget http://upir.cz/linux/patches/bioapi-1.2.2-gcc4.patch &lt;br /&gt;
$ patch -p1 &amp;lt; bioapi-1.2.2-gcc4.patch) but it didn't work(dal_classes.h:460: error: extra qualification 'DAL_DATABASE_INFO_LIST::' on member 'GetDBNamesAndParameters')&lt;br /&gt;
Can somebody help me?&lt;br /&gt;
--[[User:SQLMosquito|SQLMosquito]] 19:53, 29 September 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== 64-bit architecture/OSS release ==&lt;br /&gt;
&lt;br /&gt;
Hi,&lt;br /&gt;
&lt;br /&gt;
To all ThinkWiki contributors: Thanks for all the help so far! I've made a lot of progress, but I have a show-stopper for the fingerprint reader. I'm not using x86 architecture! I am using the (new) Thinkpad X60, which just got upgraded to the Core 2 Duo with EM64T support a couple of weeks ago (along with a ton of other upgrades to the product, without changing its name...........!) So consequently I have Fedora Core 6 x86_64 installed. Works great, in general - standby, trackpoint, special buttons, nvram, and wifi supported (although not all out of the box; the ipw3945 driver had to be downloaded from atrpms.) &lt;br /&gt;
&lt;br /&gt;
The distributed shared library provided by the vendor doesn't link against any 64-bit programs, because it's a 32-bit library. Of course, my desktop manager, PAM, etc. are all 64-bit. Without &amp;quot;downgrading&amp;quot; to a 32-bit distro, is there any way to either hack around this, or to bring up Pavel Machek's open-source enrollment program (thinkfinger) up to the vendor's driver's level of integration with BioAPI? Sounds like some development work, but I'm willing to help any way I can!&lt;br /&gt;
&lt;br /&gt;
There should be a way to get this moving - either using a wrapper a la nspluginwrapper to enable an interface to the 32-bit driver on another architecture, or building upwards from Pavel's small test program.&lt;br /&gt;
&lt;br /&gt;
Thanks!&lt;br /&gt;
&lt;br /&gt;
Sean&lt;/div&gt;</summary>
		<author><name>Samoht</name></author>
		
	</entry>
</feed>