ThinkPad BIOS whitelist (error 1802/1804) *READ 1st MSG*
Posted: Sat Jan 19, 2008 2:20 pm
Edit: As of Dec. 4, 2011 it has been suggested that you visit MyDigitialLife for any BIOS assistance. Thank you!
Results of this thread: If you need a modified BIOS, please SEE BELOW, until I post public page with "do-it-yourself" set of tools (1, 2). Most of the time I answer within 48 hours, please don't post to this topic because of BIOS request. Please try to wait the 48 hours before posting to the thread asking for BIOS. Is your wireless upgrade really that urgent?
Patched BIOS is available for (as of 2010-03-01): R32, R400, R500, R52, R60, R61, T43, T400, T500, T60, T61, V200, W500, X200, X200T, X300, X301, X41, X41T, X60, X60T, X61, X61T, Z60, Z61.
BIOS is not available and in near future will not be available for SL300/SL400/SL500 machines, as these use AMI BIOS (not Phoenix), which I have no experience with. If there's anyone who can do some decompression / module separation, please contact me.
Seems S10-2 has AMI (so no patch) and original S10 has Phoenix (so that might get done). Don't know about S10-3 non-T right now (if such thing exists?).
-----------------------------------------------
Hello everybody.
Skip this paragraph if you know what an error 1802 or 1804 is. As many of you probably know, ThinkPads have for a long time had a "feature" disallowing us to use an arbitrary Wi-Fi or WWAN card in our machines, nicely defeating all the good things standardisation brings (miniPCIe). After inserting a "not approved" miniPCIe card, the system won't boot up, saying there's an unauthorized card and that it will not continue until you remove it.
Skip to the last paragraph if you don't want to read a boring story full of weird acronyms. I plead guilty for wanting to use a WWAN card meant for T61 in my T60. A perfectly Lenovo-branded one, but it was not meant for my computer. I've done a lot of research on this topic and didn't find any working solution. T4x except for the newest can modify their CMOS, a perfectly safe solution, and disable this check, yet this has been removed from latest T43 on.
For other brands (HP, maybe Dell) doing this, there was a sort of easy solution in editing BIOS file, finding some approved device ID and replacing it with ID of device one wants to use. But Lenovo distributes the BIOS in some compressed form. I've eventually managed to find an utility able to decompress it and now have the BIOS file ready for flashing using WinSplash. Unlucikly, it's still not enough to change some device's ID. The bios file consists of some modules (acpi, vga, bootcode, ...) which can be individually compressed - and that's exactly what most of them are.
A lot of hassle later, I achieved to make phnxdeco decompose and decompress the modules. They didn't have a 27-byte header, which a non-free decomposition tool gives them, which I later discovered, and there are some magic bytes in the header, which are also present in the BIOS image. Fortunately I didn't try to flash that to my machine. Now great success is coming - there's BiosCode module 5, in which I can see the ID of Intel PRO/Wireless 3945ABG with four different subsystem IDs.
Yay. I've found it. The only problem left to solve is - how to recompose the whole BIOS from the separate modules?
Again, a lot of hassle later, I've managed to find a tool which decompressed all the modules correctly (even though it crashed in the end) and successfully used Prepare.exe and Catenate.exe to recompose "something". Comparing it with the original BIOS, it seems too different to me. Not sure why, but I'm not ready to risk that. I need a different way.
So I have the separate BiosCode 5 module and can use Prepare tool to LZINT-compress it. Searching the original BIOS file, it's there, except for a modified header. Nice. Try changing the Intel's Wifi card ID, LZINT-compress... and the file is six bytes bigger. Not that it wasn't expected. Hmm, too bad, I can't just replace it.
Okay, but I have a BIOS composition tool and can try to see what changes when the module size grows. Hmm, seems the BiosCode5 module is placed between another two and there's some free space around. The preceding module gets moved six bytes back. The grown module is also moved six bytes back and has offset and length changed. The following module has offset changed, but stays at the same place. Apart from that, only BIOS checksum has changed, there are no pointers, no other changes. Now that's easy. Replaced. Changed offsets and length. Checksummed. Trying phnxdeco and the other tool to decompose it... they seem to like it. WinSplash seems to like it. Yay.
The only thing left to do is... to try flashing it. I'm not very sure I want to brick my computer, which would cause me quite a lot of trouble now, and even though I'm pretty sure I've done everything correctly, there's always a small chance I've missed something beyond me. For any other laptop, there's a possibility to run a BIOS crisis recovery, by holding Win-B or Fn-B and a few other conditions, one can make the laptop to boot up from a USB floppy drive and restore BIOS even if it's not working. But it seems that it doesn't work for ThinkPads, or I don't know to trigger the mode.
So I ask - is there anyone with a recent machine (I can do the modification for any BIOS) willing to take the risk and flash the modified BIOS with a different Wifi/WWAN card whitelisted (you can choose)? Perhaps if someone had a mainboard with serious not-warranty-covered issues, but which could actually boot. Or if anyone was willing to send it to warranty repair afterwards, if anything went wrong, as "My computer crashed when flashing BIOS." or something. As for the reward I can only offer making a tool to do this for any Lenovo BIOS & miniPCI card.
EDIT: some information were wrong, corrected
Results of this thread: If you need a modified BIOS, please SEE BELOW, until I post public page with "do-it-yourself" set of tools (1, 2). Most of the time I answer within 48 hours, please don't post to this topic because of BIOS request. Please try to wait the 48 hours before posting to the thread asking for BIOS. Is your wireless upgrade really that urgent?
Patched BIOS is available for (as of 2010-03-01): R32, R400, R500, R52, R60, R61, T43, T400, T500, T60, T61, V200, W500, X200, X200T, X300, X301, X41, X41T, X60, X60T, X61, X61T, Z60, Z61.
BIOS is not available and in near future will not be available for SL300/SL400/SL500 machines, as these use AMI BIOS (not Phoenix), which I have no experience with. If there's anyone who can do some decompression / module separation, please contact me.
Seems S10-2 has AMI (so no patch) and original S10 has Phoenix (so that might get done). Don't know about S10-3 non-T right now (if such thing exists?).
-----------------------------------------------
Hello everybody.
Skip this paragraph if you know what an error 1802 or 1804 is. As many of you probably know, ThinkPads have for a long time had a "feature" disallowing us to use an arbitrary Wi-Fi or WWAN card in our machines, nicely defeating all the good things standardisation brings (miniPCIe). After inserting a "not approved" miniPCIe card, the system won't boot up, saying there's an unauthorized card and that it will not continue until you remove it.
Skip to the last paragraph if you don't want to read a boring story full of weird acronyms. I plead guilty for wanting to use a WWAN card meant for T61 in my T60. A perfectly Lenovo-branded one, but it was not meant for my computer. I've done a lot of research on this topic and didn't find any working solution. T4x except for the newest can modify their CMOS, a perfectly safe solution, and disable this check, yet this has been removed from latest T43 on.
For other brands (HP, maybe Dell) doing this, there was a sort of easy solution in editing BIOS file, finding some approved device ID and replacing it with ID of device one wants to use. But Lenovo distributes the BIOS in some compressed form. I've eventually managed to find an utility able to decompress it and now have the BIOS file ready for flashing using WinSplash. Unlucikly, it's still not enough to change some device's ID. The bios file consists of some modules (acpi, vga, bootcode, ...) which can be individually compressed - and that's exactly what most of them are.
A lot of hassle later, I achieved to make phnxdeco decompose and decompress the modules. They didn't have a 27-byte header, which a non-free decomposition tool gives them, which I later discovered, and there are some magic bytes in the header, which are also present in the BIOS image. Fortunately I didn't try to flash that to my machine. Now great success is coming - there's BiosCode module 5, in which I can see the ID of Intel PRO/Wireless 3945ABG with four different subsystem IDs.
Yay. I've found it. The only problem left to solve is - how to recompose the whole BIOS from the separate modules?
Again, a lot of hassle later, I've managed to find a tool which decompressed all the modules correctly (even though it crashed in the end) and successfully used Prepare.exe and Catenate.exe to recompose "something". Comparing it with the original BIOS, it seems too different to me. Not sure why, but I'm not ready to risk that. I need a different way.
So I have the separate BiosCode 5 module and can use Prepare tool to LZINT-compress it. Searching the original BIOS file, it's there, except for a modified header. Nice. Try changing the Intel's Wifi card ID, LZINT-compress... and the file is six bytes bigger. Not that it wasn't expected. Hmm, too bad, I can't just replace it.
Okay, but I have a BIOS composition tool and can try to see what changes when the module size grows. Hmm, seems the BiosCode5 module is placed between another two and there's some free space around. The preceding module gets moved six bytes back. The grown module is also moved six bytes back and has offset and length changed. The following module has offset changed, but stays at the same place. Apart from that, only BIOS checksum has changed, there are no pointers, no other changes. Now that's easy. Replaced. Changed offsets and length. Checksummed. Trying phnxdeco and the other tool to decompose it... they seem to like it. WinSplash seems to like it. Yay.
The only thing left to do is... to try flashing it. I'm not very sure I want to brick my computer, which would cause me quite a lot of trouble now, and even though I'm pretty sure I've done everything correctly, there's always a small chance I've missed something beyond me. For any other laptop, there's a possibility to run a BIOS crisis recovery, by holding Win-B or Fn-B and a few other conditions, one can make the laptop to boot up from a USB floppy drive and restore BIOS even if it's not working. But it seems that it doesn't work for ThinkPads, or I don't know to trigger the mode.
So I ask - is there anyone with a recent machine (I can do the modification for any BIOS) willing to take the risk and flash the modified BIOS with a different Wifi/WWAN card whitelisted (you can choose)? Perhaps if someone had a mainboard with serious not-warranty-covered issues, but which could actually boot. Or if anyone was willing to send it to warranty repair afterwards, if anything went wrong, as "My computer crashed when flashing BIOS." or something. As for the reward I can only offer making a tool to do this for any Lenovo BIOS & miniPCI card.
EDIT: some information were wrong, corrected