Notes
These instructions are for a 64-bit Lenovo Thinkpad X201. They work on my
machine. They are not guaranteed to work on other machines, but they may: the
X201i is a good candidate for cross-application.
Attempting these instructions may help you throw of the yoke of corporate and
government oppression.
Attempting the following may also brick your machine.
Motivation
My Lenovo Thinkpad X201's a beast.
Sturdy.
Powerful.
Fast.
WiFi: seeming a bit off.
Today, I'll fix that. But it'll be harder than you might think.
The Lenovo came with a Realtek Rtl8191se Mini PCI-e Half Height Wireless WLan Card with 802.11b/g/n 2.4 Ghz 150mbps.
I plan to replace it with the Intel Network 7260.HMWG.R Revised WiFi Wireless-AC 7260 H/T Dual Band 2x2 AC+Bluetooth.
The new card should operate from 43+ Mbps up to gigabits. Further, it makes
the following promise:
The 802.11 ac, dual-band, 2 x 2 Wi-Fi plus Bluetooth adapter that lets you
move at the speed of life with faster speeds, higher capacity, broader
coverage, and longer battery life. Combined with 4th generation Intel Core
processors and exceptional Intel wireless innovations, the Intel Dual Band
Wireless-AC 7260 dramatically reshapes your connected experience at home,
work, or on the go. NOTE: May or may not work with Hp and Lenovo notebooks
Uh oh... what about that last part "May or may not work with Hp and Lenovo
notebooks".
As it turns out, if I were to just plug the card directly into my Thinkpad, I
would get the following dreaded message:
1802: Unauthorized network card is plugged in - Power off and remove the
miniPCI network card.
This is because the Thinkpad's BIOS contains a so-called whitelist of cards
that the computer is willing to work with. If any other card is attached, the
Thinkpad will refuse to boot until the card is added.
Taping the 7260 (A Method Which Did Not Work)
Some folks on the internet claim this can be fixed by putting tape over Pin 20.
On some computers, Pin 20 is used by the BIOS to disable a WiFi card it doesn't
like; disabling Pin 20 will therefore allow the card to continue to run. In
other cases Pin 20 corresponds to a hardware switch on the computer that is no
longer used (the WiFi card being controlled only by software); disabling Pin 20
will therefore leave the card unconfused.
Pin 51 has something to do with the Bluetooth.
Since this method is very non-invasive, it was a good place to start. Just use a
scissors and steady hands, as depicted below:
Unfortunately, this did not work on the Thinkpad X201. The BIOS still sees the
alien card and, rather than bothering to disable it, the computer simply refuses
to boot until you remove it.
Rewriting the 7260's EEPROM (A Method That Sounded Too Painful To Attempt)
In this option, we find out the manufacturer serial numbers from a functional
WiFi card and then overwrite the EEPROM (a kind of BIOS for the WiFi card) on
the Intel 7260 so that its serial numbers match these. The BIOS would then
think the WiFi card was legit and boot.
Continuing on this, we'd then have to alter the WiFi driver software so that the
correct drivers got loaded.
A benefit of this method is that if you brick the ~$20 WiFi card, it's cheap and
easy to replace.
The downside is that you'd (I'd) have to modify what is probably poorly-
documented driver software and figure out how to get the modified software to
interface with the kernel.
I hate doing that kind of thing. Which brings us to the third, and scariest,
method.
Modding the Thinkpad X201's BIOS (A scary, but doable option)
The most general method would be to alter the Thinkpad X201's BIOS to eliminate
its whitelist (or, more reasonably, have whitelist checks always return "good").
The downside to this method is that you can brick your computer. But at
least you won't have to deal with driver software!
We'll start by upgrading the BIOS to the newest version.
Upgrading the BIOS
My Thinkpad comes with BIOS v1.38 (6QET68WW).
The newest version is v1.40 (6QET70WW).
All the versions can be found here.
The version notes for v1.39 state:
(New) Enhancement of security.
The version notes for v1.40 state:
(New) Embedded Controller update will modify battery charge algorithms to
balance battery charging and lifespan. Note: Applied models are ThinkPad X201,
X201i and X201s.
Okay, so we're going to need 6quj19us.exe
. It's available from Lenovo
here.
I've also mirrored it here. Its SHA1 hash is
'c612bdf3005e86870e64b2c4bb2535d238c546a9884bfe05695abe6c8508a390'.
Once you've got the ISO, burn it to a USB drive with, e.g.
dd bs=1M if=6quj19us.iso of=/dev/sdb
sync
Make sure your computer's plugged into a stable power supply and the battery is
(mostly) charged. You do not want to lose power during this operation.
Restart your computer, and boot into the flash drive.
You'll see screens like these:
If your computer restarts successfully, you haven't bricked it. Yet.
You can check the upgrade by running:
Patching the BIOS
Preparation
Now, we need to patch the BIOS to eliminate its pesky whitelist.
To do this, we need the file 01C2100.ROM
. Its SHA1 hash
is '05dc05fa42d1ea12b9d622d55805c02bf181ebd9'.
We will also need PHLASH16.EXE
. Its SHA1 hash is
'507b31794557bd1758b684e01bc8d0a2d2e0595f'.
With these in hand, use gparted to:
- Clear the partition table of a flash drive.
- Create a new MSDOS partition table.
- Create a 1000MB FAT32 partition.
- Set the partition bootable.
Now, use uNetbootin to install FreeDOS 1.0 onto
the new partition. Use uNetbootin's version of FreeDOS: trying to use v1.2 from
the FreeDOS website resulted in unusable flash drives for me and wasted quite a
bit of time.
Once FreeDOS is installed, open the new partition. It contains the following files:
ldlinux.c32 ldlinux.sys libcom32.c32 libutil.c32 menu.c32 syslinux.cfg ubninit ubnkern
Copy 01C2100.ROM
and PHLASH16.EXE
onto the new partition.
Rename 01C2100.ROM
to BIOS.WPH
.
Doing it
Make sure your computer's plugged into a stable power supply and the battery is
(mostly) charged. You do not want to lose power during this operation.
Restart your computer, and boot into the flash drive.
You'll be presented with a GRUBy interface. Choose the default option.
This brings you to a screen like the following:
I choose option 5 "FreeDOS Live CD only". Others recommend option 2 "FreeDOS
Safe Mode (don't load drivers)". Option 3 "with HIMEM + EMM386" will definitely
not work, though nothing bad will happen if you accidentally choose it.
Once inside FreeDOS, you'll see the following prompt:
Respond with
This brings you into the root of the flash drive. Typing dir
will show you all
your files.
Now, take a depth breath and type:
PHLASH16.EXE
will start and immediately begin modifying your BIOS. Do not
interrupt it.
This will be followed by screens like these. It may seem as though the screens
are repeating themselves, but don't worry, progress is happening.
Once it finishes, your computer should reboot. If not, have it do so.
If your computer restarts successfully, you haven't bricked it. Yet.
Update: Reader Fabián Rodríguez says, "I noticed 6 shorts beeps (in 2 groups - so beep, beep, beep, short silence, beep, beep, beep) apparently indicating my BIOS was modified. It added some delay to the boot time."
Inserting the Intel 7260
Finally, we have to insert the Intel 7260. If you have the Thinkpad Hardware
Maintenance Manual (FRU), this is the time to pull it out.
Shutdown your computer.
Unplug your computer.
Take the battery out of your computer.
Turn the computer over.
Remove some screws:
Don't lose the screws.
Flip the computer back over and open the screen.
The keyboard and palmrest both have delicate cables: lift them gently!
Remove the keyboard and palmrest:
Now, remove the old WiFi card (making a note of which antenna cables are
connected where). The manual says
Unplug the jacks by using the removal tool antenna RF connector (P/N: 08K7159)
or pick the connectors with your fingers and gently unplug them in direction
of the arrow.
Insert the Intel 7260 and reverse the above process, remembering to reconnect
the palmrest and keyboard in the process.
Finishing Up
Turn your computer on.
The WiFi card should be working.
If it isn't, make sure you reconnected everything inside the way you were
supposed to.
Update: Reader Fabián Rodríguez reminds you to make sure that your WiFi hard
switch is turned on, otherwise your WiFi card will appear not to work.
If it still isn't working, you're screwed. (Actually, it's just beyond the scope
of this blog.)