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
-
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... -
brianstretch Notebook Virtuoso
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.
-
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...
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. -
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 -
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. -
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. -
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. -
You can fairly easily modify the code in the BIOS that locks up the computer at boot time with the 104 message. Read my post here for the instructions.
How to modify your Insyde Flash to use any PCIe wireless card - InsanelyMac Forum -
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
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
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 itAttached Files:
-
-
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. -
-
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. -
http://myhpmini.com/forum/viewtopic.php?f=62&t=3744 -
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
Code:PATCH_OFFSET = 0x4f PATCH_VALUE = 0x0
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.txtAttached Files:
-
-
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.
-
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)
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. -
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:
-
-
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. -
-
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
-
double post sorry
-
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
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
type
Code:python main.py mybios.fd >> main.txt
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),
Code:python dumpsetup2.py data\SetupUtility-mine.pe >> setup.txt
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
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=" "):
on the DOS box that is still at the c:\python prompt type
Code:python vtenable.py mybios.fd mybios2.fd >> patch.txt
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
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
doneAttached Files:
-
-
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? -
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. -
Attached should be everything you need including the dll. (Note: Flash It not included)Attached Files:
-
-
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. -
never mind, i got it... never use tabs in python for lining up text, spaces only xD
-
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... -
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. -
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), ]
Code:STRING_TABLE = 0x115c0 storage_map = {} FORMS = [ ('Exit', 0xd290), ('Boot', 0xd340), ('Power', 0xd470), ('Security', 0xdd60), ('Advanced', 0xdfb0), ('Main', 0x11120), ('Information', 0x11490), ]
-
i can't get it under 450 kb to upload....
-
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 -
-
MEGAUPLOAD - The leading online storage and file delivery service
here u go, my mybios, f41. if you want to try. my only problem is that keyerror... how big should setup txt and pe file be? -
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 -
-
-
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 youAttached Files:
-
-
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.
-
FORMS = [
('1', 0x4ebe0),
#('2', 0x4eca0),
('3', 0x4f2a0),
('4', 0x4f310),
('5', 0x4f440),
('6', 0x4F860),
('7', 0x50100), -
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"). -
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 -
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
-
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? -
post me the link of your bios file, i'll try to do it
-
upload your bios to some file hosting site
-
thanks dude... im going upload to my host
-
http://etiko.webs.com/MYBIOS.FD
here it is, thanks i hope you can help me -
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:
-
Insyde BIOS modding (dv4,dv5,dv6,dv7 at least)
Discussion in 'HP' started by finestree, Jun 26, 2009.