A few years ago when I first bought it, I installed a Lucent Technologies Prism based mini-pci wifi card in my IBM/Lenovo Thinkpad X31 laptop because the prism chipset had good linux support. But, it does not support WPA2 encryption. I decided the easiest fix was to upgrade to an Intel Pro/Wireless 2100 Lan adapter, which is now supported and works with the wpa_supplicant program to support WPA2 encryption.
The only problem I ran into durring the procedure was that my laptop BIOS had a "whitelist" of approved cards (those sold by IBM) and when I booted it after installing the new card a warning message came up as follows:
ERROR
1802: Unauthorized network card is plugged in – Power off and remove the miniPCI network card.
and, the laptop wouldn't boot. (I just LOVE vendor lock in….)
Luckily, somebody had already figured out how to disable the BIOS whitelist and I found the following program in the Linux Kernel Mailing List archive here: http://lkml.org/lkml/2004/6/13/69
Program to disable the whitelist on an X31 laptop
(Although I had to remove the "foreign" network card to boot into linux and run the fix, it worked just fine, and my Intel PRO/Wireless 2100 Lan card is working great now. )
How do I use this C program?
You will have to compile the C code and run it. It relies upon the /dev/nvram device which is a Linux device, so you will need to boot into a Linux environment to do so. You could boot off of a “live-CD” if you have a USB CD-Rom drive and not need to modify anything on the hard disk directly. You will probably need administrative/root privileges to execute the program because it modifies the BIOS memory directly.