<?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=Jensens</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=Jensens"/>
	<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/wiki/Special:Contributions/Jensens"/>
	<updated>2026-05-05T07:07:52Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.12</generator>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Lenovo_Integrated_Smart_Card_Reader&amp;diff=53298</id>
		<title>Lenovo Integrated Smart Card Reader</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Lenovo_Integrated_Smart_Card_Reader&amp;diff=53298"/>
		<updated>2012-01-09T15:48:10Z</updated>

		<summary type="html">&lt;p&gt;Jensens: /* This chip may be found in */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Chipset: ChipsBnk (??)&lt;br /&gt;
* USBID 17ef:1003&lt;br /&gt;
* Interface: USB&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== pcsclite's libccid driver ===&lt;br /&gt;
The driver is maintained at [http://pcsclite.alioth.debian.org/ccid.html].&lt;br /&gt;
* [http://packages.debian.org/libccid] - Debian binaries&lt;br /&gt;
* [http://download.fedora.redhat.com/pub/fedora/linux/extras/development/] - Fedora binaries&lt;br /&gt;
&lt;br /&gt;
For Ubuntu (9.04, Jaunty Jackalope) users, a simple &amp;quot;sudo apt-get install libccid&amp;quot; is enough to get&lt;br /&gt;
the reader working.&lt;br /&gt;
[http://packages.ubuntu.com/jaunty/libccid] - Infos about the Ubuntu libccid package&lt;br /&gt;
&lt;br /&gt;
=== This chip may be found in ===&lt;br /&gt;
* {{T61}}&lt;br /&gt;
* {{T400}}&lt;br /&gt;
* {{T410}}&lt;br /&gt;
* {{T420s}}&lt;br /&gt;
&lt;br /&gt;
=== Identification ===&lt;br /&gt;
 Bus 006 Device 002: ID 17ef:1003 ChipsBnk &lt;br /&gt;
 Device Descriptor:&lt;br /&gt;
   bLength                18&lt;br /&gt;
   bDescriptorType         1&lt;br /&gt;
   bcdUSB               2.00&lt;br /&gt;
   bDeviceClass            0 (Defined at Interface level)&lt;br /&gt;
   bDeviceSubClass         0 &lt;br /&gt;
   bDeviceProtocol         0 &lt;br /&gt;
   bMaxPacketSize0         8&lt;br /&gt;
   idVendor           0x17ef ChipsBnk&lt;br /&gt;
   idProduct          0x1003 &lt;br /&gt;
   bcdDevice            1.00&lt;br /&gt;
   iManufacturer           1 &lt;br /&gt;
   iProduct                2 &lt;br /&gt;
   iSerial                 0 &lt;br /&gt;
   bNumConfigurations      1&lt;br /&gt;
   Configuration Descriptor:&lt;br /&gt;
     bLength                 9&lt;br /&gt;
     bDescriptorType         2&lt;br /&gt;
     wTotalLength           93&lt;br /&gt;
     bNumInterfaces          1&lt;br /&gt;
     bConfigurationValue     1&lt;br /&gt;
     iConfiguration          0 &lt;br /&gt;
     bmAttributes         0xa0&lt;br /&gt;
       (Bus Powered)&lt;br /&gt;
       Remote Wakeup&lt;br /&gt;
     MaxPower              100mA&lt;br /&gt;
     Interface Descriptor:&lt;br /&gt;
       bLength                 9&lt;br /&gt;
       bDescriptorType         4&lt;br /&gt;
       bInterfaceNumber        0&lt;br /&gt;
       bAlternateSetting       0&lt;br /&gt;
       bNumEndpoints           3&lt;br /&gt;
       bInterfaceClass        11 Chip/SmartCard&lt;br /&gt;
 [[..]]&lt;br /&gt;
&lt;br /&gt;
And in my T410 it looks like this:&lt;br /&gt;
&lt;br /&gt;
 Bus 002 Device 004: ID 17ef:1003 Lenovo &lt;br /&gt;
 Device Descriptor:&lt;br /&gt;
   bLength                18&lt;br /&gt;
   bDescriptorType         1&lt;br /&gt;
   bcdUSB               2.00&lt;br /&gt;
   bDeviceClass            0 (Defined at Interface level)&lt;br /&gt;
   bDeviceSubClass         0 &lt;br /&gt;
   bDeviceProtocol         0 &lt;br /&gt;
   bMaxPacketSize0         8&lt;br /&gt;
   idVendor           0x17ef Lenovo&lt;br /&gt;
   idProduct          0x1003 &lt;br /&gt;
   bcdDevice            1.00&lt;br /&gt;
   iManufacturer           1 Lenovo&lt;br /&gt;
   iProduct                2 Integrated Smart Card Reader&lt;br /&gt;
   iSerial                 0 &lt;br /&gt;
   bNumConfigurations      1&lt;br /&gt;
   Configuration Descriptor:&lt;br /&gt;
     bLength                 9&lt;br /&gt;
     bDescriptorType         2&lt;br /&gt;
     wTotalLength           93&lt;br /&gt;
     bNumInterfaces          1&lt;br /&gt;
     bConfigurationValue     1&lt;br /&gt;
     iConfiguration          0 &lt;br /&gt;
     bmAttributes         0xa0&lt;br /&gt;
       (Bus Powered)&lt;br /&gt;
       Remote Wakeup&lt;br /&gt;
     MaxPower              100mA&lt;br /&gt;
     Interface Descriptor:&lt;br /&gt;
       bLength                 9&lt;br /&gt;
       bDescriptorType         4&lt;br /&gt;
       bInterfaceNumber        0&lt;br /&gt;
       bAlternateSetting       0&lt;br /&gt;
       bNumEndpoints           3&lt;br /&gt;
       bInterfaceClass        11 Chip/SmartCard&lt;br /&gt;
       bInterfaceSubClass      0 &lt;br /&gt;
       bInterfaceProtocol      0 &lt;br /&gt;
       iInterface              0 &lt;br /&gt;
       ** UNRECOGNIZED:  36 21 00 01 00 07 03 00 00 00 a0 0f 00 00 a0 0f 00 00 00 00 2a 00 00 20 a1 07 00 00 fe 00 00  00 00 00 00 00 00 00 00 00 30 02 01 00 0f 01 00 00 00 00 00 00 00 01 &lt;br /&gt;
 [[..]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Components]]&lt;/div&gt;</summary>
		<author><name>Jensens</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Problem_with_CPU_frequency_scaling&amp;diff=51382</id>
		<title>Problem with CPU frequency scaling</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Problem_with_CPU_frequency_scaling&amp;diff=51382"/>
		<updated>2011-04-11T15:46:52Z</updated>

		<summary type="html">&lt;p&gt;Jensens: verified for t43p&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
{{WARN|CPU frequency limitation is a safety feature of your ThinkPad, do not work around it!  If you have set the BIOS to performance mode and it is still limiting maximum CPU frequency, there is almost always a damn good reason for that}}&lt;br /&gt;
&lt;br /&gt;
==Symptom==&lt;br /&gt;
If the battery pack is removed and the laptop is powered by a 65W AC adapter only, the CPU downclocks to the lowest multiplier and remains locked in low speed. This happens irrespective of the scaling method in use (kernelspace or userspace) and of the frequency governor selected (ondemand, performance, etc.).&lt;br /&gt;
&lt;br /&gt;
Output of cpufreq-info (on AC power without battery):&lt;br /&gt;
&lt;br /&gt;
  analyzing CPU 0:&lt;br /&gt;
  driver: centrino&lt;br /&gt;
  CPUs which need to switch frequency at the same time: 0 1&lt;br /&gt;
  hardware limits: 1000 MHz - 1.83 GHz&lt;br /&gt;
  available frequency steps: 1.83 GHz, 1.33 GHz, 1000 MHz&lt;br /&gt;
  available cpufreq governors: ondemand, userspace, powersave, performance&lt;br /&gt;
  '''current policy: frequency should be within 1000 MHz and 1000 MHz.'''&lt;br /&gt;
                  The governor &amp;quot;ondemand&amp;quot; may decide which speed to use&lt;br /&gt;
                  within this range.&lt;br /&gt;
  current CPU frequency is 1000 MHz (asserted by call to hardware).&lt;br /&gt;
  &lt;br /&gt;
  analyzing CPU 1:&lt;br /&gt;
  driver: centrino&lt;br /&gt;
  CPUs which need to switch frequency at the same time: 0 1&lt;br /&gt;
  hardware limits: 1000 MHz - 1.83 GHz&lt;br /&gt;
  available frequency steps: 1.83 GHz, 1.33 GHz, 1000 MHz&lt;br /&gt;
  available cpufreq governors: ondemand, userspace, powersave, performance&lt;br /&gt;
  '''current policy: frequency should be within 1000 MHz and 1000 MHz.'''&lt;br /&gt;
                  The governor &amp;quot;ondemand&amp;quot; may decide which speed to use&lt;br /&gt;
                  within this range.&lt;br /&gt;
  current CPU frequency is 1000 MHz (asserted by call to hardware).&lt;br /&gt;
&lt;br /&gt;
Output of cpufreq-info (on AC power with battery plugged in):&lt;br /&gt;
&lt;br /&gt;
  analyzing CPU 0:&lt;br /&gt;
  driver: centrino&lt;br /&gt;
  CPUs which need to switch frequency at the same time: 0 1&lt;br /&gt;
  hardware limits: 1000 MHz - 1.83 GHz&lt;br /&gt;
  available frequency steps: 1.83 GHz, 1.33 GHz, 1000 MHz&lt;br /&gt;
  available cpufreq governors: ondemand, userspace, powersave, performance&lt;br /&gt;
  '''current policy: frequency should be within 1000 MHz and 1.83 GHz.'''&lt;br /&gt;
                  The governor &amp;quot;ondemand&amp;quot; may decide which speed to use&lt;br /&gt;
                  within this range.&lt;br /&gt;
  current CPU frequency is 1000 MHz (asserted by call to hardware).&lt;br /&gt;
  &lt;br /&gt;
  analyzing CPU 1:&lt;br /&gt;
  driver: centrino&lt;br /&gt;
  CPUs which need to switch frequency at the same time: 0 1&lt;br /&gt;
  hardware limits: 1000 MHz - 1.83 GHz&lt;br /&gt;
  available frequency steps: 1.83 GHz, 1.33 GHz, 1000 MHz&lt;br /&gt;
  available cpufreq governors: ondemand, userspace, powersave, performance&lt;br /&gt;
  '''current policy: frequency should be within 1000 MHz and 1.83 GHz.'''&lt;br /&gt;
                  The governor &amp;quot;ondemand&amp;quot; may decide which speed to use&lt;br /&gt;
                  within this range.&lt;br /&gt;
  current CPU frequency is 1000 MHz (asserted by call to hardware).&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
&lt;br /&gt;
The 65W AC adaptor does not supply enough power to handle peak power draws from the CPU/disk/GPU on the later ThinkPads.  The battery is required to supply the peak demand and ensure correct system operation.&lt;br /&gt;
&lt;br /&gt;
Messing with this can cause data loss, data corruption, and hardware damage.&lt;br /&gt;
&lt;br /&gt;
==Solution==&lt;br /&gt;
&lt;br /&gt;
Make sure no BIOS setting is limiting the CPU frequency range (like &amp;quot;thermal management&amp;quot; = &amp;quot;BALANCED&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
# Buy a 90W AC adapter&lt;br /&gt;
# Don't use the laptop without the battery pack&lt;br /&gt;
&lt;br /&gt;
Other solution than using the laptop with the battery pack always inserted is to add &amp;quot;processor.ignore_ppc=1&amp;quot; to kernel boot command line. This allows to disable BIOS frequency limit, but can be mischievous to the computer if it's power consumption is higher than 65W.&lt;br /&gt;
&lt;br /&gt;
== Affected Models ==&lt;br /&gt;
&lt;br /&gt;
* {{Z61m}}&lt;br /&gt;
* {{T43p}}&lt;br /&gt;
* {{T61}}&lt;br /&gt;
* {{T60p}}&lt;br /&gt;
* {{X201}}&lt;br /&gt;
* {{T410}}&lt;br /&gt;
&lt;br /&gt;
Probably ALL Lenovo ThinkPads.  One can actually track this through the DSDT, but it is not worth the effort.&lt;/div&gt;</summary>
		<author><name>Jensens</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_enable_integrated_fingerprint_reader_with_BioAPI&amp;diff=22943</id>
		<title>How to enable integrated fingerprint reader with BioAPI</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_enable_integrated_fingerprint_reader_with_BioAPI&amp;diff=22943"/>
		<updated>2006-06-27T14:13:19Z</updated>

		<summary type="html">&lt;p&gt;Jensens: /* Debian */&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 describes the process of getting the [[Integrated Fingerprint Reader|integrated fingerprint reader]] to work under Linux. It is based on experiences in {{Ubuntu}} on a T43. The same works on {{Fedora}} 4 and 5, RHEL4, SuSE 9.3, SuSE 10, and {{Gentoo}}.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Basic installation==&lt;br /&gt;
===Installing the bioapi framework===&lt;br /&gt;
====Automated installation script====&lt;br /&gt;
The [[Script for enabling the fingerprint reader]] automates the installation of most components (bioapi framework, driver, pam_bioapi, pam setup, device permissions, pamtester and enrolling), for some Linux distributions.&lt;br /&gt;
&lt;br /&gt;
====Binary packages====&lt;br /&gt;
&lt;br /&gt;
Note that these packages only take care of this one section. If you can use one, you should do so and then proceed to the section entitled, Installing and Configuring the Driver.&lt;br /&gt;
&lt;br /&gt;
=====Debian/ Ubuntu Dapper=====&lt;br /&gt;
*If you're using {{Debian}} Sid (the unstable branch) or {{Ubuntu}} Dapper Drake 6.06 LTS you can try the packages from Michael R. Crusoe's site, either [http://www.qrivy.net/~michael/temp/ version 1.2.3] (recommended) or [http://www.qrivy.net/~michael/debs/unstable/ older versions] which might not work with the steps in this howto.&lt;br /&gt;
&lt;br /&gt;
{{HINT|Ignore the warning about not finding ''/usr/lib/libqtpwbsp.so'', it's not fatal.}}&lt;br /&gt;
&lt;br /&gt;
=====Gentoo=====&lt;br /&gt;
You can either grab the [http://www.qrivy.net/~michael/blua/bioapi/bioapi-1.2.2.ebuild.tar.bz2 ebuild], or use the source-install procedure below.&lt;br /&gt;
&lt;br /&gt;
Also see [http://toe.ch/~tsa/ibm-fingerprint/ http://toe.ch/~tsa/ibm-fingerprint/] for alternative documentation on installing on Gentoo including ebuilds for all the packages used.&lt;br /&gt;
=====Fedora Core=====&lt;br /&gt;
RPM packages for Fedora Core and installation instructions are available [[Installing Fedora Core 5 on a ThinkPad X41 Tablet#Fingerprint_Reader|here]]&lt;br /&gt;
&lt;br /&gt;
====Installing from source====&lt;br /&gt;
*Get the bioapi source:&lt;br /&gt;
:{{cmduser|wget http://www.qrivy.net/~michael/blua/bioapi/bioapi-latest.tar.bz2}}&lt;br /&gt;
*I could not compile bioapi with the graphical Qt tools. To do it manually, do the following:&lt;br /&gt;
:{{cmduser|tar xjf bioapi-latest.tar.bz2}}&lt;br /&gt;
:{{cmduser|cd bioapi-1.2.2}}&lt;br /&gt;
:{{cmduser|1=./configure --with-Qt-dir=no}}&lt;br /&gt;
:{{cmduser|make}}&lt;br /&gt;
:and then as root&lt;br /&gt;
:{{cmdroot|make install}}&lt;br /&gt;
:If make install fails, be sure you're root and then:&lt;br /&gt;
:{{cmdroot|1=export LD_LIBRARY_PATH=/usr/local/lib}}&lt;br /&gt;
:{{cmdroot|make install}}&lt;br /&gt;
:and if you want to compile pam_bioapi for auth later&lt;br /&gt;
:{{cmdroot|cp include/bioapi_util.h include/installdefs.h imports/cdsa/v2_0/inc/cssmtype.h /usr/include}}&lt;br /&gt;
:Be aware that checkinstall will not work!&lt;br /&gt;
:(I got through configure with Qt, but got a cryptic build error.  It all worked fine with Qt disabled as above)&lt;br /&gt;
:buzz: This is due to a wrong qt include path, set it manually in configure and everything should work.&lt;br /&gt;
*Bioapi (at least version 1.2.2) doesn't compile with GCC4. You need to patch it:&lt;br /&gt;
*This is neccessary to compile on SUSE 10.1 which it using gcc version 4.1.0.&lt;br /&gt;
:{{cmduser|wget http://upir.cz/linux/patches/bioapi-1.2.2-gcc4.patch}}&lt;br /&gt;
:{{cmduser|patch -p1 &amp;lt; bioapi-1.2.2-gcc4.patch}}&lt;br /&gt;
*Patch for gcc 4.1 is available here - http://cvs.pld-linux.org/cgi-bin/cvsweb/SOURCES/bioapi-c++.patch&lt;br /&gt;
* By default, bioapi will install numerous files in {{path|/usr/local/&amp;lt;nowiki&amp;gt;{&amp;lt;/nowiki&amp;gt;bin,lib,include&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;}}, including files with &amp;quot;self-explanatory&amp;quot; names such as {{path|/usr/local/bin/Sample}}. To prevent this pollution:&lt;br /&gt;
:Create a dedicated directory, for example {{path|/opt/bioapi}} .&lt;br /&gt;
:Append &amp;lt;tt&amp;gt;--prefix=/opt/bioapi&amp;lt;/tt&amp;gt; to the above &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; command.&lt;br /&gt;
:Append {{path|/opt/bioapi/bin}} to &amp;lt;tt&amp;gt;$PATH&amp;lt;/tt&amp;gt; and {{path|/opt/bioapi/lib}} to &amp;lt;tt&amp;gt;$LD_LIBRARY_PATH&amp;lt;/tt&amp;gt;.&lt;br /&gt;
:When installing the driver (below), tell it the new install path: {{cmdroot|sh install.sh /opt/bioapi/lib}}&lt;br /&gt;
&lt;br /&gt;
====Adjusting ldconfigs library search path====&lt;br /&gt;
At least on {{Fedora}} or {{Aurox}} 11, you may need to add {{path|/usr/local/lib}} to the library path so that the libraries referenced from &amp;lt;tt&amp;gt;pam_bioapi.so&amp;lt;/tt&amp;gt; get picked up properly. The usual way to do this is adding it to the ldconfig configuration:&lt;br /&gt;
:{{cmdroot|echo '/usr/local/lib' &amp;gt; /etc/ld.so.conf.d/bioapi.conf}}&lt;br /&gt;
:{{cmdroot|ldconfig}}&lt;br /&gt;
Alternatively you can add it to the LD_LIBRARY variable.&lt;br /&gt;
&lt;br /&gt;
If you see bioapi libs in the output of &lt;br /&gt;
:{{cmdroot|ldconfig -p | grep bioapi}}&lt;br /&gt;
then it should work.&lt;br /&gt;
&lt;br /&gt;
===Installing and configuring the driver===&lt;br /&gt;
====Installing the driver====&lt;br /&gt;
*Download {{path|TFMESS_BSP_LIN_1.0.zip}} from the [http://www.upek.com/support/dl_linux_bsp.asp UPEK support site] and unzip it into a seperate folder, as it will not create one.&lt;br /&gt;
*Change to that folder and do as root:&lt;br /&gt;
:{{cmdroot|sh install.sh}}&lt;br /&gt;
:If you're running Gentoo or Ubuntu Dapper, use&lt;br /&gt;
:{{cmdroot|sh install.sh /usr/lib}}&lt;br /&gt;
:If that fails, it may be that make install failed up above -- try setting LD_LIBRARY_PATH, do the make install again, and come back here and try this again.  You also need {{cmd|mod_install|}} from bioapi in your PATH.&lt;br /&gt;
:May there still occures and error, which means mod_install: command not found.&lt;br /&gt;
:Then login as root - not su!&lt;br /&gt;
:Do this:&lt;br /&gt;
:{{cmdroot|sh install.sh}}&lt;br /&gt;
:again. It should work. SU to root does not work since then the /usr/local/bin directory is not used per default.&lt;br /&gt;
&lt;br /&gt;
====Configuring permissions for non-root use====&lt;br /&gt;
If you want to use PAM-aware applications like xscreensaver that are NOT running with root permissions (as opposed to login, gdm or other authentication mechanisms), you may need to do all or at least some of the things in this section.  More details on what is necessary on which distributions would be greately appreciated.&lt;br /&gt;
*Create two groups, one for access to BioAPI files and the other for access to the usb files.  (This is done for full generality; i.e., you may have other USB devices which you want accessable to other users, without exposing your BioAPI configuration to them).  Add your normal user (the one you wish to use PAM-aware applications with) to both of these groups.&lt;br /&gt;
On {{Debian}} this is done with&lt;br /&gt;
:{{cmdroot|addgroup --system bioapi}}&lt;br /&gt;
:{{cmdroot|addgroup --system usbfs}}&lt;br /&gt;
:{{cmdroot|adduser yournormaluser bioapi}}&lt;br /&gt;
:{{cmdroot|adduser yournormaluser usbfs}}&lt;br /&gt;
On {{SUSE}} this is done with&lt;br /&gt;
:{{cmdroot|groupadd --system bioapi}}&lt;br /&gt;
:{{cmdroot|groupadd --system usbfs}}&lt;br /&gt;
:{{cmdroot|groupmod -A yournormaluser bioapi}}&lt;br /&gt;
:{{cmdroot|groupmod -A yournormaluser usbfs}}&lt;br /&gt;
On {{Mandriva}} this is done with&lt;br /&gt;
:{{cmdroot|groupadd -r bioapi}}&lt;br /&gt;
:{{cmdroot|groupadd -r usbfs}}&lt;br /&gt;
:{{cmdroot|usermod -G bioapi,usbfs yournormaluser}}&lt;br /&gt;
&lt;br /&gt;
:(where {{cmd|yournormaluser|}} is your normal user name).  You will need to log out and log back in for this to take effect.&lt;br /&gt;
*Set permissions on the BioAPI config/registry directory:&lt;br /&gt;
:{{cmdroot|chown -R root:bioapi /usr/local/var/bioapi/}}&lt;br /&gt;
:{{cmdroot|chmod -R 770 /usr/local/var/bioapi/}}&lt;br /&gt;
:(change this path if you used an alternate BioAPI install directory above)&lt;br /&gt;
*Set permissions on the files in {{path|/proc/bus/usb}}:&lt;br /&gt;
:{{cmdroot|chown -R root:usbfs /proc/bus/usb}}&lt;br /&gt;
:{{cmdroot|chmod -R g+X /proc/bus/usb}}&lt;br /&gt;
:{{cmdroot|chown root:usbfs /proc/bus/usb/`lsusb &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; sed -ne &amp;quot;/0483:2016/s/Bus\ \(.*\)\ Device\ \(.*\):\ .*/\1\/\2/p&amp;quot;`}}&lt;br /&gt;
:{{cmdroot|chmod 660 /proc/bus/usb/`lsusb &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; sed -ne &amp;quot;/0483:2016/s/Bus\ \(.*\)\ Device\ \(.*\):\ .*/\1\/\2/p&amp;quot;`}}&lt;br /&gt;
:You may need to replace {{cmd|lsusb|}} with its full path, which is something like {{cmd|/sbin/lsusb|}} or {{cmd|/usr/bin/lsusb|}} depending on your distro.  It might be necessary to put these lines into a script which is run at startup and resume from suspend/hibernate.&lt;br /&gt;
*As an alternative to the {{cmd|chown|}}/{{cmd|chmod|}} commands above, you can set mount options for usbfs with a line in {{path|/etc/fstab|}}; an example would be&lt;br /&gt;
 none /proc/bus/usb usbfs defaults,devgid=108,devmode=0660,busgid=108,busmode=0770,listgid=108,listmode=0660 0 0&lt;br /&gt;
:where 108 is replaced with the numerical group ID of the usbfs group (you can determine this with something like {{cmd|cat /etc/group &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; grep usbfs &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; cut -d':' -f 3|}}).  Make sure you only have one {{path|/proc/bus/usb}} entry in {{path|/etc/fstab}}.  See the {{cmd|mount(8)|}} manpage for more information on these options.  This is &amp;quot;cleaner&amp;quot; but seems to have a few weird issues -- see the talk page for details.&lt;br /&gt;
*You may also have files in {{path|/dev/bus/usb}}, which the driver will try before {{path|/proc/bus/usb}}.  If this is another usbfs mount point ({{cmd|mount|}} shows a line containing {{cmdresult|/dev/bus/usb type usbfs}}), then simply follow the above instructions with {{path|/dev/bus/usb}} rather than {{path|/proc/bus/usb}}.  Otherwise, you may be running a new kernel (i.e. 2.6.15) that makes usbfs-like files available through {{path|/dev/bus/usb}}.  On systems running udev these files are dynamically created; you can configure their permissions by editing a udev config file.  On Debian this is done by changing the &amp;lt;tt&amp;gt;usb_device&amp;lt;/tt&amp;gt; line of {{path|/etc/udev/permissions.rules}} to read&lt;br /&gt;
 SUBSYSTEM==&amp;quot;usb_device&amp;quot;, MODE=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;usbfs&amp;quot;&lt;br /&gt;
*For the beta versions only, there is a logfile, which needs to exist with the proper permissions:&lt;br /&gt;
:{{cmdroot|touch /var/log/BSP.log &amp;amp;&amp;amp; chown root:bioapi /var/log/BSP.log &amp;amp;&amp;amp; chmod 660 /var/log/BSP.log}}&lt;br /&gt;
&lt;br /&gt;
====Miscellaneous configuration====&lt;br /&gt;
* To increase the security level (minimize false accept rate), set this in {{path|/etc/tfmessbsp.cfg}}:&lt;br /&gt;
 security-level=&amp;quot;5&amp;quot;&lt;br /&gt;
{{WARN|Please see discussion section Security Level!}}&lt;br /&gt;
&lt;br /&gt;
===Testing the driver and enrolling a fingerprint===&lt;br /&gt;
To test the driver and generate the file containing your fingerprint information, you need a sample program included with the driver.  The compilation steps below were discovered by trial and error; if they don't work for you, try the binary {{cmd|Sample|}} utility that came with the beta versions of the driver (i.e., {{path|TFMESS_BSP_LIN_1.0beta2.zip}} as mentioned above).&lt;br /&gt;
Go to the folder where you extracted {{path|TFMESS_BSP_LIN_1.0.zip}} and do:&lt;br /&gt;
:{{cmdroot|cd NonGUI_Sample}}&lt;br /&gt;
:Edit {{path|main.c|}} and remove (or comment out) the line&lt;br /&gt;
 #include &amp;quot;port/bioapi_port.h&amp;quot;&lt;br /&gt;
:{{cmdroot|gcc -o Sample main.c -L/usr/local/lib -lbioapi100 -DUNIX -DLITTLE_ENDIAN}}&lt;br /&gt;
:{{cmdroot|./Sample}}&lt;br /&gt;
:Note that Sample may only run as root, unless you've already configured the usbfs file permissions.&lt;br /&gt;
:You can try to &amp;quot;e&amp;quot;nroll (to record a fingerprint for an account) and then &amp;quot;v&amp;quot;erify (to test a fingerprint against the one it expects for an account).&lt;br /&gt;
:You'll save a step later if you use your own login username as the username to enroll here.&lt;br /&gt;
&lt;br /&gt;
==Login via pam_bioapi==&lt;br /&gt;
&lt;br /&gt;
The following explains how to add fingerprint authentiation to programs that use the PAM (Pluggable Authentication Modules) framework, such as  Gnome's GDM and KDE's KDM and screensaver.&lt;br /&gt;
&lt;br /&gt;
===Getting required libs &amp;amp; tools===&lt;br /&gt;
====Installing pam_bioapi====&lt;br /&gt;
*Prerequisites&lt;br /&gt;
:On SuSE 10, I needed to install the pam-devel RPM&lt;br /&gt;
:In general, you will need pam itself (standard for most distros) as well as the pam development files (probably an optional package for your distro).&lt;br /&gt;
*Get and compile the pam_bioapi module.&lt;br /&gt;
:{{cmduser|wget http://www.qrivy.net/~michael/blua/pam_bioapi/pam_bioapi-latest.tar.bz2}}&lt;br /&gt;
:{{cmduser|tar xjf pam_bioapi-latest.tar.bz2}}&lt;br /&gt;
:{{cmduser|cd pam_bioapi-0.2.1}}&lt;br /&gt;
:{{cmduser|wget http://badcode.de/downloads/fingerprint.patch}}&lt;br /&gt;
:{{cmduser|patch -p0 &amp;lt; fingerprint.patch}}&lt;br /&gt;
:If you want to, review the patch. In general you should review all code you download and compile, if possible. The patch comes from [http://linuxbiometrics.com/modules/newbb/viewtopic.php?viewmode=flat&amp;amp;topic_id=80&amp;amp;forum=1 this thread].&lt;br /&gt;
:{{cmduser|./configure &amp;amp;&amp;amp; make}}&lt;br /&gt;
:and as root&lt;br /&gt;
:{{cmdroot| make install}}&lt;br /&gt;
:{{cmdroot| cp /usr/local/lib/security/* /lib/security/}}&lt;br /&gt;
{{NOTE|If you get a 'rpl_malloc' error in /var/log/auth.log when trying to use the fingerprint reader, redo these steps and remove the related term from Makefile after running ./configure. (FC3, Debian etch)}}&lt;br /&gt;
*If you get 'configure: error: cannot find required header: security/_pam_macros.h' and are on a Debian-like system, do &amp;quot;apt-get install libpam0g-dev&amp;quot; and try again. If you are using a Mandriva distribution, do &amp;quot;urpmi libpam0-devel&amp;quot; instead.&lt;br /&gt;
*If you get 'PAM [dlerror: /lib/security/pam_bioapi.so: undefined symbol: BioAPIMemoryFuncs]' error in your syslog, replace 'LIBS = ' line in {{path|libpam_bioapi/makefile}} with the following (of course, replace {{path|/opt/bioapi/}} with the path where you installed bioapi):&lt;br /&gt;
 LIBS = -L/opt/bioapi/lib -lbioapi100 -lbioapi_mds300 -lmds_util&lt;br /&gt;
*Use the sample tool from the fingerprint reader to create {{path|&amp;lt;username&amp;gt;.bir}} (&amp;lt;tt&amp;gt;&amp;lt;username&amp;gt;&amp;lt;/tt&amp;gt; '''must''' be the username you want to login with. gdm will probably break for any login name that has no .bir file).&lt;br /&gt;
*As root do:&lt;br /&gt;
:{{cmdroot|SERIAL&amp;lt;nowiki&amp;gt;=`BioAPITest | sed -ne &amp;quot;/Fingerprint/{n;n;s/^.*: \(.\{9\}\)\(.\{4\}\)\(.\{4\}\)\(.\{4\}\)\(.*\)/\1-\2-\3-\4-\5/gp}&amp;quot;` &amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
:{{cmdroot|echo $SERIAL}} should print something like {{cmdresult|&amp;lt;nowiki&amp;gt;{5550454b-2054-464d-2f45-535320425350}&amp;lt;/nowiki&amp;gt;}} now.&lt;br /&gt;
:If it does, do:&lt;br /&gt;
:{{cmdroot|mkdir -p /etc/bioapi/pam/$SERIAL}}&lt;br /&gt;
:{{cmdroot|cp &amp;lt;username&amp;gt;.bir /etc/bioapi/pam/$SERIAL}}&lt;br /&gt;
:If not, you might just try&lt;br /&gt;
:{{cmdroot|SERIAL&amp;lt;nowiki&amp;gt;={5550454b-2054-464d-2f45-535320425350}&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
:as this value is hardcoded into the UPEK docs.&lt;br /&gt;
&lt;br /&gt;
===Configuring pam===&lt;br /&gt;
The following part is distribution specific. On {{Ubuntu}} or {{SUSE}} you can modify {{path|/etc/pam.d/common-auth}} (on {{Gentoo}} and {{Fedora}} it is {{path|/etc/pam.d/system-auth}}) to look like this:&lt;br /&gt;
&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_bioapi.so {5550454b-2054-464d-2f45-535320425350} /etc/bioapi/pam/&lt;br /&gt;
 password   sufficient   pam_bioapi.so {5550454b-2054-464d-2f45-535320425350} /etc/bioapi/pam/&lt;br /&gt;
 auth       required     pam_unix.so nullok_secure&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
For '''Gentoo'''-Users - this allows you to attempt a password first. If you simply press enter, it then prompts for a fingerprints. Create a file named {{path|/etc/pam.d/bioapi}}. This also means that remote services, such as SSH keep working:&lt;br /&gt;
&lt;br /&gt;
 auth       required     pam_env.so&lt;br /&gt;
 auth       sufficient   pam_unix.so likeauth nullok&lt;br /&gt;
 auth       sufficient   pam_bioapi.so {5550454b-2054-464d-2f45-535320425350} /etc/bioapi/pam/&lt;br /&gt;
 auth       required     pam_deny.so&lt;br /&gt;
 &lt;br /&gt;
 account    required     pam_unix.so&lt;br /&gt;
 &lt;br /&gt;
 session    required     pam_limits.so&lt;br /&gt;
 session    required     pam_unix.so&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Now, simply replace &amp;quot;auth include system-auth&amp;quot; in all services that you wish to use fingerprint for with &amp;quot;auth include bioapi&amp;quot;. For example, {{path|/etc/pam.d/kde}} by default contains&lt;br /&gt;
&lt;br /&gt;
  auth       include      system-auth&lt;br /&gt;
  auth       required     pam_nologin.so&lt;br /&gt;
  &lt;br /&gt;
  account    include      system-auth&lt;br /&gt;
  &lt;br /&gt;
  password   include      system-auth&lt;br /&gt;
  &lt;br /&gt;
  session    include      system-auth&lt;br /&gt;
&lt;br /&gt;
Simply replace the first &amp;quot;system-auth&amp;quot; with bioapi and you can also get rid of KDE desktop lock with a fingerprint. If you do not wish to allow for &amp;quot;password fallback&amp;quot; then remove &lt;br /&gt;
&lt;br /&gt;
 auth       sufficient   pam_unix.so likeauth nullok&lt;br /&gt;
&lt;br /&gt;
from {{path|/etc/pam.d/bioapi}}.&lt;br /&gt;
&lt;br /&gt;
{{WARN|If su/sudo expects to receive the root password (SuSE 10), you need to have fingerprint settings for root (that is, copy in a root.bir as well as a your-username.bir).  Otherwise, they get a segmentation fault.  Which is a little unfortunate, given that you need to su or sudo to change your settings... }}&lt;br /&gt;
{{WARN|Not only SuSE 10 requires root.bir to be available for su to work. Just make sure you have root.bir when su is not working with your fingerprint reader but other applications are...}}&lt;br /&gt;
Note that sshd may pick up the fingerprint settings from {{path|/etc/pam.d/common-auth}}.  I didn't want that, so I removed the &amp;quot;auth include common-auth&amp;quot; line from {{path|/etc/pam.d/sshd}} and replaced it with the lines that were originally in my {{path|/etc/pam.d/common-auth}}.  That way most local services use the fingerprint reader, but sshd does not.&lt;br /&gt;
&lt;br /&gt;
Another way to do this is to create a file ({{path|/etc/pam.d/bioapi|}} for example) which contains the {{cmd|pam_bioapi.so|}} lines, and explicitly {{cmd|@include|}} this '''before''' {{path|/etc/pam.d/common-auth|}} in the files for services which should use the fingerprint reader.  In this case you should leave {{path|/etc/pam.d/common-auth|}} alone.&lt;br /&gt;
&lt;br /&gt;
{{NOTE|This was discovered through trial and success, if it is plain wrong, wikorrect it, please.}}&lt;br /&gt;
&lt;br /&gt;
In {{Fedora}} the original 'session' terms in {{path|/etc/pam.d/system-auth}} need to be kept.&lt;br /&gt;
&lt;br /&gt;
{{HINT|The setup described above will/could affect remote ssh logins to also use biometric logins, which is a bit silly (who wants to remote ssh to the laptop, and then have to walk over to it and swipe your finger)&amp;lt;br /&amp;gt;To avoid that you can copy the default &amp;lt;tt&amp;gt;/etc/pam.d/system-auth&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;/etc/pam.d/sshd&amp;lt;/tt&amp;gt; which will allow the sshd service to use the standard authentication procedure.}}&lt;br /&gt;
&lt;br /&gt;
You can do some useful testing with [http://pamtester.sourceforge.net/ {{cmd|pamtester|}}], which calls the pam modules as if it were a program of your choice.  Examples:&lt;br /&gt;
:{{cmdroot|pamtester xdm yourusername authenticate}}&lt;br /&gt;
:{{cmduser|pamtester xscreensaver yourusername authenticate}}&lt;br /&gt;
where {{cmd|yourusername|}} is your username.  Note that {{cmd|pamtester|}} should run as root if and only if the program in question does.&lt;br /&gt;
&lt;br /&gt;
===Application support===&lt;br /&gt;
The implementation of fingerprint scanning support in the relevant applications varies.&lt;br /&gt;
&lt;br /&gt;
Here is the behaviour of the most common ones:&lt;br /&gt;
* In gdm enter your username and there should pop up an (ugly) image to swipe your finger and... magic - you can login without a password.&lt;br /&gt;
* kdm doesn't give any visual indication, other than that the cursor stops blinking. Just swipe your finger and hope it lets you log in.&lt;br /&gt;
* In xdm, enter your username and a blank password, then swipe (there is no popup as well).&lt;br /&gt;
* The KDE screen saver in SUSE 10 requires you to enter an empty password (or select the correct user and then enter an empty password) in order to get the fingerprint prompt.&lt;br /&gt;
* For Fedora users, the redhat-config tools will crash if no root.bir presents. Also, there won't be any visual idication unless X server is properly configured for root to access. Just swipe your finger when the HDD stopped blinking or issue the following command in advance:&lt;br /&gt;
:{{cmduser|xhost +local:}}&lt;br /&gt;
* For RHEL4 users gdm, console (virtual terminal) logins and the xscreensaver all work&lt;br /&gt;
&lt;br /&gt;
===kdm support===&lt;br /&gt;
To add graphical popup to kdm, you need following:&lt;br /&gt;
* Patch for pam_bioapi. This patch adds third parameter to {{path|pam_bioapi.so}} module, which is a name of file with additional environment variables that will be supplied to the UPEK driver.&lt;br /&gt;
:{{cmdroot|wget http://upir.cz/linux/patches/pam_bioapi-0.2.1-alter-environ.patch}}&lt;br /&gt;
:{{cmdroot|patch -p1 &amp;lt; pam_bioapi-0.2.1-alter-environ.patch}}&lt;br /&gt;
* Edit your {{path|Xsetup}} file (on SUSE 10 it's {{path|/etc/X11/xdm/Xsetup}}) and add these lines:&lt;br /&gt;
 echo &amp;quot;XAUTHORITY=$XAUTHORITY&amp;quot; &amp;gt; /var/lib/xdm/kdm_env&lt;br /&gt;
 echo &amp;quot;DISPLAY=$DISPLAY&amp;quot; &amp;gt;&amp;gt; /var/lib/xdm/kdm_env&lt;br /&gt;
* In {{path|/etc/pam.d/xdm}} file, add {{path|/var/lib/xdm/kdm_env}} as a third parameter for {{path|pam_bioapi.so}} module:&lt;br /&gt;
 auth sufficient pam_bioapi.so {5550454b-2054-464d-2f45-535320425350} /etc/bioapi/pam/ /var/lib/xdm/kdm_env&lt;br /&gt;
&lt;br /&gt;
Please note, that this won't work if you have more than one Xserver.&lt;br /&gt;
&lt;br /&gt;
==Make xscreensaver use the scanner==&lt;br /&gt;
If you are using Gentoo, you can get a portage overlay with the necessary patches here: http://www.zzamboni.org/brt/files/xscreensaver-fingerprint-overlay.tar.gz&lt;br /&gt;
*Get the needed xscreensaver sources:&lt;br /&gt;
:{{cmduser|wget http://www.jwz.org/xscreensaver/xscreensaver-4.23.tar.gz}}&lt;br /&gt;
:{{cmduser|tar xzf xscreensaver-4.23.tar.gz}}&lt;br /&gt;
:{{cmduser|cd xscreensaver-4.23}}&lt;br /&gt;
:{{cmduser|wget http://nax.hn.org/pub/bioapi/xscreensaver-4.22_alternativeAuth.diff&amp;lt;br/&amp;gt;This site seems to be down, use this mirror: http://zepan.org/files/xscreensaver-4.22_alternativeAuth.diff&amp;lt;br/&amp;gt;For xscreensaver 5.00, you can get a patch here: http://www.zzamboni.org/brt/files/xscreensaver-5.00-alternativeauth.patch}}&lt;br /&gt;
*After reviewing the patch (it's small and straightforward), do&lt;br /&gt;
:{{cmduser|patch -p1 &amp;lt; xscreensaver-4.22_alternativeAuth.diff}}&amp;lt;br /&amp;gt;The patch prevents xscreensaver from opening an authentification window and dispatches the authentification request to another program, in our case &amp;lt;tt&amp;gt;pam&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;pam_bioapi&amp;lt;/tt&amp;gt;. It should apply with some offset, don't mind that. If it says something about rejected though, then there's a problem.&lt;br /&gt;
*Compile with&lt;br /&gt;
:{{cmduser|./configure --with-pam &amp;amp;&amp;amp; make}}&amp;lt;br /&amp;gt;&lt;br /&gt;
*If you receive an error like &amp;quot;Couldn't find X11 headers/libs&amp;quot; and are running a Debian-like system, try &amp;quot;apt-get install xlibs-dev&amp;quot;&lt;br /&gt;
*If you receive an error like &amp;quot;undefined reference to `XmuPrintDefaultErrorMessage'&amp;quot; then install the libxmu-dev package and run the previous line again and then install as root with&lt;br /&gt;
:{{cmduser|su -c make install}} .&lt;br /&gt;
*Make sure that the newly compiled xscreensaver is used:&lt;br /&gt;
:{{cmduser|which xscreensaver}} should return&lt;br /&gt;
:{{cmdresult|/usr/local/bin/xscreensaver}} .&lt;br /&gt;
*In case it doesn't, try adjusting your PATH.&lt;/div&gt;</summary>
		<author><name>Jensens</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_enable_integrated_fingerprint_reader_with_BioAPI&amp;diff=22941</id>
		<title>How to enable integrated fingerprint reader with BioAPI</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_enable_integrated_fingerprint_reader_with_BioAPI&amp;diff=22941"/>
		<updated>2006-06-27T14:08:44Z</updated>

		<summary type="html">&lt;p&gt;Jensens: /* Installing the driver */&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 describes the process of getting the [[Integrated Fingerprint Reader|integrated fingerprint reader]] to work under Linux. It is based on experiences in {{Ubuntu}} on a T43. The same works on {{Fedora}} 4 and 5, RHEL4, SuSE 9.3, SuSE 10, and {{Gentoo}}.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Basic installation==&lt;br /&gt;
===Installing the bioapi framework===&lt;br /&gt;
====Automated installation script====&lt;br /&gt;
The [[Script for enabling the fingerprint reader]] automates the installation of most components (bioapi framework, driver, pam_bioapi, pam setup, device permissions, pamtester and enrolling), for some Linux distributions.&lt;br /&gt;
&lt;br /&gt;
====Binary packages====&lt;br /&gt;
&lt;br /&gt;
Note that these packages only take care of this one section. If you can use one, you should do so and then proceed to the section entitled, Installing and Configuring the Driver.&lt;br /&gt;
&lt;br /&gt;
=====Debian=====&lt;br /&gt;
*If you're using {{Debian}} Sid (the unstable branch) you can try the packages from Michael R. Crusoe's site, either [http://www.qrivy.net/~michael/temp/ version 1.2.3] (recommended) or [http://www.qrivy.net/~michael/debs/unstable/ older versions] which might not work with the steps in this howto.&lt;br /&gt;
*This works for {{Ubuntu}} Breezy/Dapper too, so save yourself some trouble and grab it. Ignore the warning about not finding /usr/lib/libqtpwbsp.so, it's not fatal.&lt;br /&gt;
&lt;br /&gt;
=====Gentoo=====&lt;br /&gt;
You can either grab the [http://www.qrivy.net/~michael/blua/bioapi/bioapi-1.2.2.ebuild.tar.bz2 ebuild], or use the source-install procedure below.&lt;br /&gt;
&lt;br /&gt;
Also see [http://toe.ch/~tsa/ibm-fingerprint/ http://toe.ch/~tsa/ibm-fingerprint/] for alternative documentation on installing on Gentoo including ebuilds for all the packages used.&lt;br /&gt;
=====Fedora Core=====&lt;br /&gt;
RPM packages for Fedora Core and installation instructions are available [[Installing Fedora Core 5 on a ThinkPad X41 Tablet#Fingerprint_Reader|here]]&lt;br /&gt;
&lt;br /&gt;
====Installing from source====&lt;br /&gt;
*Get the bioapi source:&lt;br /&gt;
:{{cmduser|wget http://www.qrivy.net/~michael/blua/bioapi/bioapi-latest.tar.bz2}}&lt;br /&gt;
*I could not compile bioapi with the graphical Qt tools. To do it manually, do the following:&lt;br /&gt;
:{{cmduser|tar xjf bioapi-latest.tar.bz2}}&lt;br /&gt;
:{{cmduser|cd bioapi-1.2.2}}&lt;br /&gt;
:{{cmduser|1=./configure --with-Qt-dir=no}}&lt;br /&gt;
:{{cmduser|make}}&lt;br /&gt;
:and then as root&lt;br /&gt;
:{{cmdroot|make install}}&lt;br /&gt;
:If make install fails, be sure you're root and then:&lt;br /&gt;
:{{cmdroot|1=export LD_LIBRARY_PATH=/usr/local/lib}}&lt;br /&gt;
:{{cmdroot|make install}}&lt;br /&gt;
:and if you want to compile pam_bioapi for auth later&lt;br /&gt;
:{{cmdroot|cp include/bioapi_util.h include/installdefs.h imports/cdsa/v2_0/inc/cssmtype.h /usr/include}}&lt;br /&gt;
:Be aware that checkinstall will not work!&lt;br /&gt;
:(I got through configure with Qt, but got a cryptic build error.  It all worked fine with Qt disabled as above)&lt;br /&gt;
:buzz: This is due to a wrong qt include path, set it manually in configure and everything should work.&lt;br /&gt;
*Bioapi (at least version 1.2.2) doesn't compile with GCC4. You need to patch it:&lt;br /&gt;
*This is neccessary to compile on SUSE 10.1 which it using gcc version 4.1.0.&lt;br /&gt;
:{{cmduser|wget http://upir.cz/linux/patches/bioapi-1.2.2-gcc4.patch}}&lt;br /&gt;
:{{cmduser|patch -p1 &amp;lt; bioapi-1.2.2-gcc4.patch}}&lt;br /&gt;
*Patch for gcc 4.1 is available here - http://cvs.pld-linux.org/cgi-bin/cvsweb/SOURCES/bioapi-c++.patch&lt;br /&gt;
* By default, bioapi will install numerous files in {{path|/usr/local/&amp;lt;nowiki&amp;gt;{&amp;lt;/nowiki&amp;gt;bin,lib,include&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;}}, including files with &amp;quot;self-explanatory&amp;quot; names such as {{path|/usr/local/bin/Sample}}. To prevent this pollution:&lt;br /&gt;
:Create a dedicated directory, for example {{path|/opt/bioapi}} .&lt;br /&gt;
:Append &amp;lt;tt&amp;gt;--prefix=/opt/bioapi&amp;lt;/tt&amp;gt; to the above &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; command.&lt;br /&gt;
:Append {{path|/opt/bioapi/bin}} to &amp;lt;tt&amp;gt;$PATH&amp;lt;/tt&amp;gt; and {{path|/opt/bioapi/lib}} to &amp;lt;tt&amp;gt;$LD_LIBRARY_PATH&amp;lt;/tt&amp;gt;.&lt;br /&gt;
:When installing the driver (below), tell it the new install path: {{cmdroot|sh install.sh /opt/bioapi/lib}}&lt;br /&gt;
&lt;br /&gt;
====Adjusting ldconfigs library search path====&lt;br /&gt;
At least on {{Fedora}} or {{Aurox}} 11, you may need to add {{path|/usr/local/lib}} to the library path so that the libraries referenced from &amp;lt;tt&amp;gt;pam_bioapi.so&amp;lt;/tt&amp;gt; get picked up properly. The usual way to do this is adding it to the ldconfig configuration:&lt;br /&gt;
:{{cmdroot|echo '/usr/local/lib' &amp;gt; /etc/ld.so.conf.d/bioapi.conf}}&lt;br /&gt;
:{{cmdroot|ldconfig}}&lt;br /&gt;
Alternatively you can add it to the LD_LIBRARY variable.&lt;br /&gt;
&lt;br /&gt;
If you see bioapi libs in the output of &lt;br /&gt;
:{{cmdroot|ldconfig -p | grep bioapi}}&lt;br /&gt;
then it should work.&lt;br /&gt;
&lt;br /&gt;
===Installing and configuring the driver===&lt;br /&gt;
====Installing the driver====&lt;br /&gt;
*Download {{path|TFMESS_BSP_LIN_1.0.zip}} from the [http://www.upek.com/support/dl_linux_bsp.asp UPEK support site] and unzip it into a seperate folder, as it will not create one.&lt;br /&gt;
*Change to that folder and do as root:&lt;br /&gt;
:{{cmdroot|sh install.sh}}&lt;br /&gt;
:If you're running Gentoo or Ubuntu Dapper, use&lt;br /&gt;
:{{cmdroot|sh install.sh /usr/lib}}&lt;br /&gt;
:If that fails, it may be that make install failed up above -- try setting LD_LIBRARY_PATH, do the make install again, and come back here and try this again.  You also need {{cmd|mod_install|}} from bioapi in your PATH.&lt;br /&gt;
:May there still occures and error, which means mod_install: command not found.&lt;br /&gt;
:Then login as root - not su!&lt;br /&gt;
:Do this:&lt;br /&gt;
:{{cmdroot|sh install.sh}}&lt;br /&gt;
:again. It should work. SU to root does not work since then the /usr/local/bin directory is not used per default.&lt;br /&gt;
&lt;br /&gt;
====Configuring permissions for non-root use====&lt;br /&gt;
If you want to use PAM-aware applications like xscreensaver that are NOT running with root permissions (as opposed to login, gdm or other authentication mechanisms), you may need to do all or at least some of the things in this section.  More details on what is necessary on which distributions would be greately appreciated.&lt;br /&gt;
*Create two groups, one for access to BioAPI files and the other for access to the usb files.  (This is done for full generality; i.e., you may have other USB devices which you want accessable to other users, without exposing your BioAPI configuration to them).  Add your normal user (the one you wish to use PAM-aware applications with) to both of these groups.&lt;br /&gt;
On {{Debian}} this is done with&lt;br /&gt;
:{{cmdroot|addgroup --system bioapi}}&lt;br /&gt;
:{{cmdroot|addgroup --system usbfs}}&lt;br /&gt;
:{{cmdroot|adduser yournormaluser bioapi}}&lt;br /&gt;
:{{cmdroot|adduser yournormaluser usbfs}}&lt;br /&gt;
On {{SUSE}} this is done with&lt;br /&gt;
:{{cmdroot|groupadd --system bioapi}}&lt;br /&gt;
:{{cmdroot|groupadd --system usbfs}}&lt;br /&gt;
:{{cmdroot|groupmod -A yournormaluser bioapi}}&lt;br /&gt;
:{{cmdroot|groupmod -A yournormaluser usbfs}}&lt;br /&gt;
On {{Mandriva}} this is done with&lt;br /&gt;
:{{cmdroot|groupadd -r bioapi}}&lt;br /&gt;
:{{cmdroot|groupadd -r usbfs}}&lt;br /&gt;
:{{cmdroot|usermod -G bioapi,usbfs yournormaluser}}&lt;br /&gt;
&lt;br /&gt;
:(where {{cmd|yournormaluser|}} is your normal user name).  You will need to log out and log back in for this to take effect.&lt;br /&gt;
*Set permissions on the BioAPI config/registry directory:&lt;br /&gt;
:{{cmdroot|chown -R root:bioapi /usr/local/var/bioapi/}}&lt;br /&gt;
:{{cmdroot|chmod -R 770 /usr/local/var/bioapi/}}&lt;br /&gt;
:(change this path if you used an alternate BioAPI install directory above)&lt;br /&gt;
*Set permissions on the files in {{path|/proc/bus/usb}}:&lt;br /&gt;
:{{cmdroot|chown -R root:usbfs /proc/bus/usb}}&lt;br /&gt;
:{{cmdroot|chmod -R g+X /proc/bus/usb}}&lt;br /&gt;
:{{cmdroot|chown root:usbfs /proc/bus/usb/`lsusb &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; sed -ne &amp;quot;/0483:2016/s/Bus\ \(.*\)\ Device\ \(.*\):\ .*/\1\/\2/p&amp;quot;`}}&lt;br /&gt;
:{{cmdroot|chmod 660 /proc/bus/usb/`lsusb &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; sed -ne &amp;quot;/0483:2016/s/Bus\ \(.*\)\ Device\ \(.*\):\ .*/\1\/\2/p&amp;quot;`}}&lt;br /&gt;
:You may need to replace {{cmd|lsusb|}} with its full path, which is something like {{cmd|/sbin/lsusb|}} or {{cmd|/usr/bin/lsusb|}} depending on your distro.  It might be necessary to put these lines into a script which is run at startup and resume from suspend/hibernate.&lt;br /&gt;
*As an alternative to the {{cmd|chown|}}/{{cmd|chmod|}} commands above, you can set mount options for usbfs with a line in {{path|/etc/fstab|}}; an example would be&lt;br /&gt;
 none /proc/bus/usb usbfs defaults,devgid=108,devmode=0660,busgid=108,busmode=0770,listgid=108,listmode=0660 0 0&lt;br /&gt;
:where 108 is replaced with the numerical group ID of the usbfs group (you can determine this with something like {{cmd|cat /etc/group &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; grep usbfs &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; cut -d':' -f 3|}}).  Make sure you only have one {{path|/proc/bus/usb}} entry in {{path|/etc/fstab}}.  See the {{cmd|mount(8)|}} manpage for more information on these options.  This is &amp;quot;cleaner&amp;quot; but seems to have a few weird issues -- see the talk page for details.&lt;br /&gt;
*You may also have files in {{path|/dev/bus/usb}}, which the driver will try before {{path|/proc/bus/usb}}.  If this is another usbfs mount point ({{cmd|mount|}} shows a line containing {{cmdresult|/dev/bus/usb type usbfs}}), then simply follow the above instructions with {{path|/dev/bus/usb}} rather than {{path|/proc/bus/usb}}.  Otherwise, you may be running a new kernel (i.e. 2.6.15) that makes usbfs-like files available through {{path|/dev/bus/usb}}.  On systems running udev these files are dynamically created; you can configure their permissions by editing a udev config file.  On Debian this is done by changing the &amp;lt;tt&amp;gt;usb_device&amp;lt;/tt&amp;gt; line of {{path|/etc/udev/permissions.rules}} to read&lt;br /&gt;
 SUBSYSTEM==&amp;quot;usb_device&amp;quot;, MODE=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;usbfs&amp;quot;&lt;br /&gt;
*For the beta versions only, there is a logfile, which needs to exist with the proper permissions:&lt;br /&gt;
:{{cmdroot|touch /var/log/BSP.log &amp;amp;&amp;amp; chown root:bioapi /var/log/BSP.log &amp;amp;&amp;amp; chmod 660 /var/log/BSP.log}}&lt;br /&gt;
&lt;br /&gt;
====Miscellaneous configuration====&lt;br /&gt;
* To increase the security level (minimize false accept rate), set this in {{path|/etc/tfmessbsp.cfg}}:&lt;br /&gt;
 security-level=&amp;quot;5&amp;quot;&lt;br /&gt;
{{WARN|Please see discussion section Security Level!}}&lt;br /&gt;
&lt;br /&gt;
===Testing the driver and enrolling a fingerprint===&lt;br /&gt;
To test the driver and generate the file containing your fingerprint information, you need a sample program included with the driver.  The compilation steps below were discovered by trial and error; if they don't work for you, try the binary {{cmd|Sample|}} utility that came with the beta versions of the driver (i.e., {{path|TFMESS_BSP_LIN_1.0beta2.zip}} as mentioned above).&lt;br /&gt;
Go to the folder where you extracted {{path|TFMESS_BSP_LIN_1.0.zip}} and do:&lt;br /&gt;
:{{cmdroot|cd NonGUI_Sample}}&lt;br /&gt;
:Edit {{path|main.c|}} and remove (or comment out) the line&lt;br /&gt;
 #include &amp;quot;port/bioapi_port.h&amp;quot;&lt;br /&gt;
:{{cmdroot|gcc -o Sample main.c -L/usr/local/lib -lbioapi100 -DUNIX -DLITTLE_ENDIAN}}&lt;br /&gt;
:{{cmdroot|./Sample}}&lt;br /&gt;
:Note that Sample may only run as root, unless you've already configured the usbfs file permissions.&lt;br /&gt;
:You can try to &amp;quot;e&amp;quot;nroll (to record a fingerprint for an account) and then &amp;quot;v&amp;quot;erify (to test a fingerprint against the one it expects for an account).&lt;br /&gt;
:You'll save a step later if you use your own login username as the username to enroll here.&lt;br /&gt;
&lt;br /&gt;
==Login via pam_bioapi==&lt;br /&gt;
&lt;br /&gt;
The following explains how to add fingerprint authentiation to programs that use the PAM (Pluggable Authentication Modules) framework, such as  Gnome's GDM and KDE's KDM and screensaver.&lt;br /&gt;
&lt;br /&gt;
===Getting required libs &amp;amp; tools===&lt;br /&gt;
====Installing pam_bioapi====&lt;br /&gt;
*Prerequisites&lt;br /&gt;
:On SuSE 10, I needed to install the pam-devel RPM&lt;br /&gt;
:In general, you will need pam itself (standard for most distros) as well as the pam development files (probably an optional package for your distro).&lt;br /&gt;
*Get and compile the pam_bioapi module.&lt;br /&gt;
:{{cmduser|wget http://www.qrivy.net/~michael/blua/pam_bioapi/pam_bioapi-latest.tar.bz2}}&lt;br /&gt;
:{{cmduser|tar xjf pam_bioapi-latest.tar.bz2}}&lt;br /&gt;
:{{cmduser|cd pam_bioapi-0.2.1}}&lt;br /&gt;
:{{cmduser|wget http://badcode.de/downloads/fingerprint.patch}}&lt;br /&gt;
:{{cmduser|patch -p0 &amp;lt; fingerprint.patch}}&lt;br /&gt;
:If you want to, review the patch. In general you should review all code you download and compile, if possible. The patch comes from [http://linuxbiometrics.com/modules/newbb/viewtopic.php?viewmode=flat&amp;amp;topic_id=80&amp;amp;forum=1 this thread].&lt;br /&gt;
:{{cmduser|./configure &amp;amp;&amp;amp; make}}&lt;br /&gt;
:and as root&lt;br /&gt;
:{{cmdroot| make install}}&lt;br /&gt;
:{{cmdroot| cp /usr/local/lib/security/* /lib/security/}}&lt;br /&gt;
{{NOTE|If you get a 'rpl_malloc' error in /var/log/auth.log when trying to use the fingerprint reader, redo these steps and remove the related term from Makefile after running ./configure. (FC3, Debian etch)}}&lt;br /&gt;
*If you get 'configure: error: cannot find required header: security/_pam_macros.h' and are on a Debian-like system, do &amp;quot;apt-get install libpam0g-dev&amp;quot; and try again. If you are using a Mandriva distribution, do &amp;quot;urpmi libpam0-devel&amp;quot; instead.&lt;br /&gt;
*If you get 'PAM [dlerror: /lib/security/pam_bioapi.so: undefined symbol: BioAPIMemoryFuncs]' error in your syslog, replace 'LIBS = ' line in {{path|libpam_bioapi/makefile}} with the following (of course, replace {{path|/opt/bioapi/}} with the path where you installed bioapi):&lt;br /&gt;
 LIBS = -L/opt/bioapi/lib -lbioapi100 -lbioapi_mds300 -lmds_util&lt;br /&gt;
*Use the sample tool from the fingerprint reader to create {{path|&amp;lt;username&amp;gt;.bir}} (&amp;lt;tt&amp;gt;&amp;lt;username&amp;gt;&amp;lt;/tt&amp;gt; '''must''' be the username you want to login with. gdm will probably break for any login name that has no .bir file).&lt;br /&gt;
*As root do:&lt;br /&gt;
:{{cmdroot|SERIAL&amp;lt;nowiki&amp;gt;=`BioAPITest | sed -ne &amp;quot;/Fingerprint/{n;n;s/^.*: \(.\{9\}\)\(.\{4\}\)\(.\{4\}\)\(.\{4\}\)\(.*\)/\1-\2-\3-\4-\5/gp}&amp;quot;` &amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
:{{cmdroot|echo $SERIAL}} should print something like {{cmdresult|&amp;lt;nowiki&amp;gt;{5550454b-2054-464d-2f45-535320425350}&amp;lt;/nowiki&amp;gt;}} now.&lt;br /&gt;
:If it does, do:&lt;br /&gt;
:{{cmdroot|mkdir -p /etc/bioapi/pam/$SERIAL}}&lt;br /&gt;
:{{cmdroot|cp &amp;lt;username&amp;gt;.bir /etc/bioapi/pam/$SERIAL}}&lt;br /&gt;
:If not, you might just try&lt;br /&gt;
:{{cmdroot|SERIAL&amp;lt;nowiki&amp;gt;={5550454b-2054-464d-2f45-535320425350}&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
:as this value is hardcoded into the UPEK docs.&lt;br /&gt;
&lt;br /&gt;
===Configuring pam===&lt;br /&gt;
The following part is distribution specific. On {{Ubuntu}} or {{SUSE}} you can modify {{path|/etc/pam.d/common-auth}} (on {{Gentoo}} and {{Fedora}} it is {{path|/etc/pam.d/system-auth}}) to look like this:&lt;br /&gt;
&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_bioapi.so {5550454b-2054-464d-2f45-535320425350} /etc/bioapi/pam/&lt;br /&gt;
 password   sufficient   pam_bioapi.so {5550454b-2054-464d-2f45-535320425350} /etc/bioapi/pam/&lt;br /&gt;
 auth       required     pam_unix.so nullok_secure&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
For '''Gentoo'''-Users - this allows you to attempt a password first. If you simply press enter, it then prompts for a fingerprints. Create a file named {{path|/etc/pam.d/bioapi}}. This also means that remote services, such as SSH keep working:&lt;br /&gt;
&lt;br /&gt;
 auth       required     pam_env.so&lt;br /&gt;
 auth       sufficient   pam_unix.so likeauth nullok&lt;br /&gt;
 auth       sufficient   pam_bioapi.so {5550454b-2054-464d-2f45-535320425350} /etc/bioapi/pam/&lt;br /&gt;
 auth       required     pam_deny.so&lt;br /&gt;
 &lt;br /&gt;
 account    required     pam_unix.so&lt;br /&gt;
 &lt;br /&gt;
 session    required     pam_limits.so&lt;br /&gt;
 session    required     pam_unix.so&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Now, simply replace &amp;quot;auth include system-auth&amp;quot; in all services that you wish to use fingerprint for with &amp;quot;auth include bioapi&amp;quot;. For example, {{path|/etc/pam.d/kde}} by default contains&lt;br /&gt;
&lt;br /&gt;
  auth       include      system-auth&lt;br /&gt;
  auth       required     pam_nologin.so&lt;br /&gt;
  &lt;br /&gt;
  account    include      system-auth&lt;br /&gt;
  &lt;br /&gt;
  password   include      system-auth&lt;br /&gt;
  &lt;br /&gt;
  session    include      system-auth&lt;br /&gt;
&lt;br /&gt;
Simply replace the first &amp;quot;system-auth&amp;quot; with bioapi and you can also get rid of KDE desktop lock with a fingerprint. If you do not wish to allow for &amp;quot;password fallback&amp;quot; then remove &lt;br /&gt;
&lt;br /&gt;
 auth       sufficient   pam_unix.so likeauth nullok&lt;br /&gt;
&lt;br /&gt;
from {{path|/etc/pam.d/bioapi}}.&lt;br /&gt;
&lt;br /&gt;
{{WARN|If su/sudo expects to receive the root password (SuSE 10), you need to have fingerprint settings for root (that is, copy in a root.bir as well as a your-username.bir).  Otherwise, they get a segmentation fault.  Which is a little unfortunate, given that you need to su or sudo to change your settings... }}&lt;br /&gt;
{{WARN|Not only SuSE 10 requires root.bir to be available for su to work. Just make sure you have root.bir when su is not working with your fingerprint reader but other applications are...}}&lt;br /&gt;
Note that sshd may pick up the fingerprint settings from {{path|/etc/pam.d/common-auth}}.  I didn't want that, so I removed the &amp;quot;auth include common-auth&amp;quot; line from {{path|/etc/pam.d/sshd}} and replaced it with the lines that were originally in my {{path|/etc/pam.d/common-auth}}.  That way most local services use the fingerprint reader, but sshd does not.&lt;br /&gt;
&lt;br /&gt;
Another way to do this is to create a file ({{path|/etc/pam.d/bioapi|}} for example) which contains the {{cmd|pam_bioapi.so|}} lines, and explicitly {{cmd|@include|}} this '''before''' {{path|/etc/pam.d/common-auth|}} in the files for services which should use the fingerprint reader.  In this case you should leave {{path|/etc/pam.d/common-auth|}} alone.&lt;br /&gt;
&lt;br /&gt;
{{NOTE|This was discovered through trial and success, if it is plain wrong, wikorrect it, please.}}&lt;br /&gt;
&lt;br /&gt;
In {{Fedora}} the original 'session' terms in {{path|/etc/pam.d/system-auth}} need to be kept.&lt;br /&gt;
&lt;br /&gt;
{{HINT|The setup described above will/could affect remote ssh logins to also use biometric logins, which is a bit silly (who wants to remote ssh to the laptop, and then have to walk over to it and swipe your finger)&amp;lt;br /&amp;gt;To avoid that you can copy the default &amp;lt;tt&amp;gt;/etc/pam.d/system-auth&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;/etc/pam.d/sshd&amp;lt;/tt&amp;gt; which will allow the sshd service to use the standard authentication procedure.}}&lt;br /&gt;
&lt;br /&gt;
You can do some useful testing with [http://pamtester.sourceforge.net/ {{cmd|pamtester|}}], which calls the pam modules as if it were a program of your choice.  Examples:&lt;br /&gt;
:{{cmdroot|pamtester xdm yourusername authenticate}}&lt;br /&gt;
:{{cmduser|pamtester xscreensaver yourusername authenticate}}&lt;br /&gt;
where {{cmd|yourusername|}} is your username.  Note that {{cmd|pamtester|}} should run as root if and only if the program in question does.&lt;br /&gt;
&lt;br /&gt;
===Application support===&lt;br /&gt;
The implementation of fingerprint scanning support in the relevant applications varies.&lt;br /&gt;
&lt;br /&gt;
Here is the behaviour of the most common ones:&lt;br /&gt;
* In gdm enter your username and there should pop up an (ugly) image to swipe your finger and... magic - you can login without a password.&lt;br /&gt;
* kdm doesn't give any visual indication, other than that the cursor stops blinking. Just swipe your finger and hope it lets you log in.&lt;br /&gt;
* In xdm, enter your username and a blank password, then swipe (there is no popup as well).&lt;br /&gt;
* The KDE screen saver in SUSE 10 requires you to enter an empty password (or select the correct user and then enter an empty password) in order to get the fingerprint prompt.&lt;br /&gt;
* For Fedora users, the redhat-config tools will crash if no root.bir presents. Also, there won't be any visual idication unless X server is properly configured for root to access. Just swipe your finger when the HDD stopped blinking or issue the following command in advance:&lt;br /&gt;
:{{cmduser|xhost +local:}}&lt;br /&gt;
* For RHEL4 users gdm, console (virtual terminal) logins and the xscreensaver all work&lt;br /&gt;
&lt;br /&gt;
===kdm support===&lt;br /&gt;
To add graphical popup to kdm, you need following:&lt;br /&gt;
* Patch for pam_bioapi. This patch adds third parameter to {{path|pam_bioapi.so}} module, which is a name of file with additional environment variables that will be supplied to the UPEK driver.&lt;br /&gt;
:{{cmdroot|wget http://upir.cz/linux/patches/pam_bioapi-0.2.1-alter-environ.patch}}&lt;br /&gt;
:{{cmdroot|patch -p1 &amp;lt; pam_bioapi-0.2.1-alter-environ.patch}}&lt;br /&gt;
* Edit your {{path|Xsetup}} file (on SUSE 10 it's {{path|/etc/X11/xdm/Xsetup}}) and add these lines:&lt;br /&gt;
 echo &amp;quot;XAUTHORITY=$XAUTHORITY&amp;quot; &amp;gt; /var/lib/xdm/kdm_env&lt;br /&gt;
 echo &amp;quot;DISPLAY=$DISPLAY&amp;quot; &amp;gt;&amp;gt; /var/lib/xdm/kdm_env&lt;br /&gt;
* In {{path|/etc/pam.d/xdm}} file, add {{path|/var/lib/xdm/kdm_env}} as a third parameter for {{path|pam_bioapi.so}} module:&lt;br /&gt;
 auth sufficient pam_bioapi.so {5550454b-2054-464d-2f45-535320425350} /etc/bioapi/pam/ /var/lib/xdm/kdm_env&lt;br /&gt;
&lt;br /&gt;
Please note, that this won't work if you have more than one Xserver.&lt;br /&gt;
&lt;br /&gt;
==Make xscreensaver use the scanner==&lt;br /&gt;
If you are using Gentoo, you can get a portage overlay with the necessary patches here: http://www.zzamboni.org/brt/files/xscreensaver-fingerprint-overlay.tar.gz&lt;br /&gt;
*Get the needed xscreensaver sources:&lt;br /&gt;
:{{cmduser|wget http://www.jwz.org/xscreensaver/xscreensaver-4.23.tar.gz}}&lt;br /&gt;
:{{cmduser|tar xzf xscreensaver-4.23.tar.gz}}&lt;br /&gt;
:{{cmduser|cd xscreensaver-4.23}}&lt;br /&gt;
:{{cmduser|wget http://nax.hn.org/pub/bioapi/xscreensaver-4.22_alternativeAuth.diff&amp;lt;br/&amp;gt;This site seems to be down, use this mirror: http://zepan.org/files/xscreensaver-4.22_alternativeAuth.diff&amp;lt;br/&amp;gt;For xscreensaver 5.00, you can get a patch here: http://www.zzamboni.org/brt/files/xscreensaver-5.00-alternativeauth.patch}}&lt;br /&gt;
*After reviewing the patch (it's small and straightforward), do&lt;br /&gt;
:{{cmduser|patch -p1 &amp;lt; xscreensaver-4.22_alternativeAuth.diff}}&amp;lt;br /&amp;gt;The patch prevents xscreensaver from opening an authentification window and dispatches the authentification request to another program, in our case &amp;lt;tt&amp;gt;pam&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;pam_bioapi&amp;lt;/tt&amp;gt;. It should apply with some offset, don't mind that. If it says something about rejected though, then there's a problem.&lt;br /&gt;
*Compile with&lt;br /&gt;
:{{cmduser|./configure --with-pam &amp;amp;&amp;amp; make}}&amp;lt;br /&amp;gt;&lt;br /&gt;
*If you receive an error like &amp;quot;Couldn't find X11 headers/libs&amp;quot; and are running a Debian-like system, try &amp;quot;apt-get install xlibs-dev&amp;quot;&lt;br /&gt;
*If you receive an error like &amp;quot;undefined reference to `XmuPrintDefaultErrorMessage'&amp;quot; then install the libxmu-dev package and run the previous line again and then install as root with&lt;br /&gt;
:{{cmduser|su -c make install}} .&lt;br /&gt;
*Make sure that the newly compiled xscreensaver is used:&lt;br /&gt;
:{{cmduser|which xscreensaver}} should return&lt;br /&gt;
:{{cmdresult|/usr/local/bin/xscreensaver}} .&lt;br /&gt;
*In case it doesn't, try adjusting your PATH.&lt;/div&gt;</summary>
		<author><name>Jensens</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_enable_integrated_fingerprint_reader_with_BioAPI&amp;diff=22939</id>
		<title>How to enable integrated fingerprint reader with BioAPI</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_enable_integrated_fingerprint_reader_with_BioAPI&amp;diff=22939"/>
		<updated>2006-06-27T13:45:58Z</updated>

		<summary type="html">&lt;p&gt;Jensens: /* Debian */&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 describes the process of getting the [[Integrated Fingerprint Reader|integrated fingerprint reader]] to work under Linux. It is based on experiences in {{Ubuntu}} on a T43. The same works on {{Fedora}} 4 and 5, RHEL4, SuSE 9.3, SuSE 10, and {{Gentoo}}.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Basic installation==&lt;br /&gt;
===Installing the bioapi framework===&lt;br /&gt;
====Automated installation script====&lt;br /&gt;
The [[Script for enabling the fingerprint reader]] automates the installation of most components (bioapi framework, driver, pam_bioapi, pam setup, device permissions, pamtester and enrolling), for some Linux distributions.&lt;br /&gt;
&lt;br /&gt;
====Binary packages====&lt;br /&gt;
&lt;br /&gt;
Note that these packages only take care of this one section. If you can use one, you should do so and then proceed to the section entitled, Installing and Configuring the Driver.&lt;br /&gt;
&lt;br /&gt;
=====Debian=====&lt;br /&gt;
*If you're using {{Debian}} Sid (the unstable branch) you can try the packages from Michael R. Crusoe's site, either [http://www.qrivy.net/~michael/temp/ version 1.2.3] (recommended) or [http://www.qrivy.net/~michael/debs/unstable/ older versions] which might not work with the steps in this howto.&lt;br /&gt;
*This works for {{Ubuntu}} Breezy/Dapper too, so save yourself some trouble and grab it. Ignore the warning about not finding /usr/lib/libqtpwbsp.so, it's not fatal.&lt;br /&gt;
&lt;br /&gt;
=====Gentoo=====&lt;br /&gt;
You can either grab the [http://www.qrivy.net/~michael/blua/bioapi/bioapi-1.2.2.ebuild.tar.bz2 ebuild], or use the source-install procedure below.&lt;br /&gt;
&lt;br /&gt;
Also see [http://toe.ch/~tsa/ibm-fingerprint/ http://toe.ch/~tsa/ibm-fingerprint/] for alternative documentation on installing on Gentoo including ebuilds for all the packages used.&lt;br /&gt;
=====Fedora Core=====&lt;br /&gt;
RPM packages for Fedora Core and installation instructions are available [[Installing Fedora Core 5 on a ThinkPad X41 Tablet#Fingerprint_Reader|here]]&lt;br /&gt;
&lt;br /&gt;
====Installing from source====&lt;br /&gt;
*Get the bioapi source:&lt;br /&gt;
:{{cmduser|wget http://www.qrivy.net/~michael/blua/bioapi/bioapi-latest.tar.bz2}}&lt;br /&gt;
*I could not compile bioapi with the graphical Qt tools. To do it manually, do the following:&lt;br /&gt;
:{{cmduser|tar xjf bioapi-latest.tar.bz2}}&lt;br /&gt;
:{{cmduser|cd bioapi-1.2.2}}&lt;br /&gt;
:{{cmduser|1=./configure --with-Qt-dir=no}}&lt;br /&gt;
:{{cmduser|make}}&lt;br /&gt;
:and then as root&lt;br /&gt;
:{{cmdroot|make install}}&lt;br /&gt;
:If make install fails, be sure you're root and then:&lt;br /&gt;
:{{cmdroot|1=export LD_LIBRARY_PATH=/usr/local/lib}}&lt;br /&gt;
:{{cmdroot|make install}}&lt;br /&gt;
:and if you want to compile pam_bioapi for auth later&lt;br /&gt;
:{{cmdroot|cp include/bioapi_util.h include/installdefs.h imports/cdsa/v2_0/inc/cssmtype.h /usr/include}}&lt;br /&gt;
:Be aware that checkinstall will not work!&lt;br /&gt;
:(I got through configure with Qt, but got a cryptic build error.  It all worked fine with Qt disabled as above)&lt;br /&gt;
:buzz: This is due to a wrong qt include path, set it manually in configure and everything should work.&lt;br /&gt;
*Bioapi (at least version 1.2.2) doesn't compile with GCC4. You need to patch it:&lt;br /&gt;
*This is neccessary to compile on SUSE 10.1 which it using gcc version 4.1.0.&lt;br /&gt;
:{{cmduser|wget http://upir.cz/linux/patches/bioapi-1.2.2-gcc4.patch}}&lt;br /&gt;
:{{cmduser|patch -p1 &amp;lt; bioapi-1.2.2-gcc4.patch}}&lt;br /&gt;
*Patch for gcc 4.1 is available here - http://cvs.pld-linux.org/cgi-bin/cvsweb/SOURCES/bioapi-c++.patch&lt;br /&gt;
* By default, bioapi will install numerous files in {{path|/usr/local/&amp;lt;nowiki&amp;gt;{&amp;lt;/nowiki&amp;gt;bin,lib,include&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;}}, including files with &amp;quot;self-explanatory&amp;quot; names such as {{path|/usr/local/bin/Sample}}. To prevent this pollution:&lt;br /&gt;
:Create a dedicated directory, for example {{path|/opt/bioapi}} .&lt;br /&gt;
:Append &amp;lt;tt&amp;gt;--prefix=/opt/bioapi&amp;lt;/tt&amp;gt; to the above &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; command.&lt;br /&gt;
:Append {{path|/opt/bioapi/bin}} to &amp;lt;tt&amp;gt;$PATH&amp;lt;/tt&amp;gt; and {{path|/opt/bioapi/lib}} to &amp;lt;tt&amp;gt;$LD_LIBRARY_PATH&amp;lt;/tt&amp;gt;.&lt;br /&gt;
:When installing the driver (below), tell it the new install path: {{cmdroot|sh install.sh /opt/bioapi/lib}}&lt;br /&gt;
&lt;br /&gt;
====Adjusting ldconfigs library search path====&lt;br /&gt;
At least on {{Fedora}} or {{Aurox}} 11, you may need to add {{path|/usr/local/lib}} to the library path so that the libraries referenced from &amp;lt;tt&amp;gt;pam_bioapi.so&amp;lt;/tt&amp;gt; get picked up properly. The usual way to do this is adding it to the ldconfig configuration:&lt;br /&gt;
:{{cmdroot|echo '/usr/local/lib' &amp;gt; /etc/ld.so.conf.d/bioapi.conf}}&lt;br /&gt;
:{{cmdroot|ldconfig}}&lt;br /&gt;
Alternatively you can add it to the LD_LIBRARY variable.&lt;br /&gt;
&lt;br /&gt;
If you see bioapi libs in the output of &lt;br /&gt;
:{{cmdroot|ldconfig -p | grep bioapi}}&lt;br /&gt;
then it should work.&lt;br /&gt;
&lt;br /&gt;
===Installing and configuring the driver===&lt;br /&gt;
====Installing the driver====&lt;br /&gt;
*Download {{path|TFMESS_BSP_LIN_1.0.zip}} from the [http://www.upek.com/support/dl_linux_bsp.asp UPEK support site] and unzip it into a seperate folder, as it will not create one.&lt;br /&gt;
*Change to that folder and do as root:&lt;br /&gt;
:{{cmdroot|sh install.sh}}&lt;br /&gt;
:If you're running Gentoo, use&lt;br /&gt;
:{{cmdroot|sh install.sh /usr/lib}}&lt;br /&gt;
:If that fails, it may be that make install failed up above -- try setting LD_LIBRARY_PATH, do the make install again, and come back here and try this again.  You also need {{cmd|mod_install|}} from bioapi in your PATH.&lt;br /&gt;
:May there still occures and error, which means mod_install: command not found.&lt;br /&gt;
:Then login as root - not su!&lt;br /&gt;
:Do this:&lt;br /&gt;
:{{cmdroot|sh install.sh}}&lt;br /&gt;
:again. It should work. SU to root does not work since then the /usr/local/bin directory is not used per default.&lt;br /&gt;
&lt;br /&gt;
====Configuring permissions for non-root use====&lt;br /&gt;
If you want to use PAM-aware applications like xscreensaver that are NOT running with root permissions (as opposed to login, gdm or other authentication mechanisms), you may need to do all or at least some of the things in this section.  More details on what is necessary on which distributions would be greately appreciated.&lt;br /&gt;
*Create two groups, one for access to BioAPI files and the other for access to the usb files.  (This is done for full generality; i.e., you may have other USB devices which you want accessable to other users, without exposing your BioAPI configuration to them).  Add your normal user (the one you wish to use PAM-aware applications with) to both of these groups.&lt;br /&gt;
On {{Debian}} this is done with&lt;br /&gt;
:{{cmdroot|addgroup --system bioapi}}&lt;br /&gt;
:{{cmdroot|addgroup --system usbfs}}&lt;br /&gt;
:{{cmdroot|adduser yournormaluser bioapi}}&lt;br /&gt;
:{{cmdroot|adduser yournormaluser usbfs}}&lt;br /&gt;
On {{SUSE}} this is done with&lt;br /&gt;
:{{cmdroot|groupadd --system bioapi}}&lt;br /&gt;
:{{cmdroot|groupadd --system usbfs}}&lt;br /&gt;
:{{cmdroot|groupmod -A yournormaluser bioapi}}&lt;br /&gt;
:{{cmdroot|groupmod -A yournormaluser usbfs}}&lt;br /&gt;
On {{Mandriva}} this is done with&lt;br /&gt;
:{{cmdroot|groupadd -r bioapi}}&lt;br /&gt;
:{{cmdroot|groupadd -r usbfs}}&lt;br /&gt;
:{{cmdroot|usermod -G bioapi,usbfs yournormaluser}}&lt;br /&gt;
&lt;br /&gt;
:(where {{cmd|yournormaluser|}} is your normal user name).  You will need to log out and log back in for this to take effect.&lt;br /&gt;
*Set permissions on the BioAPI config/registry directory:&lt;br /&gt;
:{{cmdroot|chown -R root:bioapi /usr/local/var/bioapi/}}&lt;br /&gt;
:{{cmdroot|chmod -R 770 /usr/local/var/bioapi/}}&lt;br /&gt;
:(change this path if you used an alternate BioAPI install directory above)&lt;br /&gt;
*Set permissions on the files in {{path|/proc/bus/usb}}:&lt;br /&gt;
:{{cmdroot|chown -R root:usbfs /proc/bus/usb}}&lt;br /&gt;
:{{cmdroot|chmod -R g+X /proc/bus/usb}}&lt;br /&gt;
:{{cmdroot|chown root:usbfs /proc/bus/usb/`lsusb &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; sed -ne &amp;quot;/0483:2016/s/Bus\ \(.*\)\ Device\ \(.*\):\ .*/\1\/\2/p&amp;quot;`}}&lt;br /&gt;
:{{cmdroot|chmod 660 /proc/bus/usb/`lsusb &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; sed -ne &amp;quot;/0483:2016/s/Bus\ \(.*\)\ Device\ \(.*\):\ .*/\1\/\2/p&amp;quot;`}}&lt;br /&gt;
:You may need to replace {{cmd|lsusb|}} with its full path, which is something like {{cmd|/sbin/lsusb|}} or {{cmd|/usr/bin/lsusb|}} depending on your distro.  It might be necessary to put these lines into a script which is run at startup and resume from suspend/hibernate.&lt;br /&gt;
*As an alternative to the {{cmd|chown|}}/{{cmd|chmod|}} commands above, you can set mount options for usbfs with a line in {{path|/etc/fstab|}}; an example would be&lt;br /&gt;
 none /proc/bus/usb usbfs defaults,devgid=108,devmode=0660,busgid=108,busmode=0770,listgid=108,listmode=0660 0 0&lt;br /&gt;
:where 108 is replaced with the numerical group ID of the usbfs group (you can determine this with something like {{cmd|cat /etc/group &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; grep usbfs &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; cut -d':' -f 3|}}).  Make sure you only have one {{path|/proc/bus/usb}} entry in {{path|/etc/fstab}}.  See the {{cmd|mount(8)|}} manpage for more information on these options.  This is &amp;quot;cleaner&amp;quot; but seems to have a few weird issues -- see the talk page for details.&lt;br /&gt;
*You may also have files in {{path|/dev/bus/usb}}, which the driver will try before {{path|/proc/bus/usb}}.  If this is another usbfs mount point ({{cmd|mount|}} shows a line containing {{cmdresult|/dev/bus/usb type usbfs}}), then simply follow the above instructions with {{path|/dev/bus/usb}} rather than {{path|/proc/bus/usb}}.  Otherwise, you may be running a new kernel (i.e. 2.6.15) that makes usbfs-like files available through {{path|/dev/bus/usb}}.  On systems running udev these files are dynamically created; you can configure their permissions by editing a udev config file.  On Debian this is done by changing the &amp;lt;tt&amp;gt;usb_device&amp;lt;/tt&amp;gt; line of {{path|/etc/udev/permissions.rules}} to read&lt;br /&gt;
 SUBSYSTEM==&amp;quot;usb_device&amp;quot;, MODE=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;usbfs&amp;quot;&lt;br /&gt;
*For the beta versions only, there is a logfile, which needs to exist with the proper permissions:&lt;br /&gt;
:{{cmdroot|touch /var/log/BSP.log &amp;amp;&amp;amp; chown root:bioapi /var/log/BSP.log &amp;amp;&amp;amp; chmod 660 /var/log/BSP.log}}&lt;br /&gt;
&lt;br /&gt;
====Miscellaneous configuration====&lt;br /&gt;
* To increase the security level (minimize false accept rate), set this in {{path|/etc/tfmessbsp.cfg}}:&lt;br /&gt;
 security-level=&amp;quot;5&amp;quot;&lt;br /&gt;
{{WARN|Please see discussion section Security Level!}}&lt;br /&gt;
&lt;br /&gt;
===Testing the driver and enrolling a fingerprint===&lt;br /&gt;
To test the driver and generate the file containing your fingerprint information, you need a sample program included with the driver.  The compilation steps below were discovered by trial and error; if they don't work for you, try the binary {{cmd|Sample|}} utility that came with the beta versions of the driver (i.e., {{path|TFMESS_BSP_LIN_1.0beta2.zip}} as mentioned above).&lt;br /&gt;
Go to the folder where you extracted {{path|TFMESS_BSP_LIN_1.0.zip}} and do:&lt;br /&gt;
:{{cmdroot|cd NonGUI_Sample}}&lt;br /&gt;
:Edit {{path|main.c|}} and remove (or comment out) the line&lt;br /&gt;
 #include &amp;quot;port/bioapi_port.h&amp;quot;&lt;br /&gt;
:{{cmdroot|gcc -o Sample main.c -L/usr/local/lib -lbioapi100 -DUNIX -DLITTLE_ENDIAN}}&lt;br /&gt;
:{{cmdroot|./Sample}}&lt;br /&gt;
:Note that Sample may only run as root, unless you've already configured the usbfs file permissions.&lt;br /&gt;
:You can try to &amp;quot;e&amp;quot;nroll (to record a fingerprint for an account) and then &amp;quot;v&amp;quot;erify (to test a fingerprint against the one it expects for an account).&lt;br /&gt;
:You'll save a step later if you use your own login username as the username to enroll here.&lt;br /&gt;
&lt;br /&gt;
==Login via pam_bioapi==&lt;br /&gt;
&lt;br /&gt;
The following explains how to add fingerprint authentiation to programs that use the PAM (Pluggable Authentication Modules) framework, such as  Gnome's GDM and KDE's KDM and screensaver.&lt;br /&gt;
&lt;br /&gt;
===Getting required libs &amp;amp; tools===&lt;br /&gt;
====Installing pam_bioapi====&lt;br /&gt;
*Prerequisites&lt;br /&gt;
:On SuSE 10, I needed to install the pam-devel RPM&lt;br /&gt;
:In general, you will need pam itself (standard for most distros) as well as the pam development files (probably an optional package for your distro).&lt;br /&gt;
*Get and compile the pam_bioapi module.&lt;br /&gt;
:{{cmduser|wget http://www.qrivy.net/~michael/blua/pam_bioapi/pam_bioapi-latest.tar.bz2}}&lt;br /&gt;
:{{cmduser|tar xjf pam_bioapi-latest.tar.bz2}}&lt;br /&gt;
:{{cmduser|cd pam_bioapi-0.2.1}}&lt;br /&gt;
:{{cmduser|wget http://badcode.de/downloads/fingerprint.patch}}&lt;br /&gt;
:{{cmduser|patch -p0 &amp;lt; fingerprint.patch}}&lt;br /&gt;
:If you want to, review the patch. In general you should review all code you download and compile, if possible. The patch comes from [http://linuxbiometrics.com/modules/newbb/viewtopic.php?viewmode=flat&amp;amp;topic_id=80&amp;amp;forum=1 this thread].&lt;br /&gt;
:{{cmduser|./configure &amp;amp;&amp;amp; make}}&lt;br /&gt;
:and as root&lt;br /&gt;
:{{cmdroot| make install}}&lt;br /&gt;
:{{cmdroot| cp /usr/local/lib/security/* /lib/security/}}&lt;br /&gt;
{{NOTE|If you get a 'rpl_malloc' error in /var/log/auth.log when trying to use the fingerprint reader, redo these steps and remove the related term from Makefile after running ./configure. (FC3, Debian etch)}}&lt;br /&gt;
*If you get 'configure: error: cannot find required header: security/_pam_macros.h' and are on a Debian-like system, do &amp;quot;apt-get install libpam0g-dev&amp;quot; and try again. If you are using a Mandriva distribution, do &amp;quot;urpmi libpam0-devel&amp;quot; instead.&lt;br /&gt;
*If you get 'PAM [dlerror: /lib/security/pam_bioapi.so: undefined symbol: BioAPIMemoryFuncs]' error in your syslog, replace 'LIBS = ' line in {{path|libpam_bioapi/makefile}} with the following (of course, replace {{path|/opt/bioapi/}} with the path where you installed bioapi):&lt;br /&gt;
 LIBS = -L/opt/bioapi/lib -lbioapi100 -lbioapi_mds300 -lmds_util&lt;br /&gt;
*Use the sample tool from the fingerprint reader to create {{path|&amp;lt;username&amp;gt;.bir}} (&amp;lt;tt&amp;gt;&amp;lt;username&amp;gt;&amp;lt;/tt&amp;gt; '''must''' be the username you want to login with. gdm will probably break for any login name that has no .bir file).&lt;br /&gt;
*As root do:&lt;br /&gt;
:{{cmdroot|SERIAL&amp;lt;nowiki&amp;gt;=`BioAPITest | sed -ne &amp;quot;/Fingerprint/{n;n;s/^.*: \(.\{9\}\)\(.\{4\}\)\(.\{4\}\)\(.\{4\}\)\(.*\)/\1-\2-\3-\4-\5/gp}&amp;quot;` &amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
:{{cmdroot|echo $SERIAL}} should print something like {{cmdresult|&amp;lt;nowiki&amp;gt;{5550454b-2054-464d-2f45-535320425350}&amp;lt;/nowiki&amp;gt;}} now.&lt;br /&gt;
:If it does, do:&lt;br /&gt;
:{{cmdroot|mkdir -p /etc/bioapi/pam/$SERIAL}}&lt;br /&gt;
:{{cmdroot|cp &amp;lt;username&amp;gt;.bir /etc/bioapi/pam/$SERIAL}}&lt;br /&gt;
:If not, you might just try&lt;br /&gt;
:{{cmdroot|SERIAL&amp;lt;nowiki&amp;gt;={5550454b-2054-464d-2f45-535320425350}&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
:as this value is hardcoded into the UPEK docs.&lt;br /&gt;
&lt;br /&gt;
===Configuring pam===&lt;br /&gt;
The following part is distribution specific. On {{Ubuntu}} or {{SUSE}} you can modify {{path|/etc/pam.d/common-auth}} (on {{Gentoo}} and {{Fedora}} it is {{path|/etc/pam.d/system-auth}}) to look like this:&lt;br /&gt;
&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_bioapi.so {5550454b-2054-464d-2f45-535320425350} /etc/bioapi/pam/&lt;br /&gt;
 password   sufficient   pam_bioapi.so {5550454b-2054-464d-2f45-535320425350} /etc/bioapi/pam/&lt;br /&gt;
 auth       required     pam_unix.so nullok_secure&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
For '''Gentoo'''-Users - this allows you to attempt a password first. If you simply press enter, it then prompts for a fingerprints. Create a file named {{path|/etc/pam.d/bioapi}}. This also means that remote services, such as SSH keep working:&lt;br /&gt;
&lt;br /&gt;
 auth       required     pam_env.so&lt;br /&gt;
 auth       sufficient   pam_unix.so likeauth nullok&lt;br /&gt;
 auth       sufficient   pam_bioapi.so {5550454b-2054-464d-2f45-535320425350} /etc/bioapi/pam/&lt;br /&gt;
 auth       required     pam_deny.so&lt;br /&gt;
 &lt;br /&gt;
 account    required     pam_unix.so&lt;br /&gt;
 &lt;br /&gt;
 session    required     pam_limits.so&lt;br /&gt;
 session    required     pam_unix.so&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Now, simply replace &amp;quot;auth include system-auth&amp;quot; in all services that you wish to use fingerprint for with &amp;quot;auth include bioapi&amp;quot;. For example, {{path|/etc/pam.d/kde}} by default contains&lt;br /&gt;
&lt;br /&gt;
  auth       include      system-auth&lt;br /&gt;
  auth       required     pam_nologin.so&lt;br /&gt;
  &lt;br /&gt;
  account    include      system-auth&lt;br /&gt;
  &lt;br /&gt;
  password   include      system-auth&lt;br /&gt;
  &lt;br /&gt;
  session    include      system-auth&lt;br /&gt;
&lt;br /&gt;
Simply replace the first &amp;quot;system-auth&amp;quot; with bioapi and you can also get rid of KDE desktop lock with a fingerprint. If you do not wish to allow for &amp;quot;password fallback&amp;quot; then remove &lt;br /&gt;
&lt;br /&gt;
 auth       sufficient   pam_unix.so likeauth nullok&lt;br /&gt;
&lt;br /&gt;
from {{path|/etc/pam.d/bioapi}}.&lt;br /&gt;
&lt;br /&gt;
{{WARN|If su/sudo expects to receive the root password (SuSE 10), you need to have fingerprint settings for root (that is, copy in a root.bir as well as a your-username.bir).  Otherwise, they get a segmentation fault.  Which is a little unfortunate, given that you need to su or sudo to change your settings... }}&lt;br /&gt;
{{WARN|Not only SuSE 10 requires root.bir to be available for su to work. Just make sure you have root.bir when su is not working with your fingerprint reader but other applications are...}}&lt;br /&gt;
Note that sshd may pick up the fingerprint settings from {{path|/etc/pam.d/common-auth}}.  I didn't want that, so I removed the &amp;quot;auth include common-auth&amp;quot; line from {{path|/etc/pam.d/sshd}} and replaced it with the lines that were originally in my {{path|/etc/pam.d/common-auth}}.  That way most local services use the fingerprint reader, but sshd does not.&lt;br /&gt;
&lt;br /&gt;
Another way to do this is to create a file ({{path|/etc/pam.d/bioapi|}} for example) which contains the {{cmd|pam_bioapi.so|}} lines, and explicitly {{cmd|@include|}} this '''before''' {{path|/etc/pam.d/common-auth|}} in the files for services which should use the fingerprint reader.  In this case you should leave {{path|/etc/pam.d/common-auth|}} alone.&lt;br /&gt;
&lt;br /&gt;
{{NOTE|This was discovered through trial and success, if it is plain wrong, wikorrect it, please.}}&lt;br /&gt;
&lt;br /&gt;
In {{Fedora}} the original 'session' terms in {{path|/etc/pam.d/system-auth}} need to be kept.&lt;br /&gt;
&lt;br /&gt;
{{HINT|The setup described above will/could affect remote ssh logins to also use biometric logins, which is a bit silly (who wants to remote ssh to the laptop, and then have to walk over to it and swipe your finger)&amp;lt;br /&amp;gt;To avoid that you can copy the default &amp;lt;tt&amp;gt;/etc/pam.d/system-auth&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;/etc/pam.d/sshd&amp;lt;/tt&amp;gt; which will allow the sshd service to use the standard authentication procedure.}}&lt;br /&gt;
&lt;br /&gt;
You can do some useful testing with [http://pamtester.sourceforge.net/ {{cmd|pamtester|}}], which calls the pam modules as if it were a program of your choice.  Examples:&lt;br /&gt;
:{{cmdroot|pamtester xdm yourusername authenticate}}&lt;br /&gt;
:{{cmduser|pamtester xscreensaver yourusername authenticate}}&lt;br /&gt;
where {{cmd|yourusername|}} is your username.  Note that {{cmd|pamtester|}} should run as root if and only if the program in question does.&lt;br /&gt;
&lt;br /&gt;
===Application support===&lt;br /&gt;
The implementation of fingerprint scanning support in the relevant applications varies.&lt;br /&gt;
&lt;br /&gt;
Here is the behaviour of the most common ones:&lt;br /&gt;
* In gdm enter your username and there should pop up an (ugly) image to swipe your finger and... magic - you can login without a password.&lt;br /&gt;
* kdm doesn't give any visual indication, other than that the cursor stops blinking. Just swipe your finger and hope it lets you log in.&lt;br /&gt;
* In xdm, enter your username and a blank password, then swipe (there is no popup as well).&lt;br /&gt;
* The KDE screen saver in SUSE 10 requires you to enter an empty password (or select the correct user and then enter an empty password) in order to get the fingerprint prompt.&lt;br /&gt;
* For Fedora users, the redhat-config tools will crash if no root.bir presents. Also, there won't be any visual idication unless X server is properly configured for root to access. Just swipe your finger when the HDD stopped blinking or issue the following command in advance:&lt;br /&gt;
:{{cmduser|xhost +local:}}&lt;br /&gt;
* For RHEL4 users gdm, console (virtual terminal) logins and the xscreensaver all work&lt;br /&gt;
&lt;br /&gt;
===kdm support===&lt;br /&gt;
To add graphical popup to kdm, you need following:&lt;br /&gt;
* Patch for pam_bioapi. This patch adds third parameter to {{path|pam_bioapi.so}} module, which is a name of file with additional environment variables that will be supplied to the UPEK driver.&lt;br /&gt;
:{{cmdroot|wget http://upir.cz/linux/patches/pam_bioapi-0.2.1-alter-environ.patch}}&lt;br /&gt;
:{{cmdroot|patch -p1 &amp;lt; pam_bioapi-0.2.1-alter-environ.patch}}&lt;br /&gt;
* Edit your {{path|Xsetup}} file (on SUSE 10 it's {{path|/etc/X11/xdm/Xsetup}}) and add these lines:&lt;br /&gt;
 echo &amp;quot;XAUTHORITY=$XAUTHORITY&amp;quot; &amp;gt; /var/lib/xdm/kdm_env&lt;br /&gt;
 echo &amp;quot;DISPLAY=$DISPLAY&amp;quot; &amp;gt;&amp;gt; /var/lib/xdm/kdm_env&lt;br /&gt;
* In {{path|/etc/pam.d/xdm}} file, add {{path|/var/lib/xdm/kdm_env}} as a third parameter for {{path|pam_bioapi.so}} module:&lt;br /&gt;
 auth sufficient pam_bioapi.so {5550454b-2054-464d-2f45-535320425350} /etc/bioapi/pam/ /var/lib/xdm/kdm_env&lt;br /&gt;
&lt;br /&gt;
Please note, that this won't work if you have more than one Xserver.&lt;br /&gt;
&lt;br /&gt;
==Make xscreensaver use the scanner==&lt;br /&gt;
If you are using Gentoo, you can get a portage overlay with the necessary patches here: http://www.zzamboni.org/brt/files/xscreensaver-fingerprint-overlay.tar.gz&lt;br /&gt;
*Get the needed xscreensaver sources:&lt;br /&gt;
:{{cmduser|wget http://www.jwz.org/xscreensaver/xscreensaver-4.23.tar.gz}}&lt;br /&gt;
:{{cmduser|tar xzf xscreensaver-4.23.tar.gz}}&lt;br /&gt;
:{{cmduser|cd xscreensaver-4.23}}&lt;br /&gt;
:{{cmduser|wget http://nax.hn.org/pub/bioapi/xscreensaver-4.22_alternativeAuth.diff&amp;lt;br/&amp;gt;This site seems to be down, use this mirror: http://zepan.org/files/xscreensaver-4.22_alternativeAuth.diff&amp;lt;br/&amp;gt;For xscreensaver 5.00, you can get a patch here: http://www.zzamboni.org/brt/files/xscreensaver-5.00-alternativeauth.patch}}&lt;br /&gt;
*After reviewing the patch (it's small and straightforward), do&lt;br /&gt;
:{{cmduser|patch -p1 &amp;lt; xscreensaver-4.22_alternativeAuth.diff}}&amp;lt;br /&amp;gt;The patch prevents xscreensaver from opening an authentification window and dispatches the authentification request to another program, in our case &amp;lt;tt&amp;gt;pam&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;pam_bioapi&amp;lt;/tt&amp;gt;. It should apply with some offset, don't mind that. If it says something about rejected though, then there's a problem.&lt;br /&gt;
*Compile with&lt;br /&gt;
:{{cmduser|./configure --with-pam &amp;amp;&amp;amp; make}}&amp;lt;br /&amp;gt;&lt;br /&gt;
*If you receive an error like &amp;quot;Couldn't find X11 headers/libs&amp;quot; and are running a Debian-like system, try &amp;quot;apt-get install xlibs-dev&amp;quot;&lt;br /&gt;
*If you receive an error like &amp;quot;undefined reference to `XmuPrintDefaultErrorMessage'&amp;quot; then install the libxmu-dev package and run the previous line again and then install as root with&lt;br /&gt;
:{{cmduser|su -c make install}} .&lt;br /&gt;
*Make sure that the newly compiled xscreensaver is used:&lt;br /&gt;
:{{cmduser|which xscreensaver}} should return&lt;br /&gt;
:{{cmdresult|/usr/local/bin/xscreensaver}} .&lt;br /&gt;
*In case it doesn't, try adjusting your PATH.&lt;/div&gt;</summary>
		<author><name>Jensens</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=ATI_Mobility_FireGL_V3200&amp;diff=22938</id>
		<title>ATI Mobility FireGL V3200</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=ATI_Mobility_FireGL_V3200&amp;diff=22938"/>
		<updated>2006-06-27T13:32:51Z</updated>

		<summary type="html">&lt;p&gt;Jensens: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== ATI Mobility FireGL V3200 ===&lt;br /&gt;
This is a ATI video adapter&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Chipset: ATI RV380 (M24) - Similar to [[ATI_Mobility_Radeon_X600|Radeon X600]]&lt;br /&gt;
* PCI ID: 1002:3154&lt;br /&gt;
* PCI Express x16&lt;br /&gt;
* 128MB GDDR1 video memory&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Linux X.Org driver ===&lt;br /&gt;
Works fine with xorg 7.0.0&lt;br /&gt;
&lt;br /&gt;
==== ThinkPad LCD ====&lt;br /&gt;
Display on the internal LCD works as long as you set the monitor settings correct.&lt;br /&gt;
&lt;br /&gt;
==== External VGA port ====&lt;br /&gt;
&lt;br /&gt;
===== SuSE =====&lt;br /&gt;
&lt;br /&gt;
Works fine using ATI [[fglrx]] driver version 8.19.10 configured with fglrxconfig into clone mode (display shows full resolution, external CRT shows full resolution with higher refresh rate). &lt;br /&gt;
This was tested using SuSE 9.2 with a Thinkpad T43p.&lt;br /&gt;
&lt;br /&gt;
===== Ubuntu Dapper =====&lt;br /&gt;
&lt;br /&gt;
On an ''Ubuntu Dapper'' (xorg 7.0.0) external vga/ monitor/ beamer works fine with the following in {{path|/etc/xorg.conf}}. I used the free ati driver shipped with Dapper. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# insert after section 'Screen' with identifier 'Default Screen'&lt;br /&gt;
&lt;br /&gt;
##################################################################################&lt;br /&gt;
# MergedFB2 from http://mg.pov.lt/xorg.conf&lt;br /&gt;
##################################################################################&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Device&amp;quot;&lt;br /&gt;
	Identifier	&amp;quot;MergedFB ATI&amp;quot;&lt;br /&gt;
	Driver		&amp;quot;ati&amp;quot;&lt;br /&gt;
	BusID		&amp;quot;PCI:1:0:0&amp;quot;&lt;br /&gt;
	Option		&amp;quot;DynamicClocks&amp;quot;	&amp;quot;on&amp;quot;&lt;br /&gt;
	Option		&amp;quot;MergedFB&amp;quot;	&amp;quot;true&amp;quot;&lt;br /&gt;
	Option		&amp;quot;CRT2Position&amp;quot;	&amp;quot;RightOf&amp;quot;&lt;br /&gt;
    # This allows X to use MergedFB if the external monitor is not connected&lt;br /&gt;
    # when I start X.  The ranges are taken from DDC values of the CTX monitor&lt;br /&gt;
    # I use at the office; as listed in Xorg.log.&lt;br /&gt;
	Option		&amp;quot;CRT2HSync&amp;quot;	&amp;quot;30-81&amp;quot;&lt;br /&gt;
	Option		&amp;quot;CRT2VRefresh&amp;quot;	&amp;quot;56-76&amp;quot;&lt;br /&gt;
    # The next line lets me switch between dual-head and several clone modes&lt;br /&gt;
    # of varying resolutions with xrandr.&lt;br /&gt;
    # modified by jensens&lt;br /&gt;
	Option		&amp;quot;MetaModes&amp;quot;	&amp;quot;1400x1050-1280x1024 1400x1050-1024x768 1400x1050 1280x1024 1024x768 800x600 640x480&amp;quot;&lt;br /&gt;
    # A newer version of the radeon driver has an option that disables vertical&lt;br /&gt;
    # scrolling for the 1024x768 part.&lt;br /&gt;
	Option		&amp;quot;MergedNonRectangular&amp;quot;	&amp;quot;true&amp;quot;&lt;br /&gt;
    # In 1024x768-1280x1024 mode the DPI is correct (100), but in all other&lt;br /&gt;
    # modes it is weird.  Try to override&lt;br /&gt;
	Option		&amp;quot;MergedDPI&amp;quot;	&amp;quot;100 100&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Screen&amp;quot;&lt;br /&gt;
	Identifier	&amp;quot;MergedFB Screen&amp;quot;&lt;br /&gt;
	Device		&amp;quot;MergedFB ATI&amp;quot;&lt;br /&gt;
	Monitor		&amp;quot;Generic Monitor&amp;quot;&lt;br /&gt;
	DefaultDepth	24&lt;br /&gt;
	SubSection &amp;quot;Display&amp;quot;&lt;br /&gt;
		Depth		24&lt;br /&gt;
		Modes		&amp;quot;1400x1050&amp;quot; &amp;quot;1280x1024&amp;quot; &amp;quot;1024x768&amp;quot; &amp;quot;800x600&amp;quot; &amp;quot;640x480&amp;quot;&lt;br /&gt;
	EndSubSection&lt;br /&gt;
EndSection&lt;br /&gt;
##################################################################################&lt;br /&gt;
&lt;br /&gt;
# replace ServerLayout with this lines:&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;ServerLayout&amp;quot;&lt;br /&gt;
	Identifier	&amp;quot;Default Layout&amp;quot;&lt;br /&gt;
	#Screen		&amp;quot;Default Screen&amp;quot;&lt;br /&gt;
	Screen		&amp;quot;MergedFB Screen&amp;quot;&lt;br /&gt;
	InputDevice	&amp;quot;Generic Keyboard&amp;quot;&lt;br /&gt;
	InputDevice	&amp;quot;Configured Mouse&amp;quot;&lt;br /&gt;
	InputDevice     &amp;quot;stylus&amp;quot; &amp;quot;SendCoreEvents&amp;quot;&lt;br /&gt;
	InputDevice     &amp;quot;cursor&amp;quot; &amp;quot;SendCoreEvents&amp;quot;&lt;br /&gt;
	InputDevice     &amp;quot;eraser&amp;quot; &amp;quot;SendCoreEvents&amp;quot;&lt;br /&gt;
	InputDevice	&amp;quot;Synaptics Touchpad&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{NOTE|The built-in switching of resolutions does not work with this setting! Use the Gnome applet '''Grandr''' - it works fine.}}&lt;br /&gt;
&lt;br /&gt;
{{HINT|To switch off external VGA port and save some battery you can use the command '''sudo radeontool dac off'''.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== SVideo port ====&lt;br /&gt;
??&lt;br /&gt;
&lt;br /&gt;
==== DVI port ====&lt;br /&gt;
??&lt;br /&gt;
&lt;br /&gt;
=== Proprietary ATI driver ===&lt;br /&gt;
The [[fglrx]] driver adds 3D acceleration.&lt;br /&gt;
&lt;br /&gt;
=== Linux kernel Framebuffer driver ===&lt;br /&gt;
??&lt;br /&gt;
&lt;br /&gt;
=== ThinkPads this chip may be found in ===&lt;br /&gt;
* {{T43p}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Components]]&lt;/div&gt;</summary>
		<author><name>Jensens</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=ATI_Mobility_Radeon_X600&amp;diff=22937</id>
		<title>ATI Mobility Radeon X600</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=ATI_Mobility_Radeon_X600&amp;diff=22937"/>
		<updated>2006-06-27T13:21:11Z</updated>

		<summary type="html">&lt;p&gt;Jensens: /* External VGA port */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== ATI Mobility Radeon X600 ===&lt;br /&gt;
This is a ATI video adapter&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Chipset: ATI M24&lt;br /&gt;
* PCI ID: 1002:3150&lt;br /&gt;
* PCI Express x16&lt;br /&gt;
* 128MB video memory&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Linux driver ===&lt;br /&gt;
2D acceleration is supported by the &amp;quot;radeon&amp;quot; driver in X.org.&lt;br /&gt;
&lt;br /&gt;
==== ThinkPad LCD ====&lt;br /&gt;
Display on the internal LCD works as long as you set the monitor settings correct.&lt;br /&gt;
&lt;br /&gt;
==== External VGA port ====&lt;br /&gt;
There are known problems. The driver from ATI turns off the switching between internal and external port.&lt;br /&gt;
Workaround: Don't use the ATI driver if you want to use this feature - use the VESA driver instead.&lt;br /&gt;
&lt;br /&gt;
For ''Ubuntu Dapper'' read [http://thinkwiki.org/wiki/ATI_Mobility_FireGL_V3200#External_VGA_port single/dual/cloned screen] - should work fine.&lt;br /&gt;
&lt;br /&gt;
==== SVideo port ====&lt;br /&gt;
??&lt;br /&gt;
==== DVI port ====&lt;br /&gt;
??&lt;br /&gt;
&lt;br /&gt;
=== Proprietary ATI driver ===&lt;br /&gt;
The [[fglrx]] driver adds 3D acceleration.&lt;br /&gt;
&lt;br /&gt;
=== Linux kernel Framebuffer driver ===&lt;br /&gt;
Supported by &amp;quot;radeonfb&amp;quot; for console, but conflicts with X.org when using &amp;quot;radeon&amp;quot; or [[fglrx]].&lt;br /&gt;
&lt;br /&gt;
=== ThinkPads this chip may be found in ===&lt;br /&gt;
* {{Z60m}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Components]]&lt;/div&gt;</summary>
		<author><name>Jensens</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Configs&amp;diff=22936</id>
		<title>Configs</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Configs&amp;diff=22936"/>
		<updated>2006-06-27T13:17:10Z</updated>

		<summary type="html">&lt;p&gt;Jensens: /* xorg */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You may find or publish ThinkPad related configuration files here or point to a page where they are published.&lt;br /&gt;
&lt;br /&gt;
Please publish only configs which you think might really help others or through which you achieved something non trivial.&lt;br /&gt;
Please also check if a similar config already exists, give a recommended version and comment on the link to your configs page what goal you have achived with it or in which way it can help someone.&lt;br /&gt;
&lt;br /&gt;
=Kernel=&lt;br /&gt;
==Version 2.4==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ Kernel 2.4 config files&lt;br /&gt;
|-&lt;br /&gt;
! Kernel !! User !! Purpose and Notes &lt;br /&gt;
|-&lt;br /&gt;
| Version || Username || provide your link within the description&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Version 2.6==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ Kernel 2.6 config files&lt;br /&gt;
|-&lt;br /&gt;
! Kernel !! User !! Purpose and Notes &lt;br /&gt;
|-&lt;br /&gt;
| Version || Username || provide your link within the description&lt;br /&gt;
|-&lt;br /&gt;
| 2.6.12-rc5 || wolf || [http://www.kondancemilch.de/config-2.6.12-rc5 For an R40 with ACPI, OSS, no modules.] I am using this on Debian sarge without hotplug or other funny stuff. &lt;br /&gt;
|-&lt;br /&gt;
| 2.6.15.4 || Force || [http://hanselan.de/ibm/config-2.6.15.4 For an X21 with ACPI and Suspend2] Suspend to Ram and Disk works great&lt;br /&gt;
|-&lt;br /&gt;
| 2.6.15.4 || miw || [http://people.su.se/~wikm/kernel/config-2.6.15.4-T42 For T42 with ACPI, OSS and ipw2200] I am using this with Debian unstable&lt;br /&gt;
|-&lt;br /&gt;
|2.6.16-r6 || Mikrop || [http://micheler.free.fr/unix/T41/config-2.6.16-gentoo-r6-T41 For T41 with ACPI,SPEEDSTEP,HDAPS,ALSA,RADEON] Gentoo GNU/Linux&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=X11=&lt;br /&gt;
==XFree86==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=2 cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ Xfree86 config files&lt;br /&gt;
|-&lt;br /&gt;
! Xfree86 !! User !! Purpose and Notes &lt;br /&gt;
|-&lt;br /&gt;
| Version || Username || Provide your link within your description.&lt;br /&gt;
|-&lt;br /&gt;
| 4.3.0.dfsg.1-14 || wolf || [http://www.kondancemilch.de/XF86Config-4 For a Radeon Mobility 7500], internal display only&lt;br /&gt;
|-&lt;br /&gt;
| 4.3.0.dfsg.1-14 || luis || [http://www.marqueta.org/linux/xf86config ThinkPad R51], with Ultranav (synaptics driver)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==xorg==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=2 cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ xorg config files&lt;br /&gt;
|-&lt;br /&gt;
! xorg !! User !! Purpose and Notes &lt;br /&gt;
|-&lt;br /&gt;
| Version || Username || Provide your link within your description.&lt;br /&gt;
|-&lt;br /&gt;
| for xorg 6.8.0     || seletz   || [http://eletztrick.de/Members/stefan/articles/x40/conf/xorg.conf/view config for a IBM ThinkPad X40]&lt;br /&gt;
|-&lt;br /&gt;
| for xorg 6.8.2     || luis   || [http://www.marqueta.org/linux/xorg ThinkPad R51; internal display, Ultranav]&lt;br /&gt;
|-&lt;br /&gt;
| for xorg 7.0       || mikrop || [http://micheler.free.fr/unix/T41/xorg.conf ThinkPad T41;internal display, Ultranav, Radeon xorg driver]&lt;br /&gt;
|-&lt;br /&gt;
| for xorg 7.0       || jensens || [http://thinkwiki.org/wiki/ATI_Mobility_FireGL_V3200#External_VGA_port ThinkPad T43p; display with free ati driver, single/dual/cloned screen]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Modules=&lt;br /&gt;
==modules.conf==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=2 cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ moules.conf config files (for Kernels prior 2.6)&lt;br /&gt;
|-&lt;br /&gt;
! Kernel !! User !! Purpose and Notes &lt;br /&gt;
|-&lt;br /&gt;
| Version || Username || Provide your link within your description&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==modprobe.conf==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=2 cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ modprobe.conf config files (for Kernels starting from 2.6)&lt;br /&gt;
|-&lt;br /&gt;
! Kernel !! User !! Purpose and Notes &lt;br /&gt;
|-&lt;br /&gt;
| Version || Username || Provide your link within your description&lt;br /&gt;
|+&lt;br /&gt;
|   2.6.x || Alan || [http://users.design.ucla.edu/~chekov/tpx31-modprobe.conf modprobe.conf with configured IR, modem, thinkpad drivers, firewire, etc..]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=udev=&lt;br /&gt;
==rules==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=2 cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ udev rules files&lt;br /&gt;
|-&lt;br /&gt;
! Distro !! udev !! Kernel !! User !! Purpose and Notes &lt;br /&gt;
|-&lt;br /&gt;
| LFS pre6.0 || 0.27 || 2.6.7 || [[User:Wyrfel|Wyrfel]] || [[udev rules - wyrfel | These rules]] create some useful symlinks and a names.d folder with symlinks that can be used by scripts to trigger more expressive names for some devices. They are made for the T41p [[2373-GHG]], but should be easily adoptable to other models.&lt;br /&gt;
|-&lt;br /&gt;
| Gentoo || 068 || 2.6.13 || Andi || [http://demandiseineseite.gmxhome.de/90-input.rules This rules file] creates symlinks for ThinkPads trackpoint, touchpad and a usb mouse (/dev/input/trackpoint -&amp;gt; /dev/input/eventX, etc...). This is handy for X11 configuration if you want to use the synaptics driver and need to know which event device is wired to the touchpad. Won't work with older udev versions. Tested on TP T43.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==permissions==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=2 cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ udev permissions files&lt;br /&gt;
|-&lt;br /&gt;
! Distro !! udev !! Kernel !! User !! Purpose and Notes &lt;br /&gt;
|-&lt;br /&gt;
| +Version || Version || Version || Username || Provide the link within your comment.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=ACPI=&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=2 cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ acpid action scripts&lt;br /&gt;
|-&lt;br /&gt;
! event !! Distro !! acpid !! ibm-acpi !! Kernel !! User !! Purpose and Notes &lt;br /&gt;
|-&lt;br /&gt;
| lid closed || Debian Sid || 1.0.4-1 || 0.7 || 2.6.10-rc1-mm1 || xaiki ||&lt;br /&gt;
acpid script for suspending (to ram) when the lid is closed&amp;lt;br /&amp;gt;&lt;br /&gt;
/!\ YOU MUST CREATE MANUALY /var/cache/acpi OR THE SCRIPT WON'T WORK, YOU *NEED* IBM ACPI OR THE SCRIPT WON'T DO ANYTHING /!\ &lt;br /&gt;
This script (trys to) add decent support to suspend the laptop when the lid is closed. on the x21 ( wich is the only ibm laptop i own ) one of crt or lcd *must* be on, please adapt the script to your needs. &lt;br /&gt;
this script is intended to go to: /etc/acpi/actions/lm_lid.sh ( in debian ) or any action raised by: event=button[ /]lid.&lt;br /&gt;
# [http://www.cxhome.ath.cx/thinkwiki/lm_lid.sh lm_lid.sh] - link broken (Forbidden)&lt;br /&gt;
|-&lt;br /&gt;
| power button || Debian Sid || 1.0.4-1 || 0.7 || 2.6.10-rc1-mm1 || xaiki ||&lt;br /&gt;
acpid script for suspending (to ram) when pressing the power button.&amp;lt;br /&amp;gt;&lt;br /&gt;
/!\ YOU MUST CREATE MANUALY /var/cache/acpi OR THE SCRIPT WON'T WORK, YOU *NEED* IBM ACPI OR THE SCRIPT WON'T DO ANYTHING /!\ &lt;br /&gt;
This script (trys to) add decent support to suspend the laptop when the pressing the powerbutton. on the x21 ( wich is the only ibm laptop i own ) one of crt or lcd *must* be on, and you can only switch the lcd off if you are out of X ( the chvt ugly thingy ), please adapt the script to your needs. &lt;br /&gt;
this script is intended to go to: /etc/acpi/powerbtn.sh ( in debian ) or any action raised by: event=button[ /]power.&lt;br /&gt;
# [http://www.cxhome.ath.cx/thinkwiki/powerbtn.sh powerbtn.sh] - link broken (Forbidden)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Windows=&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=2 cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ Windows config files&lt;br /&gt;
|-&lt;br /&gt;
! Windows || Application || User !! Purpose and Notes &lt;br /&gt;
|-&lt;br /&gt;
| Version || Application || Username || Provide the link within your comment.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
Configuration hints for [[Mplayer]].&lt;/div&gt;</summary>
		<author><name>Jensens</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=ATI_Mobility_FireGL_V3200&amp;diff=22935</id>
		<title>ATI Mobility FireGL V3200</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=ATI_Mobility_FireGL_V3200&amp;diff=22935"/>
		<updated>2006-06-27T12:58:30Z</updated>

		<summary type="html">&lt;p&gt;Jensens: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== ATI Mobility FireGL V3200 ===&lt;br /&gt;
This is a ATI video adapter&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Chipset: ATI RV380 (M24) - Similar to [[ATI_Mobility_Radeon_X600|Radeon X600]]&lt;br /&gt;
* PCI ID: 1002:3154&lt;br /&gt;
* PCI Express x16&lt;br /&gt;
* 128MB GDDR1 video memory&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Linux X.Org driver ===&lt;br /&gt;
Works fine with xorg 7.0.0&lt;br /&gt;
&lt;br /&gt;
==== ThinkPad LCD ====&lt;br /&gt;
Display on the internal LCD works as long as you set the monitor settings correct.&lt;br /&gt;
&lt;br /&gt;
==== External VGA port ====&lt;br /&gt;
&lt;br /&gt;
Works fine using ATI [[fglrx]] driver version 8.19.10 configured with fglrxconfig into clone mode (display shows full resolution, external CRT shows full resolution with higher refresh rate). &lt;br /&gt;
This was tested using SuSE 9.2 with a Thinkpad T43p.&lt;br /&gt;
&lt;br /&gt;
On an ''Ubuntu Dapper'' external vga/ monitor/ beamer works fine with the following in {{path|/etc/xorg.conf}}. I used the free ati driver shipped with Dapper. For switching modes the gnome applet ''Grandr'' works fine.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# insert after section 'Screen' with identifier 'Default Screen'&lt;br /&gt;
&lt;br /&gt;
##################################################################################&lt;br /&gt;
# MergedFB2 from http://mg.pov.lt/xorg.conf&lt;br /&gt;
##################################################################################&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Device&amp;quot;&lt;br /&gt;
	Identifier	&amp;quot;MergedFB ATI&amp;quot;&lt;br /&gt;
	Driver		&amp;quot;ati&amp;quot;&lt;br /&gt;
	BusID		&amp;quot;PCI:1:0:0&amp;quot;&lt;br /&gt;
	Option		&amp;quot;DynamicClocks&amp;quot;	&amp;quot;on&amp;quot;&lt;br /&gt;
	Option		&amp;quot;MergedFB&amp;quot;	&amp;quot;true&amp;quot;&lt;br /&gt;
	Option		&amp;quot;CRT2Position&amp;quot;	&amp;quot;RightOf&amp;quot;&lt;br /&gt;
    # This allows X to use MergedFB if the external monitor is not connected&lt;br /&gt;
    # when I start X.  The ranges are taken from DDC values of the CTX monitor&lt;br /&gt;
    # I use at the office; as listed in Xorg.log.&lt;br /&gt;
	Option		&amp;quot;CRT2HSync&amp;quot;	&amp;quot;30-81&amp;quot;&lt;br /&gt;
	Option		&amp;quot;CRT2VRefresh&amp;quot;	&amp;quot;56-76&amp;quot;&lt;br /&gt;
    # The next line lets me switch between dual-head and several clone modes&lt;br /&gt;
    # of varying resolutions with xrandr.&lt;br /&gt;
    # modified by jensens&lt;br /&gt;
	Option		&amp;quot;MetaModes&amp;quot;	&amp;quot;1400x1050-1280x1024 1400x1050-1024x768 1400x1050 1280x1024 1024x768 800x600 640x480&amp;quot;&lt;br /&gt;
    # A newer version of the radeon driver has an option that disables vertical&lt;br /&gt;
    # scrolling for the 1024x768 part.&lt;br /&gt;
	Option		&amp;quot;MergedNonRectangular&amp;quot;	&amp;quot;true&amp;quot;&lt;br /&gt;
    # In 1024x768-1280x1024 mode the DPI is correct (100), but in all other&lt;br /&gt;
    # modes it is weird.  Try to override&lt;br /&gt;
	Option		&amp;quot;MergedDPI&amp;quot;	&amp;quot;100 100&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Screen&amp;quot;&lt;br /&gt;
	Identifier	&amp;quot;MergedFB Screen&amp;quot;&lt;br /&gt;
	Device		&amp;quot;MergedFB ATI&amp;quot;&lt;br /&gt;
	Monitor		&amp;quot;Generic Monitor&amp;quot;&lt;br /&gt;
	DefaultDepth	24&lt;br /&gt;
	SubSection &amp;quot;Display&amp;quot;&lt;br /&gt;
		Depth		24&lt;br /&gt;
		Modes		&amp;quot;1400x1050&amp;quot; &amp;quot;1280x1024&amp;quot; &amp;quot;1024x768&amp;quot; &amp;quot;800x600&amp;quot; &amp;quot;640x480&amp;quot;&lt;br /&gt;
	EndSubSection&lt;br /&gt;
EndSection&lt;br /&gt;
##################################################################################&lt;br /&gt;
&lt;br /&gt;
# replace ServerLayout with this lines:&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;ServerLayout&amp;quot;&lt;br /&gt;
	Identifier	&amp;quot;Default Layout&amp;quot;&lt;br /&gt;
	#Screen		&amp;quot;Default Screen&amp;quot;&lt;br /&gt;
	Screen		&amp;quot;MergedFB Screen&amp;quot;&lt;br /&gt;
	InputDevice	&amp;quot;Generic Keyboard&amp;quot;&lt;br /&gt;
	InputDevice	&amp;quot;Configured Mouse&amp;quot;&lt;br /&gt;
	InputDevice     &amp;quot;stylus&amp;quot; &amp;quot;SendCoreEvents&amp;quot;&lt;br /&gt;
	InputDevice     &amp;quot;cursor&amp;quot; &amp;quot;SendCoreEvents&amp;quot;&lt;br /&gt;
	InputDevice     &amp;quot;eraser&amp;quot; &amp;quot;SendCoreEvents&amp;quot;&lt;br /&gt;
	InputDevice	&amp;quot;Synaptics Touchpad&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== SVideo port ====&lt;br /&gt;
??&lt;br /&gt;
&lt;br /&gt;
==== DVI port ====&lt;br /&gt;
??&lt;br /&gt;
&lt;br /&gt;
=== Proprietary ATI driver ===&lt;br /&gt;
The [[fglrx]] driver adds 3D acceleration.&lt;br /&gt;
&lt;br /&gt;
=== Linux kernel Framebuffer driver ===&lt;br /&gt;
??&lt;br /&gt;
&lt;br /&gt;
=== ThinkPads this chip may be found in ===&lt;br /&gt;
* {{T43p}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Components]]&lt;/div&gt;</summary>
		<author><name>Jensens</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=ATI_Mobility_FireGL_V3200&amp;diff=22934</id>
		<title>ATI Mobility FireGL V3200</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=ATI_Mobility_FireGL_V3200&amp;diff=22934"/>
		<updated>2006-06-27T12:56:03Z</updated>

		<summary type="html">&lt;p&gt;Jensens: added donfig for ubuntu&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== ATI Mobility FireGL V3200 ===&lt;br /&gt;
This is a ATI video adapter&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Chipset: ATI RV380 (M24) - Similar to [[ATI_Mobility_Radeon_X600|Radeon X600]]&lt;br /&gt;
* PCI ID: 1002:3154&lt;br /&gt;
* PCI Express x16&lt;br /&gt;
* 128MB GDDR1 video memory&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Linux X.Org driver ===&lt;br /&gt;
Works fine with xorg 7.0.0&lt;br /&gt;
&lt;br /&gt;
==== ThinkPad LCD ====&lt;br /&gt;
Display on the internal LCD works as long as you set the monitor settings correct.&lt;br /&gt;
&lt;br /&gt;
==== External VGA port ====&lt;br /&gt;
&lt;br /&gt;
Works fine using ATI [[fglrx]] driver version 8.19.10 configured with fglrxconfig into clone mode (display shows full resolution, external CRT shows full resolution with higher refresh rate). &lt;br /&gt;
This was tested using SuSE 9.2 with a Thinkpad T43p.&lt;br /&gt;
&lt;br /&gt;
On an ''Ubuntu Dapper'' external vga/ monitor/ beamer works fine with the following in {{path|/etc/xorg.conf}}. I used the free ati driver shipped with Dapper. For switching modes the gnome applet ''Grandr'' works fine.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##################################################################################&lt;br /&gt;
# MergedFB2 from http://mg.pov.lt/xorg.conf&lt;br /&gt;
##################################################################################&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Device&amp;quot;&lt;br /&gt;
	Identifier	&amp;quot;MergedFB ATI&amp;quot;&lt;br /&gt;
	Driver		&amp;quot;ati&amp;quot;&lt;br /&gt;
	BusID		&amp;quot;PCI:1:0:0&amp;quot;&lt;br /&gt;
	Option		&amp;quot;DynamicClocks&amp;quot;	&amp;quot;on&amp;quot;&lt;br /&gt;
	Option		&amp;quot;MergedFB&amp;quot;	&amp;quot;true&amp;quot;&lt;br /&gt;
	Option		&amp;quot;CRT2Position&amp;quot;	&amp;quot;RightOf&amp;quot;&lt;br /&gt;
    # This allows X to use MergedFB if the external monitor is not connected&lt;br /&gt;
    # when I start X.  The ranges are taken from DDC values of the CTX monitor&lt;br /&gt;
    # I use at the office; as listed in Xorg.log.&lt;br /&gt;
	Option		&amp;quot;CRT2HSync&amp;quot;	&amp;quot;30-81&amp;quot;&lt;br /&gt;
	Option		&amp;quot;CRT2VRefresh&amp;quot;	&amp;quot;56-76&amp;quot;&lt;br /&gt;
    # The next line lets me switch between dual-head and several clone modes&lt;br /&gt;
    # of varying resolutions with xrandr.&lt;br /&gt;
    # modified by jensens&lt;br /&gt;
	Option		&amp;quot;MetaModes&amp;quot;	&amp;quot;1400x1050-1280x1024 1400x1050-1024x768 1400x1050 1280x1024 1024x768 800x600 640x480&amp;quot;&lt;br /&gt;
    # A newer version of the radeon driver has an option that disables vertical&lt;br /&gt;
    # scrolling for the 1024x768 part.&lt;br /&gt;
	Option		&amp;quot;MergedNonRectangular&amp;quot;	&amp;quot;true&amp;quot;&lt;br /&gt;
    # In 1024x768-1280x1024 mode the DPI is correct (100), but in all other&lt;br /&gt;
    # modes it is weird.  Try to override&lt;br /&gt;
	Option		&amp;quot;MergedDPI&amp;quot;	&amp;quot;100 100&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Screen&amp;quot;&lt;br /&gt;
	Identifier	&amp;quot;MergedFB Screen&amp;quot;&lt;br /&gt;
	Device		&amp;quot;MergedFB ATI&amp;quot;&lt;br /&gt;
	Monitor		&amp;quot;Generic Monitor&amp;quot;&lt;br /&gt;
	DefaultDepth	24&lt;br /&gt;
	SubSection &amp;quot;Display&amp;quot;&lt;br /&gt;
		Depth		24&lt;br /&gt;
		Modes		&amp;quot;1400x1050&amp;quot; &amp;quot;1280x1024&amp;quot; &amp;quot;1024x768&amp;quot; &amp;quot;800x600&amp;quot; &amp;quot;640x480&amp;quot;&lt;br /&gt;
	EndSubSection&lt;br /&gt;
EndSection&lt;br /&gt;
##################################################################################&lt;br /&gt;
Section &amp;quot;ServerLayout&amp;quot;&lt;br /&gt;
	Identifier	&amp;quot;Default Layout&amp;quot;&lt;br /&gt;
	#Screen		&amp;quot;Default Screen&amp;quot;&lt;br /&gt;
	Screen		&amp;quot;MergedFB Screen&amp;quot;&lt;br /&gt;
	InputDevice	&amp;quot;Generic Keyboard&amp;quot;&lt;br /&gt;
	InputDevice	&amp;quot;Configured Mouse&amp;quot;&lt;br /&gt;
	InputDevice     &amp;quot;stylus&amp;quot; &amp;quot;SendCoreEvents&amp;quot;&lt;br /&gt;
	InputDevice     &amp;quot;cursor&amp;quot; &amp;quot;SendCoreEvents&amp;quot;&lt;br /&gt;
	InputDevice     &amp;quot;eraser&amp;quot; &amp;quot;SendCoreEvents&amp;quot;&lt;br /&gt;
	InputDevice	&amp;quot;Synaptics Touchpad&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== SVideo port ====&lt;br /&gt;
??&lt;br /&gt;
&lt;br /&gt;
==== DVI port ====&lt;br /&gt;
??&lt;br /&gt;
&lt;br /&gt;
=== Proprietary ATI driver ===&lt;br /&gt;
The [[fglrx]] driver adds 3D acceleration.&lt;br /&gt;
&lt;br /&gt;
=== Linux kernel Framebuffer driver ===&lt;br /&gt;
??&lt;br /&gt;
&lt;br /&gt;
=== ThinkPads this chip may be found in ===&lt;br /&gt;
* {{T43p}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Components]]&lt;/div&gt;</summary>
		<author><name>Jensens</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=ATI_Mobility_Radeon_9600&amp;diff=22631</id>
		<title>ATI Mobility Radeon 9600</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=ATI_Mobility_Radeon_9600&amp;diff=22631"/>
		<updated>2006-06-05T20:00:41Z</updated>

		<summary type="html">&lt;p&gt;Jensens: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== ATI Mobility Radeon 9600 ===&lt;br /&gt;
This is an ATI video adapter&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Chipset: ATI RV350 (M10)&lt;br /&gt;
* PCI ID: 1002:4c66&lt;br /&gt;
* AGP 4X&lt;br /&gt;
* 32 or 64MB DDR-SDRAM video memory&lt;br /&gt;
* External VGA up to: 1920x1200&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Linux driver - OpenSource ===&lt;br /&gt;
This adapter is supported by recent versions of the 'radeon' driver as found in X.Org and XFree86.  The [[fglrx]] driver should also work.&lt;br /&gt;
&lt;br /&gt;
====ThinkPad LCD====&lt;br /&gt;
Display on the internal LCD works as long as you set the monitor settings correct&lt;br /&gt;
&lt;br /&gt;
==== External VGA port ====&lt;br /&gt;
Works if you setup the xorg.conf for two screens.&lt;br /&gt;
&lt;br /&gt;
==== SVideo port ====&lt;br /&gt;
SVideo out is supported by the ati.2 driver from the [http://gatos.sourceforge.net/ GATOS project].&amp;lt;br/&amp;gt;&lt;br /&gt;
Read [[How to get TV-Out working on ATI graphic cards|here]] how to set it up.&lt;br /&gt;
&lt;br /&gt;
==== 3D acceleration with the open source driver ====&lt;br /&gt;
&lt;br /&gt;
All recent Distributions such as Fedora Core 5, *Ubuntu Dapper Drake, OpenSUSE have the r300 supported without patching. The r300 DRI driver was merged into Mesa 6.4.x. The X Window System (Xorg) 7.0 supports the r300 driver. Recent 2.6 kernels now have r300 DRM support added. This now should work out of the box if your using a recent distribution.&lt;br /&gt;
&lt;br /&gt;
The old project page may be outdated now, development is now done in X.org.&lt;br /&gt;
:http://r300.sourceforge.net/&lt;br /&gt;
&lt;br /&gt;
=== Linux driver - Proprietary ===&lt;br /&gt;
The [[fglrx]] driver adds 3D acceleration.  &lt;br /&gt;
&lt;br /&gt;
=== FreeBSD driver - open source ===&lt;br /&gt;
With RELENG_6 it is possible to get this card working with a reasonable level of ease. First you must apply this  patch: http://people.freebsd.org/~anholt/dri/r300-drm.diff to your kernel source and compile a new kernel. I have only tested using this as a module. It works as the simple drm/radeon module. Once that is done install x11-servers/xorg-server-snap  and graphics/dri-devel on top of a normal Xorg installation. With all that you SHOULD have dri working on a mobility 9600. Tested on a T42.&lt;br /&gt;
&lt;br /&gt;
=== ThinkPads this chip may be found in ===&lt;br /&gt;
* {{T42}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Components]]&lt;/div&gt;</summary>
		<author><name>Jensens</name></author>
		
	</entry>
</feed>