https://www.thinkwiki.org/w/api.php?action=feedcontributions&user=Learner&feedformat=atomThinkWiki - User contributions [en]2024-03-28T13:35:46ZUser contributionsMediaWiki 1.31.12https://www.thinkwiki.org/w/index.php?title=Category:X201&diff=49930Category:X2012010-11-03T15:14:12Z<p>Learner: /* Standard Features */ Add 2.66GHz i5 CPU</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 />
=== ThinkPad X201 ===<br />
This page gives an overview of all ThinkPad X201 related topics.<br />
<br />
==== Machine Type ====<br />
* 3249, 3626, 3680, 3323<br />
<br />
==== Standard Features ====<br />
*One of the following [[Intel Core i5]] or [[Intel Core i7]] processors:<br />
** Intel® Core™ i5-520M (Dual-core, 2.4GHz, 3MB L2)<br />
** Intel® Core™ i5-540M (Dual-core, 2.53GHz, 3MB L2)<br />
** Intel® Core™ i5-560M (Dual-core, 2.66GHz, 3MB L2)<br />
** Intel® Core™ i7-620M (Dual-core, 2.66GHz, 4MB L3)<br />
* [[Intel HD Graphics]]<br />
* One of the following [[TFT display|TFT displays]]:<br />
** 12.1" TFT display with 1280x800 (WXGA) resolution with LED backlight<br />
* 2, 3 or 4GB [[PC3-8500]] or [[PC3-10600]] memory standard, upgradable to 8GB<br />
* One of the following hard drives:<br />
** 128GB SSD 1.8" SATA<br />
** 250GB 5400RPM 2.5" SATA<br />
** 320GB 5400RPM 2.5" SATA<br />
** 320GB 7200RPM 2.5" SATA<br />
** 500GB 7200RPM 2.5" SATA<br />
* [[Ricoh 5-in-1 MultiCard Reader|5-in-1 MultiCard Reader]]<br />
* [[Intel Gigabit Ethernet (10/100/1000) PCI-Express]]<br />
* Intel HD Audio with a [[CX20585]] codec<br />
* [[ThinkPad Modem (MDC-3.0, 56kbps HDA)]]<br />
* [[MiniPCI Express slot]] 1 with one of the following:<br />
** [[ThinkPad 11b/g/n Wireless LAN Mini-PCI Express Adapter II]]<br />
** [[Intel Centrino Ultimate-N 6300]]<br />
** [[Intel Centrino Advanced-N 6200]]<br />
* [[MiniPCI Express slot]] 2 with one of the following:<br />
** None (empty, not upgradable)<br />
** None (empty, WWAN upgradable)<br />
** [[Qualcomm Gobi 2000]] WWAN with GPS<br />
* [[ExpressCard slot|ExpressCard/54 slot]]<br />
* 2.0MP [[Integrated camera]] on select models<br />
* [[Integrated Fingerprint Reader]] on select models<br />
* [[ThinkPad_Bluetooth_with_Enhanced_Data_Rate_(BDC-2.1)|Bluetooth]] on select models<br />
* [[Embedded Security Subsystem|Trusted Computing Group TPM 1.2]]<br />
* [[Active Protection System]]<br />
* [[UltraNav]] (TrackPoint / Touchpad combo)<br />
* [[Intel Active Management Technology (AMT)]]<br />
</div><br />
|style="vertical-align:top" |<br />
[[Image:ThinkPadX201.jpg|ThinkPad X201|300px]]<br />
|}<br />
<br />
==== Resources ====<br />
* [http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=lenovo&lndocid=MIGR-70149 Hardware Maintenance Manual (HMM)]<br />
* [http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=lenovo&lndocid=MIGR-75238 Product Overview]<br />
<br />
[[Category:X Series]]</div>Learnerhttps://www.thinkwiki.org/w/index.php?title=How_to_configure_and_use_libata_SATA_/_PATA_drivers&diff=31331How to configure and use libata SATA / PATA drivers2007-07-16T14:36:34Z<p>Learner: </p>
<hr />
<div>==How to configure and use libata SATA / PATA drivers==<br />
<br />
For now this mosty is for libata PATA drivers. Should work for SATA as well, I can't test it since I do not have an SATA based ThinkPad.<br />
<br />
Configure your kernel as follows:<br />
<br />
<pre>CONFIG_ATA=y<br />
CONFIG_ATA_PIIX=y<br />
CONFIG_ATA_GENERIC=y<br />
CONFIG_BLK_DEV_SD=y<br />
CONFIG_BLK_DEV_SR=m</pre><br />
<br />
You find those in "Device / Serial ATA (prod) and Parallel ATA (experimental) drivers" and "Device Drivers / SCSI device support" in menuconfig. <br />
<br />
You need CONFIG_ATA_PIIX for current Intel chipsets - I got the hint from <br />
Serge Belyshev out from a thread on the [http://members.optusnet.com.au/ckolivas/kernel/ ck mailinglist]. It is a labeled a bit misleading:<br />
<pre>[ ] ServerWorks Frodo / Apple K2 SATA support<br />
[*] Intel PIIX/ICH SATA support <--- there<br />
[ ] Marvell SATA support (HIGHLY EXPERIMENTAL)</pre><br />
<br />
The other PIIX related options are for older chipsets.<br />
<br />
Above configuration should also work for SATA as well, ATA_PIIX does SATA and PATA. For T60/X60/R60/Z60 series according to Henrique de Moraes Holschuh you might also need <tt>CONFIG_SATA_AHCI</tt>.<br />
<br />
==Switching from old IDE drivers to libata drivers==<br />
<br />
I tested libata PATA drivers on ThinkPad T23 and ThinkPad T42.<br />
<br />
You can and probably should disable the whole IDE driver subsystem ("ATA/ATAPI/MFM/RLL support") when you switch from old IDE drivers to the new libata PATA drivers:<br />
<br />
<pre>CONFIG_IDE=n</pre><br />
<br />
You need to change the bootloader configuration, rename all <tt>/dev/hd*</tt> to <tt>/dev/sd*</tt>. At least upto kernel 2.6.20 you also need to add the kernel boot option <tt>atapi_enabled=1</tt> to get out of the box working CD-ROM support. Otherwise you manually need to load the module sr_mod with modprobe sr_mod. This option will likely become the default in 2.6.21 or 2.6.22 as Henrique de Moraes Holschuh noted.<br />
<br />
This is an example entry:<br />
<br />
<pre>title Debian GNU/Linux, kernel 2.6.20.3-ck1-tp42-sws2-2.2.9.9<br />
root (hd0,0)<br />
kernel /boot/vmlinuz-2.6.20.3-ck1-tp42-sws2-2.2.9.9 root=/dev/sda1 ro resume2=swap:/dev/sda5 resume=/dev/sda5 vga=792 atap<br />
i_enabled=1<br />
savedefault</pre><br />
<br />
(on Debian/Ubuntu and possibly other distros you better change the kopt line and run update-grub)<br />
<br />
You also need to change /etc/fstab. Replace any relevant <tt>dev/hd*</tt> with <tt>/dev/sd*</tt>. Better yet use labels or uuids. An example:<br />
<br />
<pre># Debian<br />
LABEL=debian / xfs defaults,logbufs=8 0 1<br />
LABEL=swap none swap sw 0 2<br />
proc /proc proc defaults 0 2<br />
LABEL=home /home xfs defaults,logbufs=8 0 2</pre><br />
<br />
You need to set labels for your partition via specific filesystem or swapspace tools like <tt>xfs_admin -L</tt>, <tt>tune2fs -L</tt> and <tt>mkswap -L</tt>. This way fstab setup is independant of concrete device file names and thus you can switch back to old IDE drivers easily.<br />
<br />
For the CD-ROM drive use <tt>/dev/scd0</tt>:<br />
<br />
<pre>/dev/scd0 /cdrom iso9660 ro,user,noauto 0 0</pre><br />
<br />
This should enough to get the system up and running with the new libata PATA drivers. You may need to change other configuration files that refer to device files such as <tt>/etc/hdparm.conf</tt> and possibly <tt>/etc/sysfs.conf</tt> if you set an IO scheduler there (I just removed my cfq scheduler entries as it is the default in the meanwhile.<br />
<br />
==Smartmontools and libata driven devices==<br />
<br />
For libata driven devices you should use smartmontools 5.37 and the <tt>-d sat</tt> option. An example entry for ''/etc/smartd.conf'' would be:<br />
<br />
<pre># Short selftest wednesday, sunday at 13 o clock.<br />
# Long selftest thursday, 13 Uhr<br />
# Email me on problems and use raw temperature values<br />
/dev/sda -d sat -r 194 -a -o on -S on -n standby -m martin@deepdance -s (S/../../(3|7)/13|L/../../4/13)</pre><br />
<br />
==References==<br />
[http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2007-March/038383.html Thread on linux-thinkpad mailing list]</div>Learnerhttps://www.thinkwiki.org/w/index.php?title=Category:T61&diff=30016Category:T612007-05-23T22:44:49Z<p>Learner: typo fixed</p>
<hr />
<div>{| 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 />
=== ThinkPad T61 ===<br />
This pages gives an overview of all ThinkPad T61 related topics.<br />
<br />
==== Standard Features ====<br />
* One of the following processors:<br />
** [[Intel Core 2 Duo (Merom)]] 1.66, 1.83, 2.0, 2.16, 2.33 GHz CPU<br />
* One of the following graphics adapters:<br />
** [[Intel Graphics Media Accelerator X3100]] <br />
** [[nVidia Quadro NVS 140m]] (128 MB)<br />
* One of the following displays:<br />
** 14.1" TFT display with 1280x800 (WXGA) resolution<br />
** 14.1" TFT display with 1440x900 (WXGA+) resolution<br />
* 512 MB or 1 GB [[PC2-5300]] memory standard upgradable to 4 GB<br />
* 40, 60, 80, 100, 120 or 160GB 5400RPM SATA HDD (Some available in 7200RPM)<br />
* [[AD1981HD]] HD Audio 1.0 controller<br />
* [[Ethernet Controllers#Intel Gigabit (10/100/1000)|Intel Gigabit Ethernet Controller]]<br />
* [[UltraBay|UltraBay Slim]] with one of the following:<br />
** [[UltraBay Slim DVD-ROM Drive]]<br />
** [[UltraBay Slim CD-RW/DVD-ROM Combo II Drive]]<br />
** [[UltraBay Slim Super Multi-Burner Drive]]<br />
* [[Intel® Turbo Memory hard drive cache]]<br />
* [[MiniPCI Express slot]] 1 with one of the following:<br />
** None (empty)<br />
** [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]<br />
** [[Intel PRO/Wireless 4965AGN Mini-PCI Express Adapter]]<br />
** [[ThinkPad 11a/b/g Wireless LAN Mini Express Adapter]]<br />
** [[ThinkPad 11a/b/g/n Wireless LAN Mini Express Adapter]]<br />
* [[MiniPCI Express slot]] 2 with one of the following:<br />
** None (empty)<br />
** [[Verizon 1xEV-DO WWAN]] (It seems to be a Sierra Wireless MC5720 Modem)<br />
* [[CardBus slot]] (Type 2)<br />
* [[ExpressCard slot|ExpressCard/54 slot]]<br />
* [[Embedded Security Subsystem|IBM Embedded Security Subsystem 2.0]]<br />
* [[Active Protection System|IBM Active Protection System]]<br />
* [[Integrated Fingerprint Reader]] on select models<br />
* Bluetooth on select models<br />
* [[UltraNav]] (TrackPoint / Touchpad combo)<br />
* IEEE1394 Firewire<br />
* [[Centrino Pro]]<br />
</div><br />
|style="vertical-align:top" |<br />
[[Image:t60-models_nov06.jpg|ThinkPad T61]]<br />
|}<br />
<br />
==== Resources ====<br />
* [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-67709 T61 Product Overview ]<br />
* [http://www-307.ibm.com/pc/support/site.wss/MIGR-67760.html T61 Hardware Maintenance Manual]<br />
* [http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=lenovo&lndocid=MIGR-62465 T60/p Service and Troubleshooting Guide]<br />
* [http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=lenovo&lndocid=MIGR-67686 T61 Setup Guide]<br />
<br />
==== Reviews ====<br />
* [http://www.notebookreview.com/default.asp?newsID=3708 NotebookReview.com], 2007-04-24<br />
* [http://www.pcmag.com/article2/0,1759,2127379,00.asp PcMag.com], 2007-05-09<br />
<br />
==== Resources ====<br />
* [http://www.klabs.be/~fpiat/linux/debian/Etch_on_Thinkpad_T61.html Installing Debian/Linux Etch on a Thinkpad T61], 2007-05-22<br />
<br />
[[Category:T Series]]</div>Learnerhttps://www.thinkwiki.org/w/index.php?title=Category:T_Series&diff=30006Category:T Series2007-05-23T20:37:42Z<p>Learner: /* ThinkPad T6x series */</p>
<hr />
<div>=ThinkPad T series=<br />
As successor of the [[ThinkPad_series#ThinkPad_600_series|600 series]], the T series became IBM mobile productivity line. Usually leading the ThinkPad range in technology, innovation and price, the T series was intended for the travelling businessman - comparatively more stylish, functional, and rugged machines; and easy to disassemble for repair or upgrades. T series ThinkPads are clad in black non-slip rubber with embedded glitter. The case lid has tabs along the edge that interlocks with depressions in the lower case when closed, to reduce case flexing. <br />
<br />
==ThinkPad T2x series==<br />
The ThinkPad T2x models ([[:Category:T20|T20]], [[:Category:T21|T21]], [[:Category:T22|T22]], [[:Category:T23|T23]]) were [[Intel Mobile Pentium III-M]] based, sub-5 lb (2.3 kg) class machines. These machines typically had 14.1 inch XGA screens, S3 Savage graphics chips and Cirrus Logic sound chips. The T2x series introduced the [[UltraBay|UltraBay 2000]] optical drive bay and titanium-reinforced screen lids. With the T23, an internal WiFi antenna became available, so WiFi miniPCI cards could be used. Also the T23 was the first ThinkPad featuring an [[UltraBay|UltraBay Plus]] drive and [[Embedded Security Subsystem]].<br />
<br />
==ThinkPad T3x series==<br />
The T3x series only saw one model, the [[:Category:T30|T30]]. Powered by a [[Intel Mobile Pentium 4-M]] and a Radeon 7500 graphics chip with 16&nbsp;MB of discrete video memory, the T30 was available with 14.1 inch XGA or SXGA screens. The T30 introduced the [[UltraNav]] touchpad and integrated Bluetooth among ThinkPads. Other features include the [[Embedded Security Subsystem]], [[UltraBay|Ultrabay Plus]] drive, integrated Wireless LAN. The shell is titanium reinforced composite. The whole package was a bit heavier and thicker than both the T2x and the T4x series.<br />
<br />
==ThinkPad T4x series==<br />
Includes the T40, T41, T42, T43, and associated "p" series (for "performance"; e.g., T43p). A typical T4x weighs 2.2 kg (4.9 lb), slightly less than the 600 series, and features an [[Intel Pentium M (Dothan)]] Processor, a 14.1 or 15 inch LCD (XGAor SXGA+), an integrated GPU (Intel Graphics Media Adapter 900) or a discrete GPU (Radeon 7500, 9000, Fire GL 9000, 9600, Fire GL T2, X300, and Fire GL V3200), and a hard drive ranging in size from 30 to 100 GB with the Active Protection System to protect the hard drive (T41 and later models). "p" (mobile workstation) models are also available with a 14" SXGA+ or a 15 inch UXGA FlexView display with wide viewing angle and high density IPS technology with resolutions up to 1600x1200. These 15 inch display models weigh slightly more than their lesser brethren, with optical drive and battery, at 2.7 kg (5.9 lb). Some T42 and T43 models feature a biometric security system with built-in fingerprint reader.<br />
<br />
==ThinkPad T6x series==<br />
Includes, as of 2006, the [[:Category:T60|T60]]; intended as the next generation of the T4x Series Thinkpads; this is the first T Series Thinkpad to include the Intel Dual Core "Yonah" Technology and also Intels Core 2 Duo "Merom" CPUs. With [[:Category:T61|T61]] Lenovo drops 14" 4/3 in favor of 14" 16/10. Also T61's discrete GPU is now Nvidia (NVP 140M) instead of ATI one.<br />
<br />
[[Category:Models]]</div>Learnerhttps://www.thinkwiki.org/w/index.php?title=Ipw2200&diff=29309Ipw22002007-04-13T21:27:41Z<p>Learner: /* Status */</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 />
Included in mainline Linux kernels, tracking the SourceForge version with about 6 months delay.<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 Sarge}} includes the source code for the modules in package ipw2200-source (http://packages.debian.org/ipw2200-source). You additionally need to download firmware manually.<br />
*{{Debian Etch}} includes a version of the modules in its kernel or for a later version install package ipw2200-modules-2.6-486 or ipw2200-modules-2.6-686 or ipw2200-modules-2.6-686-bigmem or ipw2200-modules-2.6-k7 or ipw2200-modules-2.6-amd64; or the source code for them in ipw2200-source (http://packages.debian.org/ipw2200-source) to compile one yourself. You additionally need to download firmware manually.<br />
<br />
=== Status ===<br />
In development, usable, WEP 128bit encryption works, WPA and WPA2 work with drivers >= 1.0.2 using [[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.2.0<br />
* firmware: 3.0<br />
* ieee80211 stack: 1.2.15<br />
<br />
Latest development versions:<br />
* ipw2200 driver: 1.2.1<br />
* firmware: 3.0<br />
* ieee80211 stack: 1.2.17<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.2.15.tgz}}<br />
:{{cmdroot|cd ieee80211-1.2.15}}<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.2.0.tgz}}<br />
:{{cmdroot|cd ipw2200-1.2.0}}<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 Sarge ===<br />
{{cmdroot|apt-get install ipw2200-source}}<br />
<br />
{{cmdroot|module-assistant -t build ipw2200-source}}<br />
<br />
[is this how module-assistant works in Sarge?]<br />
<br />
=== Installation on Debian Etch ===<br />
<br />
The kernel includes a version but if you want a more recent version install the module ipw2200-modules-2.6-486 or ipw2200-modules-2.6-686 or ipw2200-modules-2.6-686-bigmem or ipw2200-modules-2.6-k7 or ipw2200-modules-2.6-amd64 depending on your architecture.<br />
<br />
The firmware is not distributed with Debian due to licensing reasons, download the matching version 3.0 [http://ipw2200.sourceforge.net/firmware.php firmware] and install it:<br />
<br />
:{{cmdroot|tar -xvf ipw2200-fw-3.0.tgz -C /lib/firmware}}<br />
<br />
:{{cmdroot|mv /lib/firmware/ipw2200-fw-3.0/* /lib/firmware}}<br />
<br />
=== Installation on Debian Unstable ===<br />
Install ieee80211-source:<br />
:{{cmdroot|apt-get install ieee80211-source}}<br />
:{{cmdroot|module-assistant -t build ieee80211-source}}<br />
<br />
The kernel includes a version but if you want a more recent version install the module ipw2200-modules-2.6-486 or ipw2200-modules-2.6-686 or ipw2200-modules-2.6-686-bigmem or ipw2200-modules-2.6-k7 or ipw2200-modules-2.6-amd64 depending on your architecture.<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 /usr/lib/hotplug/firmware}}<br />
<br />
see /etc/hotplug/firmware.agent for details on configured firmware locations<br />
<br />
Make sure that your firmware files are not in a subdirectory (dmesg will give you warnings after any modprobe when firmware can't be loaded)<br />
<br />
=== Installation on Fedora Core ===<br />
Installation on Fedora Core 5 works out of the box provided you install the ipw2200-firmware package. However, certain parts of the install process may not set up the wireless networking in a friendly manner using GNOME system tray icons and other tools. Bill Moss has written some excellent HowTo articles, including using VPNC to connect to a remote Cisco IPSec network.<br />
<br />
* [http://www.ces.clemson.edu/linux/fc2-ipw2200.shtml Fedora Core 5 and the IPW2200 Wireless Driver]<br />
* [http://www.ces.clemson.edu/linux/nm.shtml Fedora Core 5 NetworkManager, NetworkManager-vpnc and Wireless Driver IPW2200]<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 />
There are some very detailed instructions with working sample configurations on the following link:<br />
[http://www.bughost.org/ipw/wpa_howto.txt ipw2200 WPA instruction]<br />
<br />
== Power Management ==<br />
The ipw2200 driver has power management capabilities, which comes in handy while operating on battery. <br />
<br />
To enable reduced power consumption mode, issue: <br />
:{{cmdroot|iwpriv wlan0 set_power 7}}<br />
where <tt>wlan0</tt> is the name of your interface. This will reduce idle power consumption by 1-2 Watts compared to no power management. To return to the "normal" operation mode, you can issue:<br />
:{{cmdroot|iwpriv wlan0 set_power 6}}.<br />
<br />
In order to check current settings, you can issue:<br />
:{{cmdroot|iwpriv wlan0 get_power}}.<br />
<br />
More information on these option is available in the {{path|README.ipw3945}} file in the <tt>ipw3945</tt> package ({{path|README.ipw2200}} seems to be rather sketchy about the details of power management). You may want to turn power management on/off on demand in an ACPI script that catches battery/AC events, so that this happens automatically.<br />
<br />
Note that there have been [http://www.bughost.org/bugzilla/show_bug.cgi?id=1074 reports] that some versions of ipw2200 react with a firmware error to power management commands. This [http://www.bughost.org/bugzilla/attachment.cgi?id=1024 patch] could alleviate the problem.<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 (on kubuntu 6.10 {{path|/etc/modprobe.d/options}}).<br />
<br />
See {{path|README.ipw2200}} in the <tt>ipw2200</tt> package for details and other options.<br />
<br />
== Changing the enabled channels ==<br />
Permitted WiFi channels vary with geography due to regulation. The EEPROM in this chip contains a country code (programmed by the hardware manufacturer), and the driver converts this to a channel list and enforces it.<br />
<br />
If you carry your laptop to a different regulatory region, you may need to change the list of permitted channels according to local regulations. There are two ways to accomplish this:<br />
<br />
===Patching the ipw2200 driver===<br />
You can alter the ipw2200 driver sourcecode to hard-code the country code instead of reading it from EEPROM. For example, this will allow all 14 channels (perfect for those special occasions in international water):<br />
<pre><br />
--- ipw2200.c.orig<br />
+++ ipw2200.c<br />
@@ -11344,7 +11344,7 @@ static int ipw_up(struct ipw_priv *priv)<br />
memcpy(priv->net_dev->dev_addr, priv->mac_addr, ETH_ALEN);<br />
<br />
for (j = 0; j < ARRAY_SIZE(ipw_geos); j++) {<br />
- if (!memcmp(&priv->eeprom[EEPROM_COUNTRY_CODE],<br />
+ if (!memcmp("ZZR",<br />
ipw_geos[j].name, 3))<br />
break;<br />
}<br />
</pre><br />
<br />
For the list of codes and their meaning, see the "<tt>ipw_geos</tt>" table in the [http://lxr.free-electrons.com/source/drivers/net/wireless/ipw2200.c#10382 ipw2200.c sourcecode].<br />
<br />
===Patching the EEPROM===<br />
<br />
Alternatively, you can change the country code in the EEPROM once and for all, and then use the standard ipw2200 driver.<br />
<br />
See this guide:<br />
* [http://saftware.de/#ipw2200 Patching the EEPROM].<br />
<br />
Instead of the <tt>hd</tt> program mentioned there, you can use the more common <tt>od</tt> program:<br />
echo -n ZZD | od -t x1<br />
0000000 5a 5a 44<br />
0000003<br />
<br />
{{WARN|If this procedure goes wrong, you may ruin your wireless card.}}<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|/usr/lib/hotplug/firmware}} or {{path|/lib/firmware}} depending on your disto.<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 />
[[Category:Drivers]]</div>Learnerhttps://www.thinkwiki.org/w/index.php?title=Table_of_thinkpad-acpi_LEDs&diff=27574Table of thinkpad-acpi LEDs2007-01-08T15:55:36Z<p>Learner: Updated Thinklight for 2373-GHG</p>
<hr />
<div>This table contains informations about which LED number is used for which LED in the [[ibm-acpi]] driver.<br />
<br />
To test please do the following and add the blinking LED to the table. The moon symbol is the standby led.<br />
<br />
<pre><br />
echo "0 blink" > /proc/acpi/ibm/led<br />
echo "1 blink" > /proc/acpi/ibm/led<br />
echo "2 blink" > /proc/acpi/ibm/led<br />
echo "3 blink" > /proc/acpi/ibm/led<br />
echo "4 blink" > /proc/acpi/ibm/led<br />
echo "5 blink" > /proc/acpi/ibm/led<br />
echo "6 blink" > /proc/acpi/ibm/led<br />
echo "7 blink" > /proc/acpi/ibm/led<br />
echo "on" > /proc/acpi/ibm/light<br />
</pre><br />
<br />
<div style="font-size: 92%"><br />
{| border="1" cellspacing="0" cellpadding="2"<br />
|+ibm-acpi LED table<br />
|-<br />
! &times;<br />
! LED #0<br />
! LED #1<br />
! LED #2<br />
! LED #3<br />
! LED #4<br />
! LED #5<br />
! LED #6<br />
! LED #7<br />
! ThinkLight<br />
! Notes<br />
|-<br />
! colspan=11 style="text-align:center;background:#efefef;" |<br />
|-<br />
! {{A22p}}<br />
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} ||<br />
|-<br />
! {{A30}}<br />
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} ||<br />
|-<br />
! {{A31}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || Ultrabay left || Ultrabay right || not found || Standby || {{Cunk}} || {{Cunk}} ||<br />
|-<br />
! colspan=11 style="text-align:center;background:#efefef;" |<br />
|-<br />
! {{G41}}<br />
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} ||<br />
|-<br />
! colspan=11 style="text-align:center;background:#efefef;" |<br />
|-<br />
! [[:Category:R31|R31]]<br />
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} ||<br />
|-<br />
! {{R40}}<br />
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} ||<br />
|-<br />
! {{R50}}<br />
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} ||<br />
|-<br />
! {{R50p}}<br />
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} ||<br />
|-<br />
! {{R50e}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || Standby || {{ThinkLight(amber)}} ||<br />
|-<br />
! {{R51}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || {{Cunk}} || Ultrabay || {{Cunk}} || {{Cunk}} || Standby || {{ThinkLight(amber)}} || 2883-ELU<br />
|-<br />
! {{R52}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || {{Cunk}} || Ultrabay || {{Cunk}} || {{Cunk}} || Standby || {{ThinkLight(amber)}} ||<br />
|-<br />
! {{R60}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || {{Cunk}} || Ultrabay || {{Cunk}} || {{Cunk}} || Standby || {{ThinkLight(amber)}} ||<br />
|-<br />
! {{R60e}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || Standby || {{ThinkLight(amber)}} ||<br />
|-<br />
<br />
! colspan=11 style="text-align:center;background:#efefef;" |<br />
<br />
|-<br />
! {{T20}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || {{Cunk}} || Ultrabay || {{Cunk}} || {{Cunk}} || Standby || {{ThinkLight(white)}} ||<br />
|-<br />
! {{T22}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || nothing || Ultrabay || nothing || nothing || Standby || {{ThinkLight(white)}} ||<br />
|-<br />
! {{T23}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || {{Cunk}} || Ultrabay || {{Cunk}} || {{Cunk}} || Standby || {{ThinkLight(white)}} || 2647-4MG<br />
|-<br />
! {{T30}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || {{Cunk}} || Ultrabay || {{Cunk}} || {{Cunk}} || Standby || {{ThinkLight(white)}} ||<br />
|-<br />
! {{T40}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || {{Cunk}} || Ultrabay || {{Cunk}} || {{Cunk}} || Standby || {{ThinkLight(white)}} ||<br />
|-<br />
! {{T40p}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || {{Cunk}} || Ultrabay || {{Cunk}} || {{Cunk}} || Standby || {{ThinkLight(white)}} ||<br />
|-<br />
! {{T41}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || {{Cunk}} || Ultrabay || {{Cunk}} || {{Cunk}} || Standby || {{ThinkLight(white)}} || 2373-2gg<br />
|-<br />
! {{T41p}} <br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || {{Cunk}} || Ultrabay || {{Cunk}} || {{Cunk}} || Standby || {{ThinkLight(white)}} || 2373-GHG<br />
|-<br />
! {{T42}} <br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || {{Cunk}} || Ultrabay || {{Cunk}} || {{Cunk}} || Standby || {{ThinkLight(white)}} ||<br />
|-<br />
! {{T42p}} <br />
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} ||<br />
|-<br />
! {{T43}}, {{T43p}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || {{Cunk}} || Ultrabay || {{Cunk}} || {{Cunk}} || Standby || {{ThinkLight(white)}} ||<br />
|-<br />
! {{T60}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || {{Cunk}} || Ultrabay || {{Cunk}} || {{Cunk}} || Standby || {{ThinkLight(white)}} || 2007-49G<br />
|-<br />
! colspan=11 style="text-align:center;background:#efefef;" |<br />
<br />
|-<br />
! {{X20}}<br />
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} ||<br />
|-<br />
! {{X21}}<br />
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || Standby || {{ThinkLight(white)}} ||<br />
|-<br />
! {{X24}}<br />
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} ||<br />
|-<br />
! {{X30}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || Ultrabase || Ultrabay || Ultrabase Battery || {{Cunk}} || Standby || {{ThinkLight(white)}} ||<br />
|-<br />
! {{X31}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || Standby || {{ThinkLight(white)}} ||<br />
|-<br />
! {{X32}}<br />
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} ||<br />
|-<br />
! {{X40}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || Ultrabase || Ultrabay || {{Cunk}} || {{Cunk}} || Standby || {{Cunk}} ||<br />
|-<br />
! {{X41}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || Ultrabase || Ultrabay || {{Cunk}} || {{Cunk}} || Standby || {{Cunk}} ||<br />
|-<br />
! {{X60}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || Ultrabase || Ultrabay || {{Cunk}} || {{Cunk}} || Standby || {{Cunk}} ||<br />
|-<br />
! colspan=11 style="text-align:center;background:#efefef;" |<br />
|-<br />
! {{Z60t}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || Standby || {{ThinkLight(amber)}} ||<br />
|-<br />
! {{Z61m}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || Standby || {{ThinkLight(amber)}} ||<br />
|-<br />
! {{Z61p}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || {{Cunk}} || Ultrabay || {{Cunk}} || {{Cunk}} || Standby || {{ThinkLight(amber)}} ||<br />
|}<br />
</div></div>Learnerhttps://www.thinkwiki.org/w/index.php?title=Table_of_thinkpad-acpi_LEDs&diff=27429Table of thinkpad-acpi LEDs2007-01-01T17:17:11Z<p>Learner: </p>
<hr />
<div>This table contains informations about which LED number is used for which LED in the [[ibm-acpi]] driver.<br />
<br />
To test please do the following and add the blinking LED to the table. The moon symbol is the standby led.<br />
<br />
<pre><br />
echo "0 blink" > /proc/acpi/ibm/led<br />
echo "1 blink" > /proc/acpi/ibm/led<br />
echo "2 blink" > /proc/acpi/ibm/led<br />
echo "3 blink" > /proc/acpi/ibm/led<br />
echo "4 blink" > /proc/acpi/ibm/led<br />
echo "5 blink" > /proc/acpi/ibm/led<br />
echo "6 blink" > /proc/acpi/ibm/led<br />
echo "7 blink" > /proc/acpi/ibm/led<br />
echo "on" > /proc/acpi/ibm/light<br />
</pre><br />
<br />
<div style="font-size: 92%"><br />
{| border="1" cellspacing="0" cellpadding="2"<br />
|+ibm-acpi LED table<br />
|-<br />
! &times;<br />
! LED #0<br />
! LED #1<br />
! LED #2<br />
! LED #3<br />
! LED #4<br />
! LED #5<br />
! LED #6<br />
! LED #7<br />
! ThinkLight<br />
! Notes<br />
|-<br />
! colspan=11 style="text-align:center;background:#efefef;" |<br />
|-<br />
! {{A22p}}<br />
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} ||<br />
|-<br />
! {{A30}}<br />
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} ||<br />
|-<br />
! {{A31}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || Ultrabay left || Ultrabay right || not found || Standby || {{Cunk}} || {{Cunk}} ||<br />
|-<br />
! colspan=11 style="text-align:center;background:#efefef;" |<br />
|-<br />
! {{G41}}<br />
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} ||<br />
|-<br />
! colspan=11 style="text-align:center;background:#efefef;" |<br />
|-<br />
! [[:Category:R31|R31]]<br />
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} ||<br />
|-<br />
! {{R40}}<br />
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} ||<br />
|-<br />
! {{R50}}<br />
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} ||<br />
|-<br />
! {{R50p}}<br />
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} ||<br />
|-<br />
! {{R50e}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || Standby || {{ThinkLight(amber)}} ||<br />
|-<br />
! {{R51}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || {{Cunk}} || Ultrabay || {{Cunk}} || {{Cunk}} || Standby || {{ThinkLight(amber)}} || 2883-ELU<br />
|-<br />
! {{R52}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || {{Cunk}} || Ultrabay || {{Cunk}} || {{Cunk}} || Standby || {{ThinkLight(amber)}} ||<br />
|-<br />
! {{R60}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || {{Cunk}} || Ultrabay || {{Cunk}} || {{Cunk}} || Standby || {{ThinkLight(amber)}} ||<br />
|-<br />
! {{R60e}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || Standby || {{ThinkLight(amber)}} ||<br />
|-<br />
<br />
! colspan=11 style="text-align:center;background:#efefef;" |<br />
<br />
|-<br />
! {{T20}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || {{Cunk}} || Ultrabay || {{Cunk}} || {{Cunk}} || Standby || {{ThinkLight(white)}} ||<br />
|-<br />
! {{T22}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || nothing || Ultrabay || nothing || nothing || Standby || {{ThinkLight(white)}} ||<br />
|-<br />
! {{T23}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || {{Cunk}} || Ultrabay || {{Cunk}} || {{Cunk}} || Standby || {{ThinkLight(white)}} || 2647-4MG<br />
|-<br />
! {{T30}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || {{Cunk}} || Ultrabay || {{Cunk}} || {{Cunk}} || Standby || {{ThinkLight(white)}} ||<br />
|-<br />
! {{T40}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || {{Cunk}} || Ultrabay || {{Cunk}} || {{Cunk}} || Standby || {{ThinkLight(white)}} ||<br />
|-<br />
! {{T40p}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || {{Cunk}} || Ultrabay || {{Cunk}} || {{Cunk}} || Standby || {{ThinkLight(white)}} ||<br />
|-<br />
! {{T41}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || {{Cunk}} || Ultrabay || {{Cunk}} || {{Cunk}} || Standby || {{ThinkLight(white)}} || 2373-2gg<br />
|-<br />
! {{T41p}} <br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || {{Cunk}} || Ultrabay || {{Cunk}} || {{Cunk}} || Standby || {{Cunk}} || 2373-GHG<br />
|-<br />
! {{T42}} <br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || {{Cunk}} || Ultrabay || {{Cunk}} || {{Cunk}} || Standby || {{ThinkLight(white)}} ||<br />
|-<br />
! {{T42p}} <br />
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} ||<br />
|-<br />
! {{T43}}, {{T43p}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || {{Cunk}} || Ultrabay || {{Cunk}} || {{Cunk}} || Standby || {{ThinkLight(white)}} ||<br />
|-<br />
! {{T60}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || {{Cunk}} || Ultrabay || {{Cunk}} || {{Cunk}} || Standby || {{ThinkLight(white)}} || 2007-49G<br />
|-<br />
! colspan=11 style="text-align:center;background:#efefef;" |<br />
<br />
|-<br />
! {{X20}}<br />
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} ||<br />
|-<br />
! {{X24}}<br />
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} ||<br />
|-<br />
! {{X30}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || Ultrabase || Ultrabay || Ultrabase Battery || {{Cunk}} || Standby || {{ThinkLight(white)}} ||<br />
|-<br />
! {{X31}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || Standby || {{ThinkLight(white)}} ||<br />
|-<br />
! {{X32}}<br />
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} ||<br />
|-<br />
! {{X40}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || Ultrabase || Ultrabay || {{Cunk}} || {{Cunk}} || Standby || {{Cunk}} ||<br />
|-<br />
! {{X41}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || Ultrabase || Ultrabay || {{Cunk}} || {{Cunk}} || Standby || {{Cunk}} ||<br />
|-<br />
! {{X60}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || Ultrabase || Ultrabay || {{Cunk}} || {{Cunk}} || Standby || {{Cunk}} ||<br />
|-<br />
! colspan=11 style="text-align:center;background:#efefef;" |<br />
|-<br />
! {{Z60t}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || Standby || {{ThinkLight(amber)}} ||<br />
|-<br />
! {{Z61m}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || Standby || {{ThinkLight(amber)}} ||<br />
|-<br />
! {{Z61p}}<br />
| {{PowerLED}} || {{Battery(amber)}} || {{Battery(green)}} || {{Cunk}} || Ultrabay || {{Cunk}} || {{Cunk}} || Standby || {{ThinkLight(amber)}} ||<br />
|}<br />
</div></div>Learnerhttps://www.thinkwiki.org/w/index.php?title=How_to_get_special_keys_to_work&diff=25205How to get special keys to work2006-10-10T12:16:53Z<p>Learner: /* Overview */</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]], [[KMilo]] || additional actions ||<br />
|-<br />
| {{key|Fn}}{{key|End}} || brightness down || [[#tpb configuration|tpb]], [[KMilo]] || additional actions ||<br />
|-<br />
| {{key|Fn}}{{key|PageUp}} || toggle thinklight || [[#tpb configuration|tpb]], [[KMilo]] || additional actions ||<br />
|-<br />
| {{key|Fn}}{{key|Space}} || toggle zoom || [[#tpb configuration|tpb]], [[KMilo]] || 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]], [[KMilo]] || full ||<br />
|-<br />
| {{ibmkey|Home|#494949}} || open web browser || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]], [[KMilo]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards<br />
|-<br />
| {{ibmkey|Search|#494949}} || open search application || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]], [[KMilo]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards<br />
|-<br />
| {{ibmkey|Mail|#494949}} || open mail application || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]], [[KMilo]] || 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]], [[KMilo]] || additional actions ||<br />
|-<br />
| {{ibmkey|Volume down|#494949}} || volume down || [[#tpb configuration|tpb]], [[KMilo]] || additional actions ||<br />
|-<br />
| {{ibmkey|Volume mute|#494949}} || mute volume || [[#tpb configuration|tpb]], [[KMilo]] || 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 />
| Wireless switch || ibm/hotkey HKEY 00000080 00007000<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 />
You can use an appropriate executable to [[How to inject fake keystrokes|inject fake keystrokes]].<br />
<br />
For Debian users, tpb is started from {{path|/etc/X11/Xsession.d/90tpb}}.<br />
<br />
'''Sound Button configuration'''<br />
<br />
''Note: Tested on T60p with Ubuntu 6.06 LTS''<br />
<br />
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}}.<br />
<br />
''Note: Tested on X21 with Ubuntu 6.06 LTS''<br />
<br />
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]].<br />
<br />
===KMilo configuration===<br />
The programs to be executed by [[KMilo]] are configured via the KDE Control Center (<tt>kcontrol</tt>), under <tt>System Administration --> IBM Thinkpad Laptop</tt>. Note that you can use appropriate commands to [[How to inject fake keystrokes|inject fake keystrokes]].<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|Access IBM|#495988}} or {{ibmkey|ThinkPad|#494949}} || 159 || XF86LaunchA<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 />
=====Enabling the Windows and Menu Keys=====<br />
On some systems the Windows and Menu keys may not be recognized. You can enable then by<br />
making the following changes:<br />
<br />
keycode 115 = F13<br />
keycode 227 = F35<br />
<br />
F13 and F35 are used for the Windows and and Menu keys respectively. Labelling keycpode 227 as "Menu" may conflict with the right-mouse-click event.<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}}, {{T20}}, {{T21}}, {{T30}}, {{X31}}, {{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 <tt>xmodmap</tt>, ex: <tt>xmodmap ~/.Xmodmap</tt>:<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 {and don't forget to make a backup copy first}...<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 />
<br />
The Command you need for Next Tab <br />
<key id="goBackTabKb" keycode="VK_F19" oncommand="gBrowser.mTabContainer.advanceSelectedTab(-1)" /><br />
For the Previous Tab <br />
<key id="goForwardTabKb" keycode="VK_F20" oncommand="gBrowser.mTabContainer.advanceSelectedTab(1)" /><br />
<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. The Command you need for Next Tab is gBrowser.mTabContainer.advanceSelectedTab(1,true); For Previous Tab its gBrowser.mTabContainer.advanceSelectedTab(-1,true); }}.<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>Learnerhttps://www.thinkwiki.org/w/index.php?title=Maintenance&diff=24874Maintenance2006-09-23T21:14:38Z<p>Learner: typo</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 />
Here you can find general hints about keeping your ThinkPad in good shape. Look at your [[:Category:Models|models category page]] for IBMs official maintenance guide for that model.<br />
|}<br />
==Battery treatment==<br />
{| border=1 cellspacing=0 cellpadding=2 style="vertical-align:top;"<br />
|+Battery life expanding guide<br />
|- style="background:#efefef;white-space:nowrap;"<br />
! style="background:#ffdead;" | Battery Type !! NiCd !! NiMH !! Lithium ion<br />
|- style="vertical-align:top;"<br />
! style="background:#ffdead;" | General<br />
|<br />
*always do complete discharge/charge cycles<br />
*avoid exposing the battery (or notebook) to excessive heat<br />
|<br />
*always do complete discharge/charge cycles<br />
*avoid exposing the battery (or notebook) to excessive heat<br />
|<br />
*never completely discharge the battery, partial dis-/recharges are better<br />
*remove battery when on AC<br />
*avoid exposing the battery (or notebook) to excessive heat<br />
|- style="vertical-align:top;"<br />
! style="background:#ffdead;" | Charging<br />
|<br />
*discharge before charging<br />
|<br />
*discharge before charging<br />
|<br />
*avoid charging if battery is nearly full<br />
*keep notebook off while charging<br />
*fully discharge battery every 30 or so charges to recalibrate fuel guage <br />
|- style="vertical-align:top;"<br />
! style="background:#ffdead;" | Storage<br />
| <br />
*almost discharged<br />
*cool and dry<br />
|<br />
*almost discharged<br />
*cool and dry<br />
|<br />
*never fully charged or discharged, ideally at about 40%<br />
*cool and dry, but '''do not freeze''' them. 10-15C is recommended<br />
|}<br />
<br />
===Battery health===<br />
Batteries, especially of the modern Li-Ion type, wear out quicker when they hold a large charge or are subject to higher temperatures (see above).<br />
<br />
If you use your laptop at a desk, reduce battery wear by maintaining an appropriate charge level. When possible, remove Li-ion batteries while operating from AC as the notebook gets hot enough inside for that to damage the battery in the long run, even if charging is stopped.<br />
<br />
On recent ThinkPads, charging thresholds can be configured in the bundled software. Under Linux, this is supported on recent models by the [[tp_smapi]] driver (and even without <tt>tp_smapi</tt>, if you have a dual-boot setup, you can set the thresholds under Windows and they will be remembered as long as you don't power off your machine with AC disconnected; suspend to RAM is OK). Have a look at [[How to use UltraBay batteries]].<br />
<br />
If you have spare Li-ion battery packs, store them at 40% charge in a cool place (15C being a recommended temperature, do not let the batteries freeze). If storing inside a refrigerator, beware of humidity, and be careful with cold spots that can easily freeze the battery if anything goes wrong.<br />
<br />
===The problem with 600 series batteries===<br />
ThinkPad 600 power management causes batteries to die before they should. Read more about this on the [[Problem with ThinkPad 600 batteries|associated problem page]].<br />
<br />
===Reviving batteries===<br />
Some people experience sudden drops in their batteries capacity.<br />
<br />
A way to get these batteries back to full capacity is to run the "Battery Rundown" function of IBMs "PC Doctor for DOS".<br />
The program is downloadable from IBMs support site as three floppy disk images. For those who do not have a floppy, David Smith prepared a [http://www.mypchelp.com/~dsmith/ibmutil/ibm_t22_pcdiag.iso bootable CD image] from the T22 floppy images. For newer ThinkPads there is an official [http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=lenovo&lndocid=MIGR-56222 bootable CD image].<br />
<br />
===See also===<br />
* [[Battery safety]]<br />
<br />
===External sources===<br />
* [http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=ibm&lndocid=MIGR-50944 IBM Support - Extending battery life]<br />
* [http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=ibm&lndocid=MIGR-51038 IBM Support - Battery troubleshooting]<br />
* [http://www.pc.ibm.com/ww/thinkpad/batterylife/ IBM Benchmark]<br />
* [http://batteryuniversity.com Battery University]<br />
* [http://www.batteryuniversity.com/parttwo-34.htm BatteryUniversitys info about prolonging lithium ion batteries]<br />
* [http://www.buchmann.ca/Chap10-page6.asp prolonging lithium ion batteries in Buchmanns Battery FAQ]<br />
<br />
==Cleaning the Display==<br />
If you discover markings that look like they originate from the TrackPoint or keyboard, or for information on how to avoid these, look at [[Problem with key and trackpoint markings on the display|this page]].<br />
<br />
===External Sources===<br />
* [http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=ibm&lndocid=MIGR-4A2P54 IBM Support - LCD care and cleaning instructions]<br />
* [http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=ibm&lndocid=MIGR-52190 IBM Support - System cleaning instructions]<br />
<br />
==Cleaning the Interior==<br />
{{WARN|The following instructions are not appropriate for all ThinkPad models. Please consult the hardware maintenance guide or on-line disassembly instructions for your model.}}<br />
Most ThinkPad models (particularly the A-series and the T-series) tend to accumulate a lot of interior dust which they draw from their ventilation fan. A good dusting every few months is advised. The procedure is as follows.<br />
<br />
===ThinkPad T4x series===<br />
See IBM's keyboard removal [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-46515 instructions] and [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-50227 movie].<br />
<br />
===ThinkPad T6x series===<br />
See IBM's keyboard removal<br />
[http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-62800 instructions] and<br />
[http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-63912 movie].<br />
<br />
===Other models (which?)===<br />
#Unplug the computer.<br />
#Remove the battery.<br />
#Turn the ThinkPad over and find two to three screws with upraised double-arrows pointing to them.<br />
#Unscrew these screws and set them aside.<br />
#Press the silver area underneath where the battery used to be. The front of the keyboard will pop up.<br />
#Turn the ThinkPad right side up and gently remove the keyboard, pulling it toward you.<br />
#There is one connector between the ThinkPad and the keyboard. Disconnect it, and set the keyboard aside.<br />
#If there is a small black plastic separator under the keyboard, remove it and set it aside.<br />
#The fan should be visible in the upper left. That entire area will likely be dusty. With a can of compressed air (and ''only'' with a can of compressed air), dust that area and the surrounding area.<br />
#Replace the small black plastic separator, then reconnect the keyboard.<br />
#Slide the keyboard back into place, then press down on the Fn and right-arrow keys until it pops into place.<br />
#Replace the keyboard screws and battery.<br />
<br />
==Dealing with spilling accidents==<br />
#Don't panic.<br />
#Don't flip or tilt the computer to prevent the liquid from spreading all over the inside of the case.<br />
#Shut down the OS and turn off the power:<br />
##Unplug the computer.<br />
##Remove the battery.<br />
#Tilt the computer so that everything that leaked into the case can flow out the same way.<br />
#Allow the computer to dry before switching it on again.<br />
#For minor accidents this might already be sufficient. For major flooding you should either bring the computer to a dealer who knows how to open and clean it from inside. Or you can read the Hardware Maintenance Manual, open, clean, and dry the computer yourself. <br />
<br />
See also [http://www.moneysense.ca/spending/technology/columnist.jsp?content=986628 Act quickly, carefully if you spill on laptops] on MoneySense.ca (link broken as of 2006-09-18, the article is still available via [http://web.archive.org/web/20050221034011/http://www.moneysense.ca/spending/technology/columnist.jsp?content=986628 web.archive.org]).<br />
<br />
==Harddisk Backup / Upgrade==<br />
*[[How to copy a Linux installation]]<br />
*[[Harddrive Upgrade|How to upgrade your Thinkpad hard drive]]<br />
*[[How to copy a Windows installation]]<br />
===External Sources===<br />
*[http://gamma.nic.fi/~point/win2copy.htm Guide on copying Windows 2000/XP to another partition]<br />
<br />
==Recovering BIOS passwords==<br />
Password recovery procedure for IBM ThinkPads<br />
using R24RF08 and IBMpass<br />
<br />
'''1. Introduction.'''<br />
<br />
The IBM ThinkPad uses a small eeprom ([[AT24RF08|ATMEL 24RF08]]) to store different OEM<br />
issues like serial number, UUID, etc. The supervisor password (SVP) is also stored in this eeprom.<br />
The 24RF08 is not an ordinary eeprom: it features read protection, which the BIOS uses to lock down<br />
access to the eeprom contents. Also, the password is written in a special scan code, which needs to<br />
be translated to ASCII to be of any use.<br />
<br />
To recover the password, one can use two different programs: R24RF08 (eeprom reader) and IBMpass<br />
(password revealer) available at [http://www.allservice.ro http://www.allservice.ro]. Diagrams are included in the reader kit.<br />
<br />
Newer ThinkPads featuring TPCA technology (i.e. a [[Tpm|TPM trusted platform module chip]]) also need<br />
the W24RF08 eeprom writer program to complete the password recovery procedure.<br />
<br />
Models for which R24RF08 and IBMpass are enough to recover the password: 240, 240X, 390E, 390X, 570, 570E,<br />
600e, 600X, 770Z, A20m, A21e, A21m, a22m, A30, A30p, A31, A31p, G40, G41, R30, R31, R32, R40, R50, R51, <br />
Transnote, T20, T21, T22, T23, T30, T40, T40p, T41, T41p, T42, T42p, X20, X21, X22, X23, X24, X30, X31, X40, X41.<br />
<br />
Other ThinkPad models such as the 380XD or 600 use 24C01 or 93C46 eeproms, which can be read without special tools.<br />
The method is the same like for the models based on 24RF08, only the software to dump the eeprom is different. <br />
<br />
Newer T43/T43p, R52 and T60 ThinkPads can be unlocked using PC8394 programming tools that consist in RPC8394 and WPC8394 (reader and writer for TPM chip). The software is available as well on [http://www.allservice.ro http://www.allservice.ro].<br />
<br />
<br />
'''2. Locating the eeprom. Soldering.'''<br />
<br />
No need to unsolder the 24RF08 eeprom, just solder 3 wires to SDA, SCL and GND pins of the<br />
eeprom. There are two eeprom layouts (see interface schematics described bellow), orresponding to 8 pin or 14 pin eeproms. Locate the eeprom first according to your model (E.g. T20-23 and T30 have the eeprom underneath TP, and can be accessed by removing the RAM modules cover, no need to dismantle the laptop.) and solder the wires using a soldering iron with a fine tip. Also, you can use 0.15 -0.20 mm enamel coated wires or similar small diameter insulated wires. These wires will be connected later to the interface.<br />
Tip: You can use clips to connect the wires or you can solder on the PCB traces leading to the<br />
eeprom pins. Once again, be careful and double, triple check the soldering if necessary till you are positively sure you have done the right job.<br />
<br />
<br />
'''3. Choose and build the interface.'''<br />
<br />
Since version 2.0, R24RF08 and W24RF08(eeprom writer) are compatible with a wide range of eeprom programmers. By default, both programs set the COM port signals to use direct logic level to access I2C bus. We provide here 2 schematics that are relevant for direct logic signals and for inverse logic signals (simple-i2cprog.pdf and driven-i2cprog.pdf). Also, depending of the interface you build, you can invert the logics for SDA-In, SDA-Out, and SCL COM port signals by some command line parameters described later in this document.<br />
a) The file simple-i2cprog.pdf contains the schematic diagram of a simple interface (known as SIPROG)based on 2 zeners and 2 resistors. This is a classic, easy to build circuit and works with soldered or unsoldered eeproms. The purpose of the 2 zeners is to convert RS232 levels (+/- 5V) to TTL levels, needed by the eeprom. It uses direct logic signals to I2C eeprom and is powered by the COM port. However, this interface works with in-system eeproms but is dependant on COM port current and eeprom bus impedance. R24RF08 works natively with this circuit, no need to change the lines signals with command line parameters. This circuit works pretty well with almost all ThinkPads series.<br />
b) The second interface is described in driven-i2cprog.pdf. The circuit uses MAX 232 as a RS232 to TTL driver and its main purpose is to work with soldered eeproms. The advantage of MAX232 is the TTL outputs that are more reliable and more powerful when work with soldered, in-system eeproms (dependency free from the COM port current). Due of the internal inverters of MAX232 the interface responds to an inverse signal logic level. R24RF08 needs /x, /d, /i switches to be specified in the command line.<br />
<br />
What these switches mean:<br />
/x - invert serial clock, also known as SCL;<br />
/d - invert serial data output, also known as SDA-Out;<br />
/i - invert serial data input, also known as SDA-In.<br />
All those can be used in any combination to meet any interface specification.<br />
<br />
<br />
'''4. How is it working:'''<br />
<br />
Prepare your technician PC by connecting the interface to the COM1 port (don’t connect the wires to eeprom yet). Turn on the ThinkPad and press F1 to enter BIOS Setup. When you are prompted for the password and there’s no other activity like HDD access or so, connect the wires (GND first!, SDA, SCL) to the corresponding wires from the interface (attached before to COM1) and execute R24RF08:<br />
<br />
-for SI-PROG interface (as described in 3.a above):<br />
r24rf08.exe <filename.ext>. where filename.ext is the file where eeprom content will be stored.<br />
Example: r24rf08 mytp.bin<br />
<br />
-for MAX232 driven I2C interface (as described in 3.b above):<br />
r24rf08.exe <filename.ext> /x /d /i. where /x /d /i are command line parameters (switches) for this kind of interface.<br />
Example: r24rf08 mytp2.bin /x /d /i<br />
<br />
Use exactly the instructed switches to avoid possible damages to your eeprom data!<br />
The file should be created in the same folder. Finally, disconnect the wires (GND last!) and turn off the ThinkPad by pressing on/off switch.<br />
<br />
<br />
'''5. Reveal the password.'''<br />
<br />
Now, you have the .bin file but you need to dump in scan code to retrieve the password. IBMpass 2.0 Lite is a free tool that will do the job. Just open the eeprom dump you’ve created before and search for 0x330, 0x340 lines. The password is located on 0x338 (and 0x340 depending on model) in scan code. For 24C01 eeproms the password is located at 0x38, 0x40. If the password won't work for the very first time then your eeprom may use newer IBM scancodes. In this case switch to alternate scan codes to find it. For those who want quick answers the recommended version is IBMpass 1.1. Usage for IBMpass 1.1 (command line only):<br />
<br />
ibmpass mytp.bin – use “/a†switch to see in alternate scan code if needed:<br />
ibmpass mytp.bin /a<br />
<br />
For some old models like 570 or 770Z you need to execute the eeprom patcher first. This will reset the read protection on the password offset. To do that just execute patcher.exe before the reading operation, without rebooting the laptop:<br />
<br />
-for SI-PROG:<br />
patcher.exe , then immediately<br />
r24rf08.exe <filename.ext><br />
<br />
-for Driven-I2C (Max232) you must insert the switches:<br />
patcher.exe /x /d /i, then immediately<br />
r24rf08.exe <filename.ext> /x /d /i<br />
<br />
W24RF08, the writer version, has included the complete APP reset operation you don’t need to use patcher.<br />
<br />
Also there are a new encrypting algos used with some new security chips that are very secured. The password is not in scancode and in some cases not even in the eeprom. To unlock the machine, the dump should suffer some changes and the eeprom must be reprogrammed using W24RF08. This operation works for all IBM TCG/TCPA secured laptops w/o exceptions. <br />
We can provide full support for this kind of job.<br />
<br />
Remember, use 3 wires from the interface and 3 wires from eeprom! Connect them after your<br />
ThinkPad is powered and disconnect them right after you read the content, before you switch off the laptop.<br />
<br />
===External Sources===<br />
* [http://www.allservice.ro R24RF08 & IBMpass author's webpage.]<br />
* [http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=ibm&lndocid=MIGR-59377 IBM Support - Lost or forgotten password]<br />
* [http://www.allservice.ro/forum/viewforum.php?f=12 Full Service of all ThinkPad models including free password recovery]</div>Learnerhttps://www.thinkwiki.org/w/index.php?title=Problem_with_unauthorized_MiniPCI_network_card&diff=24425Problem with unauthorized MiniPCI network card2006-09-01T12:50:55Z<p>Learner: </p>
<hr />
<div>==Problem Description==<br />
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:<br />
<br />
1802: Unauthorized network card is plugged in - Power off and remove the miniPCI network card.<br />
<br />
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.<br />
<br />
==Affected Models==<br />
All machines with integrated WiFi, or machines with WiFi added<br />
<br />
==Affected Operating Systems==<br />
All - problem is in the BIOS<br />
<br />
==Status==<br />
* Workarounds exist for most affected models.<br />
<br />
==Solutions==<br />
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.<br />
<br />
{{NOTE|Any of the following solutions should suffice to make the wireless card useable. You only need to perform one of them.}}<br />
<br />
* 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].<br />
{{WARN|It is dangerous to mess with your BIOS, you can easily make your machine unbootable, proceed with caution!}}<br />
<br />
* A safer method than modifying the BIOS is modifying the PCI-ID of the wlan card. 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. <br />
{{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.}}<br />
<br />
* 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.<br />
<br />
* 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<br />
<br />
* 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}}<br />
<br />
<code><br />
#include <stdio.h><br />
#include <sys/types.h><br />
#include <unistd.h><br />
#include <sys/stat.h><br />
#include <fcntl.h><br />
<br />
int main(void)<br />
{<br />
int fd;<br />
unsigned char data;<br />
<br />
fd = open("/dev/nvram", O_RDWR);<br />
if (fd==-1) {<br />
printf("Opening /dev/nvram failed\n");<br />
return 1;<br />
}<br />
printf("Disabling WiFi whitelist check.\n"); <br />
<br />
/* BIG INFORMATIONAL WARNING */ <br />
/* The linux nvram driver doesn't give access to the first 14 bytes of<br />
the CMOS. As a result, we seek to 0x5c rather than 0x6a. If you're <br />
implementing this under another OS, then you'll have to go to whichever<br />
address is appropriate for your access method */<br />
<br />
lseek(fd, 0x5c, SEEK_SET);<br />
read(fd, &data, 1);<br />
printf("CMOS address 0x5c: %02x->", data);<br />
data |= 0x80;<br />
printf("%02x\n", data);<br />
lseek(fd, 0x5c, SEEK_SET);<br />
if (write(fd, &data, 1)<0) {<br />
printf("Unable to write to /dev/nvram - hack failed\n");<br />
close(fd);<br />
return 2;<br />
}<br />
close(fd);<br />
printf("Done.\n");<br />
return 0;<br />
}<br />
<br />
</code><br />
{{NOTE|On the T43, X60 sand probably others, the BIOS hacks and the "no-1802" utility don't work.}}<br />
<br />
==Sucessful BIOS Modifications==<br />
{{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!}}<br />
<br />
<br />
The following table contains information about ThinkPad models that have been sucessfully modified to run an unauthorized Mini PCI card. {{footnote|4}} <br />
<br />
{| align="center" cellpadding="2" width="100%" style="border:1px; background:grey;"<br />
! style="background:#efefef;"| Model <br />
! style="background:#efefef;"| Type <br />
! style="background:#efefef;"| BIOS Version <br />
! style="background:#efefef;"| Operating System <br />
! style="background:#efefef;"| Method <br />
! style="background:#efefef;"| Success<br />
|- style="background: white;"<br />
| ThinkPad R31<br />
| 2656-6FG <br />
| 3.11 (12-01-2004) <br />
| Windows XP Boot Disk <br />
| no-1802 utility<br />
! style ="color:green;"| Yes<br />
|- style="background: white; color:black;"<br />
| ThinkPad R40<br />
| 2896-J3U <br />
| 1.24 (10-18-2005) <br />
| Fedora Core 4 <br />
| Vojtech Pavlik code<br />
! style ="color:green;"| Yes <br />
|- style="background: white; color:black;"<br />
| ThinkPad R40<br />
| 2681-L7U <br />
| 1.24 (10-18-2005) <br />
| Windows XP Pro <br />
| no-1802 utility<br />
! style ="color:green;"| Yes <br />
|- style="background: white; color:black;"<br />
| ThinkPad R40<br />
| 2681-CFM <br />
| 1.24 (10-17-2005) <br />
| Gentoo & XP Pro<br />
| no-1802 utility (boot from USB key to apply)<br />
! style ="color:green;"| Yes <br />
|- style="background: white; color:black;"<br />
| ThinkPad R40<br />
| 2724 <br />
| 1.30 (10-19-2005) <br />
| FreeBSD 6.1-p1<br />
| code by Matthew Garrett, compiled and run on bactrack<br />
! style ="color:green;"| Yes <br />
|- style="background: white; color:black;"<br />
| ThinkPad R50p<br />
| 1832-2AG<br />
| 3.19 (13-10-2005)<br />
| Ubuntu 5.10 (kernel 2.6.12-10-686)<br />
| Vojtech Pavlik code<br />
! style ="color:green;"| Yes<br />
|- style="background: white; color:black;"<br />
|ThinkPad R51<br />
| 2887-W2C <br />
| 1.27 (03-03-2006) <br />
| Windows XP Pro SP2<br />
| no-1802 utility (boot from USB key to apply)<br />
! style ="color:green;"| Yes <br />
|- style="background: white; color:black;"<br />
|ThinkPad T30<br />
| 2366-68G <br />
| 2.09 (08-08-2005) <br />
| Windows XP Pro<br />
| no-1802 utility<br />
! style ="color:green;"| Yes <br />
|- style="background: white; color:black;" <br />
| ThinkPad T30 <br />
| 2366-97G <br />
| 2.09 (08-08-2005) <br />
| Windows XP Pro <br />
| no-1802 utility <br />
! style ="color:green;"| Yes<br />
|- style="background: white; color:black;"<br />
| ThinkPad T30 <br />
| 2366-N6G <br />
| 2.09 (08-08-2005) <br />
| Windows XP Pro <br />
| no-1802 utility <br />
! style ="color:green;"| Yes<br />
|- style="background: white; color:black;"<br />
| ThinkPad T30 <br />
| 2366-N6G <br />
| 2.10 (26-06-2006) <br />
| Windows XP Pro <br />
| no-1802 utility <br />
! style ="color:green;"| Yes<br />
|- style="background: white; color:black;"<br />
| ThinkPad T40 <br />
| 2373-7CU <br />
| 3.21<br />
| Windows XP Pro<br />
| no-1802 Linux Live CD<br />
! style ="color:green;"| Yes<br />
|- style="background: white; color:black;"<br />
| ThinkPad T40<br />
| 2373-7CU<br />
| 3.21 (06-02-2006)<br />
| Windows XP Pro SP2<br />
| no-1802 Linux Live CD<br />
! style ="color:green;"| Yes<br />
|- style="background: white; color:black;"<br />
| ThinkPad T40<br />
| 2373-82U <br />
| 3.18 (09-15-2005)<br />
| Windows XP/ SUSE 10.1<br />
| No-1802 utility<br />
! style ="color:green;"| Yes<br />
|- style="background: white; color:black;"<br />
| ThinkPad T40<br />
| 2373-PU7 <br />
| 3.21 (09-12-2006)<br />
| Windows XP Professional<br />
| No-1802 utility<br />
! style ="color:green;"| Yes<br />
|- style="background: white; color:black;"<br />
| ThinkPad T40<br />
| 2373-42G <br />
| 3.20 (11-05-2006) <br />
| Windows 2000 Pro <br />
| no-1802 utility <br />
! style ="color:green;"| Yes<br />
|- style="background: white; color:black;"<br />
|ThinkPad T41<br />
| 2373-9HU<br />
| n/a<br />
| Ubuntu 6.10 w/Atheros 5212 a/b/g<br />
| no-1802 Linux Live CD<br />
! style="color:green;"| Yes<br />
|- style="background: white; color:black;"<br />
|ThinkPad T41<br />
| 2373-2FG<br />
| n/a<br />
| Windows XP Pro SR2 w/ Intel 2200BG<br />
| no-1802 utility<br />
! style="color:green;"| Yes<br />
|- style="background: white; color:black;"<br />
| ThinkPad T42<br />
| 2378-EXU <br />
| 3.18 (09-15-2005)<br />
| Windows XP Pro SP2<br />
| No-1802 utility<br />
! style ="color:green;"| Yes<br />
|- style="background: white; color:black;"<br />
| ThinkPad X30 <br />
| 2672-41j <br />
| 1.08 (08-09-2005)<br />
| Gentoo Kernel 2.6.15 <br />
| no-1802 utility<br />
! style ="color:green;"| Yes<br />
|- style="background: white; color:black;"<br />
| ThinkPad X31 <br />
| 2673-C27 <br />
| 3.02 (22-09-2005) <br />
| Ubuntu 5.10 (kernel 2.6.12-9-386) <br />
| Matthew Garrett code {{footnote|3}}<br />
! style ="color:green;"| Yes<br />
|- style="background: white; color:black;"<br />
| ThinkPad X31 <br />
| 2672-1UG <br />
| 3.02 (22-09-2005) <br />
| FreeBSD 6-STABLE<br />
| no-1802 Linux Live CD<br />
! style ="color:green;"| Yes<br />
|- style="background: white; color:black;"<br />
| ThinkPad X31 <br />
| 2672-CXU <br />
| 2.04<br />
| Windows XP Pro<br />
| no-1802 DOS boot CD<br />
! style ="color:green;"| Yes<br />
|- style="background: white; color:black;"<br />
| ThinkPad X31 <br />
| 2672-PBU <br />
| 3.02<br />
| Windows XP Pro<br />
| no-1802 DOS boot CD<br />
! style ="color:green;"| Yes<br />
|- style="background: white; color:black;"<br />
| ThinkPad X31 <br />
| 2672-C8G<br />
| 3.02<br />
| Debian (kernel 2.6.16.20-386)<br />
| Matthew Garrett code {{footnote|3}}<br />
! style ="color:green;"| Yes<br />
|- style="background: white; color:black;"<br />
| ThinkPad X60s<br />
| 1702-3JU <br />
| ?<br />
| Debian Testing<br />
| Matthew Garrett's code<br />
! style ="color:red;"| NO (bricked)<br />
|}<br />
<br />
==External Sources==<br />
* Additional Information about "Unauthorised" MiniPCI adapters can be found on [http://www.srcf.ucam.org/~mjg59/thinkpad/wireless.html Matthew Garrett's website].<br />
<br />
* Thinkpad Mini PCI Wireless [http://www.srcf.ucam.org/~mjg59/thinkpad/tables.html compatibility matrix].<br />
<br />
* Bootable "no-1802" [http://www.command-tab.com/2006/02/26/unauthorized-wireless-cards/ CD and floppy image]<br />
<br />
{{footnotes|<br />
#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].<br />
#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].<br />
#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.<br />
#This information has been added by users. Please feel free to add systems if you have had personal success or failure.<br />
}}</div>Learner