This is a repeat request for whitelist mod or removal for this model but the previous thread appears to have hit a dead end. However, I think I have made some progress in getting 90% of the way completed.
Manufacturer: Lenovo
Model: S230U
OS: Windows 8, Ubuntu 10.10 (Backtrack 5r3)
UEFI Bios Rev. 1.56 (GDET96WW) Link to Update Tool
gduj10us.exe
Original PCI ID of the Broadcom adapter:
broadcom: PCI\VEN_14E4&DEV_4359&SUBSYS_060714E4&REV_00
PCI ID of the Atheros adapter that I wish to use:
atheros: PCI\VEN_168C&DEV_0030&SUBSYS_3116168C
I don't believe that the bios is RSA signed
Progress so far:
1) Downloaded the Lenovo GDET96WW BIOS and flashed with the new BIOS
2) Upon reboot and confirmation of good, initial BIOS flash, used Andy's Phoenix Tool version 2.14 to load the $0AGD000.FL1 image.
Options selected:
- Module ticked
- Log ticked
- Advanced -> No SLIC ticked
- Advanced -> Allow user to modify other modules ticked
- Also loaded .RW file for ACPI tables but it didn't appear to have any effect
3) Hit GO to extract modules
4) Unlike previous discussions that involve the use of Zender's Phoenixpatch, there were no "BIOSCODXX" files to extract. Rather, it produced 1800+ files with GUID names so I did not use Phoenixpatch. Rather, I performed a binary search for the PCI IDs of the Broadcom adapter that came with the machines. I should note here for others who intend to perform the same kind of search that the PCI Vendor and Device ID values are reversed in the binary. For Broadcom vendor ID 14E4 and Device ID 4359, I had to flip-flop the hex pairs as follows:
# grep -P "\xE4\x14\x59\x43" *
Binary file 79E0EDD7-9D1D-4F41-AE1A-F896169E5216_1_1267.ROM matches
This query resulted in identification of one file that had two references to the Broadcom PCI ID
# xxd -u 79E0EDD7-9D1D-4F41-AE1A-F896169E5216_1_1267.ROM | grep 'E414 5943'
0000290: 0000 0000 E414 5943 E414 0706 0000 0000 ......YC........
0000380: 0000 0000 E414 5943 E414 0706 0000 0000 ......YC........
5) With the use of a hex editor, I replaced the Broadcom values with those of my Atheros adapter.
6) After saving the file, I replaced the original ROM that had the codes with my patched ROM and hit OK in the Phoenixtool's dialog box to complete the repackaging and create the new BIOS image. Phoenixtool responded that a $0AGD000_SLIC.FL1 updated image had been created.
7) At this point, I have had absolutely no success in flashing the new BIOS. I disabled all UEFI security in the BIOS and tried the following:
- Winflash version 1.7.16: Resulting in error "Corrupted interface descriptors in the new BIOS file". Interesting to note that I get exactly the same error if I load the original $0AGD000.FL1 images, suggesting that Winflash has problems with something else.
- Phlash16 from a stripped-down DOS boot USB: Resulting in error "Platform signature not found in interface". Interesting to note that I get exactly the same response if I try to flash the original $0AGD000.FL1 image.
- Downloaded Lenovo's BIOS CD ISO, extracted the flash utility and BIOS images from the images, and put them on a bootable USB with stripped-down DOS. The flash utility that was included (flash2.exe) consistenly produced unhelpful error messages with arcane error codes.
Fortunately through all this, I managed NOT to brick my machine. Where did I go wrong? As much as I'd love to have a solution that works, I'd also like to know where I misstepped so that I don't repeat the mistake. Please advise?
// Cyungle