<?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=Paul+Strefling</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=Paul+Strefling"/>
	<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/wiki/Special:Contributions/Paul_Strefling"/>
	<updated>2026-05-02T19:18:04Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.12</generator>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:PC2-5300&amp;diff=44423</id>
		<title>Talk:PC2-5300</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:PC2-5300&amp;diff=44423"/>
		<updated>2009-09-28T03:54:40Z</updated>

		<summary type="html">&lt;p&gt;Paul Strefling: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The X300 seems to support 8GB[http://forums.lenovo.com/lnv/board/message?board.id=X_Series_Thinkpads&amp;amp;message.id=6603#M6603], however may need some tweeking runnin with Linux[http://gebi.supersized.org/archives/2-Intel-965-board-with-8GB-Ram-and-Linux.html]&lt;br /&gt;
&lt;br /&gt;
==X60==&lt;br /&gt;
&lt;br /&gt;
On my Intel Core Duo (Yonah) 1.83 GHz I have 2x Crucial CT25664AC667 R 2GB sticks. This is the result:&lt;br /&gt;
&lt;br /&gt;
 free -m&lt;br /&gt;
             total       used       free     shared    buffers     cached&lt;br /&gt;
 Mem:         3033        275       2758          0         11        148&lt;br /&gt;
&lt;br /&gt;
--[[User:Paul Strefling|Paul Strefling]] 03:54, 28 September 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Paul Strefling</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=User:Paul_Strefling&amp;diff=24513</id>
		<title>User:Paul Strefling</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=User:Paul_Strefling&amp;diff=24513"/>
		<updated>2006-09-06T20:31:41Z</updated>

		<summary type="html">&lt;p&gt;Paul Strefling: Updated HDAPS information&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;x60 with Debian Etch&lt;br /&gt;
&lt;br /&gt;
'''Current Issues'''&lt;br /&gt;
*Poor 3D&lt;br /&gt;
Fixed. The problem was the upgrade from Xorg 6.9 to 7.0 The i810 drivers were too new for the mesa packages. Upgrading to libgl1-mesa-dri libgl1-mesa-glx in experimental fixed the problem. &lt;br /&gt;
*HDAPS&lt;br /&gt;
Fixed. &lt;br /&gt;
&lt;br /&gt;
HDAPS works fine using tp_smapi 0.27+&lt;br /&gt;
&lt;br /&gt;
*Hibernating&lt;br /&gt;
&lt;br /&gt;
Both Hibernation and sleep fail on resume. This is most likley do to the serial hard disk.&lt;/div&gt;</summary>
		<author><name>Paul Strefling</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=User_talk:Gagliol&amp;diff=24166</id>
		<title>User talk:Gagliol</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=User_talk:Gagliol&amp;diff=24166"/>
		<updated>2006-08-16T16:28:10Z</updated>

		<summary type="html">&lt;p&gt;Paul Strefling: Mouse 2 button to scroll&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; *Enable scrolling and keep functionality of mouse 2 button&lt;br /&gt;
Would you like the middle key to Cut&amp;amp;Paste? Currently on my x60 in debian etch it does just that, and allows scrolling. I find it somewhat annoying though, for instance if you happen to just tap it, it pastes whatever is in your clipboard; very hard to get used to in firefox considering it googles your clipboard! --[[User:Paul Strefling|Paul Strefling]] 18:28, 16 August 2006 (CEST)&lt;/div&gt;</summary>
		<author><name>Paul Strefling</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:How_to_get_special_keys_to_work&amp;diff=24068</id>
		<title>Talk:How to get special keys to work</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:How_to_get_special_keys_to_work&amp;diff=24068"/>
		<updated>2006-08-10T21:22:39Z</updated>

		<summary type="html">&lt;p&gt;Paul Strefling: Hint to enable hotkeys&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
The xmodmap step doesn't seem to work when using the &amp;quot;kdb&amp;quot; driver of xorg. Here are the changes I needed to make to my setup to get the &amp;quot;back&amp;quot; and &amp;quot;forward&amp;quot; keys to work (in diff -u format);&lt;br /&gt;
&lt;br /&gt;
 --- xkb/symbols/inet.oud        2004-12-01 08:36:04.000000000 +0100&lt;br /&gt;
 +++ xkb/symbols/inet    2005-03-08 19:59:32.587636120 +0100&lt;br /&gt;
 @@ -1875,6 +1875,16 @@&lt;br /&gt;
      key &amp;lt;I76&amp;gt;  {       [ XF86AudioLowerVolume  ]       };&lt;br /&gt;
  };&lt;br /&gt;
  &lt;br /&gt;
 +// IBM ThinkPad 41 Internet Keys&lt;br /&gt;
 +&lt;br /&gt;
 +partial alphanumeric_keys&lt;br /&gt;
 +xkb_symbols &amp;quot;tp41&amp;quot; {&lt;br /&gt;
 +    name[Group1]= &amp;quot;IBM ThinkPad 41 Internet Keys&amp;quot;;&lt;br /&gt;
 +&lt;br /&gt;
 +    key &amp;lt;I69&amp;gt;  {       [ F22           ]       };&lt;br /&gt;
 +    key &amp;lt;I6A&amp;gt;  {       [ F21           ]       };&lt;br /&gt;
 +};&lt;br /&gt;
 +&lt;br /&gt;
  // Trust&lt;br /&gt;
  &lt;br /&gt;
  partial alphanumeric_keys&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 --- xkb/rules/xorg.lst.oud      2004-12-01 08:36:05.000000000 +0100&lt;br /&gt;
 +++ xkb/rules/xorg.lst  2005-03-07 20:55:21.000000000 +0100&lt;br /&gt;
 @@ -97,6 +97,7 @@&lt;br /&gt;
    sven         SVEN Ergonomic 2500&lt;br /&gt;
    symplon      Symplon PaceBook (tablet PC)&lt;br /&gt;
    toshiba_s3000        Toshiba Satellite S3000&lt;br /&gt;
 +  tp41         IBM ThinkPad 41 Internet Keys&lt;br /&gt;
    trust                Trust Wireless Keyboard Classic&lt;br /&gt;
    trustda      Trust Direct Access Keyboard&lt;br /&gt;
    yahoo                Yahoo! Internet Keyboard&lt;br /&gt;
&lt;br /&gt;
 --- xkb/rules/xorg.oud  2004-12-01 08:36:05.000000000 +0100&lt;br /&gt;
 +++ xkb/rules/xorg      2005-03-07 20:45:59.000000000 +0100&lt;br /&gt;
 @@ -120,7 +120,7 @@&lt;br /&gt;
                qtronix \&lt;br /&gt;
                samsung4500 samsung4510 \&lt;br /&gt;
                sk1300 sk2500 sk6200 sk7100 \&lt;br /&gt;
 -              sven symplon toshiba_s3000 trust trustda yahoo&lt;br /&gt;
 +              sven symplon toshiba_s3000 tp41 trust trustda yahoo&lt;br /&gt;
 &lt;br /&gt;
  ! model         =       symbols&lt;br /&gt;
    $inetkbds     =       +inet(%m)&lt;br /&gt;
&lt;br /&gt;
 --- xkb/rules/xorg.xml.oud      2004-12-01 08:36:05.000000000 +0100&lt;br /&gt;
 +++ xkb/rules/xorg.xml  2005-03-07 20:52:35.000000000 +0100&lt;br /&gt;
 @@ -975,6 +975,13 @@&lt;br /&gt;
      &amp;lt;/model&amp;gt;&lt;br /&gt;
      &amp;lt;model&amp;gt;&lt;br /&gt;
        &amp;lt;configItem&amp;gt;&lt;br /&gt;
 +        &amp;lt;name&amp;gt;tp41&amp;lt;/name&amp;gt;&lt;br /&gt;
 +        &amp;lt;description&amp;gt;IBM Thinkpad 41 Internet Keys&amp;lt;/description&amp;gt;&lt;br /&gt;
 +        &amp;lt;description xml:lang=&amp;quot;nl&amp;quot;&amp;gt;IBM ThinkPad 41 internet toetsen&amp;lt;/description&amp;gt;&lt;br /&gt;
 +      &amp;lt;/configItem&amp;gt;&lt;br /&gt;
 +    &amp;lt;/model&amp;gt;&lt;br /&gt;
 +    &amp;lt;model&amp;gt;&lt;br /&gt;
 +      &amp;lt;configItem&amp;gt;&lt;br /&gt;
          &amp;lt;name&amp;gt;trust&amp;lt;/name&amp;gt;&lt;br /&gt;
          &amp;lt;description&amp;gt;Trust Wireless Keyboard Classic&amp;lt;/description&amp;gt;&lt;br /&gt;
          &amp;lt;description xml:lang=&amp;quot;fr&amp;quot;&amp;gt;clavier classique Trust Wireless&amp;lt;/description&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Do not forget to add something like &amp;quot;+inet(tp41)&amp;quot; to /etc/X11/xorg.conf:&lt;br /&gt;
        (...)&lt;br /&gt;
        Option      &amp;quot;XkbLayout&amp;quot; &amp;quot;us_intl+inet(tp41)&amp;quot;&lt;br /&gt;
        (...)&lt;br /&gt;
&lt;br /&gt;
== Not T41 specific ==&lt;br /&gt;
&lt;br /&gt;
These keys are hardly T41 specific, they can also be found on the T30, T40, T42 and I'm sure several other ThinkPads in the X, R and G lineup.&lt;br /&gt;
&lt;br /&gt;
Actually, the above patches could be completed with the information of the other special keys found on some Thinkpads (which is listed in [[How_to_get_special_keys_to_work#xmodmap_configuration]]) and submitted as a request for enhancement with [http://bugs.freedesktop.org xorg's bugzilla]. However, firefox doesn't yet recognize keysyms like XF86Back, XF86Forward, so then firefox still needs to be patched manually (unless an enhancement is requested for firefox too).&lt;br /&gt;
&lt;br /&gt;
== Fake ACPI events? ==&lt;br /&gt;
&lt;br /&gt;
Not all keys generate ACPI events. Maybe it is feasible to have the ibm-acpi module check the CMOS (instead of having tpb checking /dev/nvram) and generate fake ACPI events for those keys. Even if it is feasible, that is probably way to hacky for a kernel module ... Still, it would be nice to only have to use scripts triggered by ACPI events and not both scripts for ACPI events and scripts for tpb.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
I think something like this is possible with ibm-acpi 0.10 already. It provides a proc file from which you can derive a table of CMOS states. You'd only have to figure the who is who of CMOS bits and write a daemon (or daemon like shell script) checking them regularly. This should be about what you suggest since tpb does the same thing with the bios ram. Of course generating ACPI events can not be done like that (or can it?), but you could trigger the ACPI action scripts directly then.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 01:02, 14 Mar 2005 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
It may be possible (I have a 770x, so don't have the special keys) to add the keys as real ACPI events, by altering the DSDT.  I've done this to enable ACPI events for Fn-(every labelled F key),Home,End,PgUp,PgDn on mine, and they aren't labelled with anything physically (no thinklight and physical brightness control).  The Embedded Controller  reports all events, including keys, by calling one of the _Qxx functions (you'll find a whole pile in the sourcecode for the DSDT).  If you then insert a fucntion in the same scope as the others like:-&lt;br /&gt;
 Method (_Q12, 0, NotSerialized) { \_SB.HKEY.MHKQ (0x1003) } //Fn-F3&lt;br /&gt;
when executed, ibm-acpi will then report an acpi event numbered 0x0001003.  You should find some functions, e.g. _Q1B For Fn-F12 identical to this.&lt;br /&gt;
&lt;br /&gt;
I found some IBM DSDT's had functions that made MKHQ calls for EC functions _Q63, _Q64, _Q4E, _Q4F, but did nothing on mine---maybe these are a good starting point.  Add a whole pile, and see if you get lucky! (At your own risk, of course... :/  But it should be pretty safe).&lt;br /&gt;
&lt;br /&gt;
Yes, the above sounds pretty identical to tpb, except with /proc/ibm/ecdump instead of /dev/nvram.  The above works very nicely, however there's luck involved in finding the right number, even if it exists!&lt;br /&gt;
&lt;br /&gt;
[[User:lentinj|lentinj]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Fn+F6 does not seem to generate an event on t41p even if the mask is set to 0xffff and experimental=1 is passed to ibm_acpi&lt;br /&gt;
[[User:tf|tf]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Bind Fn to super or hyper ==&lt;br /&gt;
&lt;br /&gt;
Hello &lt;br /&gt;
&lt;br /&gt;
Is it possible to bind Fn via Xmodmap to a key modifier such as hyper or super? Thanks&lt;br /&gt;
[[User:Oub|Oub]] 13:14, 6 February 2006 (CET): &lt;br /&gt;
----&lt;br /&gt;
I doubt it. The event for the {{key|Fn}} key is generated at release (as opposed to holding it where it serves it's usual special function). Hence you can't use it as a modifier. [[User:Wyrfel|Wyrfel]] 22:52, 6 February 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
==Bind Fn 12 say to F34 ==&lt;br /&gt;
Thanks Wyrfel for your reply, in order to display my question better, I use a new header: can I bind all the Fn Fx to hay F34 and the like?&lt;br /&gt;
[[User:Oub|Oub]] 21:33, 10 February 2006 (CET):&lt;br /&gt;
----&lt;br /&gt;
You can do this with all key '''combinations''' that support xmodmap (see the table). That means you can't do it with {{key|Fn}}}{{key|F12}}, because that combination doesn't generate a key event at all (it only generates an APM/ACPI event. Hence there is nothing vor xmodmap to remap.&lt;br /&gt;
&lt;br /&gt;
But what is your wider focus goal? I'm sure that what you want to do can be realized, anyway: You can write an ACPI script and event file for {{key|Fn}}{{key|F12}} and have the script start some tool that sends a F34 key to the X server. I'm sure this is possible.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 00:03, 11 February 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
==Can't bind Fn 12 ==&lt;br /&gt;
&lt;br /&gt;
Hello &lt;br /&gt;
&lt;br /&gt;
I  am using a R51 and I have compiled ibm-acpi monolithic in the kernel (not as module, maybe this is a mistake?). Anyway, I am using &lt;br /&gt;
suspend2, which I compiled in the kernel as well. Now I have bound &lt;br /&gt;
''to hibernate '' first to Fn 4, with the following script&lt;br /&gt;
 event=button[ /]sleep  &lt;br /&gt;
 action=/usr/local/sbin/mihibernate &lt;br /&gt;
&lt;br /&gt;
This works fine. Now I want to do the same for Fn12, so following the key table I did:  &lt;br /&gt;
&lt;br /&gt;
 event=button[/] ibm/hotkey HKEY 00000080 0000100c  &lt;br /&gt;
 action=/usr/local/sbin/mihibernate &lt;br /&gt;
&lt;br /&gt;
But that does not work. What is the problem? I tried even   &lt;br /&gt;
 echo enable,0xffff &amp;gt;/proc/acpi/ibm/hotkey &lt;br /&gt;
without success. Can anybody help me? &lt;br /&gt;
[[User:Oub|Oub]] 16:27, 4 March 2006 (CET):&lt;br /&gt;
----&lt;br /&gt;
The proper event line is&lt;br /&gt;
 event=ibm/hotkey HKEY 00000080 0000100c&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
Also, make sure that you are not using [thinkpad-acpi]. If &amp;lt;tt&amp;gt;event=button[ /]sleep&amp;lt;/tt&amp;gt; works for {{key|Fn}}{{key|F4}}, that indicates that you do. It might block the ibm-acpi driver. Check your kernel config and disable any thinkpad acpi driver except ibm-acpi.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 21:58, 4 March 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
:Hello&lt;br /&gt;
:&lt;br /&gt;
:It is odd, I am pretty sure, that I do not use [thinkpad-acpi], but [ibm-acpi], although event=button[ /]sleep works for FnF4, in any case I found out that &lt;br /&gt;
:&lt;br /&gt;
: event=(button/power|ibm/hotkey HKEY 00000080 0000100c)&lt;br /&gt;
:&lt;br /&gt;
:Works! What do you think of adding a subsection to the [[How to get special keys to work]] page, with some examples, like the following:&lt;br /&gt;
:&lt;br /&gt;
:from ''/etc/acpi/events/battery'':&lt;br /&gt;
 event=(button/power|ibm/hotkey HKEY 00000080 0000100c)  &lt;br /&gt;
 action=/usr/local/sbin/hibernate&lt;br /&gt;
:from ''/etc/acpi/events/lid''&lt;br /&gt;
 event=button/lid&lt;br /&gt;
 action=/usr/local/bin/mysleepram&lt;br /&gt;
:from ''/etc/acpi/events/sleepbtn''&lt;br /&gt;
 event=(button/sleep|ibm/hotkey HKEY 00000080 00001004)&lt;br /&gt;
 action=/usr/local/bin/mysleepram&lt;br /&gt;
:&lt;br /&gt;
:(Also ''event=button/sleep '' works for me)&lt;br /&gt;
:and then restart acpi:&lt;br /&gt;
:&lt;br /&gt;
 /etc/init.d/acpid restart&lt;br /&gt;
:&lt;br /&gt;
:[[User:Oub|Oub]] 13:22, 5 March 2006 (CET):&lt;br /&gt;
----&lt;br /&gt;
What you do with&lt;br /&gt;
 event=(button/power|ibm/hotkey HKEY 00000080 0000100c)  &lt;br /&gt;
is to make a logical nonexclusive OR between&lt;br /&gt;
 event=button/power&lt;br /&gt;
and&lt;br /&gt;
 event=ibm/hotkey HKEY 00000080 0000100c&lt;br /&gt;
. If the first works, the whole thing works. So that's pretty logical.&lt;br /&gt;
&lt;br /&gt;
Please, do a {{cmdroot|dmesg &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; grep thinkpad-acpi}} and do a {{cmdroot|dmesg &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; grep ibm-acpi}}. What is the output in either case?&lt;br /&gt;
&lt;br /&gt;
I see no sense in putting examples to the page that only confuse people because they are not correct. ibm-acpi generates the events listed in the table and nothing else. If you get something like &amp;lt;tt&amp;gt;button/sleep&amp;lt;/tt&amp;gt; it's not ibm-acpi generating it. You are running Debian, right? Let's hope they didn't patch the driver to generate different events.&lt;br /&gt;
&lt;br /&gt;
Also, you can always do {{cmdroot|tail -f /var/log/acpid}} to have a life view of the generated events.&lt;br /&gt;
&lt;br /&gt;
I am pretty sure that you are using thinkpad-acpi or - if not so - that something else must interfere.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 04:49, 6 March 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&lt;br /&gt;
:Hi &lt;br /&gt;
:&lt;br /&gt;
:Ok I admit everything is very odd. For the start, I seem to use &lt;br /&gt;
:ibm-acpi. As I said I am Debian,  but I compiled my own kernel :(2.6.10)(but not as a module, maybe this was a bad idee??)  and I used :the ibm-acpi driver which comes shipped with that kernel. I did not :download the driver from the official http://ibm-acpi.sourceforge.net/ :site. Here is the output of &lt;br /&gt;
:&lt;br /&gt;
:dmesg | grep acpi&lt;br /&gt;
 Kernel command line: ro  root=/dev/hda6 acpi_sleep=s3_bios&lt;br /&gt;
 tbxface-0118 [02] acpi_load_tables      : ACPI Tables successfully acquired&lt;br /&gt;
 evxfevnt-0094 [03] acpi_enable           : Transition to ACPI mode successful&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [df6ddaa8]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c1464768]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c1467328]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c146bba8]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c146b628]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c146b3e8]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c146b268]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c146dde8]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c1470d68]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c1470568]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c14719a8]&lt;br /&gt;
 ibm_acpi: IBM ThinkPad ACPI Extras v0.8&lt;br /&gt;
 ibm_acpi: http://ibm-acpi.sf.net/&lt;br /&gt;
 acpi_bus-0081 [08] acpi_bus_get_device   : Error getting context for object [c1467328]&lt;br /&gt;
 ibm_acpi: dock device not present&lt;br /&gt;
&lt;br /&gt;
:I don't understand the errors but anyway. Now the odd thing is that indeed the following works&lt;br /&gt;
:&lt;br /&gt;
 event=button[ /]sleep&lt;br /&gt;
 action=/usr/local/sbin/hibernate &lt;br /&gt;
:but   &lt;br /&gt;
 event=button[/]sleep  &lt;br /&gt;
 action=/usr/local/sbin/hibernate &lt;br /&gt;
&lt;br /&gt;
:Does not work. But from what you said, using the ibm_acpi neither of '''these strings ''' should  work? So I don't understand what is going on. [[User:Oub|Oub]] 20:28, 6 March 2006 (CET):&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
With any reasonably new kernel (2.6.16 in Thinkpad terms :-) ) and a good DSDT (say, like the one that comes inside the T43), you can get two classes of events: ACPI events (as in native ACPI events), and ibm-acpi hotkey events.&lt;br /&gt;
&lt;br /&gt;
This has nothing to do with thinkpad-acpi.&lt;br /&gt;
&lt;br /&gt;
Look under /proc/acpi/buttons.  If you have sleep and maybe hibernate/suspend in there (I don't know how fn+f12 is called when properly supported through ACPI DSDT, the T43 doesn't support it like that), then your Thinkpad can, and will generate proper ACPI events without the help of ibm-acpi.  This is valid for a complete ACPI config of kernel 2.6.16 with all modules loaded.&lt;br /&gt;
&lt;br /&gt;
And it will generate regular ibm-acpi hotkey events if you enable the feature and use the correct mask, which may or may not confuse the thinkpad (I am not sure the correct DSDT handlers the BIOS expect to run are called in this case).&lt;br /&gt;
&lt;br /&gt;
-- [[User:Hmh|hmh]] 2006-05-26 13:20 UTC&lt;br /&gt;
&lt;br /&gt;
==Turn on/off Wifi on Fn5 ==&lt;br /&gt;
Hi&lt;br /&gt;
&lt;br /&gt;
I hope this is the last question. I use a crude way to activate and deactivate my wificard: I remove and insert the relevant modules, with 2 simple scripts. Now the question is how can I bind Fn5 so, that it turns on and off the wificard? With my approach I need to fire up two scripts, and that I cannot bind to one button. Thanks &lt;br /&gt;
[[User:Oub|Oub]] 17:57, 5 March 2006 (CET):&lt;br /&gt;
&lt;br /&gt;
Try a {{cmdroot|cat /proc/acpi/ibm/bluetooth}}. Maybe it returns the state. If not, the other way would be to check if the USB bluetooth controller device is listed in {{path|/proc/bus/usb}} somewhere. It shouldn't be there if bluetooth is switched off and should be there if it is on.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 04:49, 6 March 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Split page?==&lt;br /&gt;
This page is getting too long. Maybe we should split it. I'd suggest moving the &amp;quot;Example applications&amp;quot; to a seperate page. &lt;br /&gt;
&lt;br /&gt;
[[User:Pebolle|Paul Bolle]] 22:46, 3 April 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
==DIY Firefox 1.5 xpi==&lt;br /&gt;
Here's how I maneged a Firefox 1.5 compatible plugin (source: google). Note that the wiki eats some of the xml tags (so look at the source too)&lt;br /&gt;
&lt;br /&gt;
 $ ls -1R tp41.xpi&lt;br /&gt;
 tp41.xpi/:&lt;br /&gt;
 chrome&lt;br /&gt;
 chrome.manifest&lt;br /&gt;
 install.rdf&lt;br /&gt;
 &lt;br /&gt;
 tp41.xpi/chrome:&lt;br /&gt;
 content&lt;br /&gt;
 &lt;br /&gt;
 tp41.xpi/chrome/content:&lt;br /&gt;
 tp41keysOverlay.xul&lt;br /&gt;
&lt;br /&gt;
 $ cat tp41.xpi/chrome.manifest&lt;br /&gt;
 content     tp41keys    chrome/content/&lt;br /&gt;
 overlay chrome://browser/content/browser.xul chrome://tp41keys/content/tp41keysOverlay.xul&lt;br /&gt;
&lt;br /&gt;
 $ cat tp41.xpi/install.rdf&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;RDF xmlns=&amp;quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;quot;&lt;br /&gt;
      xmlns:em=&amp;quot;http://www.mozilla.org/2004/em-rdf#&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;Description about=&amp;quot;urn:mozilla:install-manifest&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;em:id&amp;gt;tp41keys@tp41keys.org&amp;lt;/em:id&amp;gt;&lt;br /&gt;
     &amp;lt;em:version&amp;gt;1.0&amp;lt;/em:version&amp;gt;&lt;br /&gt;
     &amp;lt;em:type&amp;gt;2&amp;lt;/em:type&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;!-- Target Application this extension can install into,&lt;br /&gt;
          with minimum and maximum supported versions. --&amp;gt;&lt;br /&gt;
     &amp;lt;em:targetApplication&amp;gt;&lt;br /&gt;
       &amp;lt;Description&amp;gt;&lt;br /&gt;
         &amp;lt;em:id&amp;gt;{ec8030f7-c20a-464f-9b0e-13a3a9e97384}&amp;lt;/em:id&amp;gt;&lt;br /&gt;
         &amp;lt;em:minVersion&amp;gt;1.0+&amp;lt;/em:minVersion&amp;gt;&lt;br /&gt;
         &amp;lt;em:maxVersion&amp;gt;1.5.0.*&amp;lt;/em:maxVersion&amp;gt;&lt;br /&gt;
       &amp;lt;/Description&amp;gt;&lt;br /&gt;
     &amp;lt;/em:targetApplication&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;!-- Front End MetaData --&amp;gt;&lt;br /&gt;
     &amp;lt;em:name&amp;gt;IBM ThinkPad 41 Keys&amp;lt;/em:name&amp;gt;&lt;br /&gt;
     &amp;lt;em:description&amp;gt;Two Browser Navigation Keys&amp;lt;/em:description&amp;gt;&lt;br /&gt;
     &amp;lt;em:creator&amp;gt;Paul Bolle&amp;lt;/em:creator&amp;gt;&lt;br /&gt;
     &amp;lt;em:homepageURL&amp;gt;http://www.example.com/tp41keys.xpi&amp;lt;/em:homepageURL&amp;gt;&lt;br /&gt;
   &amp;lt;/Description&amp;gt;&lt;br /&gt;
 &amp;lt;/RDF&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ cat tp41.xpi/chrome/content/tp41keysOverlay.xul&lt;br /&gt;
 &amp;lt;?xml version='1.0'?&amp;gt;&lt;br /&gt;
 &amp;lt;!DOCTYPE overlay&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;overlay id='tp41keysOverlay'&lt;br /&gt;
     xmlns='http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul'&amp;gt;&lt;br /&gt;
 &amp;lt;!-- For Firefox --&amp;gt;&lt;br /&gt;
     &amp;lt;keyset id='mainKeyset'&amp;gt;&lt;br /&gt;
         &amp;lt;key id='tp41BackKey' keycode='VK_F21' command='Browser:Back' /&amp;gt;&lt;br /&gt;
         &amp;lt;key id='tp41ForwardKey' keycode='VK_F22' command='Browser:Forward' /&amp;gt;&lt;br /&gt;
     &amp;lt;/keyset&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;/overlay&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ cat .mozilla/firefox/*.default/extensions/tp41keys\@tp41keys.org &lt;br /&gt;
 ~/tp41.xpi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ibm-acpi hint==&lt;br /&gt;
&lt;br /&gt;
I would like to add a hint under ibm-acpi to enable all hotkeys at boot, but I can not seem to get the HINT template to work:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{HINT|To enable all hotkeys on boot in debian, create the file /etc/modprobe.d/ibm_acpi containing 'options ibm_acpi hotkey=enable,0xffff'}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It outputs:&lt;br /&gt;
&lt;br /&gt;
{{HINT|To enable all hotkeys on boot in debian, create the file /etc/modprobe.d/ibm_acpi containing 'options ibm_acpi hotkey=enable,0xffff'}}&lt;br /&gt;
&lt;br /&gt;
Any ideas on how to get this to work? Also, does it even belong in the page?&lt;br /&gt;
&lt;br /&gt;
--[[User:Paul Strefling|Paul Strefling]] 23:22, 10 August 2006 (CEST)&lt;/div&gt;</summary>
		<author><name>Paul Strefling</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=User:Paul_Strefling&amp;diff=23407</id>
		<title>User:Paul Strefling</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=User:Paul_Strefling&amp;diff=23407"/>
		<updated>2006-07-20T15:37:57Z</updated>

		<summary type="html">&lt;p&gt;Paul Strefling: Hdaps and 3D Fixed!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;x60 with Debian Etch&lt;br /&gt;
&lt;br /&gt;
'''Current Issues'''&lt;br /&gt;
*Poor 3D&lt;br /&gt;
Fixed. The problem was the upgrade from Xorg 6.9 to 7.0 The i810 drivers were too new for the mesa packages. Upgrading to libgl1-mesa-dri libgl1-mesa-glx in experimental fixed the problem. &lt;br /&gt;
*HDAPS&lt;br /&gt;
Fixed. I posted my solution on the Mailing list, but I will repost here:&lt;br /&gt;
&lt;br /&gt;
As you all know the the Thinkpad X60 does not exist in the whitelist. My &lt;br /&gt;
 first attempt at getting hdaps working in debian was to simply add the &lt;br /&gt;
 model into the whitelist. This is how it ended:&lt;br /&gt;
 &lt;br /&gt;
 hdaps: supported laptop not found!&lt;br /&gt;
 hdaps: driver init failed (ret=-6)!&lt;br /&gt;
 &lt;br /&gt;
 With help from Insount on #hdaps he recommended for me to load tp_smapi. &lt;br /&gt;
 Directions are available here: http://www.thinkwiki.org/wiki/tp_smapi.&lt;br /&gt;
 While mounting the module,  this is what dmesg had to say:&lt;br /&gt;
 &lt;br /&gt;
 tp_base: tp_base 0.22 loaded.&lt;br /&gt;
  tp_smapi: tp_smapi 0.22 loading...&lt;br /&gt;
 tp_smapi: successfully loaded (smapi_port=0xb2).&lt;br /&gt;
 hdaps: supported laptop not found!&lt;br /&gt;
 hdaps: driver init failed (ret=-6)!&lt;br /&gt;
 &lt;br /&gt;
 Forcing the hdaps module to load:&lt;br /&gt;
 'insmod ./hdaps.ko force=1'&lt;br /&gt;
 &lt;br /&gt;
 dmesg reported:&lt;br /&gt;
 &lt;br /&gt;
 hdaps: initial latch check good (0x05).&lt;br /&gt;
 hdaps: device successfully initialized.&lt;br /&gt;
 input: hdaps as /class/input/input3&lt;br /&gt;
 hdaps: driver successfully loaded.&lt;br /&gt;
 &lt;br /&gt;
  cat /sys/devices/platform/hdaps/position&lt;br /&gt;
 Verifies that it is working.&lt;br /&gt;
 &lt;br /&gt;
 To complete the installation:&lt;br /&gt;
 make install HDAPS=1&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 and add &amp;quot;force=1&amp;quot; to hdaps in modprobe.conf (or equiv).&lt;br /&gt;
&lt;br /&gt;
To get the module to load in debian first add &lt;br /&gt;
 tp_smapi&lt;br /&gt;
 hdaps&lt;br /&gt;
to /etc/modules&lt;br /&gt;
and then add the file /etc/modprobe.d/hdaps and have it contain:&lt;br /&gt;
 options hdaps force=1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Hibernating&lt;br /&gt;
&lt;br /&gt;
I also have both hibernating and sleeping working. The only problem is that sda1/ata1 complains a whole lot and ata1 resets.&lt;br /&gt;
&lt;br /&gt;
I will clean this up when I get some more time.&lt;/div&gt;</summary>
		<author><name>Paul Strefling</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=User:Paul_Strefling&amp;diff=23256</id>
		<title>User:Paul Strefling</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=User:Paul_Strefling&amp;diff=23256"/>
		<updated>2006-07-18T16:50:52Z</updated>

		<summary type="html">&lt;p&gt;Paul Strefling: Current Issues&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;x60 with Debian Etch&lt;br /&gt;
&lt;br /&gt;
'''Current Issues'''&lt;br /&gt;
*Poor 3D&lt;br /&gt;
*HDAPS&lt;br /&gt;
*Hibernating&lt;/div&gt;</summary>
		<author><name>Paul Strefling</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:How_to_enable_integrated_fingerprint_reader_with_BioAPI&amp;diff=23255</id>
		<title>Talk:How to enable integrated fingerprint reader with BioAPI</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:How_to_enable_integrated_fingerprint_reader_with_BioAPI&amp;diff=23255"/>
		<updated>2006-07-18T16:42:28Z</updated>

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

		<summary type="html">&lt;p&gt;Paul Strefling: Debian + x60 issues&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Is anyone have the same troubles as me? I have am running Debian Etch and I can not seem to get 3D working. I also have no idea how to get hibernate working, I have tried a couple of things but it looks like with the combination of Debian, SATA and duo core there are some complications. I have not yet got hdaps working, but I beleive I just need to add this model in drivers/hwmon/hdaps.c &amp;quot;struct dmi_system_id hdaps_whitelist[]&amp;quot; and bust out another kernel.&lt;br /&gt;
[[User:Paul Strefling|Paul Strefling]] 18:11, 18 July 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;lt;rant&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The new [http://www.notebookreview.com/assets/8714.jpg key layout] is ''evil''.&lt;br /&gt;
&lt;br /&gt;
For crying out loud, with what kind of accuracy do they think I can place my right pinky, with the view obstructed by my palm? It was bad enough when they put {{ibmkey|Backward|#494949}} and {{ibmkey|Forward|#494949}} in the &amp;quot;vacant&amp;quot; space around {{key|Up}}, so that I keep switching pages in my browser when I try to scroll up. But making the right {{key|Ctrl}} and {{key|Alt}} keys narrower than a finger and penalizing any miss with a focus-grabbing {{key|Menu}} popup? That's insane.&lt;br /&gt;
&lt;br /&gt;
Oh, yes, I'm sure the Pointy Haired purchasers will love it (&amp;quot;ooh, more keys!&amp;quot;). Those Lenovo engineers, they seem to have lost all dignity when they switched employers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;lt;/rant&amp;gt;&amp;lt;/nowiki&amp;gt; --[[User:Thinker|Thinker]] 14:41, 5 Jan 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Holy cow, I totally agree.  I never understand decisions like this, for all you have to do is ask some people that *actually use the laptop* every day and they will tell you why this is bad / good.  I just placed a micro-rant about the addition of the Windows keys too.  Looks like I'll stay with my good old T43p for a while!&lt;br /&gt;
&lt;br /&gt;
-[[User:gsmenden|gsmenden]] 14:41, 5 Jan 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
Totally agree, the windows and browser keys are ''evil''.&lt;br /&gt;
&lt;br /&gt;
I was afraid when the Z series where introduced with Windows keys, that other future ThinkPads would also have them, and it seems I was right.&lt;br /&gt;
&lt;br /&gt;
I will be sticking with my current ThinkPad for as long as I can, one can always hope they ''correct'' this problem in later models, but I am not hopeful.&lt;br /&gt;
&lt;br /&gt;
--[[User:Tonko|Tonko]] 18:15, 5 Jan 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Don't revert! ==&lt;br /&gt;
&lt;br /&gt;
My Edit is based on new information. There *ARE* single core models! Look at the X60/X60s data sheet: http://www5.pc.ibm.com/europe/me.nsf/LenovoDetail?OpenAgent&amp;amp;key=ThinkPad:ThinkPad+X+Series:Data+Sheet:English&amp;amp;&amp;amp;cntry=UK-L&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Sorry, I disagree.&lt;br /&gt;
&lt;br /&gt;
I do not think those datasheets cannot be trusted, the only source I think that can more or less be trusted is tabook.pdf. Those datasheets contain specs of *possible* configs, configs that might never be released. We have seen that with other machine types where datasheets or HMM's have specifications that never shipped.&lt;br /&gt;
&lt;br /&gt;
I think we should stick with actually released hardware specs.&lt;br /&gt;
&lt;br /&gt;
--[[User:Tonko|Tonko]] 02:53, 15 January 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
I agree, Tonko, the feature listing only makes sense if it holds only information of models that actually exist like that by default configuration. So tabook is the most reliable source. However, i discovered that the product overview page in the support area of the lenovo page seems to be updated more frequently than tabook and i would think that it also only lists actually existing configurations.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 11:59, 15 January 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
I have updated the processor types for X60 and X60s as per anandtech CES 2006 report [http://www.anandtech.com/tradeshows/showdoc.aspx?i=2665&amp;amp;p=6 link here].&amp;lt;br&amp;gt;&lt;br /&gt;
--[[User:Rushibhai|Rushibhai]] 08:17, 22 January 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
Hei,&lt;br /&gt;
&lt;br /&gt;
if you read just the last entries before yours n this talk page, you will realize that anandtech is not the source we prefer to gather the data from. It rather is tabook.&lt;br /&gt;
&lt;br /&gt;
Furthermore, there are separate [[:Category:X60]] and [[:Category:X60s]] pages.&lt;br /&gt;
&lt;br /&gt;
I reverted your edit.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 12:02, 22 January 2006 (CET)&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Paul Strefling</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=AD1981HD&amp;diff=23127</id>
		<title>AD1981HD</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=AD1981HD&amp;diff=23127"/>
		<updated>2006-07-11T16:31:29Z</updated>

		<summary type="html">&lt;p&gt;Paul Strefling: added alsa conf&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;
=== AD1981HD ===&lt;br /&gt;
This is a Analog Devices High-Definition Audio 1.0 controller&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Chipset: AD1981HD&lt;br /&gt;
* Interface: HD Audio 1.0&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 OSS driver ===&lt;br /&gt;
??&lt;br /&gt;
&lt;br /&gt;
=== Linux ALSA driver ===&lt;br /&gt;
This chip works with '''snd-hda-intel''' driver. Possible cracking noises can be avoided by adding the&lt;br /&gt;
position_fix=2 optional argument for the module.&lt;br /&gt;
* The AD1981HD installs by default in Debian. To get it to work you must first install it with alsaconf.&lt;br /&gt;
&lt;br /&gt;
=== ThinkPads this chip may be found in ===&lt;br /&gt;
* {{T60}}, {{T60p}}&lt;br /&gt;
* {{X60}}, {{X60s}}&lt;br /&gt;
* {{Z60m}}, {{Z60t}}&lt;br /&gt;
&lt;br /&gt;
=== Datasheets ===&lt;br /&gt;
* [http://www.analog.com/en/prod/0,2877,AD1981HD,00.html Analog Devices page for the AD1981HD]&lt;br /&gt;
* [http://www.analog.com/UploadedFiles/Data_Sheets/338118709AD1981HD_0.pdf Direct link to the AD1981HD datasheet]&lt;br /&gt;
&lt;br /&gt;
[[Category:Components]]&lt;/div&gt;</summary>
		<author><name>Paul Strefling</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Supported_Boot_Devices&amp;diff=23126</id>
		<title>Supported Boot Devices</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Supported_Boot_Devices&amp;diff=23126"/>
		<updated>2006-07-11T16:24:40Z</updated>

		<summary type="html">&lt;p&gt;Paul Strefling: /* X Series */  x60 usb HD and FDD&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;&amp;quot; | __TOC__&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
The following table headings shall designate the following meanings...&lt;br /&gt;
&lt;br /&gt;
* FDD = Internal/UltraBay Diskette (&amp;quot;Floppy&amp;quot;) drive (also called &amp;quot;Legacy FDD&amp;quot;)&lt;br /&gt;
* CD = Internal/UltraBay CD/DVD(-R/-RW/-RAM) drive&lt;br /&gt;
* Network = any type of network boot support (such as PXE)&lt;br /&gt;
* PCMCIA = any memory device connected via the PCMCIA/PC Card/CardBus port&lt;br /&gt;
* USB HD = any hard drive/flash drive/pen drive connected via the USB port&lt;br /&gt;
* USB FDD = Diskette (&amp;quot;Floppy&amp;quot;) drive connected via the USB port&lt;br /&gt;
* USB CD = CD/DVD(-R/-RW/-RAM) drive connected via the USB port&lt;br /&gt;
* FireWire = any memory device connected via the FireWire (i.Link/IEEE 1394) port&lt;br /&gt;
&lt;br /&gt;
The fields should be filled with one of the following:&lt;br /&gt;
* ? = unknown / untested&lt;br /&gt;
* yes = supported (may be selected from the BIOS)&lt;br /&gt;
* no = not supported (BIOS incapable of booting to this type of device)&lt;br /&gt;
* part = partially working (configuration not retained on reboot/requires firmware workaround/only on some devices/USB1 only).  Please add footnote/link documenting the specifics.&lt;br /&gt;
* v#.## = only with BIOS versions &amp;amp;ge; #.##&lt;br /&gt;
* N/A = not applicable&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;9&amp;quot; style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
====Numbered Series====&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#cfefcf;&amp;quot; | Model&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | FDD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | CD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | Network&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | PCMCIA&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB HD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB FDD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB CD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | FireWire HD&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:570 | 570]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:570E | 570E]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:600 | 600]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|5}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:600E | 600E]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:600X | 600X]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:755CD | 755CD]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:755CDV | 755CDV]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:755CV | 755CV]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:755CX | 755CX]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:770 | 770]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:770E | 770E]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:770X | 770X]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:770Z | 770Z]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;9&amp;quot; style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====A Series====&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#cfefcf;&amp;quot; | Model&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | FDD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | CD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | Network&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | PCMCIA&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB HD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB FDD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB CD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | FireWire HD&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:A20m | A20m]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no  &amp;lt;!-- According to message on ML ID: 436936E5.30709@chartermi.net --&amp;gt;&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:A20p | A20p]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:A21e | A21e]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:A21m | A21m]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:A21p | A21p]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:A22e | A22e]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:A22m | A22m]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no  &amp;lt;!-- According to message on ML ID: 436936E5.30709@chartermi.net --&amp;gt;&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:A22p | A22p]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:A30 | A30]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no  &amp;lt;!-- According to message on ML ID: 436936E5.30709@chartermi.net --&amp;gt;&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:A30p | A30p]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:A31 | A31]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes  &amp;lt;!-- According to message on ML ID: 436936E5.30709@chartermi.net --&amp;gt;&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:A31p | A31p]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;9&amp;quot; style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====G Series====&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#cfefcf;&amp;quot; | Model&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | FDD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | CD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | Network&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | PCMCIA&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB HD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB FDD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB CD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | FireWire HD&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:G40 | G40]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:G41 | G41]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;9&amp;quot; style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====R Series====&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#cfefcf;&amp;quot; | Model&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | FDD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | CD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | Network&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | PCMCIA&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB HD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB FDD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB CD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | FireWire HD&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:R30 | R30]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:R31 | R31]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no  &amp;lt;!-- According to message on ML ID: 441D6183.6070009@rogers.com --&amp;gt;&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes &amp;lt;!-- According to message on ML ID: 441D6183.6070009@rogers.com --&amp;gt;&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no  &amp;lt;!-- According to message on ML ID: 441D6183.6070009@rogers.com --&amp;gt;&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:R32 | R32]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:R40 | R40]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:R40e | R40e]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:R50 | R50]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|3}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:R50e | R50e]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:R50p | R50p]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|3}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:R51 | R51]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|3}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:R52 | R52]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|3}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;9&amp;quot; style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====T Series====&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#cfefcf;&amp;quot; | Model&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | FDD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | CD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | Network&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | PCMCIA&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB HD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB FDD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB CD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | FireWire HD&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:T20 | T20]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:T21 | T21]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:T22 | T22]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:T23 | T23]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|4}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes &amp;lt;!-- seen on IBM BIOS simulator, not tested --&amp;gt;&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes &amp;lt;!-- seen on IBM BIOS simulator, not tested --&amp;gt;&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:T30 | T30]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:T40 | T40]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|3}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:T40p | T40p]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|3}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:T41 | T41]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|3}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:T41p | T41p]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|3}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:T42 | T42]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|3}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:T42p | T42p]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|3}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:T43 | T43]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|3}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:T43p | T43p]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|3}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:T60 | T60]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;9&amp;quot; style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====X Series====&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#cfefcf;&amp;quot; | Model&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | FDD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | CD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | Network&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | PCMCIA&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB HD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB FDD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB CD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | FireWire HD&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:X20 | X20]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:X21 | X21]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:X22 | X22]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:X23 | X23]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:X24 | X24]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:X30 | X30]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | part{{footnote|1}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:X31 | X31]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:X32 | X32]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:X40 | X40]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:X41 | X41]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:X41 Tablet | X41 Tablet]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:X41 Tablet | X60]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:X41 Tablet | X60s]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;9&amp;quot; style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====Z Series====&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#cfefcf;&amp;quot; | Model&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | FDD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | CD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | Network&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | PCMCIA&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB HD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB FDD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB CD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | FireWire HD&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:X41 Tablet | Z60m]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|6}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:X41 Tablet | Z60t]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;9&amp;quot; style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====Others====&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#cfefcf;&amp;quot; | Model&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | FDD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | CD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | Network&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | PCMCIA&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB HD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB FDD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB CD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | FireWire HD&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:TransNote | TransNote]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{footnotes|&lt;br /&gt;
#Choosing USB Boot and booting with a USB flash drive plugged in makes boot procedure extremely long (1m30 just to pass the IBM splash screen). However, it ends up booting the OS in the USB drive (assuming one is indeed present).&lt;br /&gt;
#Internal CD/FD means the ones in the UltraBase for X series and 570 models.&lt;br /&gt;
#Requires an external Floppy drive attached to Port Replicator or Dock&lt;br /&gt;
#Requires that the user select the drive from the disk option shown after clicking F12 on the boot sequence.&lt;br /&gt;
#Boots from a flash memory drive, i.e. CompactFlash (with PCMCIA adapter).&lt;br /&gt;
#It is working with lilo boot loader, however it failed with syslinux.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Paul Strefling</name></author>
		
	</entry>
</feed>