Slightly off topic request for bios mod help

Discussion in 'Windows Vista' started by TomK, Nov 18, 2007.

  1. TomK

    TomK MDL Novice

    Nov 18, 2007
    So I am trying to flash a custom bios on my HP laptop to get around the wireless network card whitelist. I’m hoping that one of the very knowledgeable people here can run commentary on my thinking. It seems like this forum is the best repository on the net for knowledgeable bios tweakers.

    I'm willing to take the risk to get my new wireless N card to work, but I want to be as sure as I can be that I will flash a good file. My dilemma is that this laptop does not have a removable bois chip. I have been preemptively testing out a "crisis recovery disk" (Boot Fail Recovery appears to be enabled for this laptop) but I haven’t been able to get it to work meaning that if I have a bad flash, then I either need a new system board or to send the laptop back to HP.

    I guess there are a few ways I could go about making a custom bios (I have been using Phoenix Bios Editor

    1) The classy way would be to disable the whitelist check altogether, but I think this is beyond my capabilities.
    2) If you try to boot with an unsupported wireless card, you get an error and the machine wont boot. In the “BIOS Configuration Parameters” section of PBE, there is a POST section that allows you ignore various errors. Perhaps one of these would allow me to ignore the whilelist check failure?
    3) Find the list of allowed wireless cards and enter the device ID for the new card. This approach has worked successfully for others.

    Option #3 is my preferred approach.

    I am able to find the whitelist and my original wireless card in the file ROMEXECO.ROM So it should be a walk in the park to enter my new card in the list and rebuild the bios using PBE.

    Here is where I lose confidence:

    If I open a bios file with PBE and rebuild it without making any changes, the resulting file does not binary compare even remotely close to the original. I’m not just talking about minor whitespace differences either. The original and rebuilt files appear to be very different. I understand that .wph files are compressed so maybe the difference is explained by PBE using a different version of the compressor than whatever HP used when they made the original file. But the bottom line is that I am not confident enough to flash this new file even without having made any changes.

    So just for sh*ts and giggles, I searched for my original wireless card’s ID in the original .wph file and it looks like the contents of that ROMEXECO.ROM file are not compressed within the .wph file because there is a whole whack of the content of ROMEXECO.ROM in there. So it looks like I could just make my changes directly in the .wph file and flash that.

    The only problem is that the checksum for the file would now be incorrect. I’m not sure if the flash program would allow me to flash the bios, and if it did, I’m not sure if the machine would boot or give me a checksum failure and fail to POST.

    So here is where I’m looking for expert advice:

    When I build a wph file with PBE, it creates a checksum (which is a byte value) and writes it to a specific location in the file. It looks like PBE creates the checksum value such that if it adds up every byte in the file, it all adds up to 0. So if I add 1 to the value of one of the bytes in ROMEXECO.ROM then the checksum byte goes down by 1 when I build the new bios file. Since the new file and the original file are very different (as mentioned above), I’m not confident that the checksum byte location is the same for both files, so I’m not going to go into the original file and mess around with the value at the location that PBE gives me because that may be the wrong location.

    So, I noticed that there appear to be four entries in the whitelist table. My intention is to leave the entry for my current network card alone and use the 2nd entry for the new card. This would leave me with a couple of useless entries where I could enter a byte value that would compensate for my changes so that the checksum byte in the original file (wherever it is) would be correct without me changing it.

    So will this work?

    I have read in other places that there are actually checksums in several places in a bios file. Is the checksum that PBE is calculating the one for the .wph file as a whole? Is there another checksum for the ROMEXECO.ROM file? Is the file checksum calculated the way I think it is? If it’s some kind of MD5 checksum, then this won't work, but maybe I can still some up with something? Same goes if there is different checksum for ROMEXECO.ROM that is calculated in a different way but not recalculated by PBE when building a new bios file.

    Any other thoughts?
  2. Tito

    Tito Super Mod / Adviser
    Staff Member

    Nov 30, 2009