The Notebook Review forums were hosted by TechTarget, who shut down them down on January 31, 2022. This static read-only archive was pulled by NBR forum users between January 20 and January 31, 2022, in an effort to make sure that the valuable technical information that had been posted on the forums is preserved. For current discussions, many NBR forum users moved over to NotebookTalk.net after the shutdown.
Problems? See this thread at archive.org.
← Previous pageNext page →

    Insyde BIOS modding (dv4,dv5,dv6,dv7 at least)

    Discussion in 'HP' started by finestree, Jun 26, 2009.

  1. Happyuser

    Happyuser Newbie

    Reputations:
    0
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    5
    Hello I have a DV6-2144NR and I have been trying and failing to add a intel 6300 to the whitelist any help would be most appreciated

    The hardware id is

    PCI\\VEN_8086&DEV_422B&SUBSYS_11018086&REV_35
    PCI\\VEN_8086&DEV_422B&SUBSYS_11018086
    PCI\\VEN_8086&DEV_422B&CC_028000
    PCI\\VEN_8086&DEV_422B&CC_0280

    Thanks in advance
     
  2. LiquidXXX

    LiquidXXX Newbie

    Reputations:
    0
    Messages:
    2
    Likes Received:
    0
    Trophy Points:
    5
    Hello HP-Friends and all others... i want to change the OS on my dv6-2090eg from Win7 to WinXP.
    All installations are failing because of the "UNCHANGEABLE" BIOS-Settings for the "Native Sata Mode".

    Now my Question: ... is it possible to activate these option by hacking my bios?
    And "IF", ... how ???
    Or can anybody fix my problem with some tips?
    I opend this Laptop and it's an Intel BD82PM55 Chipset build in.
    So i tried:

    - Creating alot of XP-CDs with nLite -> get bluescreen
    - Tryied by using Floppydiscdrive an alot of different drivers -> Same bluescreen
    - Checked Biossettings -> This Option is hidden and no other similar
    configuration possible

    So please can anybody help??? i won't brick it because i love it...
     
  3. brianstretch

    brianstretch Notebook Virtuoso

    Reputations:
    441
    Messages:
    3,667
    Likes Received:
    0
    Trophy Points:
    105
    I could swear there's a way to add the necessary SATA drivers to a custom WinXP install disc with nLite. It's been a long time since I mucked with such things. Check nLite's FAQ.
     
  4. LiquidXXX

    LiquidXXX Newbie

    Reputations:
    0
    Messages:
    2
    Likes Received:
    0
    Trophy Points:
    5
    I create a lot of customized nLite-XP-CDs with some different drivers for this chipset and this is not my first Laptop with Sata-Hdd, but this is different... :mad:

    I got with every nLite-CD a bluescreen, so i guess that the problem is the "Sata Native Mode" but there is no way to change it in the bios settings.

    Or did i took the wrong driver ???

    Please help... maybe here is anybody who have a DV6-2090eg with WinXP as original OS or changed it to XP and knows how to do.
     
  5. zchef2k

    zchef2k Newbie

    Reputations:
    0
    Messages:
    8
    Likes Received:
    0
    Trophy Points:
    5
    So, if someone can clarify...

    Exactly what do I need to do to my extracted setuputility.pe before I patch the module to reveal hidden menu options?

    TIA

    -Z
     
  6. Gelgamek

    Gelgamek Newbie

    Reputations:
    0
    Messages:
    4
    Likes Received:
    0
    Trophy Points:
    5
    From what I can gather, you need to modify dumpsetup.py with your string table offsets and use it to dump a text file giving you the offsets to change for each form. The only problem is I can't find clear instructions on how you determine your string table offsets anywhere.

    I've managed to extract the .pe file from my DV7 F.2C BIOS, I got the VSS offsets from main.py, and I can see the advanced options settings if I open the .pe file in a hex editor, but without knowing how to determine the String Table offsets I'm stuck.
     
  7. zchef2k

    zchef2k Newbie

    Reputations:
    0
    Messages:
    8
    Likes Received:
    0
    Trophy Points:
    5
    And I wonder if I'm even at the right place. I ran main.py on my bios file and it spat out setuputility-mine.pe. I don't remember being presented much else useful output from the script- at least nothing that I felt I needed to keep.

    .NETRoller's post about "subtract 3 from the offset" of 00 03 00 0E 24 doesn't make much sense to me as I'm not usually digging around in a hex editor. I do have that matching string in my .pe file. I assumed there was some magic switch that needed flipping and insertion back into the bios via ezH20.

    Anyone that can provide a quick step by step for this would be highly appreciated.

    As always, keep up the good work.
     
  8. Gelgamek

    Gelgamek Newbie

    Reputations:
    0
    Messages:
    4
    Likes Received:
    0
    Trophy Points:
    5
    You seem to be at the same place I am. The .pe file is the BIOS setup utility, and contains the data we want to modify. It's getting the readable text file that's buggering me.

    The dumpsetup.py provided by dz6 seems to do nothing for me other than whatever part it plays in getting main.py to run. I don't know whether it's supposed to run as part of main.py and output a text file then, or whether it's run seperately on the .pe file after extraction.

    No matter what I do, when i run it it just goes to a new line on the terminal. I've tried modifying it to directly open the .pe file, tried sticking in random values for the forms and the string table. The only way I can get any output from it at all on the terminal is by intentionally messing the code to get an error message (although I'm amazed how much I can slice out without it showing any noticeable effect), or uncommenting the print Storage Map at the bottom.

    Using a version provided by Netrolllers3d on Marcan's blog I get the sense it's doing something but I'm using it wrong. Because I don't know the offset for the string table I either get memory errors, or more often an error message saying the total struct size is too long.

    Tried Netrolller's "subtract 3 from the offset" suggestion with the same result too. The string appears in the file a few times, and subtracting 3 from each value does end up on the first byte of the line in each instance, and because of the repetition and block sizes I think it may well be the forms, but I don't know. I tried inputting all the offsets I found this way into his modified dumpsetup.py with the results mentioned above.

    This is making my brain ache. Although on the plus side, I'm getting to know my way around Python.
     
  9. hspumanti

    hspumanti Newbie

    Reputations:
    0
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    5
  10. zefie

    zefie Newbie

    Reputations:
    7
    Messages:
    6
    Likes Received:
    0
    Trophy Points:
    5
    I modified main.py enough to get this on my HP G61-631's F.15 BIOS, now I just need to figure out how to unhide the options:

    [SNIP AND EDIT]

    Okay I managed to generate a setup.txt
    Use attached mod to main.py to get the locations of the strings:
    Also use attached dumpsetup2.py and update with the string locations discovered.

    First run main.py, you will see something like this:
    Code:
    C:\Users\zefie\Downloads\tmp>main.py 363FF15.fd
    Opened BIOS '363FF15.fd' with md5:82778ec99ce18116001555e23d09ced9
    Operating on BIOS data/original_bios-mine.fd size = 0x200000
    Loading compressed sections
     .. found 1 compressed sections
    Locating Firmware Volumes
      .. found 7 FirmwareVolumes (4 compressed)
    STRING_TABLE = 0xe3b0
    String table:
     Language: eng (English)
     String count: 670
    Location = 0x4c560
    Location = 0x4c970
    Location = 0x4d800
    Location = 0x4d8b0
    Location = 0x4de90
    Location = 0x4df00
    Location = 0x4e000
    Location = 0x4e3c0
    Have vss_volume: <FirmVol position=0x1a0000 size=0x00dfb8 where=None [VSS]>
    Have vss_volume: <FirmVol position=0x1b0000 size=0x04ffb8 where=None [VSS]>
    Have vss_volume: <FirmVol position=0x000010 size=0x3fffb8 where=[compr at 0x2206
    9] [VSS]>
    Done
    This mod gives you all the info you need to edit your dumpsetup2.py

    STRING_TABLE is obvious, that is your string table, set the value in dumpsetup2.py
    Now each location = is one of the forms. The forms may not be in the same order I have listed, but it doesn't matter because it will tell you in setup.txt. For example:

    Code:
    Reading form 'test'
     Form Set 'Main' Class 1-0 NvSize 0x2bc Callback 0x0
    So in this case if you assign ('test', 0x4c560), with my bios you will see the example above.

    After you put in all your locations run dumpsetup2.py on the extracted SetupUtility PE image... I have also patched this to support opcode 0x27.

    just run dumpsetup2.py data\setuputility-mine.pe > setup.txt (windows)
    now you have setup.txt

    Now to figure out what to do with it :)
     

    Attached Files:

  11. cavrac

    cavrac Notebook Enthusiast

    Reputations:
    1
    Messages:
    28
    Likes Received:
    0
    Trophy Points:
    5
    zefie

    Your awesome, thank you for helping me get to the next level on this thing, I got my setup.txt. Now I need to figure out how to unhide Advanced menu.
     
  12. etiko

    etiko Notebook Consultant

    Reputations:
    12
    Messages:
    163
    Likes Received:
    0
    Trophy Points:
    30
    can anyone modify the bios hp dv7 2160ep to unlock advance menu ?
     
  13. zefie

    zefie Newbie

    Reputations:
    7
    Messages:
    6
    Likes Received:
    0
    Trophy Points:
    5
    Same here, I cannot get vtenable.py to work (modified with different offsets of course). It never finds ANY variable. Even when I directly copy and paste from setup.txt.

    So we have our setup.txt but are at a stalemate until we can figure out how to patch the BIOS.

    I am curious about the post I read eariler in this thread about replacing Opcode 0x27 with FALSE or whatnot. I don't recall who posted it but they never posted the procedure. I'd like to just enable UEFI booting so that we can boot a UEFI console off a USB Key.

    Edit: From some trial are error, and actually reading a bit more, I realized you need to DUMP A BIOS IMAGE from your system before you can edit the VSS. Once you dump your bios, you can run vtenable.py on THAT, modifing the registers and flags for setup.txt accordingly. Still no luck enabling menus.

    Oddly, disabling "USB Legacy", and "Quiet Boot" speeds up both the BIOS and OS Running. BIOS speedup is insane, it boots nearly instantly like a legacy BIOS now, instead of taking 10-15 seconds to even get past Insyde.

    Based on my setup.txt, comparing it to the success of unlocking on the viao Z, we will only get the Advanced menus if we:

    1) Patch the opcode like 0.0 did
    2) Figure out exactly what the opcode is accomplishing and modify that.
     
  14. cavrac

    cavrac Notebook Enthusiast

    Reputations:
    1
    Messages:
    28
    Likes Received:
    0
    Trophy Points:
    5
    There is some one that unlocked the menus by editing the setup utility, but he only briefly explained how he did it in his first post, And the rest of his thread is mainly about people changing settings to over clock

    http://myhpmini.com/forum/viewtopic.php?f=62&t=3744
     
  15. zefie

    zefie Newbie

    Reputations:
    7
    Messages:
    6
    Likes Received:
    0
    Trophy Points:
    5
    I pretty much accomplished what I needed to by setting registers one at a time, therefore I probably won't be looking into this much more.

    Just look at setup.txt and find what you want to enable, like so:
    Code:
       One Of [0x4f<1>] 'USB Legacy'
       \Help text: 'USB devices boot and access in DOS'
        Option 'Disabled' = 0x0 Flags 0x0 Key 0x0
        Option 'Enabled' = 0x1 Flags 0x1 Key 0x0
       End One Of
    I wanted this disabled, so in vtenable.py I put:
    Code:
    PATCH_OFFSET = 0x4f
    PATCH_VALUE = 0x0
    As for the VSS Offset, just run main.py on your dumped rom and it will be the first result. If that doesn't work just open your dump rom in winhex or equivalent and search for ASCII string "$VSS", and put the offset in HEX of the location of the $.

    Also for more than one tweak you should change your filename, for example:

    vtenable.py dump.rom newbios.rom > data.txt
    (this puts the register data in a txt for easy checking)

    Then for subsequent edits, to retain previous edits just use newbios.
    vtenable.py newbios.rom newbios.rom > data.txt

    List of tweaks I did:

    USB Legacy: Disable (Default Enabled)

    Quiet Boot: Disable (Default enabled, disables the logo but does not display advanced info like a legacy bios)

    Light Sensor: Enable (likely does nothing since my machine does not possess the hardware)

    UEFI Boot was already set to enabled so I am curious how to get it to boot an unsigned EFI

    Normal Boot Menu: Advance (Default Normal, appears to have done nothing)

    Virtualization: enabled (no need to tweak, about the only option in the BIOS that isn't hidden, lol)

    Plus a few other unlisted registers to experiment to attempt to unlock menus, which have no apparent result.

    One or all of what I did resulted in a massive speedup in boot time. Insyde used to hang at a blinking "_" for 5 seconds, then show the HP logo, wait another 5 seconds, then finally proceed to boot.

    Now, I get a blinking "_" for about 2-3 seconds and it proceeds to boot. The OS also feels more responsive, but this could be placebo.

    I've attached my setup.txt
     

    Attached Files:

  16. .NetRolller 3D

    .NetRolller 3D Notebook Deity

    Reputations:
    505
    Messages:
    1,127
    Likes Received:
    14
    Trophy Points:
    56
    A little hint about opcode 27: IIRC, an IFR opcode looks like this:
    Code:
    [length][parameters...], where [code] and [length] are 1-byte values, [code] represents the type of the IFR op, while [length] is the length of the entire opcode in bytes. However, the length of an opcode is not fixed according to its type; that is, you can add as much junk to the end of an opcode as you want, as long as you set [length] correctly.
    
    This allows the following 2 easy hacks:
    First, assume that you want to turn an opcode 27 into a True. All you need to do is change the [code] from 27 to the code for True; no need to do anything with the length - even though a True is usually much shorter (AFAIK 2 characters) than an opcode 27 (5 characters IIRC) - because the extra data at the end will simply be ignored.
    Second, assume that you want to delete/skip/jump over an opcode. In this case, you can hack the preceding opcode like this: Assume that you have 2 opcodes in the format [code1][length1][params1...][code2][length2][params2...], and you want to delete the second opcode. So, you change [length1] to the value of [length1]+[length2], and SetupUtility will think that the entire second opcode is part of the first opcode's parameter list, and throw it away as extra data, proceeding as if it weren't there.
     
  17. zefie

    zefie Newbie

    Reputations:
    7
    Messages:
    6
    Likes Received:
    0
    Trophy Points:
    5
    I don't know anything about assembly, I'm just interested in getting custom unsigned EFI to work x.x

    Edit: I fully documented my tweaks, for ease of patching into a new BIOS update. The data is attached. I am running my BIOS with all the tweaks listed under successful.

    Successful Tweaks:
    Code:
     Reg    New (Def) (Desc)               (Values) (Comments)
    
     0x4f = 0x0 (0x1) (USB Legacy)         (New: Disabled, Default: Enabled) (Increase boot time)
     0x73 = 0x0 (0x1) (Quiet Boot)         (New: Disabled, Default: Enabled) (Increase boot time, no logo, very short time to press BIOS hotkey (ESC for example))
     0x7b = 0x1 (0x0) (Normal Boot Menu)   (New: Advance, Default: Normal) (No Apparent Effect)
     0x86 = 0x2 (0x0) (Unknown)            (Unknown Effect)
     0xdd = 0x4 (0x0) (Unknown)            (Unknown Effect)
    0x12e = 0x0 (0x1) (Spread Spectrum)    (New: Disabled, Default: Enabled) (Slight performance increase in OS)
    0x131 = 0x1 (0x0) (AHCI supporting as) (New: UEFI Mode, Default: Legacy Mode) (No Apparent Effect)
    0x220 = 0x0 (0x1) (SATA Workaround)    (New: Disabled, Default: Enabled) (No Apparent Effect)
    Failed tweaks:
    0x101 'HT Frequency Control'
    Default: 0x0 (Auto)
    Tested: 0x9 (1800mhz)
    Results: Very unstable system which could barely boot back into Insyde to Clear CMOS.
    Comments: M300 CPU which has 1600mhz HT, so the smallest OC I could try

    0x39 'SATA Configure as'
    Default: 0x4 (IDE->AHCI)
    Tested: 0x2 (AHCI)
    Result: BIOS complained "No hard disk"

    If you fail a tweak, resetting CMOS (hitting "Load Setup Defaults") will reset any of your tweaks (you will have to reflash your BIOS to get tweaks back). If you cannot even get into Insyde, I suppose you could use recovery (HP's key is Win+B). I have not tried this. Also, in the case of my G61-631, the internal card reader shows up as USB in the OS, but does NOT show up (at all) in Insyde, so you will need a USB key, or external card reader.

    Also another point of note, if you are flashing from windows, in platform.ini there is a setting called "DisableCompare" which is default to 1. If you set this to 0, it will only flash the differences between your current ROM and the patched ROM you are flashing, dropping the flash time down from 3-5 minutes to about 1 minute, as well as saving write cycles on your EEPROM.
     
  18. cavrac

    cavrac Notebook Enthusiast

    Reputations:
    1
    Messages:
    28
    Likes Received:
    0
    Trophy Points:
    5
    I figured that out too and have been playing with it, there is no option to un-hide Advanced menus like is available on the Sony's

    There is a setting for User Access Level, on mine it is at location 0x85, if you set this value to 06 with a modded vtenable.py script it will un-hide options on the Main and Boot menus, but does not un-hide the Advanced and Power forms.

    I would like to test overclocking and tweaking my laptop, and don't want to have to create and flash a new BIOS every time I make a change.

    It does not look like my BIOS is using opcode 27, I don't see any reference to it in the setup.txt

    Attached is a zip with my pe and txt file if anyone is interested. I appreciate all the help from everyone.
     

    Attached Files:

  19. cavrac

    cavrac Notebook Enthusiast

    Reputations:
    1
    Messages:
    28
    Likes Received:
    0
    Trophy Points:
    5
    I was looking at a disassembled HP Mini 311 setup utility and it looks like if you press A right before going into the bios something happens.

    This does not work on my E machine, but it may work on your HP laptop

    I also found this information at this site, I don't know if the "A" is case sensitive or not

    Enable the hidden menu for Insyde BIOS - Colin Work Shop - ???? Ycool Blog

    When entering the BIOS setup page, press "A" key to activate the advanced configuration mode.

    Let's take HP Pavilion dm3 for example.

    1. Press F10 when the system is booting (Press F10 key to enter the BIOS setup windows on all HP platforms).
    2. When it shows "entering the BIOS setup", press "A" key before the BIOS setup window appears.

    You should be agile when doing this.
     
  20. zefie

    zefie Newbie

    Reputations:
    7
    Messages:
    6
    Likes Received:
    0
    Trophy Points:
    5
    I had no luck with this but my mods remove all the text at the beginning so I don't know if that is why. When it starts i get a _ blinking for 2 seconds and i have to hit the key desired then or it will just start windows. Kinda like newer non-EFI bioses where you have half a second to do what you want lol. but I like it that way, I CAN get into setup if I want.
     
  21. chrisys32

    chrisys32 Notebook Enthusiast

    Reputations:
    0
    Messages:
    46
    Likes Received:
    0
    Trophy Points:
    15
    Hi everyone. I am new here, i found this forum and this thread yesterday and i read all 22 pages. I have HP Pavilion dv7 2250em with 3623F41 bios. I want to change some settings and unlock some aditional features so i followed the Zefie's instructions on page 21 to get setup.txt with modded main and dumpsetup2. When i run main.py it gives me import error. So can someone give me an exact list of files/programs that i need to have to get this working, equip the pe and txt files and mod them, so i can see what is missing in my "collection". Or, if it isnt problem, make a zip with all components in it. Pls reply, i really want to try some mods. TIA
     
  22. cavrac

    cavrac Notebook Enthusiast

    Reputations:
    1
    Messages:
    28
    Likes Received:
    0
    Trophy Points:
    5
    double post sorry
     
  23. cavrac

    cavrac Notebook Enthusiast

    Reputations:
    1
    Messages:
    28
    Likes Received:
    0
    Trophy Points:
    5
    Read this whole thing before you begin

    These instructions are for Windows and assumes your Windows directory is C:\Windows

    First thing is to get a dump of your BIOS

    Get a USB thumb drive

    Download HP USB Disk Storage Format Tool - v2.1.8
    http://www.eocfiles.com/bdc86eb1ed2989c30dcd1902e84939ae/bootdisks/SP27608.exe

    Download Windows 98 DOS files
    http://www.eocfiles.com/bdc86eb1ed2989c30dcd1902e84939ae/bootdisks/win98boot.zip

    Download attached fla$hit.zip

    Please note when ever you see fla$hit always replace the $ with an S, for some reason you cant have that word on this forum


    Use the above 3 files to create a bootable Win98 DOS USB thumb drive with fla$hit.exe copied onto it.

    Boot your computer from the USB thumb drive and at the dos prompt type

    Code:
    fla$hit mybios.fd /G
    hit ENTER key

    It should read your BIOS and create the file on the USB drive

    Now you want to run main.py to extract the pe and get your String Table and Form addresses

    Boot you system into Windows

    Download and install Notepad++
    Download | 5.7

    Download and install Python 2.5 or 2.6, into C:\Python
    Do not use Python version 3
    Releases

    Download and unzip attached Insyde_files.zip file into C:\Python

    Copy your mybios.fd file from USB drive into C:\Python

    Copy the liblzmadec.dll that was in attached Insyde_files.zip file to C:\Windows\System32

    Click START - RUN, Type cmd, click OK

    in the DOS box type

    Code:
    cd\python
    hit ENTER KEY

    type

    Code:
    python main.py mybios.fd >> main.txt
    hit ENTER KEY

    Open the c:\pytHon\main.txt file, in it you should see something like this

    Code:
    STRING_TABLE = 0x115c0
    String table:
     Language: eng (English)
     String count: 676
    Location = 0xd290
    Location = 0xd340
    Location = 0xd470
    Location = 0xdd60
    Location = 0xdfb0
    Location = 0x11120
    Location = 0x11490

    Use this information to modify the begining of the dumpsetup2.py file with Notepad ++ to look something like this


    Code:
    STRING_TABLE = 0x115c0
    
    storage_map = {}
    
    FORMS  = [
    	('Exit',	0xd290),
    	('Boot',	0xd340),
    	('Power',	0xd470),
    	('Security',	0xdd60),
    	('Advanced',	0xdfb0),
    	('Main',	0x11120),
    	('Information',		0x11490),
    Go back to the dos box that is still at the c:\python prompt and type

    Code:
    python dumpsetup2.py data\SetupUtility-mine.pe >> setup.txt
    hit ENTER key

    You can now use the information from the c:\python\setup.txt to modify the PATCH_OFFSET and PATCH_VALUE for your vtenable.py file based on the storage map info, but you will also need to modify the VSS_OFFSET and VSS_SIZE to get these open your main.txt file and look for something like this

    Code:
    Have vss_volume: FirmVol position=0x0c0000 size=0x01ffb8 where=None [VSS]
    Creating variable at 0
    Blah: 11 40 70 eb 02 14 d3 11 8e 77 00 a0 c9 69 72 3b
    FirmVol position=0x0c0000 size=0x01ffb8 where=None [VSS]> VSSData len=1 size=0x3fb8
    Variable status=0x7f size=0x004 name=TC
    Have vss_volume: FirmVol position=0x0e0000 size=0x01ffb8 where=None [VSS]
    Have vss_volume: FirmVol position=0x000010 size=0x2fffb8 where=[compr at 0x25069] [VSS]
    Done
    
    You have to add 48 to the FirmVol position to get your VSS_OFFSET
    VSSData size is your VSS_SIZE

    You can now use Notepad ++ to edit your vtenable.py to look like this

    Code:
    #!/usr/bin/python
    
    import sys, struct
    
    VSS_OFFSET = 0x000c0048
    VSS_SIZE = 0x3fb8
    
    PATCH_OFFSET = 0x76
    PATCH_VALUE = 0x01
    PATCH_VARIABLE = u"Setup"
    
    def hexdump(s,sep=" "):
    Now that you have edited vtenable.py file you can mod your BIOS

    on the DOS box that is still at the c:\python prompt type

    Code:
    python vtenable.py mybios.fd mybios2.fd >> patch.txt
    hit ENTER key

    Open the patch.txt, this will show the old and new VSS settings and make sure you see at the bottom

    Code:
    Updating VSS...
    Updating BIOS...
    Writing output...
    Done
    You can use the VSS information in the patch.txt to determine what is turned on in your BIOS when you compare to the storage map in the setup.txt


    Now that you have a modded bios, copy mybios2.fd to the USB thumb drive

    Boot your computer from the USB thumb drive

    Type

    Code:
    fla$hit mybios2.fd
    hit ENTER key

    done
     

    Attached Files:

  24. chrisys32

    chrisys32 Notebook Enthusiast

    Reputations:
    0
    Messages:
    46
    Likes Received:
    0
    Trophy Points:
    15
    Tnx very much on instructions. When i run main, it works until dumpsetup.py line 168
    RuntimeError: Undefined opcode: 0x27
    after that it stops operation and in main.txt i get only string table and first (Exit) location. How can i fix this problem?
     
  25. cavrac

    cavrac Notebook Enthusiast

    Reputations:
    1
    Messages:
    28
    Likes Received:
    0
    Trophy Points:
    5
    You can try this

    marcan Says:

    August 30th, 2009 at 7:24 pm
    Under “EFI_IFR_VARSTORE_SELECT_PAIR_OP = 0x26″ in dumpsetup.py, add “EFI_IFR_VARSTORE_DEVICE_OP = 0x27″. Then under “EFI_IFR_VARSTORE_SELECT_PAIR_OP : 0,” add “EFI_IFR_VARSTORE_DEVICE_OP : 0,”. That should do it. Ignoring that opcode is fine.
     
  26. zefie

    zefie Newbie

    Reputations:
    7
    Messages:
    6
    Likes Received:
    0
    Trophy Points:
    5
    sorry I forgot to attach the modified dumpsetup.py.

    Attached should be everything you need including the dll. (Note: Flash It not included)
     

    Attached Files:

  27. chrisys32

    chrisys32 Notebook Enthusiast

    Reputations:
    0
    Messages:
    46
    Likes Received:
    0
    Trophy Points:
    15
    ok. now i got the next one, same thing but 0x2a... i tried to add the line like cavrac said (EFI_IFR_MATCH_OP = 0x2a and down EFI_IFR_MATCH_OP : 0 ;)
    but i get unexpected indent error then.
     
  28. chrisys32

    chrisys32 Notebook Enthusiast

    Reputations:
    0
    Messages:
    46
    Likes Received:
    0
    Trophy Points:
    15
    never mind, i got it... never use tabs in python for lining up text, spaces only xD
     
  29. chrisys32

    chrisys32 Notebook Enthusiast

    Reputations:
    0
    Messages:
    46
    Likes Received:
    0
    Trophy Points:
    15
    now i get KeyError: 42 in line 151 of dumpsetup2.py, self.indent = self.INDENTS[self.opcode]
    setup.txt gets to reading boot and pe file goes to the 345 kb's... whatever i do, i have no luck at all... :p
     
  30. cavrac

    cavrac Notebook Enthusiast

    Reputations:
    1
    Messages:
    28
    Likes Received:
    0
    Trophy Points:
    5
    Did you try using the files in Zephie's last post?

    Unfortunately I do not really know anything about the python scripting.
    Marcan, DZ6, .Netrolller 3D, Zephie, and some others are really good with it.

    I just put together everything I learned form different forums and put it in one post.

    The files I had in my zip file worked with my Acer/Emachine bios and my Acer/Gateway bios

    I guess HP uses the opcode 27 on some of their BIOSs but not all

    If you want to attach your mybios.fd file, I can try it on my system. and see if I get the same results.
     
  31. chrisys32

    chrisys32 Notebook Enthusiast

    Reputations:
    0
    Messages:
    46
    Likes Received:
    0
    Trophy Points:
    15
    and why do i get only 7 locations if the new modified dumpsetup2 has 8 locations in different order,

    new ds2
    Code:
    STRING_TABLE = 0xe3b0
    
    storage_map = {}
    
    FORMS = [
    	('Main',	0x4c560),
    	('Debug',	0x4c970),
    	('Exit',	0x4d800),
    	('System Configuration',	0x4d8b0),
    	('Diagnostics',	0x4de90),
    	('Security',	0x4df00),
    	('Power',		0x4e000),
    	('Advanced',	0x4e3c0),
    ]
    
    old one
    Code:
    STRING_TABLE = 0x115c0
    
    storage_map = {}
    
    FORMS = [
    	('Exit',	0xd290),
    	('Boot',	0xd340),
    	('Power',	0xd470),
    	('Security',	0xdd60),
    	('Advanced',	0xdfb0),
    	('Main',	0x11120),
    	('Information',		0x11490),
    ]
    
     
  32. chrisys32

    chrisys32 Notebook Enthusiast

    Reputations:
    0
    Messages:
    46
    Likes Received:
    0
    Trophy Points:
    15
    i can't get it under 450 kb to upload....
     
  33. cavrac

    cavrac Notebook Enthusiast

    Reputations:
    1
    Messages:
    28
    Likes Received:
    0
    Trophy Points:
    5
    Every BIOS is different some will have 8 forms some will have 6.

    You should ignore the names in dumpsetup2.py just because it says Main does not mean that that location is the main form, you can go back and edit you dumpsetup2.py after you get your setup.txt and put in the correct names for each form if you want to
     
  34. cavrac

    cavrac Notebook Enthusiast

    Reputations:
    1
    Messages:
    28
    Likes Received:
    0
    Trophy Points:
    5
    put it on rapidshare or something
     
  35. chrisys32

    chrisys32 Notebook Enthusiast

    Reputations:
    0
    Messages:
    46
    Likes Received:
    0
    Trophy Points:
    15
  36. cavrac

    cavrac Notebook Enthusiast

    Reputations:
    1
    Messages:
    28
    Likes Received:
    0
    Trophy Points:
    5
    The size of you pe file is normal
    But your fd file is 2 Mb

    My BIOS fd files were 1 MB, I am wondering if that has something to do with it
     
  37. cavrac

    cavrac Notebook Enthusiast

    Reputations:
    1
    Messages:
    28
    Likes Received:
    0
    Trophy Points:
    5
    it seems what ever is at Location = 0x4eca0 is makinfg the scripts fail
     
  38. cavrac

    cavrac Notebook Enthusiast

    Reputations:
    1
    Messages:
    28
    Likes Received:
    0
    Trophy Points:
    5
    maybe you can downgrade your BIOS to an earlier version from the HP web site and try that, they may have an older version that is 1 mb or that does not have all these opcodes in them
     
  39. cavrac

    cavrac Notebook Enthusiast

    Reputations:
    1
    Messages:
    28
    Likes Received:
    0
    Trophy Points:
    5
    Well I disassembled your pe file and found most of the form addresses

    I used fvdump.py and vardump.py to figure out your VSS_OFFSET = 0x001ce048

    and I guessed the VSS_SIZE = 0x05FFB7 from Zephie's and it seemded to work

    Attached is a zip file for you :eek:
     

    Attached Files:

  40. chrisys32

    chrisys32 Notebook Enthusiast

    Reputations:
    0
    Messages:
    46
    Likes Received:
    0
    Trophy Points:
    15
    tnx for your help, cavrac, it worked, but now i have all the forms except one that i actually need, the boot one. boot form is the second one, where program always stops and says KeyError: 42. i tried to isolate only boot form so the program works only on it, but it says same thing again. it can normally find all other forms, but something on boot form always stops the operation. i want to change some boot options that i can't change through setup utility.
     
  41. cavrac

    cavrac Notebook Enthusiast

    Reputations:
    1
    Messages:
    28
    Likes Received:
    0
    Trophy Points:
    5
    I can not help you with the boot form, but I found the address for your power form, it is number 6 on this list

    FORMS = [
    ('1', 0x4ebe0),
    #('2', 0x4eca0),
    ('3', 0x4f2a0),
    ('4', 0x4f310),
    ('5', 0x4f440),
    ('6', 0x4F860),
    ('7', 0x50100),
     
  42. .NetRolller 3D

    .NetRolller 3D Notebook Deity

    Reputations:
    505
    Messages:
    1,127
    Likes Received:
    14
    Trophy Points:
    56
    Another piece of the puzzle solved.

    Apparently InsydeH2O is based on Intel EFI 1.10, not UEFI 2.x. In Intel EFI, the IFR opcodes are somewhat different from those in UEFI. The full list can be found here: edk2: /user/austinro/web/edk2/EdkCompatibilityPkg/Foundation/Framework/Include/EfiInternalFormRepresentation.h Source File

    Specifically, opcode 0x27 is not EFI_IFR_EQ_VAR_VAL_OP, but EFI_IFR_TRUE_OP - that is, plain old Boolean true. I wonder what happens if we replace it with 0x28 (EFI_IFR_FALSE_OP)... ;) (Hint: when does "Suppress if false" suppress anything?)
    Opcode 0x2a, also seen, is EFI_IFR_GE_OP - Greater Than or Equal To, I believe (especially since 0x29 is EFI_IFR_GT_OP, which sounds like "Greater Than").
     
  43. etiko

    etiko Notebook Consultant

    Reputations:
    12
    Messages:
    163
    Likes Received:
    0
    Trophy Points:
    30
    hy ppl, can anyone do it for me? Please..... i realy want a advance and power menu on mine hp dv7 2160ep (dv7 2100series)
    thanks
     
  44. chrisys32

    chrisys32 Notebook Enthusiast

    Reputations:
    0
    Messages:
    46
    Likes Received:
    0
    Trophy Points:
    15
    well, afaik, there is still no way to unlock power and advanced menu, at least not so they are visible in setup utility. you can only mod the options you need with tutorial on page 23, etiko
     
  45. etiko

    etiko Notebook Consultant

    Reputations:
    12
    Messages:
    163
    Likes Received:
    0
    Trophy Points:
    30
    thanks, but im stuck on it
    C:\Python>python main.py mybios.fd >> main.txt
    Traceback (most recent call last):
    File "main.py", line 35, in <module>
    from lzma import get_lzma_chunks
    File "C:\Python\lzma.py", line 88, in <module>
    lzma = CDLL(library_path)
    File "C:\Python\lib\ctypes\__init__.py", line 353, in __init__
    self._handle = _dlopen(self._name, mode)
    WindowsError: [Error 193] %1 nÒo Ú uma aplicaþÒo de Win32 vßlida
    and my main.txt its a 0byte file...what im doing wrong?
     
  46. chrisys32

    chrisys32 Notebook Enthusiast

    Reputations:
    0
    Messages:
    46
    Likes Received:
    0
    Trophy Points:
    15
    post me the link of your bios file, i'll try to do it
     
  47. chrisys32

    chrisys32 Notebook Enthusiast

    Reputations:
    0
    Messages:
    46
    Likes Received:
    0
    Trophy Points:
    15
    upload your bios to some file hosting site
     
  48. etiko

    etiko Notebook Consultant

    Reputations:
    12
    Messages:
    163
    Likes Received:
    0
    Trophy Points:
    30
    thanks dude... im going upload to my host :D
     
  49. etiko

    etiko Notebook Consultant

    Reputations:
    12
    Messages:
    163
    Likes Received:
    0
    Trophy Points:
    30
  50. chrisys32

    chrisys32 Notebook Enthusiast

    Reputations:
    0
    Messages:
    46
    Likes Received:
    0
    Trophy Points:
    15
    etiko, u have exactly the same bios as i do, and that means - same problem. i managed to get all the forms except the boot one. it seems that something on boot location, 0x4eca0 makes dumpsetup2 to stop (as cavrac said) so i just bypassed it (also what cavrac did for me). here u go your dumpsetup2.py, main.txt, setup.txt and setuputility-mine.pe. now find what u need and change it with vtenable. sry, no boot options :(
     

    Attached Files:

← Previous pageNext page →