Difference between revisions of "Problem with unauthorized MiniPCI network card"
(→Successful BIOS Modifications: added media used for application) |
m (Use templates for X1 Yoga and Carbon pages) |
||
(118 intermediate revisions by 52 users not shown) | |||
Line 1: | Line 1: | ||
− | ==Problem | + | == Problem description == |
− | + | ||
+ | The ThinkPad BIOS only allows to boot with an "authorized" adapter installed. If an unsupported card is detected, the BIOS prints a message on the screen and stops the system: | ||
1802: Unauthorized network card is plugged in - Power off and remove the miniPCI network card. | 1802: Unauthorized network card is plugged in - Power off and remove the miniPCI network card. | ||
− | + | The card's sub-vendor PCI-ID (which can be seen using ''lspci -v'') is checked against a [[Wikipedia:Whitelist|whitelist]] in the BIOS. IBM/Lenovo'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. | |
+ | |||
+ | == Solutions == | ||
− | + | {{NOTE|Any of the following solutions should suffice to make the wireless card useable. You only need to perform one of them.}} | |
− | |||
− | + | 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. | |
− | |||
− | == | + | === Modifying the card's ID === |
− | |||
− | + | A safer and better method than modifying the BIOS is modifying the PCI-ID of the wlan card to match the authorized one: | |
− | + | ||
+ | # You'll risk the wireless card instead of the motherboard. | ||
+ | # Future BIOS updates will not create any problems. | ||
+ | # No problem with newer laptops with different BIOS; the only reqirement is to find an ID that is already listed in the BIOS, which can be easily achieved if the community maintaina a compatibility table. | ||
+ | |||
+ | The instructions are [http://www.dagarlas.org/stuff/computing/article0001.php here] (link down, 2011/05/14 - archive.org mirror [http://web.archive.org/web/20071016063645/http://www.dagarlas.org/stuff/computing/article0001.php here], second mirror [http://www.broken.com/mirror/thinkpad 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. | ||
+ | |||
+ | Instruction for intel 2200/2915 cards are [http://stachon.webpark.cz/ipw-eeprom.html here] or [http://fx.cz/sklad/intel/ here] or [http://www.thinkpad-forum.de/thinkpad-hardware/zubeh%C3%B6r/44192-tutorial-nicht-ibm-wlan-karte-2200-2915-im-thinkpad/ here] (in German). The second one is much simpler because it provides an already patched and compiled ipw2200 driver required to do the job. | ||
− | {{ | + | Instructions on how to unbrand an HP lt4132 (HP-rebranded Huawei ME906s WWAN module, compatible with some {{X1 Yoga}} and {{X1 Carbon}} models) can be found [http://blog.depau.eu/2018/04/28/unbrand-huawei-me906s/ here] |
− | + | {{NOTE|On Linux-based distributions, the driver is loaded based on the PCI-ID. Keep this in mind when "faking" other models. }} | |
− | |||
− | |||
− | |||
{{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.}} | {{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.}} | ||
+ | |||
+ | {{NOTE| According to the information found from the links above the authors suggest a change in the network card memory (ethtool -E ethX magic 0x2200 offset 0x8 value 0x12). However, this doesn't work on my Thinkpad X40. Further modifications were needed to eliminate the 1802 error. The value of the first register inside the memory of the PCI card should be modified to read: | ||
+ | |||
+ | <code> | ||
+ | Offset: 0x0000 | ||
+ | Values: 02 a5 00 80 20 42 86 80 12 27 86 80 18 00 01 03 | ||
+ | </code> | ||
+ | |||
+ | one [http://fx.cz/sklad/intel/ source] suggest that one more value should be modified: | ||
+ | |||
+ | <code> | ||
+ | offset 0xa8 value 0xf9 | ||
+ | </code> | ||
+ | |||
+ | although it might not be necessary.}} | ||
+ | |||
+ | === Use another MiniPCI (express) slot === | ||
+ | |||
+ | On models with multiple MiniPCI (express) slots, the BIOS checks only the “WiFi-slot” for unauthorized WiFi cards. A neighboring WWAN slot is allowed to hold such a card. But there might be a catch: the WWAN slot’s “disable radio” signal could be active, so that the card will refuse from using the radio. The operating system can see this condition: on Linux it is reported as “hard blocked” by rfkill. (This actually depends on the driver: “b43” does notice that the card refuses to switch it’s radio on and reports it via the rfkill interface.) | ||
+ | |||
+ | Combinations that work in the WWAN slot without further tweaking: | ||
+ | * Lenovo Y530 / Intel 4965AGN | ||
+ | * X61t (7762-94G) / Atheros 5008X scavenged from a MacBook Pro | ||
+ | |||
+ | On MiniPCI express(!) slots, pin 20 is used as the first “disable radio” signal, as implemented by common WiFi cards. Isolating pin 20 in the slot from the card will leave the signal dangling, which means “disable radio” is inactive: i.e. “radio on”. If necessary, the pin on the card can be taped over with film or painted over with nail polish to block electrical connection. Pin #20 is located on the underside of the miniPCI Express board, second pin from the notch, on the side with more pins. Here is [http://pinoutsguide.com/Slots/mini_pcie_pinout.shtml detailed MiniPCIe pinout]. Combinations reported to work this way: | ||
+ | * Thinkpad X61s / Intel Wifi link 4965agn | ||
+ | * Thinkpad X61 / Intel 3945abg (bulk) | ||
+ | * Thinkpad X200 / Intel 5300 and Broadcom 4312 | ||
+ | * Thinkpad T60p (widescreen) / Sierra MC8781 | ||
+ | |||
+ | Questions still open: | ||
+ | * can the signal be deactivated otherwise? (WLAN-on-for-WWAN-slot) | ||
+ | * do WWAN cards have such a signal? Is it on another pin (a “second disable radio” pin is defined for mPCIe since at least 2010)? | ||
+ | ** in case it’s the same signal, how to deactivate the WWAN kill signal? On the X200 the hardware switch doesn’t do that. | ||
+ | * as the card (usually) drives an LED to reflect it’s state, can that signal be routed to the WWAN or WiFi LED? | ||
+ | |||
+ | Taping over any Mini PCI-e pin is a delicate exercise in patience, the connectors are less than the width of most ball point pens. Transparent scotch type tape is easier to work with since it is possible to see where you're cutting. | ||
+ | |||
+ | See the discussion page for more. | ||
+ | |||
+ | === Modifying the BIOS === | ||
+ | |||
+ | {{WARN|It is dangerous to mess with your BIOS, you can easily make your machine unbootable. Proceed with caution!}} | ||
+ | |||
+ | {{NOTE|On the {{R32}}, {{T43}}, {{X41}}, {{X60}}, {{W500}}, {{X230}} and probably others, the BIOS hacks and the "no-1802" utility don't work.}} | ||
+ | |||
+ | See the table below for links to modified BIOS images with the whitelist disabled. Information on making this BIOS modification for newer ThinkPads can be found [http://www.endeer.cz/bios.tools/bios.html here]. | ||
+ | |||
+ | Alternatively, you may can modify the 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]. | ||
+ | |||
+ | * You can try googling for your model number + "whitelist removal", there are lots of pre-hacked BIOSes out there. | ||
* 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. | * 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. | ||
Line 75: | Line 130: | ||
</code> | </code> | ||
− | |||
− | == | + | == BIOS modifications status == |
− | |||
+ | {{WARN|This table is meant to give users an idea of what/how attempts have been made at BIOS modifications and what their success rate is. As stated before, it is dangerous to mess with your BIOS, you can easily make your machine unbootable. Please proceed with caution!}} | ||
− | The following table contains information about ThinkPad models | + | The following table contains information about ThinkPad models BIOS modification status to run an unauthorized Mini PCI card. {{footnote|4}} |
{| align="center" cellpadding="2" width="100%" style="border:1px; background:grey;" | {| align="center" cellpadding="2" width="100%" style="border:1px; background:grey;" | ||
Line 96: | Line 150: | ||
| Damn Small Linux | | Damn Small Linux | ||
| Matthew Garrett code {{footnote|3}} | | Matthew Garrett code {{footnote|3}} | ||
+ | ! style ="color:green;"| Yes | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad A31 | ||
+ | | 2652-P3M | ||
+ | | 1.10 (1NET16WW) | ||
+ | | Debian GNU/Linux Lenny (2.6.25-2-686) | ||
+ | | Matthew Garrett code {{footnote|3}} | ||
+ | ! style ="color:green;"| Yes | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad A31 | ||
+ | | 2653-CU3 | ||
+ | | 1.13 (1GET41WW) | ||
+ | | Windows XP Professional SP2 | ||
+ | | no-1802 DOS 6.22 floppy | ||
+ | ! style ="color:green;"| Yes | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad A31p | ||
+ | | 2653-R8U | ||
+ | | 1.10 (1NET16WW) | ||
+ | | Windows XP Professional SP2 | ||
+ | | no-1802 DOS 6.22 floppy | ||
! style ="color:green;"| Yes | ! style ="color:green;"| Yes | ||
|- style="background: white; color:black;" | |- style="background: white; color:black;" | ||
Line 109: | Line 184: | ||
| 3.11 (12-01-2004) | | 3.11 (12-01-2004) | ||
| Windows XP Boot Disk | | Windows XP Boot Disk | ||
+ | | no-1802 utility | ||
+ | ! style ="color:green;"| Yes | ||
+ | |- style="background: white;" | ||
+ | | ThinkPad R31 | ||
+ | | 2656-E4U | ||
+ | | 3.11 (12-01-2004) | ||
+ | | Windows XP Professional SP2 | ||
| no-1802 utility | | no-1802 utility | ||
! style ="color:green;"| Yes | ! style ="color:green;"| Yes | ||
Line 159: | Line 241: | ||
| Windows XP Pro | | Windows XP Pro | ||
| no-1802 Linux Live CD | | no-1802 Linux Live CD | ||
+ | ! style ="color:green;"| Yes | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad R40 | ||
+ | | 2722-DG1 | ||
+ | | 1.26 | ||
+ | | Ubuntu Linux 8.10 2.6.27-9 | ||
+ | | Matthew Garrett code | ||
! style ="color:green;"| Yes | ! style ="color:green;"| Yes | ||
|- style="background: white; color:black;" | |- style="background: white; color:black;" | ||
Line 180: | Line 269: | ||
| Windows XP Pro | | Windows XP Pro | ||
| no-1802 LiveCD | | no-1802 LiveCD | ||
− | ! style ="color:green;"| Yes | + | ! style ="color:green;"| Yes |
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad R40 | ||
+ | | 2723 | ||
+ | | ? | ||
+ | | Slackware Linux 12 | ||
+ | | Matthew Garrett's code | ||
+ | ! style ="color:green;"| Yes | ||
|- style="background: white; color:black;" | |- style="background: white; color:black;" | ||
| ThinkPad R40 | | ThinkPad R40 | ||
Line 221: | Line 317: | ||
| 3.21 (02-06-2006) | | 3.21 (02-06-2006) | ||
| Windows XP Pro | | Windows XP Pro | ||
+ | | no-1802 Linux Live CD | ||
+ | ! style ="color:green;"| Yes | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad R50 | ||
+ | | | ||
+ | | 2.13 (2004-01-08) | ||
+ | | Ubuntu 10.10 | ||
+ | | no-1802 W98 Boot Floppy | ||
+ | ! style ="color:green;"| Yes | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad R50 | ||
+ | | 1830-6FG | ||
+ | | 3.05a (14-05-2004) | ||
+ | | Windows XP Pro | ||
+ | | no-1802 Linux Live CD | ||
+ | ! style ="color:green;"| Yes | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad R50e | ||
+ | | | ||
+ | | 2.10 (2006-12-22) | ||
+ | | | ||
| no-1802 Linux Live CD | | no-1802 Linux Live CD | ||
! style ="color:green;"| Yes | ! style ="color:green;"| Yes | ||
Line 244: | Line 361: | ||
| no-1802 utility (boot from external USB floppy) | | no-1802 utility (boot from external USB floppy) | ||
! style ="color:red;"| No | ! style ="color:red;"| No | ||
+ | |-style="background: white; color:black;" | ||
+ | | ThinkPad R61 | ||
+ | | ? | ||
+ | | ? | ||
+ | | | ||
+ | | [http://forum.notebookreview.com/lenovo-ibm/459591-t61-x61-sata-ii-1-5-gb-s-cap-willing-pay-solution-8.html#post6501443 Middleton BIOS] {{footnote|5}} | ||
+ | ! style ="color:green;"| yes | ||
|- style="background: white; color:black;" | |- style="background: white; color:black;" | ||
|ThinkPad T23 | |ThinkPad T23 | ||
Line 305: | Line 429: | ||
| 2.10 (27-06-2006) | | 2.10 (27-06-2006) | ||
| Windows XP Pro SP 2 and Ubuntu 7.10 "Gutsy Gibbon" Intel BG2200 | | Windows XP Pro SP 2 and Ubuntu 7.10 "Gutsy Gibbon" Intel BG2200 | ||
+ | | no-1802 Linux Live CD | ||
+ | ! style ="color:green;"| Yes | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad T30 | ||
+ | | 2366-86M | ||
+ | | 2.05 (12-06-2003) | ||
+ | | Mepis 7 | ||
| no-1802 Linux Live CD | | no-1802 Linux Live CD | ||
! style ="color:green;"| Yes | ! style ="color:green;"| Yes | ||
Line 313: | Line 444: | ||
| Suse Linux 10.1 | | Suse Linux 10.1 | ||
| no-1802 Linux Live CD | | no-1802 Linux Live CD | ||
+ | ! style ="color:green;"| Yes | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad T30 | ||
+ | | 2367-RU1 | ||
+ | | 2.01 (06-08-2002) | ||
+ | | Windows XP Pro SP2 | ||
+ | | no-1802 Linux Live CD | ||
+ | ! style ="color:green;"| Yes | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad T30 | ||
+ | | 2366-81M | ||
+ | | 2.10 (1IET71WW) | ||
+ | | Debian GNU/Linux Lenny (2.6.24-1-686) | ||
+ | | Matthew Garrett code {{footnote|3}} | ||
! style ="color:green;"| Yes | ! style ="color:green;"| Yes | ||
|- style="background: white; color:black;" | |- style="background: white; color:black;" | ||
Line 319: | Line 464: | ||
| 3.21 | | 3.21 | ||
| Windows XP Pro | | Windows XP Pro | ||
+ | | no-1802 Linux Live CD | ||
+ | ! style ="color:green;"| Yes | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad T40 | ||
+ | | 2373-PM1 | ||
+ | | 3.21 | ||
+ | | Windows XP Pro SP2 | ||
| no-1802 Linux Live CD | | no-1802 Linux Live CD | ||
! style ="color:green;"| Yes | ! style ="color:green;"| Yes | ||
Line 397: | Line 549: | ||
| Ubuntu 6.10 w/Broadcom 4306 | | Ubuntu 6.10 w/Broadcom 4306 | ||
| Matthew Garrett's code | | Matthew Garrett's code | ||
+ | ! style ="color:green;"| Yes | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad T40 | ||
+ | | 2374-8CU | ||
+ | | 3.16 (2006-02-21) | ||
+ | | Windows XP Pro SP2 | ||
+ | | no-1802 DOS boot CD | ||
+ | ! style ="color:green;"| Yes | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad T40 | ||
+ | | | ||
+ | | 2.13 (2004-01-08) | ||
+ | | Ubuntu 10.04 LTS | ||
+ | | no-1802 W98 boot floppy | ||
+ | ! style ="color:green;"| Yes | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad T40 | ||
+ | | 2376-CG1 | ||
+ | | 3.23 1RETDRWW (2007-07-03) | ||
+ | | Windows XP Pro SP3 w/ Broadcom BCM94318MPG | ||
+ | | no-1802 Linux Live CD | ||
! style ="color:green;"| Yes | ! style ="color:green;"| Yes | ||
|- style="background: white; color:black;" | |- style="background: white; color:black;" | ||
Line 423: | Line 596: | ||
| 2373-5G1 | | 2373-5G1 | ||
| 2004 | | 2004 | ||
− | | Fedora Core 6 w/Intel | + | | Fedora Core 6 w/Intel 5ABG a/b/g |
| no-1802 Linux Live CD | | no-1802 Linux Live CD | ||
! style ="color:green;"| Yes | ! style ="color:green;"| Yes | ||
Line 462: | Line 635: | ||
! style ="color:green;"| Yes | ! style ="color:green;"| Yes | ||
|- style="background: white; color:black;" | |- style="background: white; color:black;" | ||
− | | ThinkPad T42 | + | | ThinkPad {{T42}} |
| 2373-6UU | | 2373-6UU | ||
| Not noted | | Not noted | ||
Line 469: | Line 642: | ||
! style ="color:green;"| Yes | ! style ="color:green;"| Yes | ||
|- style="background: white; color:black;" | |- style="background: white; color:black;" | ||
− | | ThinkPad T42 | + | | ThinkPad {{T42}} |
| 2373-4TG | | 2373-4TG | ||
| 3.13 (1RETDHWW) (29-10-2004) | | 3.13 (1RETDHWW) (29-10-2004) | ||
| Windows XP Pro SP2 w/ Intel PRO 2200BG | | Windows XP Pro SP2 w/ Intel PRO 2200BG | ||
| no-1802 Linux Live CD | | no-1802 Linux Live CD | ||
+ | ! style ="color:green;"| Yes | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad {{T42}} | ||
+ | | 2373-Y8N | ||
+ | | 1RETDRWW (3.23) | ||
+ | | openSUSE 11.1 / Intel 2915abg | ||
+ | | Matthew Garrett's code | ||
! style ="color:green;"| Yes | ! style ="color:green;"| Yes | ||
|- style="background: white; color:black;" | |- style="background: white; color:black;" | ||
Line 483: | Line 663: | ||
! style ="color:green;"| Yes | ! style ="color:green;"| Yes | ||
|- style="background: white; color:black;" | |- style="background: white; color:black;" | ||
− | | ThinkPad T42 | + | | ThinkPad {{T42}} |
| 2373-K2G | | 2373-K2G | ||
| 3.17 (07-27-2005) | | 3.17 (07-27-2005) | ||
Line 490: | Line 670: | ||
! style ="color:green;"| Yes | ! style ="color:green;"| Yes | ||
|- style="background: white; color:black;" | |- style="background: white; color:black;" | ||
− | | ThinkPad T42 | + | | ThinkPad {{T42}} |
| 2373-M1U | | 2373-M1U | ||
| 3.13 1RETDHWW (10/29/2004) | | 3.13 1RETDHWW (10/29/2004) | ||
Line 497: | Line 677: | ||
! style ="color:green;"| Yes | ! style ="color:green;"| Yes | ||
|- style="background: white; color:black;" | |- style="background: white; color:black;" | ||
− | | ThinkPad T42 | + | | ThinkPad {{T42}} |
| 2373-LM1 | | 2373-LM1 | ||
| 3.23 (1RETDRWW) (06-18-2007) | | 3.23 (1RETDRWW) (06-18-2007) | ||
Line 504: | Line 684: | ||
! style ="color:green;"| Yes | ! style ="color:green;"| Yes | ||
|- style="background: white; color:black;" | |- style="background: white; color:black;" | ||
− | | ThinkPad T42 | + | | ThinkPad {{T42}} |
| 2378-EXU | | 2378-EXU | ||
| 3.18 (09-15-2005) | | 3.18 (09-15-2005) | ||
| Windows XP Pro SP2 | | Windows XP Pro SP2 | ||
| No-1802 utility | | No-1802 utility | ||
+ | ! style ="color:green;"| Yes | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad {{T42}} | ||
+ | | 2373-F3G | ||
+ | | 3.18 (09-15-2005) | ||
+ | | Windows XP Pro SP2 | ||
+ | | No-1802 W98 Boot Floppy | ||
! style ="color:green;"| Yes | ! style ="color:green;"| Yes | ||
|- style="background: white; color:black;" | |- style="background: white; color:black;" | ||
Line 517: | Line 704: | ||
| no-1802 Linux Live CD | | no-1802 Linux Live CD | ||
! style ="color:red;"| No | ! style ="color:red;"| No | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad T60 | ||
+ | | 6371-CTO | ||
+ | | 1.04 (7IET23WW) | ||
+ | | Ubuntu 10.10 | ||
+ | | Matthew Garrett's code | ||
+ | ! style ="color:red;"| No | ||
+ | |-style="background: white; color:black;" | ||
+ | | ThinkPad {{T61}} | ||
+ | | ? | ||
+ | | 2.27-1.08 (20 Apr 2010) | ||
+ | | Linux Mint 9 | ||
+ | | [http://forum.notebookreview.com/lenovo-ibm/459591-t61-x61-sata-ii-1-5-gb-s-cap-willing-pay-solution-8.html#post6501443 Middleton BIOS] {{footnote|5}} or [http://art.ified.ca/?page_id=218 manual patching] (requires installing Windows XP temporarily) | ||
+ | ! style ="color:green;"| yes | ||
+ | |-style="background: white; color:black;" | ||
+ | | ThinkPad T61p | ||
+ | | ? | ||
+ | | 2.27-1.08 (20 Apr 2010) | ||
+ | | Linux Mint 9 | ||
+ | | [http://forum.notebookreview.com/lenovo-ibm/459591-t61-x61-sata-ii-1-5-gb-s-cap-willing-pay-solution-8.html#post6501443 Middleton BIOS] {{footnote|5}} or [http://art.ified.ca/?page_id=218 manual patching] (requires installing Windows XP temporarily) | ||
+ | ! style ="color:green;"| yes | ||
|- style="background: white; color:black;" | |- style="background: white; color:black;" | ||
| ThinkPad X22 | | ThinkPad X22 | ||
Line 522: | Line 730: | ||
| 1.32 (2003-06-10) | | 1.32 (2003-06-10) | ||
| Debian GNU/Linux testing, kernel 2.6.18-3-686 | | Debian GNU/Linux testing, kernel 2.6.18-3-686 | ||
+ | | Matthew Garrett's code | ||
+ | ! style ="color:green;"| Yes | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad X24 | ||
+ | | 2662-MPG | ||
+ | | 1.26 (2002-05-22) | ||
+ | | Debian GNU/Linux 2.6.18-5 | ||
| Matthew Garrett's code | | Matthew Garrett's code | ||
! style ="color:green;"| Yes | ! style ="color:green;"| Yes | ||
Line 628: | Line 843: | ||
| Windows XP Pro SP2 w/ Intel 2915ABG | | Windows XP Pro SP2 w/ Intel 2915ABG | ||
| no-1802 DOS boot CD | | no-1802 DOS boot CD | ||
+ | ! style ="color:green;"| Yes | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad X31 | ||
+ | | 2672-C2G | ||
+ | | ? | ||
+ | | Win XP Pro, w/ Gigabyte GN-WI03N-RN | ||
+ | | no-1802 Linux Live CD | ||
+ | ! style ="color:green;"| Yes | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad X31 | ||
+ | | 2672-BAU | ||
+ | | 3.02 (1QET97WW) | ||
+ | | Windows Vista w/ Broadcom 43XG, Ubuntu 7.10 | ||
+ | | no-1802 Linux Live CD | ||
+ | ! style ="color:green;"| Yes | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad X32 | ||
+ | | 2672-58G | ||
+ | | 3.02 | ||
+ | | Ubuntu 8.04 | ||
+ | | no-1802 CD | ||
+ | ! style ="color:green;"| Yes | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad X40 | ||
+ | | 2371-CTO | ||
+ | | 2.08 (2006/12/25; 1UETD3WW) | ||
+ | | Windows XP Pro, Ubuntu 9 | ||
+ | | modify PCI-CARD EEPROM | ||
! style ="color:green;"| Yes | ! style ="color:green;"| Yes | ||
|- style="background: white; color:black;" | |- style="background: white; color:black;" | ||
Line 634: | Line 877: | ||
| 1.42 (2004/09/16; 1UET92WW) | | 1.42 (2004/09/16; 1UET92WW) | ||
| Windows XP Pro | | Windows XP Pro | ||
+ | | no-1802 Linux Live CD | ||
+ | ! style ="color:green;"| Yes | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad X40 | ||
+ | | 2371-8EU | ||
+ | | 2.08 (2006/12/25; 1UETD3WW) | ||
+ | | Windows XP Professional SP3, Ubuntu 8.04 | ||
| no-1802 Linux Live CD | | no-1802 Linux Live CD | ||
! style ="color:green;"| Yes | ! style ="color:green;"| Yes | ||
Line 664: | Line 914: | ||
| Matthew Garrett's code | | Matthew Garrett's code | ||
! style ="color:red;"| NO (bricked) | ! style ="color:red;"| NO (bricked) | ||
− | |- | + | |- style="background: white; color:black;" |
+ | | ThinkPad X60s | ||
+ | | 1702-3JG | ||
+ | | 2.18 (2008/11/20; 7BETD7WW) | ||
+ | | Slackware | ||
+ | | Modded BIOS (7buj27us_TC-5M_SLIC21.zip) | ||
+ | ! style ="color:green;"| YES | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad X61t | ||
+ | | 7762-94G | ||
+ | | ? | ||
+ | | Windows 7 Ent | ||
+ | | [http://forum.notebookreview.com/lenovo-ibm/459591-t61-x61-sata-ii-1-5-gb-s-cap-willing-pay-solution-8.html#post6501443 Middleton BIOS] {{footnote|5}} or in WWAN slot (no taping) | ||
+ | ! style ="color:green;"| YES (no LED/HW-switch) | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad X200 | ||
+ | | ? | ||
+ | | 1.43 | ||
+ | | Ubuntu Karmic7 | ||
+ | | Matthew Garrett's code | ||
+ | ! style ="color:red;"| NO (tape pin 20 instead) | ||
+ | |- style="background: white; color:black;" | ||
+ | | Thinkpad X200 | ||
+ | | 7454-2QU | ||
+ | | 3.05 | ||
+ | | Windows 7 32-bit | ||
+ | | Tape over pin 20 | ||
+ | ! style ="color:green;"| Yes | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad X200s | ||
+ | | ? | ||
+ | | 3.14 (2010-07-07) | ||
+ | | Ubuntu | ||
+ | | tape over 20-pin, place card into 2nd(!) slot (WWAN). Without taping there will be no error but it won't work. (Led doesn't work after all) | ||
+ | ! style ="color:green;"| Yes | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad X201i (X201) | ||
+ | | 3249-CTO | ||
+ | | 1.16 (2010-06-07; 6QET46WW) | ||
+ | | Debian Squeeze | ||
+ | | tape-over 20-pin | ||
+ | ! style ="color:red;"| No; BIOS hacks not attempted | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad R40 | ||
+ | | 2681-LUU | ||
+ | | 1.27 (2006-06-29; 1OET61WW) | ||
+ | | Windows XP Pro | ||
+ | | jmp1802.cmd | ||
+ | ! style ="color:green;"| Yes | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad {{W500}} | ||
+ | | 4061-A97 | ||
+ | | 1.16 (2008-09-24; 6FET46WW) | ||
+ | | Ubuntu 8.10 | ||
+ | | Matthew Garrett's code | ||
+ | ! style ="color:red;"| No | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad {{X201}} | ||
+ | | 3249-CTO | ||
+ | | 1.22 (2010-09-09; 6QET52WW) | ||
+ | | Ubuntu 10.10 | ||
+ | | tape over 20-pin; place card into WWAN slot | ||
+ | ! style ="color:red;"| No | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad X201 | ||
+ | | 3249-CTO | ||
+ | | 1.22 (2010-09-09; 6QET52WW) | ||
+ | | Ubuntu 10.10 | ||
+ | | Matthew Garrett's code | ||
+ | ! style ="color:red;"| No | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad {{X201}} | ||
+ | | 3249-CTO | ||
+ | | 1.22 (2010-09-09; 6QET52WW) | ||
+ | | Ubuntu 10.10 | ||
+ | | Zender's BIOS tools | ||
+ | ! style ="color:green;"| yes | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad {{X201}} | ||
+ | | 3249-CTO | ||
+ | | 1.32 (6QET62WW) | ||
+ | | Ubuntu 10.10 | ||
+ | | [http://forums.mydigitallife.info/threads/20223-Remove-whitelist-check-add-ID-s-to-break-hardware-restrictions-mod-requests.?s=e297b8f49bacb66d235829696df53c6a&p=366208&viewfull=1#post366208 This modified BIOS] | ||
+ | ! style ="color:green;"| yes | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad {{X201}} | ||
+ | | 3680-VV8 | ||
+ | | 1.34 (6QET64WW) | ||
+ | | Arch (updated 05.05.2011) | ||
+ | | [http://forums.mydigitallife.info/threads/5866-LENOVO--Bioses-especially-Thinkpad.?p=402987&viewfull=1#post402987 This modified BIOS] (updated using preinstalled Windows 7) | ||
+ | ! style ="color:green;"| yes, 2*5 Beep on Startup (see [[http://forums.mydigitallife.info/threads/20223-Remove-whitelist-check-add-ID-s-to-break-hardware-restrictions-mod-requests.?p=352910&viewfull=1#post352910]]) | ||
+ | |-style="background: white; color:black;" | ||
+ | | ThinkPad {{X201}} | ||
+ | | 3680-WR5 | ||
+ | | 1.16 (2010-06-07; 6QET46WW) | ||
+ | | Windows 7 64bit | ||
+ | | tape-over 20-pin | ||
+ | ! style ="color:red;"| no | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad {{X201}} | ||
+ | | 3680-WR5 | ||
+ | | 1.40 (2012-10-11; 6QET70WW) | ||
+ | | Windows 7 64bit | ||
+ | | tape-over 20-pin | ||
+ | ! style ="color:red;"| no | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad {{X220}} | ||
+ | | ? | ||
+ | | 1.21 (8duj10us) | ||
+ | | Arch Linux | ||
+ | | [http://www.mediafire.com/?d2el2b94u5ty5#5nk3h666our5o BIOS by cmuelasl] (updated using preinstalled Windows 7) | ||
+ | ! style ="color:green;"| Yes | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad {{X220}} | ||
+ | | 4291-29G | ||
+ | | 1.39 (2013-18-07; 8DET69WW) | ||
+ | | Windows 7 64bit | ||
+ | | tape-over 20-pin | ||
+ | ! style ="color:green;"| Yes | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad {{X230}} | ||
+ | | 2306-CTO | ||
+ | | 2.50, 2.51 | ||
+ | | Debian, Trisquel | ||
+ | | [http://www.bios-mods.com/forum/Thread-REQUEST-Lenovo-X230-Whitelist-Removal BIOS-MODS forum request for the X230], tape-over pin 20 failed, no-1802 utility failed | ||
+ | ! style ="color:red;"| No | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad X300 | ||
+ | | ? | ||
+ | | ? | ||
+ | | | ||
+ | | [http://forum.notebookreview.com/lenovo-ibm/459591-t61-x61-sata-ii-1-5-gb-s-cap-willing-pay-solution-8.html#post6501443 Middleton BIOS] {{footnote|5}} | ||
+ | ! style ="color:green;"| yes | ||
+ | |- style="background: white; color:black;" | ||
+ | | ThinkPad X301 | ||
+ | | 2777-CTO | ||
+ | | 3.10 (2010-03-16; 6EET50WW) | ||
+ | | Ubuntu 10.04 | ||
+ | | tape over 20-pin; place card into WWAN slot | ||
+ | ! style ="color:red;"| no | ||
+ | |- style="background: white; color:black;" | ||
+ | |} | ||
+ | |||
+ | ==Problem with WiFi LED== | ||
+ | After getting an unauthorized card to work, you may notice that the WiFi LED found on the ThinkPad is not working. This doesn't happen with all unauthorized cards. The general cause for this is the fact that the MiniPCI standard leaves the implementation of the LED signals available on the MiniPCI connector to the card vendors. Therefore some newer WiFi cards use one of the signals originally meant for LEDs to implement the "radio kill" switch input. As a result, the LED doesn't get proper signals and fails. | ||
+ | |||
+ | ====Details==== | ||
+ | The WiFi LED found in ThinkPads is connected to following pins on the MiniPCI connector. | ||
+ | {| align="center" cellpadding="2" width="100%" style="border:1px; background:grey;" | ||
+ | !style="background:#efefef;"|Pin | ||
+ | !style="background:#efefef;"|Signal | ||
+ | !style="background:#efefef;"|Description | ||
+ | |-style="background: white;" | ||
+ | |11 | ||
+ | |LED1_GRNP | ||
+ | |WiFi active LED + | ||
+ | |-style="background: white;" | ||
+ | |13 | ||
+ | |LED1_GRNN | ||
+ | |WiFi active LED - (older cards) / RF Silent input (newer cards) | ||
+ | |} | ||
+ | Note: The descriptions are specific to this article. | ||
+ | |||
+ | If your LED is not working, the problem could be the pin 13. Newer cards may no longer provide the necessary negative signal there to drive the LED. Before you apply any fixes, be sure to check the voltage between pin 11 and ground (can be found for example on the MiniPCI latch arms) - it should give you about 3.3V while the WiFi is active and 0V otherwise. The voltage between pin 13 and ground should measure about 2.5V. The notebook has to be running while you perform the tests so be extremely careful. All the mentioned pins are on the upper side so it's quite easy to get to them with a multimeter. If all the voltages match, your LED is fixable. | ||
+ | |||
+ | Reference:<br> | ||
+ | [http://members.datafast.net.au/dft0802/specs/mpci10.pdf MiniPCI Specification] (PDF, 724KB)<br> | ||
+ | [http://www.interfacebus.com/MiniPCI_Pinout_124Pin.html MiniPCI Pinout] | ||
+ | |||
+ | ====Solution==== | ||
+ | The solution is to connect the ground (GND) to the pin 13. However, since the new ''RF Silent input'' signal is active low, grounding the card side will tell it to turn itself off. Therefore, we have to separate pin 13 of the card from the system board and connect ground to the system board side only. | ||
+ | |||
+ | There are many ways to accomplish this. One which doesn't require any soldering is to mask pin 13 on the card with a cellophane tape and use about 3cm of thin wire to connect pin 13 of the connector to the ground. Place one end of the wire on the masked pad and insert the card into the slot. Check if the wire is centered on the pad and try pulling it (but not too hard) to see if it holds. If it comes out easily, pull the card out and repeat. If you successfully attach it, you have to connect the other end to the ground. The best place is the left MiniPCI latch arm. Bend it outside and insert the wire into the small gap between the two pieces of metal the arm is made from. Finally, make sure that the wire doesn't touch anything else and doesn't stand out too much, it must not touch the touchpad electronics when you put the palmrest back on. If in doubt, cover the wire with some insulator. | ||
+ | |||
+ | {{WARN|Do this fix ONLY if you know exactly what you are doing and at your own risk! If you're not sure about any part, don't even try it or you may damage your WiFi card and/or brick your laptop. You have been warned.}} | ||
+ | |||
+ | {{NOTE|If your card is not listed in the table below, your WiFi LED may not work for some other reason. Therefore, make sure you understood the problem described here and made all the measurements carefully. This way you will know if this apply to your card and if it can be fixed this way. Otherwise, if you're skilled enough, please try to find out why your LED doesn't work and contribute to this article.}} | ||
+ | |||
+ | ====Successful WiFi LED fixes==== | ||
+ | {| align="center" cellpadding="2" width="100%" style="border:1px; background:grey;" | ||
+ | ! style="background:#efefef;"| Model | ||
+ | ! style="background:#efefef;"| Type | ||
+ | ! style="background:#efefef;"| WiFi card | ||
+ | ! style="background:#efefef;"| Operating System | ||
+ | ! style="background:#efefef;"| Success | ||
+ | ! style="background:#efefef;"| Comments | ||
+ | |- style="background: white; color:black;" | ||
+ | |T41 | ||
+ | |2374-312 | ||
+ | |Intel PRO/Wireless 2915ABG, | ||
+ | Spares No: 373830-001 | ||
+ | |Windows XP SP2, | ||
+ | Ubuntu 7.10 | ||
+ | |style ="color:green;font-weight:bold;"|Yes | ||
+ | |The WiFi card seems to be a HP one (tip: google for spares no.). Not sure thou - received it with an already changed PCI-ID. | ||
+ | |- style="background: white; color:black;" | ||
+ | |X31 | ||
+ | |2672-PG9 | ||
+ | |Intel PRO/Wireless 2915ABG, Broadcom BCM4306 | ||
+ | |Debian Sid | ||
+ | |style ="color:green;font-weight:bold;"|Yes | ||
+ | |Both cards are non-IBM ones, BIOS was patched. ipw2200 needed the {{bootparm|led|1}} option to be enabled while loading the module. | ||
|} | |} | ||
− | ==External Sources== | + | == External Sources == |
− | * Additional Information about "Unauthorised" MiniPCI adapters can be found on [http://www.srcf.ucam.org/~mjg59/thinkpad/wireless.html Matthew Garrett's website]. | + | |
+ | * Additional Information about "Unauthorised" MiniPCI adapters can be found on [http://web.archive.org/web/20080803233214/http://www.srcf.ucam.org/~mjg59/thinkpad/wireless.html Matthew Garrett's website]. | ||
− | * Thinkpad Mini PCI Wireless [http://www.srcf.ucam.org/~mjg59/thinkpad/tables.html compatibility matrix]. | + | * Thinkpad Mini PCI Wireless [http://web.archive.org/web/20080608221633/http://www.srcf.ucam.org/~mjg59/thinkpad/tables.html compatibility matrix]. |
* Bootable "no-1802" [http://www.command-tab.com/2006/02/26/unauthorized-wireless-cards/ CD and floppy image] | * Bootable "no-1802" [http://www.command-tab.com/2006/02/26/unauthorized-wireless-cards/ CD and floppy image] | ||
{{footnotes| | {{footnotes| | ||
− | #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]. | + | # 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]. |
− | #The no-1802 tool was announced and | + | # The no-1802 tool was announced and explained in a [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2004-June/018253.html message to the Linux-Thinkpad ML]. |
− | #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. | + | # 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://web.archive.org/web/20080608221623/http://www.srcf.ucam.org/~mjg59/thinkpad/hacks.html rewrote] the code to provide more error checking. |
− | #This information has been added by users. Please feel free to add systems if you have had personal success or failure. | + | # This information has been added by users. Please feel free to add systems if you have had personal success or failure. |
+ | # The user Middleton has released [http://forum.notebookreview.com/lenovo-ibm/459591-t61-x61-sata-ii-1-5-gb-s-cap-willing-pay-solution-8.html#post6501443 patched BIOS] for R61/T61/X61/X300 on the NotebookReview forums. The BIOS disables the MiniPCI whitelist, as well as unlocking full SATA-II speed. | ||
}} | }} |
Latest revision as of 18:48, 6 May 2018
Contents
Problem description
The ThinkPad BIOS only allows to boot with an "authorized" adapter installed. If an unsupported card is detected, the BIOS prints a message on the screen and stops the system:
1802: Unauthorized network card is plugged in - Power off and remove the miniPCI network card.
The card's sub-vendor PCI-ID (which can be seen using lspci -v) is checked against a whitelist in the BIOS. IBM/Lenovo'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).1 or similar agencies in other countries.
Solutions
It may be possible to use the computer with the unauthorized card deactivated (but not removed). Press 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.
Modifying the card's ID
A safer and better method than modifying the BIOS is modifying the PCI-ID of the wlan card to match the authorized one:
- You'll risk the wireless card instead of the motherboard.
- Future BIOS updates will not create any problems.
- No problem with newer laptops with different BIOS; the only reqirement is to find an ID that is already listed in the BIOS, which can be easily achieved if the community maintaina a compatibility table.
The instructions are here (link down, 2011/05/14 - archive.org mirror here, second mirror 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.
Instruction for intel 2200/2915 cards are here or here or here (in German). The second one is much simpler because it provides an already patched and compiled ipw2200 driver required to do the job.
Instructions on how to unbrand an HP lt4132 (HP-rebranded Huawei ME906s WWAN module, compatible with some X1 Yoga and X1 Carbon models) can be found here
Offset: 0x0000
Values: 02 a5 00 80 20 42 86 80 12 27 86 80 18 00 01 03
one source suggest that one more value should be modified:
offset 0xa8 value 0xf9
Use another MiniPCI (express) slot
On models with multiple MiniPCI (express) slots, the BIOS checks only the “WiFi-slot” for unauthorized WiFi cards. A neighboring WWAN slot is allowed to hold such a card. But there might be a catch: the WWAN slot’s “disable radio” signal could be active, so that the card will refuse from using the radio. The operating system can see this condition: on Linux it is reported as “hard blocked” by rfkill. (This actually depends on the driver: “b43” does notice that the card refuses to switch it’s radio on and reports it via the rfkill interface.)
Combinations that work in the WWAN slot without further tweaking:
- Lenovo Y530 / Intel 4965AGN
- X61t (7762-94G) / Atheros 5008X scavenged from a MacBook Pro
On MiniPCI express(!) slots, pin 20 is used as the first “disable radio” signal, as implemented by common WiFi cards. Isolating pin 20 in the slot from the card will leave the signal dangling, which means “disable radio” is inactive: i.e. “radio on”. If necessary, the pin on the card can be taped over with film or painted over with nail polish to block electrical connection. Pin #20 is located on the underside of the miniPCI Express board, second pin from the notch, on the side with more pins. Here is detailed MiniPCIe pinout. Combinations reported to work this way:
- Thinkpad X61s / Intel Wifi link 4965agn
- Thinkpad X61 / Intel 3945abg (bulk)
- Thinkpad X200 / Intel 5300 and Broadcom 4312
- Thinkpad T60p (widescreen) / Sierra MC8781
Questions still open:
- can the signal be deactivated otherwise? (WLAN-on-for-WWAN-slot)
- do WWAN cards have such a signal? Is it on another pin (a “second disable radio” pin is defined for mPCIe since at least 2010)?
- in case it’s the same signal, how to deactivate the WWAN kill signal? On the X200 the hardware switch doesn’t do that.
- as the card (usually) drives an LED to reflect it’s state, can that signal be routed to the WWAN or WiFi LED?
Taping over any Mini PCI-e pin is a delicate exercise in patience, the connectors are less than the width of most ball point pens. Transparent scotch type tape is easier to work with since it is possible to see where you're cutting.
See the discussion page for more.
Modifying the BIOS
See the table below for links to modified BIOS images with the whitelist disabled. Information on making this BIOS modification for newer ThinkPads can be found here.
Alternatively, you may can modify the whitelist to include the PCI-ID of the card you wish to use. The complete instructions for this procedure are here.
- You can try googling for your model number + "whitelist removal", there are lots of pre-hacked BIOSes out there.
- You can use the 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.
- You can use the DOS no-1802 utility, written by Tisheng Chen.2 It will set a certain bit in the CMOS memory which disables the whitelist check, but it has been reported not to work on the latest machines, such as the T43 and X41
- 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. 3
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/stat.h>
#include <fcntl.h>
int main(void)
{
int fd;
unsigned char data;
fd = open("/dev/nvram", O_RDWR);
if (fd==-1) {
printf("Opening /dev/nvram failed\n");
return 1;
}
printf("Disabling WiFi whitelist check.\n");
/* BIG INFORMATIONAL WARNING */
/* The linux nvram driver doesn't give access to the first 14 bytes of
the CMOS. As a result, we seek to 0x5c rather than 0x6a. If you're
implementing this under another OS, then you'll have to go to whichever
address is appropriate for your access method */
lseek(fd, 0x5c, SEEK_SET);
read(fd, &data, 1);
printf("CMOS address 0x5c: %02x->", data);
data |= 0x80;
printf("%02x\n", data);
lseek(fd, 0x5c, SEEK_SET);
if (write(fd, &data, 1)<0) {
printf("Unable to write to /dev/nvram - hack failed\n");
close(fd);
return 2;
}
close(fd);
printf("Done.\n");
return 0;
}
BIOS modifications status
The following table contains information about ThinkPad models BIOS modification status to run an unauthorized Mini PCI card. 4
Model | Type | BIOS Version | Operating System | Method | Success |
---|---|---|---|---|---|
ThinkPad 240 | 2609-21G | 1.18 | Damn Small Linux | Matthew Garrett code 3 | Yes |
ThinkPad A31 | 2652-P3M | 1.10 (1NET16WW) | Debian GNU/Linux Lenny (2.6.25-2-686) | Matthew Garrett code 3 | Yes |
ThinkPad A31 | 2653-CU3 | 1.13 (1GET41WW) | Windows XP Professional SP2 | no-1802 DOS 6.22 floppy | Yes |
ThinkPad A31p | 2653-R8U | 1.10 (1NET16WW) | Windows XP Professional SP2 | no-1802 DOS 6.22 floppy | Yes |
ThinkPad G40 | 2388-2UU | 1.21 (2006/2/24; 1TETA6WW) | Windows XP Home | no-1802 DOS 6.22 floppy | Yes |
ThinkPad R31 | 2656-6FG | 3.11 (12-01-2004) | Windows XP Boot Disk | no-1802 utility | Yes |
ThinkPad R31 | 2656-E4U | 3.11 (12-01-2004) | Windows XP Professional SP2 | no-1802 utility | Yes |
ThinkPad R32 | 2656-EG1 | 2.16 (16-06-2006) | DOS Boot Disk | no-1802 utility | No |
ThinkPad R40 | 2656-69U | ? | Windows 2000 Pro | no-1802 utility | Yes |
ThinkPad R40 | 2681-F7G | n/a | Windows XP Pro SP2 w/ Intel 2200BG | No-1802 utility | Yes |
ThinkPad R40 | 2682 | ? | Debian Etch | Matthew Garrett code | Yes |
ThinkPad R40 | 2896-J3U | 1.24 (10-18-2005) | Fedora Core 4 | Vojtech Pavlik code | Yes |
ThinkPad R40 | 2681-L7U | 1.24 (10-18-2005) | Windows XP Pro | no-1802 utility | Yes |
ThinkPad R40 | 2722-BDG | 1.33 | Windows XP Pro | no-1802 Linux Live CD | Yes |
ThinkPad R40 | 2722-DG1 | 1.26 | Ubuntu Linux 8.10 2.6.27-9 | Matthew Garrett code | Yes |
ThinkPad R40e | 2684-LKG | ? | Windows XP Pro | no-1802 DOS boot CD | Yes |
ThinkPad R40 | 2681-CDG | 1.27 (10-06-2006) | Windows XP Pro | no-1802 LiveCD | Yes |
ThinkPad R40 | 2722-DM2 | 1.09 (2003) | Windows XP Pro | no-1802 LiveCD | Yes |
ThinkPad R40 | 2723 | ? | Slackware Linux 12 | Matthew Garrett's code | Yes |
ThinkPad R40 | 2681-CFM | 1.24 (10-17-2005) | Gentoo & XP Pro | no-1802 utility (boot from USB key to apply) | Yes |
ThinkPad R40 | 2724 | 1.30 (10-19-2005) | FreeBSD 6.1-p1 | code by Matthew Garrett, compiled and run on bactrack | Yes |
ThinkPad R40 | 2724-3XU | 1.33 (06-29-2006) | Windows XP Pro | no-1802 utility | Yes |
ThinkPad R40 | 2682 | 1.01 (2003-01-24) | Debian GNU/Linux etch (March 2007) | Matthew Garret's code | Yes |
ThinkPad R40 | 2722-BDG | 1.33 (2006/6/29) | Lunar Linux (2007/03/04) | Matthew Garret's code | Yes |
ThinkPad R50 | 1829-7RG | 3.21 (02-06-2006) | Windows XP Pro | no-1802 Linux Live CD | Yes |
ThinkPad R50 | 2.13 (2004-01-08) | Ubuntu 10.10 | no-1802 W98 Boot Floppy | Yes | |
ThinkPad R50 | 1830-6FG | 3.05a (14-05-2004) | Windows XP Pro | no-1802 Linux Live CD | Yes |
ThinkPad R50e | 2.10 (2006-12-22) | no-1802 Linux Live CD | Yes | ||
ThinkPad R50p | 1832-2AG | 3.19 (13-10-2005) | Ubuntu 5.10 (kernel 2.6.12-10-686) | Vojtech Pavlik code | Yes |
ThinkPad R51 | 2887-W2C | 1.27 (03-03-2006) | Windows XP Pro SP2 | no-1802 utility (boot from USB key to apply) | Yes |
ThinkPad R52 | 1849-BMU | 1.27 (09-20-2006) | Windows XP Pro SP2 | no-1802 utility (boot from external USB floppy) | No |
ThinkPad R61 | ? | ? | Middleton BIOS 5 | yes | |
ThinkPad T23 | 2647-4MU | 1.18 (08-06-2004) | Windows XP Pro/SP2 | no-1802 utility (W98se-bootfloppy) | Yes |
ThinkPad T30 | 2366-68G | 2.09 (08-08-2005) | Windows XP Pro | no-1802 utility | Yes |
ThinkPad T30 | 2366-ES1 | 2.10 | Windows XP Pro | no-1802 utility | Yes |
ThinkPad T30 | 2366-97G | 2.09 (08-08-2005) | Windows XP Pro | no-1802 utility | Yes |
ThinkPad T30 | 2366-N6G | 2.09 (08-08-2005) | Windows XP Pro | no-1802 utility | Yes |
ThinkPad T30 | 2366-N6G | 2.10 (26-06-2006) | Windows XP Pro | no-1802 utility | Yes |
ThinkPad T30 | 2366-81U | 2.10 (27-06-2006) | Windows XP Pro | no-1802 Linux Live CD | Yes |
ThinkPad T30 | 2366-86U | 2.10 (27-06-2006) | Windows XP Pro SP 2 | no-1802 utility | Yes |
ThinkPad T30 | 2366-86G | 2.10 (27-06-2006) | Windows XP Pro SP 2 and Ubuntu 7.10 "Gutsy Gibbon" Intel BG2200 | no-1802 Linux Live CD | Yes |
ThinkPad T30 | 2366-86M | 2.05 (12-06-2003) | Mepis 7 | no-1802 Linux Live CD | Yes |
ThinkPad T30 | 2366-DU9 | 2.10 (27-06-2006) | Suse Linux 10.1 | no-1802 Linux Live CD | Yes |
ThinkPad T30 | 2367-RU1 | 2.01 (06-08-2002) | Windows XP Pro SP2 | no-1802 Linux Live CD | Yes |
ThinkPad T30 | 2366-81M | 2.10 (1IET71WW) | Debian GNU/Linux Lenny (2.6.24-1-686) | Matthew Garrett code 3 | Yes |
ThinkPad T40 | 2373-7CU | 3.21 | Windows XP Pro | no-1802 Linux Live CD | Yes |
ThinkPad T40 | 2373-PM1 | 3.21 | Windows XP Pro SP2 | no-1802 Linux Live CD | Yes |
ThinkPad T40 | 2373-4BG | 3.21 | Windows XP Pro SP2 | no-1802 Linux Live CD | Yes |
ThinkPad T40 | 2373-7CU | 3.21 (06-02-2006) | Windows XP Pro SP2 | no-1802 Linux Live CD | Yes |
ThinkPad T40 | 2373-75U | 3.21 (09-12-2006) | Fedora 6 w Intel 2915ABG | no-1802 Linux Live CD | Yes |
ThinkPad T40 | 2373-82U | 3.18 (09-15-2005) | Windows XP/ SUSE 10.1 | No-1802 utility | Yes |
ThinkPad T40 | 2373-8CG | 3.05a (2004-05-14) | Arch Linux | No-1802 LiveCD | Yes |
ThinkPad T40 | 2373-8CG | 3.15 (2005-03-29) | Windows XP Pro SP2 w/Gigabyte GN-WI01GS | No-1802 LiveCD | Yes |
ThinkPad T40 | 2373-PU7 | 3.21 (09-12-2006) | Windows XP Professional | No-1802 utility | Yes |
ThinkPad T40 | 2373-42G | 3.20 (11-05-2006) | Windows 2000 Pro | no-1802 utility | Yes |
ThinkPad T40 | 2374-8CG | 3.20 (11-05-2006) | Ubuntu 6.06 LTS w/Intel Pro Lan2200 | no-1802 Linux Live CD | Yes |
ThinkPad T40 | 2374-8CU | 3.03 (07 Apr 2004) | Windows XP | no-1802 utility (applied via FreeDos bootable USB stick) | Yes |
ThinkPad T40 | 2374-DG1 | 3.21 (06-02-2006) | Ubuntu 6.10 w/Broadcom 4306 | Matthew Garrett's code | Yes |
ThinkPad T40 | 2374-8CU | 3.16 (2006-02-21) | Windows XP Pro SP2 | no-1802 DOS boot CD | Yes |
ThinkPad T40 | 2.13 (2004-01-08) | Ubuntu 10.04 LTS | no-1802 W98 boot floppy | Yes | |
ThinkPad T40 | 2376-CG1 | 3.23 1RETDRWW (2007-07-03) | Windows XP Pro SP3 w/ Broadcom BCM94318MPG | no-1802 Linux Live CD | Yes |
ThinkPad T40p | 2373-G1G | 3.19 (10-13-2005) | Debian GNU/Linux (sid) | no-1802 Linux Live CD | Yes |
ThinkPad T40p | 2373-G5G | 3.21 (2006-06-02) | Windows XP Pro SP2 / Gentoo 2007.0 | no-1802 Linux Live CD | Yes |
ThinkPad T41 | 2373-1FG | 3.21 (2007-06-18) | Windows XP Pro SP2 | no-1802 utility | Yes |
ThinkPad T41 | 2373-5G1 | 2004 | Fedora Core 6 w/Intel 5ABG a/b/g | no-1802 Linux Live CD | Yes |
ThinkPad T41 | 2373-9HU | n/a | Ubuntu 6.10 w/Atheros 5212 a/b/g | no-1802 Linux Live CD | Yes |
ThinkPad T41 | 2373-2FG | n/a | Windows XP Pro SR2 w/ Intel 2200BG | no-1802 utility | Yes |
ThinkPad T41p | 2373-GEG | BIOS Build ID: 1RETDOWW(3.20) | Gentoo / XP pro SP2 | Matthew Garrett's code 3 | Yes |
ThinkPad T41p | 2374-GGU | 3.21 (1RETDPWW) 6/2/2006 | Slackware / XP pro SP2 | Matthew Garrett's code | Yes |
ThinkPad T41 | 2373-K32 | BIOS Build ID: 1RETDOWW(3.20) | CentOS 5.0 w/Atheros 5212 (CM9) | Matthew Garrett's code | Yes |
ThinkPad T42 | 2373-6UU | Not noted | Fedora 7 w/Atheros 5212 | Matthew Garrett's code | Yes |
ThinkPad T42 | 2373-4TG | 3.13 (1RETDHWW) (29-10-2004) | Windows XP Pro SP2 w/ Intel PRO 2200BG | no-1802 Linux Live CD | Yes |
ThinkPad T42 | 2373-Y8N | 1RETDRWW (3.23) | openSUSE 11.1 / Intel 2915abg | Matthew Garrett's code | Yes |
ThinkPad T42p | 2373-HTU | 3.23 (1RETDRWW) (06-18-2007) | Windows XP Pro SP2 w/ Intel 2915ABG | No-1802 utility | Yes |
ThinkPad T42 | 2373-K2G | 3.17 (07-27-2005) | Windows XP Pro SP2 w/ Intel 2915ABG | No-1802 utility | Yes |
ThinkPad T42 | 2373-M1U | 3.13 1RETDHWW (10/29/2004) | Fedora 7 w/ Intel PRO 2200BG | Matthew Garrett's code | Yes |
ThinkPad T42 | 2373-LM1 | 3.23 (1RETDRWW) (06-18-2007) | Debian Lenny (2.6.21-2-686) w/ Intel PRO 2915ABG | Matthew Garrett's code | Yes |
ThinkPad T42 | 2378-EXU | 3.18 (09-15-2005) | Windows XP Pro SP2 | No-1802 utility | Yes |
ThinkPad T42 | 2373-F3G | 3.18 (09-15-2005) | Windows XP Pro SP2 | No-1802 W98 Boot Floppy | Yes |
ThinkPad T43 | 1871-F1G | 1.19 (70ET59WW) (2005-09-20) | n/a | no-1802 Linux Live CD | No |
ThinkPad T60 | 6371-CTO | 1.04 (7IET23WW) | Ubuntu 10.10 | Matthew Garrett's code | No |
ThinkPad T61 | ? | 2.27-1.08 (20 Apr 2010) | Linux Mint 9 | Middleton BIOS 5 or manual patching (requires installing Windows XP temporarily) | yes |
ThinkPad T61p | ? | 2.27-1.08 (20 Apr 2010) | Linux Mint 9 | Middleton BIOS 5 or manual patching (requires installing Windows XP temporarily) | yes |
ThinkPad X22 | 2662-95G | 1.32 (2003-06-10) | Debian GNU/Linux testing, kernel 2.6.18-3-686 | Matthew Garrett's code | Yes |
ThinkPad X24 | 2662-MPG | 1.26 (2002-05-22) | Debian GNU/Linux 2.6.18-5 | Matthew Garrett's code | Yes |
ThinkPad X30 | AR5212 | ? | Debian Linux 2.6.18-5 | Matthew Garrett's code | Yes |
ThinkPad X30 | 2672-41j | 1.08 (08-09-2005) | Gentoo Kernel 2.6.15 | no-1802 utility | Yes |
ThinkPad X30 | 2672-4XU | 1.09 | Win XP Pro SP2 | no-1802 Linux Live CD | Yes |
ThinkPad X30 | 2673-EU2 | 1.09 | Windows XP Pro SP2 | no-1802 utility | Yes |
ThinkPad X31 | 2672-C2G | 3.02 (22-09-2005) | Debian Etch (Testing), Kernel 2.6.22-rc7 | no-1802 utility | Yes |
ThinkPad X31 | 2672-PG9 | 2.04 (2003-11-10) | Debian Etch (Testing), Kernel 2.6.21-2 | Matthew Garrett's code | Yes |
ThinkPad X31 | 2673-C27 | 3.02 (22-09-2005) | Ubuntu 5.10 (kernel 2.6.12-9-386) | Matthew Garrett code 3 | Yes |
ThinkPad X31 | 2672-1UG | 3.02 (22-09-2005) | FreeBSD 6-STABLE | no-1802 Linux Live CD | Yes |
ThinkPad X31 | 2672-CEG | 3.02 (22-09-2005) | Debian Etch (Testing), Kernel 2.6.17-2-686 | no-1802 Linux Live CD | Yes |
ThinkPad X31 | 2672-CXU | 2.04 | Windows XP Pro | no-1802 DOS boot CD | Yes |
ThinkPad X31 | 2672-PBU | 3.02 | Windows XP Pro | no-1802 DOS boot CD | Yes |
ThinkPad X31 | 2672-I5A | 3.02 | Windows XP Pro | no-1802 DOS boot CD | Yes |
ThinkPad X31 | 2672-C8G | 3.02 | Debian (kernel 2.6.16.20-386) | Matthew Garrett code 3 | Yes |
ThinkPad X31 | 2672-CEG | 2.11 (02/13/2004) | Debian (kernel 2.6.18-4-686, gcc 4.1.2) | Matthew Garrett code 3 | Yes |
ThinkPad X31 | 2884-BRU | 1.03 (1QET34WW) 2003-04-08 | Windows XP Pro SP2 w/ Intel 2915ABG | no-1802 DOS boot CD | Yes |
ThinkPad X31 | 2672-C2G | ? | Win XP Pro, w/ Gigabyte GN-WI03N-RN | no-1802 Linux Live CD | Yes |
ThinkPad X31 | 2672-BAU | 3.02 (1QET97WW) | Windows Vista w/ Broadcom 43XG, Ubuntu 7.10 | no-1802 Linux Live CD | Yes |
ThinkPad X32 | 2672-58G | 3.02 | Ubuntu 8.04 | no-1802 CD | Yes |
ThinkPad X40 | 2371-CTO | 2.08 (2006/12/25; 1UETD3WW) | Windows XP Pro, Ubuntu 9 | modify PCI-CARD EEPROM | Yes |
ThinkPad X40 | 2371-8EU | 1.42 (2004/09/16; 1UET92WW) | Windows XP Pro | no-1802 Linux Live CD | Yes |
ThinkPad X40 | 2371-8EU | 2.08 (2006/12/25; 1UETD3WW) | Windows XP Professional SP3, Ubuntu 8.04 | no-1802 Linux Live CD | Yes |
ThinkPad X41 | 1866-6SU | ? | Windows XP Pro | no-1802 DOS boot CD | No |
ThinkPad X41 | 2525-A2U | 2.06 (2006/03/14; 74ET61WW) | Windows XP Pro | no-1802 Linux Live CD | No |
ThinkPad X41 | 2528-ELU | 2.06 (2006/03/14; 74ET61WW) | Windows XP Pro / OSX 10.4.8 / Ubuntu Edgy | no-1802 Linux Live CD | No |
ThinkPad X60s | 1702-3JU | ? | Debian Testing | Matthew Garrett's code | NO (bricked) |
ThinkPad X60s | 1702-3JG | 2.18 (2008/11/20; 7BETD7WW) | Slackware | Modded BIOS (7buj27us_TC-5M_SLIC21.zip) | YES |
ThinkPad X61t | 7762-94G | ? | Windows 7 Ent | Middleton BIOS 5 or in WWAN slot (no taping) | YES (no LED/HW-switch) |
ThinkPad X200 | ? | 1.43 | Ubuntu Karmic7 | Matthew Garrett's code | NO (tape pin 20 instead) |
Thinkpad X200 | 7454-2QU | 3.05 | Windows 7 32-bit | Tape over pin 20 | Yes |
ThinkPad X200s | ? | 3.14 (2010-07-07) | Ubuntu | tape over 20-pin, place card into 2nd(!) slot (WWAN). Without taping there will be no error but it won't work. (Led doesn't work after all) | Yes |
ThinkPad X201i (X201) | 3249-CTO | 1.16 (2010-06-07; 6QET46WW) | Debian Squeeze | tape-over 20-pin | No; BIOS hacks not attempted |
ThinkPad R40 | 2681-LUU | 1.27 (2006-06-29; 1OET61WW) | Windows XP Pro | jmp1802.cmd | Yes |
ThinkPad W500 | 4061-A97 | 1.16 (2008-09-24; 6FET46WW) | Ubuntu 8.10 | Matthew Garrett's code | No |
ThinkPad X201 | 3249-CTO | 1.22 (2010-09-09; 6QET52WW) | Ubuntu 10.10 | tape over 20-pin; place card into WWAN slot | No |
ThinkPad X201 | 3249-CTO | 1.22 (2010-09-09; 6QET52WW) | Ubuntu 10.10 | Matthew Garrett's code | No |
ThinkPad X201 | 3249-CTO | 1.22 (2010-09-09; 6QET52WW) | Ubuntu 10.10 | Zender's BIOS tools | yes |
ThinkPad X201 | 3249-CTO | 1.32 (6QET62WW) | Ubuntu 10.10 | This modified BIOS | yes |
ThinkPad X201 | 3680-VV8 | 1.34 (6QET64WW) | Arch (updated 05.05.2011) | This modified BIOS (updated using preinstalled Windows 7) | yes, 2*5 Beep on Startup (see [[1]]) |
ThinkPad X201 | 3680-WR5 | 1.16 (2010-06-07; 6QET46WW) | Windows 7 64bit | tape-over 20-pin | no |
ThinkPad X201 | 3680-WR5 | 1.40 (2012-10-11; 6QET70WW) | Windows 7 64bit | tape-over 20-pin | no |
ThinkPad X220 | ? | 1.21 (8duj10us) | Arch Linux | BIOS by cmuelasl (updated using preinstalled Windows 7) | Yes |
ThinkPad X220 | 4291-29G | 1.39 (2013-18-07; 8DET69WW) | Windows 7 64bit | tape-over 20-pin | Yes |
ThinkPad X230 | 2306-CTO | 2.50, 2.51 | Debian, Trisquel | BIOS-MODS forum request for the X230, tape-over pin 20 failed, no-1802 utility failed | No |
ThinkPad X300 | ? | ? | Middleton BIOS 5 | yes | |
ThinkPad X301 | 2777-CTO | 3.10 (2010-03-16; 6EET50WW) | Ubuntu 10.04 | tape over 20-pin; place card into WWAN slot | no |
Problem with WiFi LED
After getting an unauthorized card to work, you may notice that the WiFi LED found on the ThinkPad is not working. This doesn't happen with all unauthorized cards. The general cause for this is the fact that the MiniPCI standard leaves the implementation of the LED signals available on the MiniPCI connector to the card vendors. Therefore some newer WiFi cards use one of the signals originally meant for LEDs to implement the "radio kill" switch input. As a result, the LED doesn't get proper signals and fails.
Details
The WiFi LED found in ThinkPads is connected to following pins on the MiniPCI connector.
Pin | Signal | Description |
---|---|---|
11 | LED1_GRNP | WiFi active LED + |
13 | LED1_GRNN | WiFi active LED - (older cards) / RF Silent input (newer cards) |
Note: The descriptions are specific to this article.
If your LED is not working, the problem could be the pin 13. Newer cards may no longer provide the necessary negative signal there to drive the LED. Before you apply any fixes, be sure to check the voltage between pin 11 and ground (can be found for example on the MiniPCI latch arms) - it should give you about 3.3V while the WiFi is active and 0V otherwise. The voltage between pin 13 and ground should measure about 2.5V. The notebook has to be running while you perform the tests so be extremely careful. All the mentioned pins are on the upper side so it's quite easy to get to them with a multimeter. If all the voltages match, your LED is fixable.
Reference:
MiniPCI Specification (PDF, 724KB)
MiniPCI Pinout
Solution
The solution is to connect the ground (GND) to the pin 13. However, since the new RF Silent input signal is active low, grounding the card side will tell it to turn itself off. Therefore, we have to separate pin 13 of the card from the system board and connect ground to the system board side only.
There are many ways to accomplish this. One which doesn't require any soldering is to mask pin 13 on the card with a cellophane tape and use about 3cm of thin wire to connect pin 13 of the connector to the ground. Place one end of the wire on the masked pad and insert the card into the slot. Check if the wire is centered on the pad and try pulling it (but not too hard) to see if it holds. If it comes out easily, pull the card out and repeat. If you successfully attach it, you have to connect the other end to the ground. The best place is the left MiniPCI latch arm. Bend it outside and insert the wire into the small gap between the two pieces of metal the arm is made from. Finally, make sure that the wire doesn't touch anything else and doesn't stand out too much, it must not touch the touchpad electronics when you put the palmrest back on. If in doubt, cover the wire with some insulator.
Successful WiFi LED fixes
Model | Type | WiFi card | Operating System | Success | Comments |
---|---|---|---|---|---|
T41 | 2374-312 | Intel PRO/Wireless 2915ABG,
Spares No: 373830-001 |
Windows XP SP2,
Ubuntu 7.10 |
Yes | The WiFi card seems to be a HP one (tip: google for spares no.). Not sure thou - received it with an already changed PCI-ID. |
X31 | 2672-PG9 | Intel PRO/Wireless 2915ABG, Broadcom BCM4306 | Debian Sid | Yes | Both cards are non-IBM ones, BIOS was patched. ipw2200 needed the led=1 option to be enabled while loading the module.
|
External Sources
- Additional Information about "Unauthorised" MiniPCI adapters can be found on Matthew Garrett's website.
- Thinkpad Mini PCI Wireless compatibility matrix.
- Bootable "no-1802" CD and floppy image
FOOTNOTES [Δ] |
- This is explained in a message to the LKML and subsequently clarified.
- The no-1802 tool was announced and explained in a message to the Linux-Thinkpad ML.
- Vojtech Pavlik's C-code was originally posted in a message to the LKML. It was based on the assembly used in the no-1802 program. Matthew Garrett rewrote the code to provide more error checking.
- This information has been added by users. Please feel free to add systems if you have had personal success or failure.
- The user Middleton has released patched BIOS for R61/T61/X61/X300 on the NotebookReview forums. The BIOS disables the MiniPCI whitelist, as well as unlocking full SATA-II speed.