https://www.thinkwiki.org/w/api.php?action=feedcontributions&user=Micha&feedformat=atomThinkWiki - User contributions [en]2024-03-29T01:53:24ZUser contributionsMediaWiki 1.31.12https://www.thinkwiki.org/w/index.php?title=Intel_Graphics_Media_Accelerator_950&diff=23222Intel Graphics Media Accelerator 9502006-07-17T10:25:00Z<p>Micha: </p>
<hr />
<div>__NOTOC__<br />
{| width="100%"<br />
|style="vertical-align:top" |<br />
<div style="margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;"><br />
=== Intel Graphics Media Accelerator 950 ===<br />
This is an Intel video adapter<br />
<br />
=== Features ===<br />
* Integrated into the following chipsets:<br />
** [[Intel 945GM]]<br />
* PCI ID: 8086:????<br />
* Uses up to 224MB of main memory for video usage<br />
</div><br />
|style="vertical-align:top" |<br />
|}<br />
<br />
=== Linux X.Org driver ===<br />
Supported by Xorg.<br />
<br />
=== Linux Intel driver ===<br />
There is a Graphics driver for the Mobile Intel® 945GM Express Chipset Family at [http://downloadfinder.intel.com/scripts-df-external/filter_results.aspx?strTypes=all&ProductID=2301&OSFullName=Linux*&lang=eng&strOSs=39&submit=Go%21 Intels Support Site]. This driver is just a snapshot of the Xorg/XFree86 driver.<br />
<br />
==== ThinkPad LCD ====<br />
Display on the internal LCD works as long as you set the monitor settings correct.<br />
<br />
==== External VGA port ====<br />
Works. Dualhead is supported. <br />
some documentation here would help.<br />
which applications to switch?<br />
<br />
==== SVideo port ====<br />
??<br />
<br />
==== DVI port ====<br />
DVI passthrough is only supported on the T60.<br />
<br />
Linux support status is unknown<br />
<br />
==== Suspend behaviour ====<br />
* Required kernel parameters for suspend to ram: none<br />
* Additional notes: <br />
** switch to/from X11 to reinitialize display properly (stays black)<br />
** DO NOT use vbetool to save/restore the video mode, this breakes resume!<br />
<br />
=== ThinkPads this chip may be found in ===<br />
* {{T60}}<br />
* {{X60}}, {{X60s}}<br />
<br />
[[Category:Components]]</div>Michahttps://www.thinkwiki.org/w/index.php?title=Category:Mandriva&diff=22871Category:Mandriva2006-06-23T19:05:22Z<p>Micha: /* What is Mandriva Linux? */</p>
<hr />
<div>{| width="100%"<br />
|style="vertical-align:middle;padding-right:20px;width:10px;" | [[Image:mandriva_logo.jpg|Mandriva Linux]]<br />
|style="vertical-align:top" |<br />
<div style="margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;"><br />
=== Mandriva ===<br />
This page gives an introduction to Mandriva Linux and an overview of related articles.<br />
</div><br />
|}<br />
{| style="vertical-align:top;margin-left:20px;margin-right:20px"<br />
|<br />
__NOTOC__<br />
<br />
=== What is Mandriva Linux? ===<br />
<br />
Mandriva Linux is a linux distribution created by Mandriva and it's contributors. Mandriva was previously known as [[:Category:Mandrake|Mandrake]]Soft, but renamed itself after the merger with Connectiva, due to trademark problems.<br />
<br />
More information is at http://www.mandrivalinux.com/ <br />
<br />
<br />
[[Category:Distributions]]</div>Michahttps://www.thinkwiki.org/w/index.php?title=Category:Mandriva&diff=22870Category:Mandriva2006-06-23T19:04:36Z<p>Micha: /* What is Mandriva Linux? */</p>
<hr />
<div>{| width="100%"<br />
|style="vertical-align:middle;padding-right:20px;width:10px;" | [[Image:mandriva_logo.jpg|Mandriva Linux]]<br />
|style="vertical-align:top" |<br />
<div style="margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;"><br />
=== Mandriva ===<br />
This page gives an introduction to Mandriva Linux and an overview of related articles.<br />
</div><br />
|}<br />
{| style="vertical-align:top;margin-left:20px;margin-right:20px"<br />
|<br />
__NOTOC__<br />
<br />
=== What is Mandriva Linux? ===<br />
<br />
Mandriva Linux is a linux distribution created by Mandriva and it's contributors. Mandriva was previously known as [[:Category:Mandrake|Mandrake]]Soft, but renamed itself due to trademark problems after the merger with Connectiva.<br />
<br />
More information is at http://www.mandrivalinux.com/ <br />
<br />
<br />
[[Category:Distributions]]</div>Michahttps://www.thinkwiki.org/w/index.php?title=Installing_Mandrake_10_on_a_ThinkPad_R50&diff=22869Installing Mandrake 10 on a ThinkPad R502006-06-23T18:54:45Z<p>Micha: /* External Sources */</p>
<hr />
<div>==External Sources==<br />
<br />
*[http://forum.mandrivaclub.com/viewtopic.php?t=29040 Install Mandrake 10.0 official on IBM R50]<br />
<br />
<br />
[[Category:R50]] [[Category:Mandriva]]</div>Michahttps://www.thinkwiki.org/w/index.php?title=Ipw2100&diff=22868Ipw21002006-06-23T18:53:42Z<p>Micha: /* Packages */</p>
<hr />
<div>== Intel PRO/Wireless 2100 Driver for WiFi ==<br />
Linux driver for the 802.11b NIC - miniPCI cards - found in Centrino laptops.<br />
<br />
The following adapter sold by IBM uses this chipset:<br />
* [[Intel PRO/Wireless LAN 2100 3B Mini PCI Adapter]]<br />
<br />
=== Project Homepage / Availability ===<br />
http://ipw2100.sourceforge.net/<br />
<br />
=== Packages ===<br />
*{{Fedora}} Packages(1): Fedora Core includes the ipw2100-drivers in FC3 (with updates) and FC4. You still need to grab the firmware from http://rpm.livna.org/<br />
*{{Fedora}} Packages(2): http://www.atrpms.net/name/ipw2100/<br />
*{{Mandriva}}: The ipw2100 driver modules are included in the stock kernel package; the firmware is included in the commercial distribution or available from http://plf.zarb.org/<br />
*{{Debian}} Packages: http://packages.debian.org/ipw2100-source or inclueded in the kernel package (since 2.6.14 (?))<br />
<br />
=== Status ===<br />
* In development but usable. Version 1.0.5 works quite well with kernel 2.6.10.<br />
* Works very well with kernel 2.6.16-9. Only firmware needs to be copied to the appropriate directory and everything works out-of-box.<br />
<br />
=== Additional Comments ===<br />
Make sure to try the newest version. You will need to install the loadable binary firmware provided on http://ipw2100.sourceforge.net/firmware.php as required by the driver.<br />
<br />
To install the firmware, decompress the <tt>.tgz</tt> in <tt>/lib/firmware</tt><br />
<br />
To turn off the radio on boot-up load ipw2100 with option disable=1, i.e. {{cmdroot|1=modprobe ipw2100 disable=1}}.<br />
<br />
=== Related links === <br />
* [http://ipw2100.sourceforge.net/faq.php ipw2100 FAQ]<br />
<br />
[[Category:Drivers]]</div>Michahttps://www.thinkwiki.org/w/index.php?title=Ipw2200&diff=22867Ipw22002006-06-23T18:52:08Z<p>Micha: /* Packages */</p>
<hr />
<div>{| width="100%"<br />
|style="vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;" | __TOC__<br />
|style="vertical-align:top" |<br />
=== Intel PRO/Wireless 2200/2915 Driver for WiFi ===<br />
Linux driver for the 802.11bg and 802.11abg NICs - miniPCI cards - found in Centrino laptops. This driver only works on 2.6.x kernels (2.6.4 or newer).<br />
<br />
Starting with kernels 2.6.14 the driver is included in kernel.<br />
<br />
The following adapters sold by IBM use these chips:<br />
* [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]]<br />
* [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]]<br />
|}<br />
<br />
{{NOTE|Make sure you have installed the firmware! The ipw2200 documentation will tell you where to find these firmware files and where to install those.}}<br />
<br />
=== Project Homepage / Availability ===<br />
http://ipw2200.sourceforge.net/<br />
<br />
=== Packages ===<br />
*{{Fedora}} Packages(1): Fedora Core includes the ipw2200-drivers in FC3 (with updates) and FC4. You still need to grab the firmware from http://rpm.livna.org/<br />
*{{Fedora}} Packages(2): http://www.atrpms.net/name/ipw2200/ <br />
*{{Mandriva}}: The ipw2200 driver modules are included in the stock kernel package; the firmware is included in the commercial distribution or available from http://plf.zarb.org/.<br />
*{{Gentoo}}: The driver is in the portage tree: emerge net-wireless/ipw2200 and net-wireless/ipw2200-firmware<br />
*{{Debian}} Packages: http://packages.debian.org/ipw2200-source<br />
<br />
=== Status ===<br />
In development, usable, WEP 128bit encryption works, WPA does also work with drivers >= 1.0.2 and [[wpa_supplicant]], monitor/rfmon is supported as with version >= 1.0.6. Generally works well, but some users experience problems (especially with firmware restarts and with WPA functionality using [[wpa_supplicant]]). Passing the <tt>hwcrypto=0</tt> module parameter improves reliability for many users.<br />
<br />
The [[ipw2200]] driver up to version 1.0.6 (in combination with some newer kernels) had a problem getting DHCP leases (it turned out to be a bug in the broadcasting code). Version 1.0.7 seems to have fixed this.<br />
<br />
Older [[ipw2200]] driver versions shipped by many distributions have been reported to freeze a T43 after several minutes of intensive communication. Installing version 1.1.2 of the driver solved the problem.<br />
<br />
Latest stable versions:<br />
* ipw2200 driver: 1.1.0<br />
* firmware: 2.4<br />
* ieee80211 stack: 1.1.12<br />
<br />
Latest development versions:<br />
* ipw2200 driver: 1.1.3<br />
* firmware: 3.0<br />
* ieee80211 stack: 1.1.14<br />
<br />
Mainline kernels contain older (but mostly functional) versions of ipw2200 and ieee80211, and still require the addition of the [http://ipw2200.sourceforge.net/firmware.php firmware] files. To get the latest versions you need to separately install the [http://ipw2200.sourceforge.net/downloads.php ipw2200] module and [http://ieee80211.sourceforge.net/downloads.php ieee80211] stack.<br />
<br />
==Installation==<br />
=== Installation from sourcecode ===<br />
Download the latest [http://ieee80211.sourceforge.net/downloads.php ieee80211] stack and install it:<br />
:{{cmdroot|tar xzvf ieee80211-1.1.14.tgz}}<br />
:{{cmdroot|cd ieee80211-1.1.14}}<br />
:{{cmdroot|make}}<br />
:{{cmdroot|make install}}<br />
<br />
Download the latest [http://ipw2200.sourceforge.net/downloads.php ipw2200] module and install it:<br />
:{{cmdroot|tar xzvf ipw2200-1.1.3.tgz}}<br />
:{{cmdroot|cd ipw2200-1.1.3}}<br />
:{{cmdroot|make}}<br />
:{{cmdroot|make install}}<br />
<br />
Download the matching [http://ipw2200.sourceforge.net/firmware.php firmware] and install it:<br />
:{{cmdroot|tar xzvf ipw2200-fw-3.0.tgz -C /lib/firmware}}<br />
<br />
=== Installation on Debian ===<br />
Install ieee80211-source:<br />
:{{cmdroot|apt-get install ieee80211-source}}<br />
:{{cmdroot|module-assistant -t build ieee80211-source}}<br />
<br />
Install ipw2200-source:<br />
:{{cmdroot|apt-get install ipw2200-source}}<br />
:{{cmdroot|module-assistant -t build ipw2200-source}}<br />
<br />
There is a bug in the {{Debian}} package (last checked: Dec 30th 2005) that prevents from linking to <tt>ieee80211</tt> modules using module-assistant. In case it is not fixed in your version, fall back to the regular source installation procedure described above.<br />
<br />
The firmware is not distributed with debian due to licensing reasons, download the matching [http://ipw2200.sourceforge.net/firmware.php firmware] and install it:<br />
<br />
:{{cmdroot|tar xzvf ipw2200-fw-2.4.tgz -C /lib/hotplug/firmware}}<br />
<br />
see /etc/hotplug/firmware.agent for details on configured firmware locations<br />
<br />
In etch the firmware can also be placed in /lib/firmware<br />
<br />
===Testing the driver ===<br />
:{{cmdroot|modprobe ipw2200}}<br />
:{{cmdroot|iwconfig}}<br />
<br />
{{cmdroot|dmesg}} output might look similar to this:<br />
ieee80211: 802.11 data/management/control stack, 1.1.6<br />
ieee80211: Copyright (C) 2004-2005 Intel Corporation <jketreno@linux.intel.com><br />
ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.0.8<br />
ipw2200: Copyright(c) 2003-2005 Intel Corporation<br />
ipw2200: Detected Intel PRO/Wireless 2915ABG Network Connection<br />
<br />
NB: To make the wifi LED work on the thinkpad, pass the option {{bootparm|led|1}} to the kernel while loading the module. eg. {{cmdroot|1=modprobe ipw2200 led=1}}. This can also be accomplished by adding that option to the file where your distribution looks for modprobe options so that it becomes automatic.<br />
<br />
In debian this can be done by putting a file named after the module in /etc/modutils with the options in it<br />
<br />
here we might run a cmd like this<br />
<br />
:{{cmdroot|1=echo options ipw2200 led=1 > /etc/modutils/ipw2200 }}<br />
<br />
then we must run update-modules to remake /etc/module.conf<br />
<br />
:{{cmdroot|update-modules}}<br />
<br />
== WPA support ==<br />
<br />
Use [[wpa_supplicant]] with the <tt>-Dwext</tt> argument (not <tt>-Dipw</tt>), and pass the <tt>hwcrypto=0</tt> argument to the <tt>ipw2200</tt> module.<br />
<br />
== Power Management ==<br />
To enable power management, issue:<br />
:{{cmdroot|iwpriv wlan0 set_power 7}}<br />
where <tt>wlan0</tt> is the name if your interface. This will reduce idle power consumption by several Watts compared to no power management.<br />
<br />
*To disable the radio (and further reduce power consumption) when the card is not in use, issue:<br />
:{{cmdroot|echo 1 > /sys/bus/pci/drivers/ipw2200/*/rf_kill}}<br />
*To enable the radio, issue:<br />
:{{cmdroot|echo 0 > /sys/bus/pci/drivers/ipw2200/*/rf_kill}}<br />
*To make the radio off by default after boot, add <br />
options ipw2200 disable=1<br />
to your {{path|/etc/modprobe.conf}} or equivalent.<br />
<br />
See {{path|README.ipw2200}} in the <tt>ipw2200</tt> package for details and other options.<br />
<br />
== Additional Comments ==<br />
Your kernel may include an old version of the ipw2200 driver. It is recommended to use the latest version.<br />
<br />
Make sure you also install the firmware version needed by the driver version you use. You can find the firmware [http://ipw2200.sourceforge.net/firmware.php here]. To install it, decompress the <tt>.tgz</tt> file into {{path|/lib/firmware}}.<br />
<br />
The driver doesn't appear to support the MII interface, so any tools like automatic network configuration managers (i.e. whereami) that rely on mii-tool do not work.<br />
<br />
<br />
[[Category:Drivers]]</div>Michahttps://www.thinkwiki.org/w/index.php?title=Ipw2100&diff=22866Ipw21002006-06-23T18:50:54Z<p>Micha: /* Packages */</p>
<hr />
<div>== Intel PRO/Wireless 2100 Driver for WiFi ==<br />
Linux driver for the 802.11b NIC - miniPCI cards - found in Centrino laptops.<br />
<br />
The following adapter sold by IBM uses this chipset:<br />
* [[Intel PRO/Wireless LAN 2100 3B Mini PCI Adapter]]<br />
<br />
=== Project Homepage / Availability ===<br />
http://ipw2100.sourceforge.net/<br />
<br />
=== Packages ===<br />
*{{Fedora}} Packages(1): Fedora Core includes the ipw2100-drivers in FC3 (with updates) and FC4. You still need to grab the firmware from http://rpm.livna.org/<br />
*{{Fedora}} Packages(2): http://www.atrpms.net/name/ipw2100/<br />
*{{Mandriva}} Packages: modules included in stock kernel packages; firmware included in commercial distribution or available from http://plf.zarb.org/.<br />
*{{Debian}} Packages: http://packages.debian.org/ipw2100-source or inclueded in the kernel package (since 2.6.14 (?))<br />
<br />
=== Status ===<br />
* In development but usable. Version 1.0.5 works quite well with kernel 2.6.10.<br />
* Works very well with kernel 2.6.16-9. Only firmware needs to be copied to the appropriate directory and everything works out-of-box.<br />
<br />
=== Additional Comments ===<br />
Make sure to try the newest version. You will need to install the loadable binary firmware provided on http://ipw2100.sourceforge.net/firmware.php as required by the driver.<br />
<br />
To install the firmware, decompress the <tt>.tgz</tt> in <tt>/lib/firmware</tt><br />
<br />
To turn off the radio on boot-up load ipw2100 with option disable=1, i.e. {{cmdroot|1=modprobe ipw2100 disable=1}}.<br />
<br />
=== Related links === <br />
* [http://ipw2100.sourceforge.net/faq.php ipw2100 FAQ]<br />
<br />
[[Category:Drivers]]</div>Michahttps://www.thinkwiki.org/w/index.php?title=Ipw3945&diff=22865Ipw39452006-06-23T18:46:02Z<p>Micha: /* Packages */</p>
<hr />
<div>__NOTOC__<br />
{| width="100%"<br />
|style="vertical-align:top" |<br />
<div style="margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;"><br />
=== Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter ===<br />
This is a Mini-PCI Express WiFi Adapter<br />
<br />
=== Features ===<br />
* Chipset: Intel WM3945AG<br />
* IEEE Standards: 802.11a, 802.11b, 802.11g<br />
* PCI ID: 8086:4227<br />
</div><br />
|style="vertical-align:top" |<br />
[[image:mini-pci-wifi-card.gif|Mini-PCI WiFi Adapter]]<br />
|}<br />
=== IBM Partnumbers ===<br />
41A4068 (From [http://www.ibm.com/pc/support/site.wss/document.do?sitestyle=lenovo&lndocid=MIGR-62764 Wireless & networking accessories - ThinkPad T60/p])<br />
<br />
{{NOTE| Only the IBM Parts will work, any other parts will give an 1802 error on Post because the sub-vendor PCI ID is different, see [[Problem with unauthorized MiniPCI network card]] for more details}}<br />
<br />
=== Also known (in IBM literature) as.... ===<br />
* From [http://www.ibm.com/common/ssi/rep_ca/8/897/ENUS106-068/ENUS106-068.PDF annoucement letter 106-068], 'Intel PRO/Wireless 3945ABG8 wireless connection'<br />
<br />
=== Packages ===<br />
*{{Fedora}} <br />
** Packages: http://www.atrpms.net/dist/fc5/ipw3945<br />
** Helpful Thread: http://www.linuxquestions.org/questions/showthread.php?t=436357<br />
** ATrpms yum repo rpm: http://atrpms.net/dist/common/atrpms/atrpms-67-1.at.noarch.rpm.html<br />
** '''NOTE:''' The T60p uses the smp kernel which the ipw3945 yum install does not provide. You will need the smp kernel for your architecture found at http://www.atrpms.net/dist/fc5/ipw3945. Remove the non-smp kernel and replace it with the appropriate smp kernel. Wireless works great for me... --[[User:Herlo|Herlo]] 18:06, 22 June 2006 (CEST)<br />
*{{Mandriva}} <br />
** Mandriva's kernel comes with the ipw3945 module (since at least 2006.0 Update One)<br />
** dkms package (dkms-ipw3945) can be found in contrib (currenlty cooker only, thus will probably be in 2007.0)<br />
** Additional Packages: ipw3945d and ipw3945-ucode, both either available in the commercial distribution (or club) or from http://plf.zarb.org/<br />
*{{Gentoo}}<br />
*{{Debian}}<br />
<br />
=== Linux WiFi driver ===<br />
The most recent revision of the Intel Centrino platform does utilize a new generation of wireless networking device, connected to the system via '''PCI-E''', and not PCI (like the [[ipw2200]]-line used to do). Therefore, a new driver is to be used. A sourceforge-project aimed to support the new cards is available on [http://ipw3945.sourceforge.net/ http://ipw3945.sourceforge.net/]. However, as of today, the project's code ([http://downloadfinder.intel.com/scripts-df-external/detail_desc.aspx?ProductID=2259&DwnldID=10315&agr=Y Stable Release 1.0.0]) depends on a '''binary-only, proprietary''' user-space-daemon communicating to the driver via sysfs. It is '''not possible''' to operate this device with Free Software exclusively at the moment. The license-terms the daemon is released under prohibit reverse-engineering of the communication-protocol; this will hopefully not hold developers from countries other than the US, where clauses like this one are not enforceable, from re-implementing a free variant of some sort.<br />
==== External Discussion ====<br />
This issue already sparked discussions on the [http://lkml.org/ Linux Kernel Mailing List], accessible via [http://lkml.org/lkml/2006/2/24/266 http://lkml.org/lkml/2006/2/24/266].<br />
<br />
==== Current State ====<br />
The [[ipw2200]]-drivers in kernel 2.6.15 (and possibly later) do '''not''' work with this adapter. There is '''no mainline-kernel support''' at the moment, and without a change in the license of the required user-space-daemon, or mechanics of the code itself, '''probably''' will never be any.<br />
<br />
=== ThinkPads this card may be found in ===<br />
* {{T60}}, {{T60p}}<br />
* {{X60}}, {{X60s}}<br />
<br />
[[Category:Components]]</div>Michahttps://www.thinkwiki.org/w/index.php?title=How_to_get_special_keys_to_work&diff=22864How to get special keys to work2006-06-23T18:28:38Z<p>Micha: /* Pure ACPI events */</p>
<hr />
<div>==Overview==<br />
{| border="1" cellspacing="0" cellpadding="2"<br />
! key !! standard function !! tools supporting key{{footnote|1}} !! configurability{{footnote|2}} !! remarks<br />
|-<br />
| {{key|Fn}} || - || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || on release without completed key combination<br />
|-<br />
| {{key|Fn}}{{key|F1}} || - || [[#ibm-acpi events|ibm-acpi]] || full ||<br />
|-<br />
| {{key|Fn}}{{key|F2}} || lock screen || [[#ibm-acpi events|ibm-acpi]] || full || in models from T/X/Z 60 onwards<br />
|-<br />
| {{key|Fn}}{{key|F3}} || blank screen || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full ||<br />
|-<br />
| {{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<br />
|-<br />
| {{key|Fn}}{{key|F5}} || switch bluetooth || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full || in models starting from 2002<br />
|-<br />
| {{key|Fn}}{{key|F6}} || - || [[#ibm-acpi events|ibm-acpi]] || full ||<br />
|-<br />
| {{key|Fn}}{{key|F7}} || switch display || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]], [[#tpb configuration|tpb]] || additional actions || <br />
|-<br />
| {{key|Fn}}{{key|F8}} || toggle display expansion || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]], [[#tpb configuration|tpb]] || additional actions ||<br />
|-<br />
| {{key|Fn}}{{key|F9}} || eject from dock || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full ||<br />
|-<br />
| {{key|Fn}}{{key|F10}} || - || [[#ibm-acpi events|ibm-acpi]] || full ||<br />
|-<br />
| {{key|Fn}}{{key|F11}} || - || [[#ibm-acpi events|ibm-acpi]] || full ||<br />
|-<br />
| {{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<br />
|-<br />
| {{key|Fn}}{{key|Pos1}} || brightness up || [[#ibm-acpi events|ibm-acpi]], [[#tpb configuration|tpb]] || additional actions ||<br />
|-<br />
| {{key|Fn}}{{key|End}} || brightness down || [[#tpb configuration|tpb]] || additional actions ||<br />
|-<br />
| {{key|Fn}}{{key|PageUp}} || toggle thinklight || [[#tpb configuration|tpb]] || additional actions ||<br />
|-<br />
| {{key|Fn}}{{key|Space}} || toggle zoom || [[#tpb configuration|tpb]] || full ||<br />
|-<br />
| {{key|Fn}}{{key|Ins}} || - || [[#ibm-acpi events|ibm-acpi]] || full ||<br />
|-<br />
| {{key|Fn}}{{key|Del}} || - || [[#ibm-acpi events|ibm-acpi]] || full ||<br />
|-<br />
| {{key|Fn}}{{key|Backspace}} || - || [[#ibm-acpi events|ibm-acpi]] || full ||<br />
|-<br />
| {{key|NumLock}} || - || [[#xmodmap configuration|xmodmap]] || make working ||<br />
|-<br />
| {{key|Windows}} || - || [[#xmodmap configuration|xmodmap]] || remapping ||<br />
|-<br />
| {{ibmkey|Access IBM|#495988}} or {{ibmkey|ThinkPad|#494949}} || help application || [[#tpb configuration|tpb]] || full ||<br />
|-<br />
| {{ibmkey|Home|#494949}} || open web browser || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards<br />
|-<br />
| {{ibmkey|Search|#494949}} || open search application || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards<br />
|-<br />
| {{ibmkey|Mail|#494949}} || open mail application || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards<br />
|-<br />
| {{ibmkey|Favorites|#494949}} || open favorites || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards<br />
|-<br />
| {{ibmkey|Reload|#494949}} || reload web page || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards<br />
|-<br />
| {{ibmkey|Abort|#494949}} || abort loading page || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards<br />
|-<br />
| {{ibmkey|Backward|#494949}} || previous page || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || ext. keyboards and ThinkPads starting from 2002<br />
|-<br />
| {{ibmkey|Forward|#494949}} || next page || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || ext. keyboards and ThinkPads starting from 2002<br />
|-<br />
| {{ibmkey|Volume up|#494949}} || volume up || [[#tpb configuration|tpb]] || additional actions ||<br />
|-<br />
| {{ibmkey|Volume down|#494949}} || volume down || [[#tpb configuration|tpb]] || additional actions ||<br />
|-<br />
| {{ibmkey|Volume mute|#494949}} || mute volume || [[#tpb configuration|tpb]] || additional actions ||<br />
|-<br />
| {{ibmkey|Power|#494949}} || shutdown || [[#ibm-acpi events|ibm-acpi]] || full || triggered on pressing 3secs, but notebook goes off on 5sec press<br />
|-<br />
| Display lid || blank screen || [[#ibm-acpi events|ibm-acpi]] || full ||<br />
|-<br />
| Ultrabay lid || announce ultrabay change || [[#ibm-acpi events|ibm-acpi]] || full ||<br />
|-<br />
| Dock eject || eject from dock || [[#ibm-acpi events|ibm-acpi]] || full ||<br />
|-<br />
| {{ibmkey|Tablet power|#494949}} || shutdown || [[#ibm-acpi events|ibm-acpi]] || full || triggered on pressing 3secs, but notebook goes off on 5sec press<br />
|-<br />
| {{ibmkey|Tablet orientation|#494949}} || rotates screen || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||<br />
|-<br />
| {{ibmkey|Tablet shortcut|#494949}} || shortcut menu || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||<br />
|-<br />
| {{ibmkey|Tablet Esc|#494949}} || esc key || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||<br />
|-<br />
| {{ibmkey|Tablet Enter|#494949}} || enter key || [[#mapping keys with setkeycodes|setkeycodes]] || full ||<br />
|-<br />
| {{ibmkey|Tablet Up|#494949}} || up key || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||<br />
|-<br />
| {{ibmkey|Tablet Down|#494949}} || down key || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||<br />
|-<br />
| {{ibmkey|Tablet (unlabeled)|#494949}} || down key || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||<br />
|}<br />
<br />
==Triggering key events==<br />
===ibm-acpi events===<br />
Some of the following events require a {{cmdroot|echo enable,0xffff >/proc/acpi/ibm/hotkey}} in order to make acpi able to get information on them. These events can be used to [[How to configure acpid|configure acpid]].<br />
<br />
{| border="1" cellspacing="0" cellpadding="2"<br />
|+ events triggered by [[ibm-acpi]] for {{path|/etc/acpi/events}} files. <br />
! key !! event<br />
|-<br />
| {{key|Fn}}{{key|F1}} || ibm/hotkey HKEY 00000080 00001001<br />
|-<br />
| {{key|Fn}}{{key|F2}} || ibm/hotkey HKEY 00000080 00001002<br />
|-<br />
| {{key|Fn}}{{key|F3}} || ibm/hotkey HKEY 00000080 00001003<br />
|-<br />
| {{key|Fn}}{{key|F4}} || ibm/hotkey HKEY 00000080 00001004<br />
|-<br />
| {{key|Fn}}{{key|F5}} || ibm/hotkey HKEY 00000080 00001005<br />
|-<br />
| {{key|Fn}}{{key|F6}} || ibm/hotkey HKEY 00000080 00001006<br />
|-<br />
| {{key|Fn}}{{key|F7}} || ibm/hotkey HKEY 00000080 00001007<br />
|-<br />
| {{key|Fn}}{{key|F8}} || ibm/hotkey HKEY 00000080 00001008<br />
|-<br />
| {{key|Fn}}{{key|F9}} || ibm/hotkey HKEY 00000080 00001009<br />
|-<br />
| {{key|Fn}}{{key|F10}} || ibm/hotkey HKEY 00000080 0000100a<br />
|-<br />
| {{key|Fn}}{{key|F11}} || ibm/hotkey HKEY 00000080 0000100b<br />
|-<br />
| {{key|Fn}}{{key|F12}} || ibm/hotkey HKEY 00000080 0000100c<br />
|-<br />
| {{key|Fn}}{{key|Backspace}} || ibm/hotkey HKEY 00000080 0000100d<br />
|-<br />
| {{key|Fn}}{{key|Ins}} || ibm/hotkey HKEY 00000080 0000100e<br />
|-<br />
| {{key|Fn}}{{key|Del}} || ibm/hotkey HKEY 00000080 0000100f<br />
|-<br />
| {{key|Fn}}{{key|Pos1}} || ibm/hotkey HKEY 00000080 00001010<br />
|-<br />
| {{ibmkey|Power|#494949}} || button/power PWRF 00000080 xxxxxxxx<br />
|-<br />
| Display lid || button/lid LID 00000080 xxxxxxxx<br />
|-<br />
| Ultrabay eject || ibm/bay MSTR 00000003 00000000<br />
|-<br />
| Ultrabay inserted || ibm/bay MSTR 00000001 00000000<br />
|-<br />
| Dock eject || ibm/dock GDCK 00000003 00000001<br />
|}<br />
<br />
=== Pure ACPI events ===<br />
<br />
A few keys can generate ACPI events of their own on certain ThinkPads, as long as they are masked off in the ibm-acpi hotkey's mask (or the hotkey feature is disabled in ibm-acpi).<br />
<br />
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.<br />
<br />
{| border="1" cellspacing="0" cellpadding="2"<br />
|+ events triggered by ACPI when hotkey is masked out or disabled. <br />
! key !! event<br />
|-<br />
| {{key|Fn}}{{key|F4}} || button/sleep SLPB 00000080 00000001<br />
|-<br />
| {{key|Fn}}{{key|F12}} || ibm/hotkey HKEY 00000080 0000100c<br />
|}<br />
<br />
===tpb configuration===<br />
{| border="1" cellspacing="0" cellpadding="2"<br />
|+ configuration keywords for [[tpb]] (to put in {{path|/etc/tpbrc}})<br />
! key !! config keyword<br />
|-<br />
| {{ibmkey|Access IBM|#495988}} or {{ibmkey|ThinkPad|#494949}} || THINKPAD<br />
|-<br />
| {{ibmkey|Home|#494949}} || HOME<br />
|-<br />
| {{ibmkey|Search|#494949}} || SEARCH<br />
|-<br />
| {{ibmkey|Mail|#494949}} || MAIL<br />
|-<br />
| {{ibmkey|Favorites|#494949}} || FAVORITES<br />
|-<br />
| {{ibmkey|Reload|#494949}} || RELOAD<br />
|-<br />
| {{ibmkey|Abort|#494949}} || ABORT<br />
|-<br />
| {{ibmkey|Backward|#494949}} || BACKWARD<br />
|-<br />
| {{ibmkey|Forward|#494949}} || FORWARD<br />
|-<br />
| {{key|Fn}} || FN<br />
|-<br />
| {{key|Fn}}{{key|Space}} || CALLBACK (zoom on/off)<br />
|-<br />
| {{key|Fn}}{{key|PageUp}} || CALLBACK (thinklight on/off)<br />
|-<br />
| {{key|Fn}}{{key|F7}} || CALLBACK (display lcd/crt/both)<br />
|-<br />
| {{key|Fn}}{{key|F8}} || CALLBACK (expand on/off)<br />
|-<br />
| {{key|Fn}}{{key|Home}} || CALLBACK (brightness <percent>)<br />
|-<br />
| {{key|Fn}}{{key|End}} || CALLBACK (brightness <percent>)<br />
|-<br />
| {{ibmkey|Volume up|#494949}} || CALLBACK (volume <percent>)<br />
|-<br />
| {{ibmkey|Volume down|#494949}} || CALLBACK (volume <percent>)<br />
|-<br />
| {{ibmkey|Volume mute|#494949}} || CALLBACK (mute on/off)<br />
|}<br />
<br />
To all parameter keywords should be assigned the full path to the executables supposed to be started on key press.<br />
The exectable provided for the CALLBACK keyword should take the parameters given in parentheses and act according to them.<br />
If you want to use xmodmap for the HOME, SEARCH, MAIL, FAVORITES, RELOAD, ABORT, BACKWARD, FORWARD and FN keys you should<br />
provide a <tt>XEVENTS=off</tt> in your {{path|/etc/tpbrc}}.<br />
<br />
For Debian users, tpb is started from {{path|/etc/X11/Xsession.d/90tpb}}.<br />
<br />
===xmodmap configuration===<br />
xmodmap enables you to edit the modifier map and keymap tables that are used to translate keycodes into keysyms.<br />
Understood? Well, basically it allows you to give the X server a dictionary for the translation of keycodes like "97" into more human readable synonyms like "Home". This way xmodmap allows you to make the special keys of your keyboard known to X applications.<br />
<br />
To discover the keycode that a certain keypress produces, use the tool {{cmduser|xev}} <br />
<br />
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.<br />
<br />
The {{path|~/.Xmodmap}} lines for our purpose are in the form of<br />
keycode <keycode> = <keysym><br />
<br />
Load the assocation using the command<br />
<br />
{{cmduser|xmodmap ~/.Xmodmap}} <br />
<br />
(some configurations do this automatically upon X startup).<br />
<br />
The following table shows the keycodes generated by the ThinkPad special keys and sensible keysyms to assign them to.<br />
{| border="1" cellspacing="0" cellpadding="2"<br />
|+ keycodes and recommended keysyms<br />
! key !! keycode !! keysym<br />
|-<br />
| {{ibmkey|Backward|#494949}} || 234 || XF86Back or F19<br />
|-<br />
| {{ibmkey|Forward|#494949}} || 233 || XF86Forward or F20<br />
|-<br />
| {{ibmkey|Home|#494949}} || 178 || XF86HomePage<br />
|-<br />
| {{ibmkey|Search|#494949}} || 229 || XF86Search<br />
|-<br />
| {{ibmkey|Mail|#494949}} || 236 || XF86Mail<br />
|-<br />
| {{ibmkey|Favorites|#494949}} || 230 || XF86AddFavorite or XF86Favorites<br />
|-<br />
| {{ibmkey|Reload|#494949}} || 231 || XF86Reload<br />
|-<br />
| {{ibmkey|Abort|#494949}} || 232 || XF86Stop<br />
|-<br />
| {{key|Fn}} || 227 || F35<br />
|}<br />
<br />
<br />
Note: if you are running [[tpb]] you might need to add the line <tt>XEVENTS=off</tt> into your tpbrc to stop it from grabbing the key events and allow them to get through to X instead.<br />
<br />
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.<br />
<br />
=====Using Caps Lock as Super L (Windows key)=====<br />
You can easily use Caps Lock as Win key by adding the following in your ~/.Xmodmap:<br />
! No Caps Lock<br />
clear lock<br />
! Caps Lock as Win key<br />
add mod4 = Caps_Lock<br />
=====NumLock=====<br />
On the ThinkPad {{X21}}, {{T21}}, {{T30}}, {{X31}}, {{T43}}, {{R51}} 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}} or {{path|/etc/X11/Xmodmap}} and run <tt>xmodmap</tt> as described before:<br />
keycode 77 = Num_Lock<br />
<br />
===Mapping keys with setkeycodes===<br />
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.<br />
<br />
The following table shows the keycodes generated by the ThinkPad keys.<br />
{| border="1" cellspacing="0" cellpadding="2"<br />
|+ keycodes<br />
! key !! keycode<br />
|-<br />
| {{ibmkey|Tablet orientation|#494949}} || 0x6d<br />
|-<br />
| {{ibmkey|Tablet Shortcut|#494949}} || 0x6e<br />
|-<br />
| {{ibmkey|Tablet Esc|#494949}} || 0x6b<br />
|-<br />
| {{ibmkey|Tablet Enter|#494949}} || 0x69<br />
|-<br />
| {{ibmkey|Tablet Up|#494949}} || 0x68<br />
|-<br />
| {{ibmkey|Tablet Down|#494949}} || 0x6c<br />
|-<br />
| {{ibmkey|Tablet (unlabeled)|#494949}} || 0x67<br />
|}<br />
<br />
==Example Applications==<br />
===Web Browsers===<br />
====Firefox====<br />
To have firefox make use of the browser keys you need to modify one of its files{{footnote|3}}.<br />
To do this you will first need to extract it from the {{path|browser.jar}} archive. Do...<br />
<br />
:{{cmdroot|cd <firefox-directory>/chrome}}<br /><br />
:{{cmdroot|unzip browser.jar}}<br />
<br />
The file of interest is {{path|content/browser/browser.xul}}. Edit it...<br />
:{{cmdroot|vi content/browser/browser.xul}}<br />
<br />
Look for the '''<keyset id="mainKeyset">''' section and add the following lines within...<br />
<key id="goBackKb" keycode="VK_F19" command="Browser:Back" /><br />
<key id="goForwardKb" keycode="VK_F20" command="Browser:Forward" /><br />
Now save the file and repackage the {{path|browser.jar}} archive...<br />
:{{cmdroot|zip -rD0 browser.jar content/browser/}}<br />
<br />
That's it.<br />
<br />
{{HINT|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.}}<br />
<br />
{{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.}}<br />
<br />
====Konqueror====<br />
KDE allows you set key mappings for KDE applications (Go to KMenu > System > Control Center > Regional & Accessibility > 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. <br />
<br />
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).<br />
<br />
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.<br />
<br />
====Opera====<br />
However this isn't a simple configration file, you can set your browser manually.<br /><br />
Go to <i>Tool > Settings > Mouse and keyboard > Keyboard settings > Edit > Browser Window</i>. There add F19 - Back and F20 - Forward. Now you can surf using your TP keys ;-)<br />
<br />
===Window Managers===<br />
====fvwm====<br />
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}}:<br />
Key XF86Back A A Scroll -100000 0<br />
Key XF86Forward A A Scroll +100000 0<br />
If you use multiple virtual desktops, you could instead use the keys to flip between them by using GotoDesk.<br />
<br />
====fluxbox====<br />
To get the keys to cycle through pages in the virtual desktop, add this to your {{path|~/.fluxbox/keys}}:<br />
None F19 :PrevWorkspace<br />
None F20 :NextWorkspace<br />
<br />
====pekwm configuration====<br />
You can make the two browser keys switch workspaces in pekwm, by adding the following two lines to the {{path|~/.pekwm/keys}} file:<br />
KeyPress = "Mod1 XF86Back" { Actions = "GoToWorkspace prev" }<br />
KeyPress = "Mod1 XF86Forward" { Actions = "GoToWorkspace next" }<br />
<br />
====pwm====<br />
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}}:<br />
kbind "Back", "switch_rot", -1<br />
kbind "Forward", "switch_rot", 1<br />
<br />
====icewm====<br />
Some applications use {{key|Ctrl}}{{key|Left}} and {{key|Ctrl}}{{key|Right}} to set the cursor to the beginning of the previous / next word. In icewm, though, they're bound to previous / next workspace. Change these two options in {{path|~/.icewm/preferences}} to bind those to {{ibmkey|Forward|#494949}} and {{ibmkey|Backward|#494949}}: (Provided you assigned keysyms F19 and F20 with xmodmap)<br />
# "Previous workspace" shortcut<br />
KeySysWorkspacePrev="F19"<br />
# "Next workspace" shortcut<br />
KeySysWorkspaceNext="F20"<br />
<br />
===Other Uses===<br />
====Console tools configuraton====<br />
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}}):<br />
keycode 158 = Decr_Console<br />
keycode 159 = Incr_Console<br />
<br />
Alternatively you can load this script (perhaps on system startup) to enable Backward/Forward button console (VT) switch:<br />
<br />
#!/bin/sh<br />
setkeycodes e06a 126 e069 127<br />
echo keycode 126 = Decr_Console | loadkeys<br />
echo keycode 127 = Incr_Console | loadkeys<br />
<br />
It should work with any distro.<br />
<br />
==External Sources==<br />
*[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]<br />
*[http://dqd.com/~mayoff/notes/thinkpad/dqdnavkeys/ Rob Mayoffs page on using IBM Keyboard Navigation Keys in Linux Mozilla and Firefox]<br />
*[http://snarfed.org/space/thinkpad+keys+in+firefox Ryan Barretts blog article about using the browser keys in Firefox]<br />
<br />
{{footnotes|<br />
#if there are more than one tool listed, one is sufficient<br />
#'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.<br />
#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].<br />
}}</div>Micha