<?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=Rkan</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=Rkan"/>
	<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/wiki/Special:Contributions/Rkan"/>
	<updated>2026-06-09T23:09:02Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.12</generator>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_get_special_keys_to_work&amp;diff=38905</id>
		<title>How to get special keys to work</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_get_special_keys_to_work&amp;diff=38905"/>
		<updated>2008-09-24T16:30:48Z</updated>

		<summary type="html">&lt;p&gt;Rkan: /* Firefox (&amp;lt;3.0) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
The following table gives an overview over the special keys found on ThinkPads and what is needed to make them work.&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
! key !! standard function{{footnote|1}} !! tools supporting key{{footnote|2}} !! configurability{{footnote|3}} !! remarks&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}} || - || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || on release without completed key combination&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F1}} || - || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F2}} || lock screen || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full || in models from T/X/Z 60 onwards&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F3}} || blank screen || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F4}} || suspend to ram || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full || may generate ACPI event when not enabled in the ibm-acpi hotkey mask&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F5}} || switch bluetooth || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full || in models starting from 2002&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F6}} || - || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F7}} || toggle display || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]], [[#tpb configuration|tpb]] || additional actions || [[Sample Fn-F7 script]]&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F8}} || toggle trackpoint/touchpad || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]], [[#tpb configuration|tpb]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F9}} || eject from dock || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F10}} || - || [[#ibm-acpi events|ibm-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F11}} || - || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F12}} || hibernate || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full || may generate ACPI event when not enabled in the ibm-acpi hotkey mask&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Home}} / {{key|Fn}}{{key|Pos1}} || brightness up || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|End}} || brightness down || [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|PageUp}} || toggle thinklight || [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Space}} || toggle zoom || [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Ins}} || - || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]]|| full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Del}} || - || [[#ibm-acpi events|ibm-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Backspace}} || - || [[#ibm-acpi events|ibm-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|NumLock}} || - || [[#xmodmap configuration|xmodmap]] || make working ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Windows}} || - || [[#xmodmap configuration|xmodmap]] || remapping ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Access IBM|#495988}} or {{ibmkey|ThinkPad|#494949}} or {{ibmkey|ThinkVantage|#495988}} || help application || [[thinkpad-acpi]],[[#tpb configuration|tpb]], [[KMilo]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Home|#494949}} || open web browser || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]], [[KMilo]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Search|#494949}} || open search application || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]], [[KMilo]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Mail|#494949}} || open mail application || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]], [[KMilo]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Favorites|#494949}} || open favorites || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Reload|#494949}} || reload web page || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Abort|#494949}} || abort loading page || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Backward|#494949}} || previous page || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full ||  ext. keyboards and ThinkPads starting from 2002&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Forward|#494949}} || next page || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || ext. keyboards and ThinkPads starting from 2002&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume up|#494949}} || volume up || [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume down|#494949}} || volume down || [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume mute|#494949}} || mute volume || [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Play/Pause|#494949}} || start/pause playback  || [[#xmodmap configuration|xmodmap]] || full || {{X60s}} (Fn+Arrow Down)&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Stop|#494949}} || stop playback || [[#xmodmap configuration|xmodmap]] || full || {{X60s}} (Fn+Arrow Up)&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Next|#494949}} || play next || [[#xmodmap configuration|xmodmap]] || full || {{X60s}} (Fn+Arrow Right)&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Previous|#494949}} || play previous || [[#xmodmap configuration|xmodmap]] || full || {{X60s}} (Fn+Arrow Left)&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Power|#494949}} || shutdown || [[#ibm-acpi events|ibm-acpi]],[[thinkpad-acpi]] || full || triggered on pressing 3secs, but notebook goes off on 5sec press&lt;br /&gt;
|-&lt;br /&gt;
| Display lid || blank screen || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| Ultrabay lid || announce ultrabay change || [[#ibm-acpi events|ibm-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| Dock eject || eject from dock || [[#ibm-acpi events|ibm-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet power|#494949}} || shutdown || [[#ibm-acpi events|ibm-acpi]] || full || triggered on pressing 3secs, but notebook goes off on 5sec press&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet orientation|#494949}} || rotates screen || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet shortcut|#494949}} || shortcut menu || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Esc|#494949}} || esc key || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Enter|#494949}} || enter key || [[#mapping keys with setkeycodes|setkeycodes]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Up|#494949}} || up key || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Down|#494949}} || down key || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet (unlabeled)|#494949}} || down key || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For completeness, note that the WiFi enable/disable switch is located (on the X61 and other models that have it) just under the front edge of the base of the machine.  You should see a small horizontal slider switch.  Enable by sliding it rightwards, disable by sliding it leftwards.&lt;br /&gt;
&lt;br /&gt;
==Triggering key events==&lt;br /&gt;
===ibm-acpi/thinkpad-acpi events===&lt;br /&gt;
Some of the following events require a {{cmdroot|echo enable,0xffff &amp;gt;/proc/acpi/ibm/hotkey}} (when using ibm-acpi) in order to make acpi able to get information on them. Since the newer thinkpad-acpi has a larger number of bits that can be set in the mask, you might try {{cmdroot|echo enable,0xffffffff &amp;gt;/proc/acpi/ibm/hotkey}} if you are using this driver. These events can be used to [[How to configure acpid|configure acpid]].&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
|+ events triggered by [[ibm-acpi]] for {{path|/etc/acpi/events}} files. May vary on different models.&lt;br /&gt;
! key !! event&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F1}} || ibm/hotkey HKEY 00000080 00001001&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F2}} || ibm/hotkey HKEY 00000080 00001002&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F3}} || ibm/hotkey HKEY 00000080 00001003&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F4}} || ibm/hotkey HKEY 00000080 00001004&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F5}} || ibm/hotkey HKEY 00000080 00001005&lt;br /&gt;
|- &lt;br /&gt;
| {{key|Fn}}{{key|F6}} || ibm/hotkey HKEY 00000080 00001006&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F7}} || ibm/hotkey HKEY 00000080 00001007&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F8}} || ibm/hotkey HKEY 00000080 00001008&lt;br /&gt;
|- &lt;br /&gt;
| {{key|Fn}}{{key|F9}} || ibm/hotkey HKEY 00000080 00001009 &lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F10}} || ibm/hotkey HKEY 00000080 0000100a&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F11}} || ibm/hotkey HKEY 00000080 0000100b &lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F12}} || ibm/hotkey HKEY 00000080 0000100c&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Backspace}} || ibm/hotkey HKEY 00000080 0000100d&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Ins}} || ibm/hotkey HKEY 00000080 0000100e &lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Del}} || ibm/hotkey HKEY 00000080 0000100f &lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Home}}/{{key|Fn}}{{key|Pos1}} || ibm/hotkey HKEY 00000080 00001010&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|End}} || ibm/hotkey HKEY 00000080 00001011&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|PgUp}} || ibm/hotkey HKEY 00000080 00001012&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Space}} || ibm/hotkey HKEY 00000080 00001014&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume up|#494949}}|| ibm/hotkey HKEY 00000080 00001015&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume down|#494949}} || ibm/hotkey HKEY 00000080 00001016&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume mute|#494949}} || ibm/hotkey HKEY 00000080 00001017&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Access IBM|#495988}} or {{ibmkey|ThinkPad|#494949}} or {{ibmkey|ThinkVantage|#495988}} || ibm/hotkey HKEY 00000080 00001018&lt;br /&gt;
|-&lt;br /&gt;
| Ultrabay eject || ibm/bay MSTR 00000003 00000000&lt;br /&gt;
|-&lt;br /&gt;
| Ultrabay inserted || ibm/bay MSTR 00000001 00000000 &lt;br /&gt;
|-&lt;br /&gt;
| Dock eject || ibm/dock GDCK 00000003 00000001 &lt;br /&gt;
|-&lt;br /&gt;
| Wireless switch || ibm/hotkey HKEY 00000080 00007000 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
By disassembling and editing the DSDT, more events can be added.  HKEY events are triggered by calls to the MKHQ function, e.g. &amp;lt;tt&amp;gt;\_SB.PCI0.LPC.EC.HKEY.MHKQ(0Ã—1007)&amp;lt;/tt&amp;gt; will trigger &amp;quot;ibm/hotkey HKEY 00000080 00001007&amp;quot;.  Most of these can be found in &amp;lt;tt&amp;gt;_Qxx&amp;lt;/tt&amp;gt; methods within the DSDT, which are executed on embedded controller events, e.g. _Q10 is triggered by pressing Fn-F7.  You can add a call to MKHQ into an existing &amp;lt;tt&amp;gt;_Qxx&amp;lt;/tt&amp;gt; method to get it recognized by ibm-acpi as well as creating new &amp;lt;tt&amp;gt;_Qxx&amp;lt;/tt&amp;gt; methods, which if you're lucky will correspond to an EC event that IBM never used (e.g. A 770 will send Fn-Home/End/PgUp/PgDn to ibm-acpi if hacked in this fashion). For example, [http://www.wormnet.eu/ibm-g40/morebuttons.dsl this is a modified block of DSDT for a G40].&lt;br /&gt;
&lt;br /&gt;
=== ACPI events from the &amp;lt;tt&amp;gt;button&amp;lt;/tt&amp;gt; module===&lt;br /&gt;
&lt;br /&gt;
A few keys can generate ACPI events that result from the &amp;lt;tt&amp;gt;button&amp;lt;/tt&amp;gt; kernel module, as long as they are masked off in the &amp;lt;tt&amp;gt;ibm-acpi&amp;lt;/tt&amp;gt;/&amp;lt;tt&amp;gt;thinkpad-acpi&amp;lt;/tt&amp;gt; hotkey's mask or the hotkey function of the latter module is disabled.&lt;br /&gt;
&lt;br /&gt;
If you want the ThinkPad's BIOS and ACPI methods to know about these keys being pressed, you probably want to leave them masked out from ibm-acpi, and use their non-HKEY events listed below, instead.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
|+ events triggered by ACPI when hotkey is masked out or disabled. &lt;br /&gt;
! key !! event !! T60 event&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Power|#494949}} || button/power PWRF 00000080 xxxxxxxx || button/power PWRF 00000080 00000001&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F4}} || button/sleep SLPB 00000080 00000001 || button/sleep SLPB 00000080 00000001&lt;br /&gt;
|-&lt;br /&gt;
| Display lid || button/lid LID 00000080 xxxxxxxx || button/lid LID 00000080 00000001&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===tpb configuration===&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
|+ configuration keywords for [[tpb]] (to put in {{path|/etc/tpbrc}})&lt;br /&gt;
! key !! config keyword&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Access IBM|#495988}} or {{ibmkey|ThinkPad|#494949}} || THINKPAD&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Home|#494949}} || HOME&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Search|#494949}} || SEARCH&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Mail|#494949}} || MAIL&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Favorites|#494949}} || FAVORITES&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Reload|#494949}} || RELOAD&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Abort|#494949}} || ABORT&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Backward|#494949}} || BACKWARD&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Forward|#494949}} || FORWARD&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}} || FN&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Space}} || CALLBACK (zoom on/off)&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|PageUp}} || CALLBACK (thinklight on/off)&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F7}} || CALLBACK (display lcd/crt/both)&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F8}} || CALLBACK (expand on/off)&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Home}} / {{key|Fn}}{{key|Pos1}} || CALLBACK (brightness &amp;lt;percent&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|End}} || CALLBACK (brightness &amp;lt;percent&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume up|#494949}} || CALLBACK (volume &amp;lt;percent&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume down|#494949}} || CALLBACK (volume &amp;lt;percent&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume mute|#494949}} || CALLBACK (mute on/off)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
To all parameter keywords should be assigned the full path to the executables supposed to be started on key press.&lt;br /&gt;
The exectable provided for the CALLBACK keyword should take the parameters given in parentheses and act according to them.&lt;br /&gt;
If you want to use xmodmap for the HOME, SEARCH, MAIL, FAVORITES, RELOAD, ABORT, BACKWARD, FORWARD and FN keys you should&lt;br /&gt;
provide a &amp;lt;tt&amp;gt;XEVENTS OFF&amp;lt;/tt&amp;gt; in your {{path|/etc/tpbrc}}. &lt;br /&gt;
You can use an appropriate executable to [[How to inject fake keystrokes|inject fake keystrokes]].&lt;br /&gt;
&lt;br /&gt;
For Debian users, tpb is started from {{path|/etc/X11/Xsession.d/90tpb}}.&lt;br /&gt;
&lt;br /&gt;
'''Sound Button configuration'''&lt;br /&gt;
&lt;br /&gt;
''Note: Tested on T60p with Ubuntu 6.06 LTS''&lt;br /&gt;
&lt;br /&gt;
Most Thinkpads have a hardware sound mixer, thus the volumes buttons should work without configuration. However, this change is not reflected in the software mixer. tpb has a switch to enable software mixer support via OSS. The manual recommends this only for devices without a hardware mixer, but it also works for other hadware mixer enabled devices, even with the ALSA system. Just put MIXER ON in your {{path|/etc/tpbrc}} file and you can see the effect immediately in any ALSA mixer (e.g. kmix). For this to work you need write permissions to {{path|/dev/nvram}}.&lt;br /&gt;
&lt;br /&gt;
''Note: Tested on X21 with Ubuntu 6.06 LTS''&lt;br /&gt;
&lt;br /&gt;
On the ThinkPad X21 (and maybe some other older models) ACPI causes problems with tpb.  On an X21 using acpi the volume buttons would work occasionally, and the OSD for tpb functions would rarely work.  If a volume buttons was pressed too often, sometimes the computer would enter a low power (unplugged state) and would require a reboot.  The solution is to use APM instead of ACPI.  Instructions can be found in [[How_to_make_APM_work]].&lt;br /&gt;
&lt;br /&gt;
===KMilo configuration===&lt;br /&gt;
The programs to be executed by [[KMilo]] are configured via the KDE Control Center (&amp;lt;tt&amp;gt;kcontrol&amp;lt;/tt&amp;gt;), under &amp;lt;tt&amp;gt;System Administration --&amp;gt; IBM Thinkpad Laptop&amp;lt;/tt&amp;gt;. Note that you can use appropriate commands to [[How to inject fake keystrokes|inject fake keystrokes]].&lt;br /&gt;
&lt;br /&gt;
===xmodmap configuration===&lt;br /&gt;
xmodmap enables you to edit the modifier map and keymap tables that are used to translate keycodes into keysyms.&lt;br /&gt;
Understood? Well, basically it allows you to give the X server a dictionary for the translation of keycodes like &amp;quot;97&amp;quot; into more human readable synonyms like &amp;quot;Home&amp;quot;. This way xmodmap allows you to make the special keys of your keyboard known to X applications.&lt;br /&gt;
&lt;br /&gt;
To discover the keycode that a certain keypress produces, use the tool {{cmduser|xev}} &lt;br /&gt;
&lt;br /&gt;
Usually you should write your keycode-keysym associations into the file {{path|~/.Xmodmap}}. This file is usually read by the X session startup scripts of your system, so that the mappings automatically get included everytime you run the X server.&lt;br /&gt;
&lt;br /&gt;
The {{path|~/.Xmodmap}} lines for our purpose are in the form of&lt;br /&gt;
 keycode &amp;lt;keycode&amp;gt; = &amp;lt;keysym&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Load the assocation using the command&lt;br /&gt;
&lt;br /&gt;
{{cmduser|xmodmap ~/.Xmodmap}} &lt;br /&gt;
&lt;br /&gt;
(some configurations do this automatically upon X startup). &lt;br /&gt;
&lt;br /&gt;
The following table shows the keycodes generated by the ThinkPad special keys and sensible keysyms to assign them to.&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
|+ keycodes and recommended keysyms&lt;br /&gt;
! key !! keycode !! keysym&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Access IBM|#495988}} or {{ibmkey|ThinkPad|#494949}} || 159 || XF86LaunchA&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Backward|#494949}} || 234 || XF86Back or F19&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Forward|#494949}} || 233 || XF86Forward or F20&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Play/Pause|#494949}} || 162 || XF86AudioPlay&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Stop|#494949}} || 164 || XF86AudioStop&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Next|#494949}} || 153 || XF86AudioNext&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Previous|#494949}} || 144 || XF86AudioPrev&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| {{ibmkey|Home|#494949}} || 178 || XF86HomePage&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Search|#494949}} || 229 || XF86Search&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Mail|#494949}} || 236 || XF86Mail&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Favorites|#494949}} || 230 || XF86AddFavorite or XF86Favorites&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Reload|#494949}} || 231 || XF86Reload&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Abort|#494949}} || 232 || XF86Stop&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}} || 227 || F35&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: You can also use xkeycaps (an X tool to display and edit the X keyboard mapping) to generate proper .Xmodmap.&lt;br /&gt;
&lt;br /&gt;
Note: if you are running [[tpb]] you might need to add the line &amp;lt;tt&amp;gt;XEVENTS=off&amp;lt;/tt&amp;gt; into your tpbrc to stop it from grabbing the key events and allow them to get through to X instead. See [[http://www.thinkwiki.org/wiki/Tpb]] for more detailed instruction on how to use tpb and xmodmap.&lt;br /&gt;
&lt;br /&gt;
Note: XF86Forward and XF86Back do not work correctly in Firefox. You may want to map them to F19 and F20 instead if you use Firefox.&lt;br /&gt;
&lt;br /&gt;
Note: The &amp;quot;XF86AudioPlay&amp;quot; etc. just works with a few programs. To make it work with more multimedia programs you have map the key to use something like [http://www.kde-apps.org/content/show.php/ReMoot?content=63140 ReMoot]. ReMoot is a command line wrapper that control 18 of the most common multimedia applications. &lt;br /&gt;
&lt;br /&gt;
=====Enabling the Windows and Menu Keys=====&lt;br /&gt;
On some systems the Windows and Menu keys may not be recognized.  You can enable then by&lt;br /&gt;
making the following changes:&lt;br /&gt;
&lt;br /&gt;
        keycode 115 = F13&lt;br /&gt;
        keycode 227 = F35&lt;br /&gt;
&lt;br /&gt;
F13 and F35 are used for the Windows and and Menu keys respectively.  Labelling keycpode 227 as &amp;quot;Menu&amp;quot; may conflict with the right-mouse-click event.&lt;br /&gt;
&lt;br /&gt;
=====Using Caps Lock as Super L (Windows key)=====&lt;br /&gt;
You can easily use Caps Lock as Win key by adding the following in your ~/.Xmodmap:&lt;br /&gt;
        ! No Caps Lock&lt;br /&gt;
        clear lock&lt;br /&gt;
        ! Caps Lock as Win key&lt;br /&gt;
        add mod4 = Caps_Lock&lt;br /&gt;
=====NumLock=====&lt;br /&gt;
On the ThinkPad {{600}}, {{T20}}, {{T21}}, {{T22}}, {{T30}}, {{X20}}, {{X21}},  {{X31}}, {{X40}}, {{T42p}}, {{T43}}, {{R51}}, {{R52}} and possibly other models, X does not recognize the keycode for {{key|NumLk}} = {{key|Shift}}+{{key|ScrLk}}. To fix this, add the following to {{path|~/.Xmodmap}} in your home directory or {{path|/etc/X11/Xmodmap}} and run &amp;lt;tt&amp;gt;xmodmap&amp;lt;/tt&amp;gt;, ex: &amp;lt;tt&amp;gt;xmodmap ~/.Xmodmap&amp;lt;/tt&amp;gt;:&lt;br /&gt;
 keycode 77 = Num_Lock&lt;br /&gt;
&lt;br /&gt;
This configuration also enables the respective LED.&lt;br /&gt;
&lt;br /&gt;
Please note, pressing the {{key|Shift}}+{{key|ScrLk}} key combination, without first following the above configuration, will start an accessibility feature, which will allow the numeric keypad to maneuver the mouse pointer.  Starting this accessibility feature and subsequently running xmodmap, as described above, results in the accessibility feature and the numeric lock LED functioning simultaneously.  As such, the above configuration should be completed before the accessibility feature is started in order to produce numbers.&lt;br /&gt;
======T60 (and possibly others)======&lt;br /&gt;
It seems that on the T60, PrtSc, ScrLk and Pause all generate the correct keycodes, however Fn-PrtSc (labelled as SysRq) generates keycode 64 (Alt_L) followed by the expected 111 (Sys_Req) on down and the same thing in the opposite order on release. Fn-ScrLk (labelled as NmLk) does indeed toggle the Numlock, but only seems to register as an X event the first time it is engaged. The above solution does not appear to work. This is perhaps because the Numlock toggle is built into the firmware rather than controlled by the kernel. Finally, Fn-Pause (labelled as Break) generates keycode 37 (Control_L) followed by the expected keycode 110 (Break) on down and the same thing in reverse order on release.&lt;br /&gt;
&lt;br /&gt;
===Mapping keys with setkeycodes===&lt;br /&gt;
You can use the setkeycodes command to remap certain keys. I.e. you can use {{cmdroot|setkeycodes 6e 109 6d 104 69 28 6b 1}} to map the Tablets Up and Down keys to the standard PageUp and PageDown keys and Tablet Escape and Enter to their respective keys.&lt;br /&gt;
&lt;br /&gt;
The following table shows the keycodes generated by the ThinkPad keys.&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
|+ keycodes&lt;br /&gt;
! key !! keycode&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet orientation|#494949}} || 0x6d&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Shortcut|#494949}} || 0x6e&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Esc|#494949}} || 0x6b&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Enter|#494949}} || 0x69&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Up|#494949}} || 0x68&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Down|#494949}} || 0x6c&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet (unlabeled)|#494949}} || 0x67&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===acpi_fakekey===&lt;br /&gt;
You can turn acpi events into user-level xevents by putting &amp;lt;tt&amp;gt;acpi_fakekey&amp;lt;/tt&amp;gt; commands into the acpi action scripts. There are several layers involved in using acpi keys in this way, so I'll go through the example of using the ThinkVantage button to open xmms.&lt;br /&gt;
&lt;br /&gt;
My ThinkVantage button generates an '''acpi event''' &amp;quot;ibm/hotkey HKEY 00000080 00001018&amp;quot;, so we have the event file &amp;lt;tt&amp;gt;/etc/acpi/events/ThinkVantage&amp;lt;/tt&amp;gt; for it which executes the script &amp;lt;tt&amp;gt;/etc/acpi/actions/fakekey-macro.sh&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
event=ibm/hotkey HKEY 00000080 00001018&lt;br /&gt;
action=/etc/acpi/actions/fakekey-macro.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In turn, the executable &amp;lt;tt&amp;gt;/etc/acpi/actions/fakekey-macro.sh&amp;lt;/tt&amp;gt; script calls acpi_fakekey with the '''key number''' defined in &amp;lt;tt&amp;gt;/usr/share/acpi-support/key-constants&amp;lt;/tt&amp;gt; as $KEY_MACRO which is 112 (you could just as well choose an other key number, just make sure that it doesn't belong to something else like the &amp;quot;j&amp;quot; key or something). &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
. /usr/share/acpi-support/key-constants&lt;br /&gt;
acpi_fakekey $KEY_MACRO &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I have no idea how this actually corresponds to which xevent is generated, so I can find out out by running the program &amp;lt;tt&amp;gt;xev&amp;lt;/tt&amp;gt; and hitting the ThinkVantage button while the mouse is in the &amp;lt;tt&amp;gt;xev&amp;lt;/tt&amp;gt; window (remember to &amp;lt;tt&amp;gt;/etc/init.d/acpid restart&amp;lt;/tt&amp;gt; first if you just created the &amp;lt;tt&amp;gt;/etc/acpi/events/ThinkVantage&amp;lt;/tt&amp;gt; file). I get something popping up in the terminal where I ran xev that looks like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
KeyPress event, serial 30, synthetic NO, window 0x2800001,&lt;br /&gt;
    root 0x6a, subw 0x0, time 2000522842, (138,83), root:(781,500),&lt;br /&gt;
    state 0x0, keycode 239 (keysym 0x0, NoSymbol), same_screen YES,&lt;br /&gt;
    XLookupString gives 0 bytes: &lt;br /&gt;
    XmbLookupString gives 0 bytes: &lt;br /&gt;
    XFilterEvent returns: False&lt;br /&gt;
&lt;br /&gt;
KeyRelease event, serial 30, synthetic NO, window 0x2800001,&lt;br /&gt;
    root 0x6a, subw 0x0, time 2000522842, (138,83), root:(781,500),&lt;br /&gt;
    state 0x0, keycode 239 (keysym 0x0, NoSymbol), same_screen YES,&lt;br /&gt;
    XLookupString gives 0 bytes: &lt;br /&gt;
    XFilterEvent returns: False&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This tells me that the &amp;lt;tt&amp;gt;acpi_fakekey 112&amp;lt;/tt&amp;gt; as executed by hitting the ThinkVantage button generates KeyPress event followed by a KeyRelease event with '''keycode''' 239 and that this keycode has been assigned no corresponding '''keysym'''. Thus, I am free to assign the keycode to any keysym I want. You can find a list of available keysyms in &amp;lt;tt&amp;gt;/usr/share/X11/XKeysymDB&amp;lt;/tt&amp;gt;. Again try and pick one that is not likely to have already been taken by something, such as &amp;lt;tt&amp;gt;XF86LaunchA&amp;lt;/tt&amp;gt;. To assign this keysym to keycode 239, you can either edit ~/.Xmodmap on an individual user basis, or edit the systemwide &amp;lt;tt&amp;gt;/etc/X11/Xmodmap&amp;lt;/tt&amp;gt; file to contain the line&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
keycode 239 = XF86LaunchA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you choose to go with the former, you may need to run &amp;lt;tt&amp;gt;xmodmap ~/.Xmodmap&amp;lt;/tt&amp;gt; for every login session in order to read in your ~/.Xmodmap file if your window manager does not do it for you. Regardless of which option you choose, you can run &amp;lt;tt&amp;gt;xmodmap &amp;lt;file&amp;gt;&amp;lt;/tt&amp;gt; to read in the updated Xmodmap file without logging out and logging back in.&lt;br /&gt;
&lt;br /&gt;
You should now find that hitting the ThinkVantage button creates the following output from &amp;lt;tt&amp;gt;xev&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
KeyPress event, serial 55, synthetic NO, window 0x2800001,&lt;br /&gt;
    root 0x6a, subw 0x0, time 2001286078, (0,106), root:(643,523),&lt;br /&gt;
    state 0x0, keycode 239 (keysym 0x1008ff4a, XF86LaunchA), same_screen YES,&lt;br /&gt;
    XLookupString gives 0 bytes: &lt;br /&gt;
    XmbLookupString gives 0 bytes: &lt;br /&gt;
    XFilterEvent returns: False&lt;br /&gt;
&lt;br /&gt;
KeyRelease event, serial 55, synthetic NO, window 0x2800001,&lt;br /&gt;
    root 0x6a, subw 0x0, time 2001286078, (0,106), root:(643,523),&lt;br /&gt;
    state 0x0, keycode 239 (keysym 0x1008ff4a, XF86LaunchA), same_screen YES,&lt;br /&gt;
    XLookupString gives 0 bytes: &lt;br /&gt;
    XFilterEvent returns: False&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note the change of &amp;lt;tt&amp;gt;(keysym 0x0, NoSymbol)&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;(keysym 0x1008ff4a, XF86LaunchA)&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You're now ready to map &amp;lt;tt&amp;gt;XF86LaunchA&amp;lt;/tt&amp;gt; to executing xmms. This is highly dependent on what keygrabber you decide to use. For openbox, I edit my &amp;lt;tt&amp;gt;~/.config/openbox/rc.xml&amp;lt;/tt&amp;gt; file and add the following entry in the  &amp;lt;keyboard&amp;gt; section:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;lt;keybind key=&amp;quot;XF86LaunchA&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;action name=&amp;quot;Execute&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;startupnotify&amp;gt;&lt;br /&gt;
          &amp;lt;enabled&amp;gt;true&amp;lt;/enabled&amp;gt;&lt;br /&gt;
        &amp;lt;/startupnotify&amp;gt;&lt;br /&gt;
        &amp;lt;command&amp;gt;&lt;br /&gt;
	  xmms&lt;br /&gt;
	&amp;lt;/command&amp;gt;&lt;br /&gt;
      &amp;lt;/action&amp;gt;&lt;br /&gt;
    &amp;lt;/keybind&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
After, right clicking on the desktop and selecting the &amp;quot;Reconfigure&amp;quot; menu option, you should then have xmms pop up when you hit the ThinkVantage key.&lt;br /&gt;
&lt;br /&gt;
==Example Applications==&lt;br /&gt;
===Web Browsers===&lt;br /&gt;
====Firefox (&amp;lt;3.0)====&lt;br /&gt;
&lt;br /&gt;
There are various ways to assign actions to the browser keys. The easiest way is to install [http://mozilla.dorando.at/keyconfig.xpi keyconfig.xpi] from http://mozilla.dorando.at, which adds a menu entry Tools-&amp;gt;Keyconfig. Then you can assign any action you want to the F19/F20 keys (you still need to create {{path|~/.Xmodmap}} as explained above).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The remaining discussion gives you various more complicated ways to achieve the same thing. &lt;br /&gt;
To have firefox make use of the browser keys you need to modify one of its files{{footnote|4}}.&lt;br /&gt;
To do this you will first need to extract it from the {{path|browser.jar}} archive. Do...&lt;br /&gt;
&lt;br /&gt;
Step 1:  Edit .Xmodmap and add entries for F19 and F20 as explained above.&lt;br /&gt;
&lt;br /&gt;
Step 2:&lt;br /&gt;
&lt;br /&gt;
Note: &amp;lt;firefox-directory&amp;gt; is probably /usr/lib/firefox. Use your version so, if you have 3.0.1 or 3.0.2 use /usr/lib/firefox-3.0.1&lt;br /&gt;
&lt;br /&gt;
:{{cmdroot|cd &amp;lt;firefox-directory&amp;gt;/chrome}}&amp;lt;br /&amp;gt;&lt;br /&gt;
:{{cmdroot|unzip browser.jar}}&lt;br /&gt;
&lt;br /&gt;
The file of interest is {{path|content/browser/browser.xul}}. Edit it {and don't forget to make a backup copy first}...&lt;br /&gt;
:{{cmdroot|vi content/browser/browser.xul}}&lt;br /&gt;
&lt;br /&gt;
Look for the '''&amp;lt;keyset id=&amp;quot;mainKeyset&amp;quot;&amp;gt;''' section and add the following lines within...&lt;br /&gt;
 &amp;lt;key id=&amp;quot;goBackKb&amp;quot; keycode=&amp;quot;VK_F19&amp;quot; command=&amp;quot;Browser:Back&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;key id=&amp;quot;goForwardKb&amp;quot; keycode=&amp;quot;VK_F20&amp;quot; command=&amp;quot;Browser:Forward&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Command you need for Next Tab &lt;br /&gt;
 &amp;lt;key id=&amp;quot;goBackTabKb&amp;quot; keycode=&amp;quot;VK_F19&amp;quot; oncommand=&amp;quot;gBrowser.mTabContainer.advanceSelectedTab(-1)&amp;quot; /&amp;gt;&lt;br /&gt;
For the Previous Tab &lt;br /&gt;
 &amp;lt;key id=&amp;quot;goForwardTabKb&amp;quot; keycode=&amp;quot;VK_F20&amp;quot; oncommand=&amp;quot;gBrowser.mTabContainer.advanceSelectedTab(1)&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now save the file and repackage the {{path|browser.jar}} archive...&lt;br /&gt;
:{{cmdroot|zip -rD0 browser.jar content/browser/}}&lt;br /&gt;
&lt;br /&gt;
That's it.&lt;br /&gt;
&lt;br /&gt;
Step 3:  Restart Firefox.&lt;br /&gt;
&lt;br /&gt;
{{HINT|Outdated: Another interesting Page on Firefox is http://dqd.com/~mayoff/notes/thinkpad/dqdnavkeys/ It uses different key mappings (F19 resp. F20) but a ready [http://dqd.com/~mayoff/notes/thinkpad/dqdnavkeys/dqdnavkeys-1.2.xpi .xpi] is provided which is pretty comfortable. However, this xpi file does not install on Firefox 1.5. or later.}}&lt;br /&gt;
&lt;br /&gt;
{{HINT| You can also use the [http://extensionroom.mozdev.org/more-info/keyconfig keyconfig] extension to configure custom keys.  This extension works with Firefox 1.5 and also with Firefox 2.0. The Command you need for Next Tab is gBrowser.mTabContainer.advanceSelectedTab(1,true); For Previous Tab its gBrowser.mTabContainer.advanceSelectedTab(-1,true); You can alternatively install the [http://www.pqrs.org/~tekezo/firefox/extensions/functions_for_keyconfig/index.html functions for keyconfig] and set the variable f4kc_NextTab to F20 and f4kc_PrevTab to F19.}}.&lt;br /&gt;
&lt;br /&gt;
====Firefox 3.0====&lt;br /&gt;
Thankfully the people at Mozilla decided to include the expected functionality for the XF86Back and XF86Forward keysyms in the new release so all you need to do is&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;# printf 'keycode 234 = XF86Back\nkeycode 233 = XF86Forward' &amp;gt;&amp;gt; /etc/X11/Xmodmap&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
And to make this take effect immediately (i.e., without having to log out and log in again), as a regular user run:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;{{cmduser|Xmodmap /etc/X11/Xmodmap}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Hardy Heron, the xmodmap command is all lowercase. Also, the /etc/X11/Xmodmap file is not being read on boot. I've added the command to my .bashrc to have it called on startup.&lt;br /&gt;
&lt;br /&gt;
====Konqueror====&lt;br /&gt;
KDE allows you set key mappings for KDE applications (Go to KMenu &amp;gt; System &amp;gt; Control Center &amp;gt; Regional &amp;amp; Accessibility &amp;gt; Keyboard Shortcuts). By default (at least in KDE 3.5), XF86Back and XF86Forward are set as alternatives to Alt-Left and Alt-Right, and are mapped to KDE Back and Forward navigation actions.  &lt;br /&gt;
&lt;br /&gt;
If you use Konqueror as your only browser, you only need to set up {{path|~/.Xmodmap}} as described [[#xmodmap configuration|above]] to assign ThinkPad back/forward keys to the symbols XF86Back/XF86Forward. This also make these keys work for other KDE applications such as Quanta Plus, KPackage and so on (not all KDE applications honor this setting, e.g. KDE help system doesn't).&lt;br /&gt;
&lt;br /&gt;
If you want to use Firefox, however, the above settings do not work. You will have to map ThinkPad back/forward keys to F19/F20 as described [[#Firefox|above]], and change KDE navigation key settings to use F19/F20 instead of the default.&lt;br /&gt;
&lt;br /&gt;
====Opera====&lt;br /&gt;
However this isn't a simple configration file, you can set your browser manually.&amp;lt;br /&amp;gt;&lt;br /&gt;
Go to &amp;lt;i&amp;gt;Tool &amp;gt; Settings &amp;gt; Mouse and keyboard &amp;gt; Keyboard settings &amp;gt; Edit &amp;gt; Browser Window&amp;lt;/i&amp;gt;. There add F19 - Back and F20 - Forward. Now you can surf using your TP keys ;-)&lt;br /&gt;
&lt;br /&gt;
====Epiphany====&lt;br /&gt;
To get the keys work in epiphany, you could use the extension from [http://crashman.homelinux.org/~andre/public/epiphany%20extensions/thinkpad%20browserkeys/ here]&lt;br /&gt;
You just need to edit your Xmodmap like described for Firefox &amp;lt; 3.0 (bind the keys on F19 and F20)&lt;br /&gt;
&lt;br /&gt;
===Open an application===&lt;br /&gt;
&lt;br /&gt;
To configure the ThinkVantage button to open a terminal window in Gnome:&lt;br /&gt;
&lt;br /&gt;
Step 1:&lt;br /&gt;
Use xev to find the keycode generated by the button on your machine.  In my case is is 159.&lt;br /&gt;
&lt;br /&gt;
Step 2:&lt;br /&gt;
Create an entry in .Xmodmap like so&lt;br /&gt;
&lt;br /&gt;
keycode 159 = XF86LaunchA&lt;br /&gt;
&lt;br /&gt;
replacing 159 by the keycode found in step 1.  Load the map using&lt;br /&gt;
&lt;br /&gt;
:{{cmd|xmodmap ~/.Xmodmap}}&lt;br /&gt;
&lt;br /&gt;
Step 3:&lt;br /&gt;
Configure the required function (e.g. open terminal window) in System-&amp;gt;Preferences-&amp;gt;Keyboard shortcuts&lt;br /&gt;
&lt;br /&gt;
===Window Managers===&lt;br /&gt;
====fvwm====&lt;br /&gt;
To get the {{ibmkey|Forward|#494949}} and {{ibmkey|Backward|#494949}} keys to cycle through pages in the virtual desktop, add this to your {{path|~/.fvwmrc}}:&lt;br /&gt;
 Key    XF86Back     A      A   Scroll     -100000   0&lt;br /&gt;
 Key    XF86Forward  A      A   Scroll     +100000   0&lt;br /&gt;
If you use multiple virtual desktops, you could instead use the keys to flip between them by using GotoDesk.&lt;br /&gt;
&lt;br /&gt;
====fluxbox====&lt;br /&gt;
To get the keys to cycle through pages in the virtual desktop, add this to your {{path|~/.fluxbox/keys}}:&lt;br /&gt;
 None F19 :PrevWorkspace&lt;br /&gt;
 None F20 :NextWorkspace&lt;br /&gt;
&lt;br /&gt;
====pekwm configuration====&lt;br /&gt;
You can make the two browser keys switch workspaces in pekwm, by adding the following two lines to the {{path|~/.pekwm/keys}} file:&lt;br /&gt;
 KeyPress = &amp;quot;Mod1 XF86Back&amp;quot; { Actions = &amp;quot;GoToWorkspace prev&amp;quot; }&lt;br /&gt;
 KeyPress = &amp;quot;Mod1 XF86Forward&amp;quot; { Actions = &amp;quot;GoToWorkspace next&amp;quot; }&lt;br /&gt;
&lt;br /&gt;
====pwm====&lt;br /&gt;
Another example how to use these two keys to switch between pwm tabs. These two lines should be added to {{path|~/.pwm/keys-default.conf}} or {{path|/etc/pwm/keys-default.conf}}:&lt;br /&gt;
 kbind &amp;quot;Back&amp;quot;, &amp;quot;switch_rot&amp;quot;, -1&lt;br /&gt;
 kbind &amp;quot;Forward&amp;quot;, &amp;quot;switch_rot&amp;quot;, 1&lt;br /&gt;
&lt;br /&gt;
====IceWM====&lt;br /&gt;
To make IceWM cycle workspaces using the {{ibmkey|Forward|#494949}} and {{ibmkey|Backward|#494949}} keys, change these two options in {{path|~/.icewm/preferences}} (Provided you assigned keysyms F19 and F20 with xmodmap):&lt;br /&gt;
 # &amp;quot;Previous workspace&amp;quot; shortcut&lt;br /&gt;
 KeySysWorkspacePrev=&amp;quot;F19&amp;quot;&lt;br /&gt;
 # &amp;quot;Next workspace&amp;quot; shortcut&lt;br /&gt;
 KeySysWorkspaceNext=&amp;quot;F20&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Gnome/metacity ====&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.ubuntu.com/Keybindings Ubuntu guide].&lt;br /&gt;
&lt;br /&gt;
===Other Uses===&lt;br /&gt;
====Console tools configuraton====&lt;br /&gt;
To make the {{ibmkey|Forward|#494949}} and {{ibmkey|Backward|#494949}} keys useful in console, add this to your keymap ({{path|/etc/console/boottime.kmap.gz}} in {{Debian}}):&lt;br /&gt;
 keycode 158 = Decr_Console&lt;br /&gt;
 keycode 159 = Incr_Console&lt;br /&gt;
&lt;br /&gt;
Alternatively you can load this script (perhaps on system startup) to enable Backward/Forward button console (VT) switch:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 echo keycode 158 = Decr_Console | loadkeys&lt;br /&gt;
 echo keycode 159 = Incr_Console | loadkeys&lt;br /&gt;
&lt;br /&gt;
It should work with any distro.&lt;br /&gt;
&lt;br /&gt;
====Cycling through tabs====&lt;br /&gt;
In Gnome and Xfce4, Ctrl-PageUp/Ctrl-PageDown move to the previous/following open tab in all applications that have tabbed user interfaces (terminal emulator, web browser, ...). To make use of the {{ibmkey|Forward|#494949}} and {{ibmkey|Backward|#494949}} keys for this task, there're two possibilities.&lt;br /&gt;
&lt;br /&gt;
For both ways, you should map the keycodes 233 and 234 to XF86Back and XF86Forward as described in [[#xmodmap_configuration|xmodmap configuration]].&lt;br /&gt;
&lt;br /&gt;
=====Using xautomation=====&lt;br /&gt;
xautomation can be found [http://hoopajoo.net/projects/xautomation.html here].&lt;br /&gt;
&lt;br /&gt;
Create two files with permissions 755:&lt;br /&gt;
&lt;br /&gt;
{{path|/usr/local/bin/tp_back}}:&lt;br /&gt;
&amp;lt;bash&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
/usr/bin/xte 'keydown Control_L' 'keydown Page_Up' 'keyup Page_Up' 'keyup Control_L'&lt;br /&gt;
&amp;lt;/bash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{path|/usr/local/bin/tp_forward}}:&lt;br /&gt;
&amp;lt;bash&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
/usr/bin/xte 'keydown Control_L' 'keydown Page_Down' 'keyup Page_Down' 'keyup Control_L'&lt;br /&gt;
&amp;lt;/bash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use your desktop's keyboard shortcut editor to assign XF86Back as a shortcut for tp_back and XF86Forward as a shortcut for tp_forward.&lt;br /&gt;
&lt;br /&gt;
This should work in all distros and with all window managers (you might have to use other key combinations than Ctrl-PageUp and Ctrl-PageDown).&lt;br /&gt;
&lt;br /&gt;
=====Redirecting XF86Back/XF86Forward=====&lt;br /&gt;
Create {{path|/etc/X11/xkb/compat/thinkpad}}:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// $XFree86$&lt;br /&gt;
//  XFree86 special keysyms&lt;br /&gt;
default partial xkb_compatibility &amp;quot;basic&amp;quot;  {&lt;br /&gt;
    interpret.repeat= True;&lt;br /&gt;
&lt;br /&gt;
    interpret  XF86Back {&lt;br /&gt;
        action = Redirect(Key=&amp;lt;PGUP&amp;gt;, modifiers=Control);&lt;br /&gt;
    };&lt;br /&gt;
    interpret  XF86Forward {&lt;br /&gt;
        action = Redirect(Key=&amp;lt;PGDN&amp;gt;, modifiers=Control);&lt;br /&gt;
    };&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit {{path|/etc/X11/xkb/compat/complete}} and add &amp;lt;tt&amp;gt;'''augment &amp;quot;thinkpad&amp;quot;'''&amp;lt;/tt&amp;gt; so that it looks similar to the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// $XKeyboardConfig: xkbdesc/compat/complete,v 1.3 2005/10/17 00:42:11 svu Exp $&lt;br /&gt;
// $Xorg: complete,v 1.3 2000/08/17 19:54:34 cpqbld Exp $&lt;br /&gt;
default xkb_compatibility &amp;quot;complete&amp;quot;  {&lt;br /&gt;
    include &amp;quot;basic&amp;quot;&lt;br /&gt;
    augment &amp;quot;iso9995&amp;quot;&lt;br /&gt;
    augment &amp;quot;mousekeys&amp;quot;&lt;br /&gt;
    augment &amp;quot;accessx(full)&amp;quot;&lt;br /&gt;
    augment &amp;quot;misc&amp;quot;&lt;br /&gt;
    augment &amp;quot;xfree86&amp;quot;&lt;br /&gt;
    augment &amp;quot;level5&amp;quot;&lt;br /&gt;
    augment &amp;quot;thinkpad&amp;quot;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==External Sources==&lt;br /&gt;
*[http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-51537 IBMs page on configuring the ThinkPad buttons (ThinkPad, Access IBM, Mail, Search, and Home buttons) under Linux]&lt;br /&gt;
*[http://dqd.com/~mayoff/notes/thinkpad/dqdnavkeys/ Rob Mayoffs page on using IBM Keyboard Navigation Keys in Linux Mozilla and Firefox]&lt;br /&gt;
*[http://snarfed.org/space/thinkpad+keys+in+firefox Ryan Barretts blog article about using the browser keys in Firefox]&lt;br /&gt;
*[http://chaotika.org/~bluesceada/?page=soft&amp;amp;sub=thinkpad#acpibutn DennisG's help to get the ibm-acpi buttons do useful things] on a {{Z61e}} and possibly {{Z61m}}, {{Z61t}} and {{Z61p}}&lt;br /&gt;
&lt;br /&gt;
{{footnotes|&lt;br /&gt;
#Note that the associated functionality for Fn-F* key combinations is not consistent amongst all ThinkPads. We are maintaining [[Default meanings of special keys|a table of associated meanings]].&lt;br /&gt;
#if there are more than one tool listed, one is sufficient&lt;br /&gt;
#'full' means you can completely reassign any action to be triggered by the key, 'additional actions' means you can trigger actions in addition to the standard function of the key, which can not be changed.&lt;br /&gt;
#Thanks go to Ryan Barrett for writing the [http://snarfed.org/space/thinkpad+keys+in+firefox little howto] on [http://snarfed.org/space/start his blog].&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Rkan</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Problem_with_unauthorized_MiniPCI_network_card&amp;diff=36449</id>
		<title>Problem with unauthorized MiniPCI network card</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Problem_with_unauthorized_MiniPCI_network_card&amp;diff=36449"/>
		<updated>2008-02-12T20:52:16Z</updated>

		<summary type="html">&lt;p&gt;Rkan: /* Successful BIOS Modifications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Problem Description==&lt;br /&gt;
Although the MiniPCI slot is an industry standard and can accept any MiniPCI adapter, the IBM BIOS is set to only allow you to boot with an 'authorized' adapter installed. Attempts to install an unsupported card will result in the following message:&lt;br /&gt;
&lt;br /&gt;
   1802: Unauthorized network card is plugged in - Power off and remove the miniPCI network card.&lt;br /&gt;
&lt;br /&gt;
This is because the card's sub-vendor PCI-ID (which can be seen using ''lspci -v'') are checked against a [[Wikipedia:Whitelist|whitelist]] in the BIOS.  IBM's reasoning for this is that the combination of MiniPCI card and the integrated antenna in the ThinkPad needs to be certified by the US FCC (Federal Communications Commission).{{footnote|1}} or similar agencies in other countries.&lt;br /&gt;
&lt;br /&gt;
==Affected Models==&lt;br /&gt;
All machines with integrated WiFi, or machines with WiFi added&lt;br /&gt;
&lt;br /&gt;
==Affected Operating Systems==&lt;br /&gt;
All - problem is in the BIOS&lt;br /&gt;
&lt;br /&gt;
==Status==&lt;br /&gt;
* Workarounds exist for most affected models.&lt;br /&gt;
&lt;br /&gt;
==Solutions==&lt;br /&gt;
It may be possible to use the computer with the unauthorized card deactivated (but not removed).  Press {{key|F1}} to enter the BIOS and deactivate the WLAN card, then attempt to boot with the card disabled.  This does not make the wireless card work, but it may allow you to boot the computer normally.&lt;br /&gt;
&lt;br /&gt;
{{NOTE|Any of the following solutions should suffice to make the wireless card useable.  You only need to perform one of them.}}&lt;br /&gt;
&lt;br /&gt;
* You may can modify the BIOS whitelist to include the PCI-ID of the card you wish to use.  The complete instructions for this procedure are [http://www.paul.sladen.org/thinkpad-r31/wifi-card-pci-ids.html here].&lt;br /&gt;
{{WARN|It is dangerous to mess with your BIOS, you can easily make your machine unbootable, proceed with caution!}}&lt;br /&gt;
&lt;br /&gt;
* A safer and better method than modifying the BIOS is modifying the PCI-ID of the wlan card to match the authorized one(why? 1.you'll risk the wireless card instead of the motherbord 2.future BIOS updates will not create any problem 3.no problem with newer laptops with different BIOS, the only reqirement is to find an ID that is already listed in the BIOS that can be easily acheived if community maintain a compatibility table). The instructions are [http://www.dagarlas.org/stuff/computing/article0001.php here].  This page is for Atheros-based cards and HP notebooks, but it applies to Thinkpads as well. It also has links on how to edit the PCI-ID on Intel Pro Wireless cards.  &lt;br /&gt;
Instruction for intel 2200/2915 cards are [http://stachon.webpark.cz/ipw-eeprom.html here]. &lt;br /&gt;
{{NOTE|Modifying your PCI-ID will require either a laptop without a BIOS lock or a PCI adapter for your desktop.  Also, this procedure can render your card useless, but that's better than bricking your laptop.}}&lt;br /&gt;
&lt;br /&gt;
* You can use the [[Problem with error 01C9 - More than one Ethernet devices | no-1802 and no-01C9 Linux Live CD]] without applying the no-01C9 patch. It is very convenient to use and based on the C code below.&lt;br /&gt;
&lt;br /&gt;
* You can use the DOS [http://jcnp.pku.edu.cn/~shadow/1802/no-1802.com no-1802] utility, written by Tisheng Chen.{{footnote|2}} It will set a certain bit in the CMOS memory which disables the whitelist check, but it has been reported not to work on the latest machines, such as the T43 and X41&lt;br /&gt;
&lt;br /&gt;
* You can compile and run (as root) the following C-code, which was written by Matthew Garrett. It was based on the code written by Vojtech Pavlik, which in turn was based on the assembly used in the no-1802 program. {{footnote|3}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;sys/types.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;sys/stat.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 int main(void)&lt;br /&gt;
 {&lt;br /&gt;
   int fd;&lt;br /&gt;
   unsigned char data;&lt;br /&gt;
   &lt;br /&gt;
   fd = open(&amp;quot;/dev/nvram&amp;quot;, O_RDWR);&lt;br /&gt;
   if (fd==-1) {&lt;br /&gt;
     printf(&amp;quot;Opening /dev/nvram failed\n&amp;quot;);&lt;br /&gt;
     return 1;&lt;br /&gt;
   }&lt;br /&gt;
   printf(&amp;quot;Disabling WiFi whitelist check.\n&amp;quot;); &lt;br /&gt;
 &lt;br /&gt;
   /* BIG INFORMATIONAL WARNING */ &lt;br /&gt;
   /* The linux nvram driver doesn't give access to the first 14 bytes of&lt;br /&gt;
      the CMOS. As a result, we seek to 0x5c rather than 0x6a. If you're &lt;br /&gt;
      implementing this under another OS, then you'll have to go to whichever&lt;br /&gt;
      address is appropriate for your access method */&lt;br /&gt;
 &lt;br /&gt;
   lseek(fd, 0x5c, SEEK_SET);&lt;br /&gt;
   read(fd, &amp;amp;data, 1);&lt;br /&gt;
   printf(&amp;quot;CMOS address 0x5c: %02x-&amp;gt;&amp;quot;, data);&lt;br /&gt;
   data |= 0x80;&lt;br /&gt;
   printf(&amp;quot;%02x\n&amp;quot;, data);&lt;br /&gt;
   lseek(fd, 0x5c, SEEK_SET);&lt;br /&gt;
   if (write(fd, &amp;amp;data, 1)&amp;lt;0) {&lt;br /&gt;
     printf(&amp;quot;Unable to write to /dev/nvram - hack failed\n&amp;quot;);&lt;br /&gt;
     close(fd);&lt;br /&gt;
     return 2;&lt;br /&gt;
   }&lt;br /&gt;
   close(fd);&lt;br /&gt;
   printf(&amp;quot;Done.\n&amp;quot;);&lt;br /&gt;
   return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
{{NOTE|On the R32, T43, X41, X60 and probably others, the BIOS hacks and the &amp;quot;no-1802&amp;quot; utility don't work.}}&lt;br /&gt;
&lt;br /&gt;
==Successful BIOS Modifications==&lt;br /&gt;
{{WARN|This table is meant to give users an idea of what models have been successfully modified and how. As stated before, it is dangerous to mess with your BIOS, you can easily make your machine unbootable. Please proceed with caution!}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following table contains information about ThinkPad models that have been successfully modified to run an unauthorized Mini PCI card. {{footnote|4}} &lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;border:1px; background:grey;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Model &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Type &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| BIOS Version &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Operating System &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Method &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Success&lt;br /&gt;
|- style=&amp;quot;background: white;&amp;quot;&lt;br /&gt;
| ThinkPad 240&lt;br /&gt;
| 2609-21G&lt;br /&gt;
| 1.18&lt;br /&gt;
| Damn Small Linux&lt;br /&gt;
| Matthew Garrett code {{footnote|3}}&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad G40&lt;br /&gt;
| 2388-2UU&lt;br /&gt;
| 1.21 (2006/2/24; 1TETA6WW)&lt;br /&gt;
| Windows XP Home&lt;br /&gt;
| no-1802 DOS 6.22 floppy&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white;&amp;quot;&lt;br /&gt;
| ThinkPad R31&lt;br /&gt;
| 2656-6FG &lt;br /&gt;
| 3.11 (12-01-2004) &lt;br /&gt;
| Windows XP Boot Disk &lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white;&amp;quot;&lt;br /&gt;
| ThinkPad R32&lt;br /&gt;
| 2656-EG1 &lt;br /&gt;
| 2.16 (16-06-2006) &lt;br /&gt;
| DOS Boot Disk &lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:red;&amp;quot;| No&lt;br /&gt;
|- style=&amp;quot;background: white;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2656-69U &lt;br /&gt;
| ? &lt;br /&gt;
| Windows 2000 Pro&lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2681-F7G &lt;br /&gt;
| n/a&lt;br /&gt;
| Windows XP Pro SP2 w/ Intel 2200BG&lt;br /&gt;
| No-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2682&lt;br /&gt;
| ?&lt;br /&gt;
| Debian Etch&lt;br /&gt;
| Matthew Garrett code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2896-J3U &lt;br /&gt;
| 1.24 (10-18-2005) &lt;br /&gt;
| Fedora Core 4 &lt;br /&gt;
| Vojtech Pavlik code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2681-L7U &lt;br /&gt;
| 1.24 (10-18-2005) &lt;br /&gt;
| Windows XP Pro &lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2722-BDG&lt;br /&gt;
| 1.33&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40e&lt;br /&gt;
| 2684-LKG&lt;br /&gt;
| ?&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 DOS boot CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2681-CDG&lt;br /&gt;
| 1.27 (10-06-2006) &lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 LiveCD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2722-DM2&lt;br /&gt;
| 1.09 (2003) &lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 LiveCD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2681-CFM &lt;br /&gt;
| 1.24 (10-17-2005) &lt;br /&gt;
| Gentoo &amp;amp; XP Pro&lt;br /&gt;
| no-1802 utility (boot from USB key to apply)&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2724 &lt;br /&gt;
| 1.30 (10-19-2005) &lt;br /&gt;
| FreeBSD 6.1-p1&lt;br /&gt;
| code by Matthew Garrett, compiled and run on bactrack&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2724-3XU &lt;br /&gt;
| 1.33 (06-29-2006) &lt;br /&gt;
| Windows XP Pro &lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2682 &lt;br /&gt;
| 1.01 (2003-01-24)&lt;br /&gt;
| Debian GNU/Linux etch (March 2007) &lt;br /&gt;
| Matthew Garret's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2722-BDG&lt;br /&gt;
| 1.33 (2006/6/29)&lt;br /&gt;
| Lunar Linux (2007/03/04) &lt;br /&gt;
| Matthew Garret's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R50&lt;br /&gt;
| 1829-7RG&lt;br /&gt;
| 3.21 (02-06-2006)&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R50p&lt;br /&gt;
| 1832-2AG&lt;br /&gt;
| 3.19 (13-10-2005)&lt;br /&gt;
| Ubuntu 5.10 (kernel 2.6.12-10-686)&lt;br /&gt;
| Vojtech Pavlik code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|ThinkPad R51&lt;br /&gt;
| 2887-W2C &lt;br /&gt;
| 1.27 (03-03-2006) &lt;br /&gt;
| Windows XP Pro SP2&lt;br /&gt;
| no-1802 utility (boot from USB key to apply)&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|ThinkPad R52&lt;br /&gt;
| 1849-BMU&lt;br /&gt;
|1.27 (09-20-2006)&lt;br /&gt;
| Windows XP Pro SP2&lt;br /&gt;
| no-1802 utility (boot from external USB floppy)&lt;br /&gt;
! style =&amp;quot;color:red;&amp;quot;| No&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|ThinkPad T23&lt;br /&gt;
| 2647-4MU&lt;br /&gt;
| 1.18 (08-06-2004) &lt;br /&gt;
| Windows XP Pro/SP2&lt;br /&gt;
| no-1802 utility (W98se-bootfloppy)&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot; &lt;br /&gt;
|ThinkPad T30&lt;br /&gt;
| 2366-68G &lt;br /&gt;
| 2.09 (08-08-2005) &lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|ThinkPad T30&lt;br /&gt;
| 2366-ES1 &lt;br /&gt;
| 2.10  &lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;  &lt;br /&gt;
| ThinkPad T30 &lt;br /&gt;
| 2366-97G &lt;br /&gt;
| 2.09 (08-08-2005) &lt;br /&gt;
| Windows XP Pro &lt;br /&gt;
| no-1802 utility &lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T30 &lt;br /&gt;
| 2366-N6G &lt;br /&gt;
| 2.09 (08-08-2005) &lt;br /&gt;
| Windows XP Pro &lt;br /&gt;
| no-1802 utility &lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T30 &lt;br /&gt;
| 2366-N6G &lt;br /&gt;
| 2.10 (26-06-2006) &lt;br /&gt;
| Windows XP Pro &lt;br /&gt;
| no-1802 utility &lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T30 &lt;br /&gt;
| 2366-81U &lt;br /&gt;
| 2.10 (27-06-2006) &lt;br /&gt;
| Windows XP Pro &lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T30 &lt;br /&gt;
| 2366-86U &lt;br /&gt;
| 2.10 (27-06-2006) &lt;br /&gt;
| Windows XP Pro SP 2&lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T30 &lt;br /&gt;
| 2366-86G&lt;br /&gt;
| 2.10 (27-06-2006) &lt;br /&gt;
| Windows XP Pro SP 2 and Ubuntu 7.10 &amp;quot;Gutsy Gibbon&amp;quot; Intel BG2200&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T30 &lt;br /&gt;
| 2366-DU9 &lt;br /&gt;
| 2.10 (27-06-2006) &lt;br /&gt;
| Suse Linux 10.1 &lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40 &lt;br /&gt;
| 2373-7CU &lt;br /&gt;
| 3.21&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40 &lt;br /&gt;
| 2373-4BG &lt;br /&gt;
| 3.21&lt;br /&gt;
| Windows XP Pro SP2&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2373-7CU&lt;br /&gt;
| 3.21 (06-02-2006)&lt;br /&gt;
| Windows XP Pro SP2&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2373-75U&lt;br /&gt;
| 3.21 (09-12-2006)&lt;br /&gt;
| Fedora 6 w Intel 2915ABG&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2373-82U &lt;br /&gt;
| 3.18 (09-15-2005)&lt;br /&gt;
| Windows XP/ SUSE 10.1&lt;br /&gt;
| No-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2373-8CG &lt;br /&gt;
| 3.05a (2004-05-14)&lt;br /&gt;
| Arch Linux&lt;br /&gt;
| No-1802 LiveCD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2373-8CG &lt;br /&gt;
| 3.15 (2005-03-29)&lt;br /&gt;
| Windows XP Pro SP2 w/[http://www.giga-byte.com.tw/Products/Communication/Products_Spec.aspx?ClassValue=Communication&amp;amp;ProductID=985&amp;amp;ProductName=GN-WI01GS Gigabyte GN-WI01GS]&lt;br /&gt;
| No-1802 LiveCD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2373-PU7 &lt;br /&gt;
| 3.21 (09-12-2006)&lt;br /&gt;
| Windows XP Professional&lt;br /&gt;
| No-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2373-42G &lt;br /&gt;
| 3.20 (11-05-2006) &lt;br /&gt;
| Windows 2000 Pro &lt;br /&gt;
| no-1802 utility &lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2374-8CG &lt;br /&gt;
| 3.20 (11-05-2006) &lt;br /&gt;
| Ubuntu 6.06 LTS w/Intel Pro Lan2200&lt;br /&gt;
| no-1802 Linux Live CD &lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; coloar:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2374-DG1 &lt;br /&gt;
| 3.21 (06-02-2006) &lt;br /&gt;
| Ubuntu 6.10 w/Broadcom 4306&lt;br /&gt;
| Matthew Garrett's code &lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; coloar:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40p&lt;br /&gt;
| 2373-G1G&lt;br /&gt;
| 3.19 (10-13-2005)&lt;br /&gt;
| Debian GNU/Linux (sid)&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; coloar:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40p&lt;br /&gt;
| 2373-G5G&lt;br /&gt;
| 3.21 (2006-06-02)&lt;br /&gt;
| Windows XP Pro SP2 / Gentoo 2007.0&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T41&lt;br /&gt;
| 2373-1FG &lt;br /&gt;
| 3.21 (2007-06-18)&lt;br /&gt;
| Windows XP Pro SP2&lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T41&lt;br /&gt;
| 2373-5G1 &lt;br /&gt;
| 2004 &lt;br /&gt;
| Fedora Core 6 w/Intel Pro 2915ABG a/b/g&lt;br /&gt;
| no-1802 Linux Live CD &lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; coloar:black;&amp;quot;&lt;br /&gt;
|ThinkPad T41&lt;br /&gt;
| 2373-9HU&lt;br /&gt;
| n/a&lt;br /&gt;
| Ubuntu 6.10 w/Atheros 5212 a/b/g&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style=&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|ThinkPad T41&lt;br /&gt;
| 2373-2FG&lt;br /&gt;
| n/a&lt;br /&gt;
| Windows XP Pro SR2 w/ Intel 2200BG&lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style=&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T41p&lt;br /&gt;
| 2373-GEG &lt;br /&gt;
| BIOS Build ID: 1RETDOWW(3.20) &lt;br /&gt;
| Gentoo / XP pro SP2&lt;br /&gt;
| Matthew Garrett's code {{footnote|3}}&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T41p&lt;br /&gt;
| 2374-GGU &lt;br /&gt;
| 3.21 (1RETDPWW) 6/2/2006&lt;br /&gt;
| Slackware / XP pro SP2&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T41&lt;br /&gt;
| 2373-K32 &lt;br /&gt;
| BIOS Build ID: 1RETDOWW(3.20) &lt;br /&gt;
| CentOS 5.0 w/Atheros 5212 (CM9)&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T42&lt;br /&gt;
| 2373-6UU&lt;br /&gt;
| Not noted&lt;br /&gt;
| Fedora 7 w/Atheros 5212&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T42&lt;br /&gt;
| 2373-4TG &lt;br /&gt;
| 3.13 (1RETDHWW) (29-10-2004)&lt;br /&gt;
| Windows XP Pro SP2 w/ Intel PRO 2200BG&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T42p&lt;br /&gt;
| 2373-HTU &lt;br /&gt;
| 3.23 (1RETDRWW) (06-18-2007)&lt;br /&gt;
| Windows XP Pro SP2 w/ Intel 2915ABG&lt;br /&gt;
| No-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T42&lt;br /&gt;
| 2373-K2G &lt;br /&gt;
| 3.17 (07-27-2005)&lt;br /&gt;
| Windows XP Pro SP2 w/ Intel 2915ABG&lt;br /&gt;
| No-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T42&lt;br /&gt;
| 2373-M1U&lt;br /&gt;
| 3.13 1RETDHWW (10/29/2004)&lt;br /&gt;
| Fedora 7 w/ Intel PRO 2200BG&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T42&lt;br /&gt;
| 2373-LM1&lt;br /&gt;
| 3.23 (1RETDRWW) (06-18-2007)&lt;br /&gt;
| Debian Lenny (2.6.21-2-686) w/ Intel PRO 2915ABG&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T42&lt;br /&gt;
| 2378-EXU &lt;br /&gt;
| 3.18 (09-15-2005)&lt;br /&gt;
| Windows XP Pro SP2&lt;br /&gt;
| No-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T43&lt;br /&gt;
| 1871-F1G&lt;br /&gt;
| 1.19 (70ET59WW) (2005-09-20)&lt;br /&gt;
| n/a&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:red;&amp;quot;| No&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X22 &lt;br /&gt;
| 2662-95G&lt;br /&gt;
| 1.32 (2003-06-10)&lt;br /&gt;
| Debian GNU/Linux testing, kernel 2.6.18-3-686&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X30 &lt;br /&gt;
| AR5212 &lt;br /&gt;
| ?&lt;br /&gt;
| Debian Linux 2.6.18-5&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X30 &lt;br /&gt;
| 2672-41j &lt;br /&gt;
| 1.08 (08-09-2005)&lt;br /&gt;
| Gentoo Kernel 2.6.15 &lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X30 &lt;br /&gt;
| 2672-4XU &lt;br /&gt;
| 1.09&lt;br /&gt;
| Win XP Pro SP2&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X30 &lt;br /&gt;
| 2673-EU2 &lt;br /&gt;
| 1.09 &lt;br /&gt;
| Windows XP Pro SP2 &lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-C2G &lt;br /&gt;
| 3.02 (22-09-2005) &lt;br /&gt;
| Debian Etch (Testing), Kernel 2.6.22-rc7&lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-PG9 &lt;br /&gt;
| 2.04 (2003-11-10) &lt;br /&gt;
| Debian Etch (Testing), Kernel 2.6.21-2&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2673-C27 &lt;br /&gt;
| 3.02 (22-09-2005) &lt;br /&gt;
| Ubuntu 5.10 (kernel 2.6.12-9-386) &lt;br /&gt;
| Matthew Garrett code {{footnote|3}}&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-1UG &lt;br /&gt;
| 3.02 (22-09-2005) &lt;br /&gt;
| FreeBSD 6-STABLE&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-CEG &lt;br /&gt;
| 3.02 (22-09-2005) &lt;br /&gt;
| Debian Etch (Testing), Kernel 2.6.17-2-686&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-CXU &lt;br /&gt;
| 2.04&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 DOS boot CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-PBU &lt;br /&gt;
| 3.02&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 DOS boot CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-I5A &lt;br /&gt;
| 3.02&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 DOS boot CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-C8G&lt;br /&gt;
| 3.02&lt;br /&gt;
| Debian (kernel 2.6.16.20-386)&lt;br /&gt;
| Matthew Garrett code {{footnote|3}}&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-CEG&lt;br /&gt;
| 2.11 (02/13/2004)&lt;br /&gt;
| Debian (kernel 2.6.18-4-686, gcc 4.1.2)&lt;br /&gt;
| Matthew Garrett code {{footnote|3}}&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2884-BRU &lt;br /&gt;
| 1.03 (1QET34WW) 2003-04-08&lt;br /&gt;
| Windows XP Pro SP2 w/ Intel 2915ABG&lt;br /&gt;
| no-1802 DOS boot CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X40&lt;br /&gt;
| 2371-8EU&lt;br /&gt;
| 1.42 (2004/09/16; 1UET92WW)&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X41&lt;br /&gt;
| 1866-6SU&lt;br /&gt;
| ?&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 DOS boot CD&lt;br /&gt;
! style =&amp;quot;color:red;&amp;quot;| No&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X41 &lt;br /&gt;
| 2525-A2U&lt;br /&gt;
| 2.06 (2006/03/14; 74ET61WW)&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:red;&amp;quot;| No&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X41&lt;br /&gt;
| 2528-ELU&lt;br /&gt;
| 2.06 (2006/03/14; 74ET61WW)&lt;br /&gt;
| Windows XP Pro / OSX 10.4.8 / Ubuntu Edgy&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:red;&amp;quot;| No&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X60s&lt;br /&gt;
| 1702-3JU&lt;br /&gt;
| ?&lt;br /&gt;
| Debian Testing&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:red;&amp;quot;| NO (bricked)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==External Sources==&lt;br /&gt;
* Additional Information about &amp;quot;Unauthorised&amp;quot; MiniPCI adapters can be found on [http://www.srcf.ucam.org/~mjg59/thinkpad/wireless.html Matthew Garrett's website].&lt;br /&gt;
&lt;br /&gt;
* Thinkpad Mini PCI Wireless [http://www.srcf.ucam.org/~mjg59/thinkpad/tables.html compatibility matrix].&lt;br /&gt;
&lt;br /&gt;
* Bootable &amp;quot;no-1802&amp;quot; [http://www.command-tab.com/2006/02/26/unauthorized-wireless-cards/ CD and floppy image]&lt;br /&gt;
&lt;br /&gt;
{{footnotes|&lt;br /&gt;
#This is explained in a [http://lkml.org/lkml/2003/6/3/162 message to the LKML] and subsequently [http://lkml.org/lkml/2003/6/9/50 clarified].&lt;br /&gt;
#The no-1802 tool was announced and explaned in a [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2004-June/018253.html message to the Linux-Thinkpad ML].&lt;br /&gt;
#Vojtech Pavlik's C-code was originally posted in a [http://lkml.org/lkml/2004/6/13/69 message to the LKML]. It was based on the assembly used in the no-1802 program. Matthew Garrett [http://www.srcf.ucam.org/~mjg59/thinkpad/hacks.html rewrote] the code to provide more error checking.&lt;br /&gt;
#This information has been added by users. Please feel free to add systems if you have had personal success or failure.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Rkan</name></author>
		
	</entry>
</feed>