LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Hardware (https://www.linuxquestions.org/questions/linux-hardware-18/)
-   -   Need a utility decompress and recompress Phoenix BIOS on HP notebook. (https://www.linuxquestions.org/questions/linux-hardware-18/need-a-utility-decompress-and-recompress-phoenix-bios-on-hp-notebook-626919/)

r00tb33r 03-10-2008 01:02 AM

Need a utility decompress and recompress Phoenix BIOS on HP notebook.
 
I need to decompress and manually edit a few values in the BIOS image and then recompress it and flash the BIOS. This is done to add my new wireless card to the whitelist.
It is awful of HP to practice hardware whitelists.
The images are in Phoenix WinFlash .wph format.
phoenixdeco does not work with images for my system. Phoenix BIOS Editor does not work with images for my particular systems. HP created classes that are not in the original Phoenix specification and are not interpreted by Phoenix BIOS Editor, and the BIOS is not properly rebuilt because of that.
I just need a simple utility that will decompress the image into separate ROMs by class and then compress them back into the image once I'm done editing.
I really need help with this. For now I have no wireless.
Thanks in advance.

aus9 03-10-2008 08:25 PM

you have not named the model etc but search for Mark Wrightson in this forum post and check the knoppix solution offered.

http://forums11.itrc.hp.com/service/...hreadId=567021

I do not have your hw BTW

r00tb33r 03-15-2008 12:01 PM

Quote:

Originally Posted by aus9 (Post 3084506)
you have not named the model etc but search for Mark Wrightson in this forum post and check the knoppix solution offered.

http://forums11.itrc.hp.com/service/...hreadId=567021

I do not have your hw BTW

Thanks for the reply... The card I have is Atheros, so I guess I would need a tool for an Atheros card, or if ethtool works with it, I would need to know what values to write for this card.
This thread is about BIOS tools, not about writing to EEPROM of wireless cards. I have a 0 reply thread about that which I posted like a week ago.
This thread now has replies so I guess there is no chance I will get a solution.
Thanks anyway.

aus9 03-15-2008 07:32 PM

look I did read your question so felt if you could trick the current bios into thinking your wireless card was one supported by the bios....all would be good.

so, now you no longer have a zero reply post.....why not install virtualbox...or any other emulator...and run PBE from there.....or install wine and see if it works from within your current systems?

However, not that you need me to warn you....but I still will....it looks like you need to care a lot of care
http://www.wimsbios.com/phpBB2/bios-...rams-vf36.html

aus9 03-15-2008 07:38 PM

http://forums.mydigitallife.info/showthread.php?t=172

post 7 is the instruction and post 9 is telling a replier like me....to read the darn post

r00tb33r 03-16-2008 05:36 PM

Quote:

Originally Posted by aus9 (Post 3089901)
look I did read your question so felt if you could trick the current bios into thinking your wireless card was one supported by the bios....all would be good.

so, now you no longer have a zero reply post.....why not install virtualbox...or any other emulator...and run PBE from there.....or install wine and see if it works from within your current systems?

However, not that you need me to warn you....but I still will....it looks like you need to care a lot of care
http://www.wimsbios.com/phpBB2/bios-...rams-vf36.html

Although my BIOS is Phoenix brand, it is modified by HP to the extent that PBE is unable to understand about half of all section classes in it. Basically after rebuilding the BIOS with PBE, the image if you look at it from a HEX editor is almost completely blank. PBE simply omits everything that HP has put in there, and first time I did it, it bricked a motherboard. These boards are $180 so I don't think its such a good idea to try to reproduce that result again. PBE produces such bad image for my machine that it makes BIOS recovery impossible.
So again as my original question states, need some utility that decompresses and recompresses and does nothing else.
Yes, PBE does work with some recent HP notebooks but it does not work with a lot of them.
Thanks for your continued assistance. I'm just about ready to get myself another laptop, although specifications of this one are hard to beat or match, meaning this is about as powerful as they come right now.

aus9 03-16-2008 07:41 PM

ok a forewarning on new pc with phoenix
http://linux.wordpress.com/2007/04/1...-except-vista/

lq search for wph gives an acer post that you may like to read
http://www.linuxquestions.org/questi...?highlight=wph

it mentions uniflash. check out the supported hw
http://www.uniflash.org/hardware.htm


------

a diff slant is linuxbios now called coreboot.
use the links to see if your motherboard and chipset are supported if you wish
http://www.coreboot.org/Welcome_to_coreboot

r00tb33r 03-17-2008 12:26 AM

Quote:

Originally Posted by aus9 (Post 3090742)
ok a forewarning on new pc with phoenix
http://linux.wordpress.com/2007/04/1...-except-vista/

lq search for wph gives an acer post that you may like to read
http://www.linuxquestions.org/questi...?highlight=wph

it mentions uniflash. check out the supported hw
http://www.uniflash.org/hardware.htm


------

a diff slant is linuxbios now called coreboot.
use the links to see if your motherboard and chipset are supported if you wish
http://www.coreboot.org/Welcome_to_coreboot

Nope, thats all in the wrong direction. I can flash just fine with WinFlash. If you read my original post I need to decompress and then, after modifications, recompress the BIOS image. In case you don't understand what that means, modern Phoenix BIOS is much like an archive, different parts of it are compressed in it. Modern Phoenix BIOS images cannot be modified directly because of that, you will not find the code you are looking for. I can't really explain any better what "archive" means.
The output I need from such program is a bunch of files, which all have purpose, ACPI settings, CPU lists, etc, all in separate files, the sum of those files is greater than the size of the image (once again the image is an archive).
One of those files contains the PCI whitelist. I've looked at the part of code in the PBE temporary files, I see it, I modify it. Too bad PBE can't put my BIOS back together even if I don't modify anything.
I know what uniflash is, its just a universal flasher. Too bad it does not perform compression operations.
I've been at this for about a month now... So unless there is an expert on Phoenix BIOSes on this forum it might be time to call it quits.
Theres a cross platform program called PhoenixDeco. It does decompression. It doesn't work. At least it doesn't interpret the image for my machine. Not surprising considering the PBE result. I guess HP won this round.
I've spent quite a few hours on the line with their support and I finally got their lame excuse for the whitelist. "We discourage the end user from installing non-approved devices that could potentially damage their system."
I guess I'm going to start looking for a new laptop now.
Looking for something of Intel dual core and nVidia video card with 256mb+ non-shared.
Current specs:
Intel Core Duo 1.73GHz
1GB DDR2 667Mhz
nVidia GeForce Go 7600 256mb, onboard non-shared
two 120GB SATA hard drives (yes, two, in a laptop)
Lightscribe DVD-RAM
17" widescreen 1440x900
full keyboard, with the number pad
It weighs like those desktop replacement class laptops, but its a lot slimmer.
Tough to find something matching... nVidia is a must, I've had too many issues with ATI linux drivers.

aus9 03-17-2008 03:19 AM

hmmmm, can you upload your wph to a file sharing site so others can have a peek?

I realise you have done a lot of research your self and I have just googled.

1) how about archive unpackers unzip and zip to repack?

2) or cabextract?
http://www.cabextract.org.uk/

I am not sure but it may unpack wph according to this
http://209.85.175.104/linux?q=cache:...lnk&cd=1&gl=au

3) ms product Phlash16.exe
http://209.85.175.104/search?q=cache...lnk&cd=3&gl=au

r00tb33r 03-17-2008 06:45 PM

Quote:

Originally Posted by aus9 (Post 3091050)
hmmmm, can you upload your wph to a file sharing site so others can have a peek?

I realise you have done a lot of research your self and I have just googled.

1) how about archive unpackers unzip and zip to repack?

2) or cabextract?
http://www.cabextract.org.uk/

I am not sure but it may unpack wph according to this
http://209.85.175.104/linux?q=cache:...lnk&cd=1&gl=au

3) ms product Phlash16.exe
http://209.85.175.104/search?q=cache...lnk&cd=3&gl=au

The latest image for my machine, the one I'm working with:
http://rapidshare.com/files/100342685/Bios.wph.html

Phlash16.exe = WinFlash = WinPhlash, all names for the Phoenix flasher program. This is what I use to flash the BIOS. It does nothing else.
Phlash16.exe is the 16bit version is for use with DOS based BIOS recovery diskette, only functions with certain flavours of DOS.

I didn't mean for you to understand me literally, the BIOS image is not a common archive we use but similar in a way. No unfortunately cabextract does not work with Phoenix BIOS images.

PhoenixDeco is the tool intended for this, but it doesn't work with the HP image for some reason. And afterwards I still have to have a tool that puts it all back together.

Electro 03-17-2008 08:37 PM

I doubt Phoenix and other BIOS manufactures will or are creating Windows dependent BIOS. These BIOS manufactures creates a BIOS framework or skeleton for motherboard developers to modify and tweak. If HP is doing what you are saying, you are paranoid. I think the new hardware should work just fine in Linux, but may not work in Windows because how Linux can get around problems in the BIOS.

Putting a wireless NIC in a computer introduces RF interference. Not all wireless NIC have good enough shielding, so it is more likely that HP is doing you a favor. Also the antenna may not match. You will lose efficiency and create over heat problems of the NIC when the RF antenna does not have the correct impedance that the card uses. I suggest use a PCMCIA (Cardbus) or ExpressCard to upgrade the wirless NIC. I have Intel 3945 WiFi NIC that connected internally and I am planning for future WiFi upgrades is to use a ExpressCard.

I suggest backup the notebook BIOS and find if coreboot or LinuxBIOS supports your hardware (Northbridge, Southbridghe, Super I/O, etc). If the chip that contains the BIOS can be removed, replace it with an upgrade version that can store more data.

IMHO, rapidshare sucks for sharing data. Use something better like mediamax.

unSpawn 03-17-2008 09:46 PM

... and if you love the smell of burning stuff in the morning you could try http://www.richud.com/HP-Pavilion-104-Bios-Fix/ or http://joshuawise.com/Wireless-Whitelist.html

aus9 03-18-2008 02:12 AM

unSpawn, I love the smell of napalm in the morning

woohoo unSpawn to the rescue.

r00tb33r 03-18-2008 04:46 AM

Quote:

Originally Posted by unSpawn (Post 3092128)
... and if you love the smell of burning stuff in the morning you could try http://www.richud.com/HP-Pavilion-104-Bios-Fix/ or http://joshuawise.com/Wireless-Whitelist.html

I've encountered both articles before. The first method bricked a $180 board for me, as my system is too recent for all the tools available. Recovery was impossible in this particular case.

The second method is for mini PCI and I have mini PCI Express. There is probably a pin to do that as well but I do not like the idea of having to flip a switch every time I reboot... As this is a laptop, I use hibernate feature of both linux and windows. Hibernation envolves a complete shutdown and a boot. So every time I close and open the laptop I would have to hit the switch, or else encounter the 104.

Sadly neither solve my problem.

r00tb33r 03-18-2008 05:01 AM

Quote:

Originally Posted by Electro (Post 3092067)
I doubt Phoenix and other BIOS manufactures will or are creating Windows dependent BIOS. These BIOS manufactures creates a BIOS framework or skeleton for motherboard developers to modify and tweak. If HP is doing what you are saying, you are paranoid. I think the new hardware should work just fine in Linux, but may not work in Windows because how Linux can get around problems in the BIOS.

Putting a wireless NIC in a computer introduces RF interference. Not all wireless NIC have good enough shielding, so it is more likely that HP is doing you a favor. Also the antenna may not match. You will lose efficiency and create over heat problems of the NIC when the RF antenna does not have the correct impedance that the card uses. I suggest use a PCMCIA (Cardbus) or ExpressCard to upgrade the wirless NIC. I have Intel 3945 WiFi NIC that connected internally and I am planning for future WiFi upgrades is to use a ExpressCard.

I suggest backup the notebook BIOS and find if coreboot or LinuxBIOS supports your hardware (Northbridge, Southbridghe, Super I/O, etc). If the chip that contains the BIOS can be removed, replace it with an upgrade version that can store more data.

IMHO, rapidshare sucks for sharing data. Use something better like mediamax.

I wish I was paranoid. For now I am someone who gets a post code because I insert a wireless card that HP did not approve. Recent HP laptops like mine do not boot at all when code 104 is encountered. unSpawn posted a link to the article that shows the code on the screen and a screenshot of BIOS code where HP buried the whitelist.
Now I found those as well, and I change the IDs to those of my Atheros card, however there is no tool that can assemble my BIOS back together, and the only way I can get it apart with is PBE which does not understand some things in this BIOS.

Now this might sound crazy and reckless to you, but I did in fact insert the card while the system was in standby, and guess what? It works. So its just the BIOS whitelist check thats the issue.

I would really appreciate if someone could help me out at decompressing the BIOS image and putting it back together.
I still have a lot of hope left.

Thanks everyone for your support so far.

PS I think those alternative BIOS solutions are a bit of a long shot. I am an advanced user but not quite that hardcore. After all one board is already bricked.
Lets try to do it in a less intrusive way for now.

*EDIT*
The BIOS chip is really just an SST 1Mbyte flash chip. Its a 40 pin TSOP/SOP package and I haven't found a single BIOS service in continental USA that programs those.(I did find a chinese dude in Canada that does it though) Everyone does 32 pin chips. Just thought I throw it out there. 1Mbyte would probably be enough for pretty much any BIOS solution though.

aus9 03-18-2008 06:37 AM

I think you are referring to me...so I will sign off with one remark

if you have a bios flash file....and can reflash....sst is mentioned in uniflash so there is the possiblility that you try...(yes I know u won't) uniflash and if it fails you restore the bios with your winflash file

unSpawn 03-18-2008 06:40 AM

Not that it helps right now but I'd like to remark OT that this thread could have gone much faster if you provided all specs upfront.

r00tb33r 03-18-2008 09:45 AM

Quote:

Originally Posted by aus9 (Post 3092487)
I think you are referring to me...so I will sign off with one remark

if you have a bios flash file....and can reflash....sst is mentioned in uniflash so there is the possiblility that you try...(yes I know u won't) uniflash and if it fails you restore the bios with your winflash file

Once again, I do not need help flashing, I need help modifying the BIOS.
I'm not quite sure where the confusion is coming from. If you mean the bricked board I mentioned, I already have another one and I am back in business. Really, I don't need another flasher.
This thread is specifically dedicated to decompressing the BIOS image, and putting it back together once it is modified.
The reason why it is done is because the code is scrambled by compression and cannot be modified directly in the image as it is. Kind of if you were to compress a picture into a common archive like .zip and tried editing the archive with a graphics editor.
As I understand it, the BIOS extracts itself into RAM at boot time.

aus9 03-18-2008 08:35 PM

http://www.paul.sladen.org/thinkpad-...d-pci-ids.html

this section called Get the the point! may excite you.

even tho its talking about a diff hw...it says there is a global checksum.

" In short, if you change a value upwards (add), then you need to subtract the same difference from the correctly aligned byte of the checksum."

aus9 03-18-2008 08:49 PM

http://www.coreboot.org/Tyan_S2891_Build_Tutorial

ignore the fact its coreboot instead look at the use of
cat

to join separate bios roms together and look at the use of
strings

to search certain things.

r00tb33r 03-19-2008 09:49 AM

Quote:

Originally Posted by aus9 (Post 3093320)
http://www.paul.sladen.org/thinkpad-...d-pci-ids.html

this section called Get the the point! may excite you.

even tho its talking about a diff hw...it says there is a global checksum.

" In short, if you change a value upwards (add), then you need to subtract the same difference from the correctly aligned byte of the checksum."

Yeah, I've seen that article before, as I mentioned before this image cannot be edited as it is, here is why:
PhoenixDeco(phnxdeco) throws this in the output:
Code:

Filelength      : 100D26 (1051942 bytes)
Filename        : bios.wph
PhoenixBIOS hook found at      : EB38D
System Information at          : EB3F1
Version        : DEVEL83S
Start          : DF473
Offset          : E0000
BCP Modules    : 33
Released        : 07 September 2007 at 11:29:03
/* Copyrighted Information */
        âUU
Not a PhoenixBIOS 4.0

The "Not a PhoenixBIOS 4.0" means that it won't give me starts and ends of sections.
But forget that, I have access to Hex Workshop. The ID for a compatible Intel card is 8086:4222/135B:103C, thats VEN:DEV/SUBSYS. So the value for VEN and DEV would be 86802242. There are 0 instances of those values in the image. To verify I searched for 8680 by itself, 21 instances, no DEV values after.
There is no checksum in the format shown in that article either.
HP did quite a number on this one eh?
At this point you may question whether I have a Phoenix BIOS... I'm quite sure I do, in the corner of the splash screen at boot it shows the Phoenix Technologies logo. Just like this one:
http://www.phoenix.com/PhoenixTPLT/i...ommon/logo.gif
And PhoenixDeco shows the basic information about the image.

Thanks for the continued assistance.

PS This is a 6 month old BIOS, I'm going to see if I can find the oldest compatible BIOS out there to see if I can get something out of that.
...Actually I just did, earliest is May 10th 2006. Same result. PhoenixDeco can't do anything with it, no hex values of VEN&DEV found directly, no checksum string.
I'm really stuck now.

Right now I'm trying to find the PhoenixDeco(phnxdeco) project page to see if there is a newer source available. So far I find only Debian&Ubuntu package information.
Still that might not bring any result even if it gives me the section locations and actually extracts it. I still have to have a way to put it back together. So I'm still stuck.

...
I disabled the bootsplash and it shows that the BIOS is of Phoenix TrustedCore product line. No version or anything.

aus9 03-19-2008 06:12 PM

http://hermann-uwe.de/debian
is the maintainer

pkge is here
http://packages.qa.debian.org/p/phnxdeco.html

r00tb33r 03-19-2008 11:39 PM

Quote:

Originally Posted by aus9 (Post 3094325)

Yeah but I am not a Debian user... I was looking for the project homepage.
Of course I know how to adapt the package.

Electro 03-20-2008 01:12 AM

Quote:

Originally Posted by r00tb33r (Post 3092389)
I wish I was paranoid. For now I am someone who gets a post code because I insert a wireless card that HP did not approve. Recent HP laptops like mine do not boot at all when code 104 is encountered. unSpawn posted a link to the article that shows the code on the screen and a screenshot of BIOS code where HP buried the whitelist.
Now I found those as well, and I change the IDs to those of my Atheros card, however there is no tool that can assemble my BIOS back together, and the only way I can get it apart with is PBE which does not understand some things in this BIOS.

Now this might sound crazy and reckless to you, but I did in fact insert the card while the system was in standby, and guess what? It works. So its just the BIOS whitelist check thats the issue.

I would really appreciate if someone could help me out at decompressing the BIOS image and putting it back together.
I still have a lot of hope left.

Thanks everyone for your support so far.

PS I think those alternative BIOS solutions are a bit of a long shot. I am an advanced user but not quite that hardcore. After all one board is already bricked.
Lets try to do it in a less intrusive way for now.

*EDIT*
The BIOS chip is really just an SST 1Mbyte flash chip. Its a 40 pin TSOP/SOP package and I haven't found a single BIOS service in continental USA that programs those.(I did find a chinese dude in Canada that does it though) Everyone does 32 pin chips. Just thought I throw it out there. 1Mbyte would probably be enough for pretty much any BIOS solution though.

I still suggest take out the WiFi NIC and use a PCMCIA or ExpressCard for your WiFi NIC instead. You will have more models to choose from and they should work. Also be able to attach an antenna to it to increase efficiency.

If you still insist of customizing your BIOS code, I suggest use coreboot for better results from what I am reading. Of course check to make sure that coreboot supports your hardware and that you have spare BIOS chips. If the BIOS is soldered, you will have to get a soldering iron designed for SMT or sensitive devices.

There are plenty of programing devices for all kinds of EEPROM, FLASH, PLD, GAL, and several other programmable chips. Just need a 40 pin TSOP/SOP clamp.

Enderek 03-23-2008 02:46 PM

Hello there. I think I can help you. Please try using phnxdeco from here:

ender.in/bios.tools/ (can't make it a link, my first post and forum disallows that)

Or take the module with whitelist extracted by Phoenix BIOS editor. Modify it and use prepare.exe from Phoenix BIOS editor (if you don't have one, Intel's download center has a copy for you) to compress the module. You'll have to create rom.scr with following contents:

COMPRESS LZINT
BIOSCODE MYMODULE.ROM

Then run prepare.exe rom.scr and it will create MYMODULE.MOD - the compressed version. Repeat this process for the _original_ (unchanged) module. Compare filesizes of original.mod and changed.mod - if they differ, find the whitelist again and modify some other card IDs until it compresses exactly the same.
Then use phnxmod.exe from the linked page, or use some hexeditor to replace the module, and you should be done :)

Or maybe not, chances are that the module containing whitelist has more than one "block", that it's scattered at more places of the original BIOS, and that will need some more work. Will hint that later, if needed.

And if crisis BIOS recovery works for you (with normal BIOS, not the one "destroyed" by PBE), I'd like to ask if you could flash a BIOS modified by me, I still need to test the way of making module larger/smaller and my notebook does not support any way of BIOS recovery (ThinkPad...).

sunsouthwest 08-05-2008 02:36 PM

...Where the ''problem'' is coming from
 
Quote:

Originally Posted by r00tb33r (Post 3092659)
Once again, I do not need help flashing, I need help modifying the BIOS.
I'm not quite sure where the confusion is coming from.

Well then let me tell you. It's called progress. It's called security.

NO manufacturer TODAY is going to tell you everything you might want to know about their bioses. They've gone with Phoenix' plan to make laptops really really really secure from theft of their DATA, even as the ''laptops'' themselves are getting smaller and lighter and easier to steal, physically.

The password encryption routines are in there, obviously. They do not want you to: a) find them; b) unencrypt them; c) reverse engineer them.

All the security that's possible hangs on the security of this mechanism. If you could crack it, so could virtually anybody else. Not gonna happen. Just look at all the posts about resetting bios passwords by ''removing ...battery'' or ''moving ... jumper''. Guys, they've been storing them in the keyboard controller for TEN YEARS already. If you don't understand trapping I/O on ports 70 & 71, you've got a LONG way to go! And, there's a bit somewhere, SOMEWHERE, saying 'password set' so flashing a new bios usually does nothing at all.

If your are 16 and elite, that will hardly be an impediment. Old guys like me tend to be too linear and too literal. As in ''my, that's stupid!'. Yeah ... like a fox. So ...

Think like a fox. There's a door someplace where they get the eggs out, and something where they put the food in. Not sure about the chickenshit. But things go in, things come out. Code can execute in the CPU, of course. But what about in a smart peripheral controller? Nothing stored anywhere to poke around in. Looks like just another register getting initialized.

If you insist on working on the innards of the current crop of laptops, this is what you're up against. Me, for now anyway, I'm sticking with the older ones. Easier to hack.

Bill


All times are GMT -5. The time now is 04:44 AM.