How to > HP BIOS MiniPCI Fix- nc6000/others

Don't ask how to hack password. (BIOS Passwords)
guybrush
New visitors - please read the rules.
Posts: 3
Joined: Tue Sep 22, 2009 3:25 pm

As said, I'm trying to patch the F3.0 bios for the NC4010 (68bas.bin). I've tried to follow the guide on pdf and the tutorial videos too but, apart from the obvious differences as the bioses modified there are different from mine, I can't understand many parts of the patching process.
For example, why in the pdf does semi say to move three times forward while in the videos he moves one time only? How does he complete the own bios byte ID string? I have understood that the approach changes according to the case but I haven't understood what are the guidelines to follow.
Please forgive me for my incompetence but I'm completely lost and I hope that someone could help me. Thanks in advance.
nando4
BIOS Rookie
Posts: 46
Joined: Sat Aug 22, 2009 2:44 pm

Unwhitelisting the pci-e port associated with the wifi card

I've had some minor success in figuring out how to "unwhitelist" a mini pci-e slot. Using R-W everything, I dumped the PCI configuration data of the pci-e slot associated with your wifi card. Then I rebooted the system *without* wifi installed, opened the dump, writing it, then the wifi card is detected by Device Manager, however I haven't got it to attach to a point. If that part could be worked out, then potentially could use this technique as a workaround around HP whitelisting without resorting to trying to patch the bios, since some of the newer bioses are quite difficult to do so.
NetworkPro
New visitors - please read the rules.
Posts: 7
Joined: Fri Jul 10, 2009 1:17 pm

I did not understand what you did but it sounds good. Maybe a screenshot or two that we can look at ? .. ?
nando4
BIOS Rookie
Posts: 46
Joined: Sat Aug 22, 2009 2:44 pm

Need 10 posts to get to do links and stuff. This is #9.
nando4
BIOS Rookie
Posts: 46
Joined: Sat Aug 22, 2009 2:44 pm

Need 10 posts to get to do links and stuff. This is #10.
nando4
BIOS Rookie
Posts: 46
Joined: Sat Aug 22, 2009 2:44 pm

Image

This is a partial solution -> Still need to figure out why the radio doesn't work, perhaps solvable with a DOS utility that can do the complete pci configuration space. I hope this starts the ball rolling to get a permanent workaround to HP Whitelisting on the Santa Rosa or newer HP Business systems (25xx, 27xx, 65xx, 69xx, 87xx)

It looks like bios, upon detecting a non-HP or no wifi card puts the relevant mini pci-e port in some unusual state to prevent it working with other vendors wifi cards. The workaround that I've found to get the mini pci-e slot to at least be active AND detect the wifi card is to save the PCI Configuration details of the pci-e port with a HP working wifi card installed, then load that configuration is in place when a non-HP wifi card is installed. Only problem is the radio isn't on so it doesn't connect to a WAP. Can determine which port is connected to the wifi by viewing Everest ports and Everest pci devices. In my case 00:1C:00=port1, 00:1C:01=port2 on my 2510P. The RW-Everything file will look like this.

A transparent workaround

I believe could get around HP whitelisting in a transparent manner using grub4dos to chainload the OS with a tool that can write the *complete* saved RW Everything data to the PCI Configuration space.

Attempt #1: I massaged RW-Everything's config file into PCITool's /CM format, loading it in DOS mode process prior to chainloading Windows. Problem is PCITool only writes PCI configuration registers up to FF, any beyond that get verified as FFFFFFF so PCITOOL fails to write it.

Attempt #2: cdbg looks like it might be able to do it, just need to figure out it's syntax.

I've compared wifi-enabled port vs wifi-disabled port finding the bytes that require change are below. In the < FF range obviously there needs to be a PCI Memory Window. The stuff in 0305-035A is seems to be the key to getting it to work.

Type:PCI Express Bus 00 Device 1C Function 01
001F=20 0020=00 0021=E0 0023=E0 004D=2C 0050=42 0052=11
0053=30 005B=01 0094=3C 0095=10 0096=C9 0097=30 00E3=04
0305=00 0306=00 0307=00 0313=00 031C=CC 031D=1B 031E=18
031F=00 0320=CB 0321=0B 0322=B7 0323=02 0340=C5 0341=0C
0342=C5 0344=D5 0345=0C 0346=C7 0347=00 0348=4D 0349=02
034A=B4 034B=00 034C=77 034E=8A 0350=79 0356=04 0358=E6
0359=09 035A=7D


If I go in and manually try and change the data one at a time it doesn't enable it. Seems it needs a bulk single write to do it.

Literally just need a DOS utility to write the 000-035A data captured by RW-Everything associated with mini pci-e port2 back to the port prior to booting Windows/Linux. THat would do the trick. Just haven't found a utility to do it yet.

EDIT: Need a utility to write the PCI Extended Configuration registers (beyond FF) at a DOS level.
Last edited by nando4 on Sat Sep 26, 2009 8:29 am, edited 1 time in total.
NetworkPro
New visitors - please read the rules.
Posts: 7
Joined: Fri Jul 10, 2009 1:17 pm

So let's say we have a non-HP card installed in the laptop. In order for the laptop to even boot - the miniPCI-e slot needs to be shutdown from BIOS - Wireless Disabled. Because the whitelist check is in BIOS and is done before OS boot.

So this solution in development here (very nice by the way) be able to re-enable the port (equivalent to Wireless Enabled) after the BIOS has passed the control to the bootloader on the HDD ?

If yes - this is AWESOME.

P.S. about No Radio problem try this: install latest HP Wireless Assistant (latest version found with softpedia website and not HP website) and issue this command: "C:\Program Files\Hewlett-Packard\HP Wireless Assistant\HPWAMain.exe" /all on I fixed no radio problem (HP original cards) on tons of HP laptops with this method I found myself.
nightalon
New visitors - please read the rules.
Posts: 3
Joined: Fri Sep 04, 2009 10:34 pm

@semi,

I love veal-sausage Germany. My madre's cousin and wife live in Bonn. SchneiderWeisse is awesome. So is the science museum in Munich.

What about rodeo-corndog US? (which I have little experience with...born and raised in New York, now going to school in New Haven)

I decided to return the laptop and they waived the restocking fee. Thanks for looking into helping me out.
nando4
BIOS Rookie
Posts: 46
Joined: Sat Aug 22, 2009 2:44 pm

NetworkPro wrote:So this solution in development here (very nice by the way) be able to re-enable the port (equivalent to Wireless Enabled) after the BIOS has passed the control to the bootloader on the HDD ?

If yes - this is AWESOME.

P.S. about No Radio problem try this: install latest HP Wireless Assistant
Yes - it would be awesome if I could get a confirmed fully functional wifi card. So far can only get the system to see it saying it's working properly, but radio won't come on. I did the following test to in essence hotplug the wifi card *after* bios has done it's whitelisting operations to see if I can reactivate it:

1/ Bootup XP with HP Wifi card installed [sets up OS drivers/mem locations]
2/ Hibernate system, disconnect wifi card
3/ Resume system [ mpci-e PCI config registers changed - same as if a non-whitelisted card is in system]. Device Manager Scan shows no wifi card.
4/ Use R-W everything to load the dump of the pci-e port's config registers.
5/ Standby system, plug in wifi.
6/ Device Manager Scan now sees the wifi card and claims it's working correctly - though radio blue LED is OFF and HP Wireless Assistant cannot switch it on. Tells me to enable it in the bios.

Just to make sure the R-W everything was not seeing a phantom device I checked steps 4-6 with and without the wifi card installed - Device Manager only sees the wifi card when it's *really* in the system.

I though perhaps the radio link needs to be established permanently after bios bootup and a disconnect would drop the radio.. so while active in XP I pulled the wifi card out, then replug it and do a 'repair' and the radio LED comes back. So there is still some detail missing in my above approach to get the radio working.

There is no DOS tool that I've been able to find to change the extended pci config registers prior to boot which may give a more positive result here. So another way would be to write a grub2 module as instructed by Uncle Joe:

to change both PCI bridge memory ranges and PCI configuration registers. Source code here http://sites.google.com/site/yzhang1985/. Just look at 4gb.c in the function SetBridgeMemoryRange() could be used as a basis.

// virtual addresses in grub2 are the same as physical addresses (either grub runs in real mode or they setup a 1-1 page table?)
uint32_t *reg = (uint32 *t)(PCIEXBAR + bus * (1 << 20) + reg ...)
*reg = value;

To build and install a modified grub2, do the following:
1. Replace Ubuntu's grub with grub-pc (grub2)
2. "./configure" in the grub2 source directory
3. replace symlist.c with my modified one (get it from same place as above)
4. "make"
5. "cp kernel.img *.mod /usr/lib/grub/i386-pc" (replace all vanilla grub2 modules with custom ones - ideally, you only need to replace kernel.img, chain.mod, mmap.mod, 4gb.mod, but it seems different compilers generate incompatible modules).
6. "grub-install \(hd0\)" (re)installs grub2 onto boot partition; installs grub2 bootstrap code into MBR on first hard disk.


Hoping this info may be helpful to a pioneer to continue the research where I've hit a wall due to lack of programming ability. It should be possible to get around HP's whitelisting by simply setting up the pci-e port as it a whitelist compatible device was installed.
edwin
The Hardware Archivist
Posts: 6286
Joined: Wed Mar 20, 2002 7:11 pm
Location: Netherlands
Contact:

I have been fighting that exact symptom on my nc6120 for a while now, card reported working but no blue LED and no connection possible. I suspect it is just another bug we have to live with. The only way for me to reverse this status is remove all wifi drivers/software, shut down the laptop, power on, reinstall drivers/software and we're back online.

It only happens 2 times a year so apart from being a real PITA, it's something I'll deal with for the last year this POS laptop is being used here... It is my last HP/Compaq laptop ever, that's for sure. Now owned 3 years, had to replace screen, harddisk and memory. And I know I'm not the only one with problems on this model.

edit: it is going to be a write-off and the parts still working (not the screen, second time!) will be sold. If and when I want to spend any more time on this POS.
Last edited by edwin on Wed Oct 07, 2009 10:40 pm, edited 1 time in total.
edwin/evasive

Do not assume anything

System error, strike any user to continue...
rsarre
New visitors - please read the rules.
Posts: 1
Joined: Sun Sep 27, 2009 9:56 pm

Hi SEMI

i need your help:

i have a compaq 515 with bios 68GVV ver: F.06 with a boardcom card, y want to put an atheros card.
i have already read all the post, but i have problems
I can't decompress my bios file. Neither "compdeconx.exe" nor "compdecw.exe" does not work with my bios file

can you helpme to mod my bios please????

this is my bios: tiny.cc/vmQv6

actual card PCI\VEN_14E4&DEV_4315&SUBSYS_1508103C&REV_01\4&F083BC1&0&0048
new card PCI\VEN_168C&DEV_001C&SUBSYS_04281468&REV_01\4&F083BC1&0&0048
nando4
BIOS Rookie
Posts: 46
Joined: Sat Aug 22, 2009 2:44 pm

Anyone wishing to do the pci-e config register workaround might want to consider compiling the PCI Utilities. There is a DOS version but it's setpci command once again only operates on 00-FF, not the pci extended configuration registers. The Linux compiled PCI Utilities works on the extended configuration registers, eg: lspci -xxxx.
sugark
New visitors - please read the rules.
Posts: 10
Joined: Wed Oct 07, 2009 3:05 pm

Hi Fellows,

I have the same problem on my nc8000 with 68BAR.BIN rom file. Were you able to modify the wlan whitelist? In my case I would like to physically change

from Intel Pro Wireless 2200BG
PCI\VEN_8086&DEV_4220&SUBSYS_12F6103C&REV_05\4&16793A72&0&20F0 - 868020423C10F612

to TP-Link TL-WN660G
PCI\VEN_168C&DEV_0013&SUBSYS_2051168C&REV_01\4&16793A72&0&20F0 - 8C1613008C165120

The problem is ADDCCv2 was not able to find the Bios notation 868020423C10F612 for Intel. Thus the process stucked here.

Thanks in advance,
Krisztian
RaStiScaR
New visitors - please read the rules.
Posts: 5
Joined: Thu Oct 08, 2009 11:05 am

hello people !

exellent job all this stuff for broking HP whitelist, i think it's a very stupid "functionality" that HP implemented in their laptops to remove the posibilite of changin wireless devices,

i'm hardware technicien IT administrator so i have a litlle knowledge BUT modifing BIOS and reading/writing in HEX is a obscure think for me so i need your greatfull help. :)

I have an HP NC6400 with ATI radeon x1300 and core 2 duo T5600, and a broadcom 4311 card inside (device IDstarts 143E )
(i'm at work so i dont have all the stuff with me, i'll update the post soon)

i bought an intel 5300 wifi 802.11n adapter to profit of 300mbps, for 17$ from ebay.
when i put it into the laptop i see ERROR 104 blablablablalba
STUPID HP !!!!!!
so i search the net and i saw that procedur for adding changing the whitelist Great so i'll be able to use my new card !!....
I understand the procedure for adding/changing the list of allowed cards.
My laptop BIOS is the 68YCD.bin
y open it with EditPad pro
and them i stard searching por the device ID of the broadcom....
i dont find it.... the only think i fond was the begining of the ID string 14E4
Them i see in many places that HP introduce a CRC control ... so impossible to me finding my card in all that numbers ...

Is there anyone who have modifies the bios for an HP nc6400 ??
or is there an other way to use the intel 5300 wifi card with the Laptop HP nc6400 ???
i dont understant how to find the actual device ID in the BIOS whitelist and replassing it byt the intel device ID, all thats beacausse HP put that stupid CRC stuff ......
i'm not a programer so i dont undersand the CRC stuff

Can someone tell my if this bios is already in HEX ? i can directly search devices ID only searching for the HEX device ID in the bios code with the search function of Editpad pro ?

Thanks for all and sorry for my english it is not very good, i speak well french or spanish


Edit - Please watch the profanity. KW
Lackooo
New visitors - please read the rules.
Posts: 1
Joined: Mon Sep 28, 2009 11:11 am

RaStiScaR wrote:hello people !

exellent job all this stuff for broking HP whitelist, i think it's a very stupid "functionality" that HP implemented in their laptops to remove the posibilite of changin wireless devices,

i'm hardware technicien IT administrator so i have a litlle knowledge BUT modifing BIOS and reading/writing in HEX is a obscure think for me so i need your greatfull help. :)

I have an HP NC6400 with ATI radeon x1300 and core 2 duo T5600, and a broadcom 4311 card inside (device IDstarts 143E )
(i'm at work so i dont have all the stuff with me, i'll update the post soon)

i bought an intel 5300 wifi 802.11n adapter to profit of 300mbps, for 17$ from ebay.
when i put it into the laptop i see ERROR 104 blablablablalba
STUPID HP !!!!!!
so i search the net and i saw that procedur for adding changing the whitelist Great so i'll be able to use my new card !!....
I understand the procedure for adding/changing the list of allowed cards.
My laptop BIOS is the 68YCD.bin
y open it with EditPad pro
and them i stard searching por the device ID of the broadcom....
i dont find it.... the only think i fond was the begining of the ID string 14E4
Them i see in many places that HP introduce a CRC control ... so impossible to me finding my card in all that numbers ...

Is there anyone who have modifies the bios for an HP nc6400 ??
or is there an other way to use the intel 5300 wifi card with the Laptop HP nc6400 ???
i dont understant how to find the actual device ID in the BIOS whitelist and replassing it byt the intel device ID, all thats beacausse HP put that stupid CRC stuff ......
i'm not a programer so i dont undersand the CRC stuff

Can someone tell my if this bios is already in HEX ? i can directly search devices ID only searching for the HEX device ID in the bios code with the search function of Editpad pro ?

Thanks for all and sorry for my english it is not very good, i speak well french or spanish


Edit - Please watch the profanity. KW
First boot laptop with the original WLAN card. Then turn the computer to sleep mode, change the original card to the new one, then wake up the lappy. The new card works perfectly, until you turn off, or reboot the computer. My advice is that never turn off the computer, just use the sleep mode.

And the second chance is install the new wlan card to your lappy's another PCI-E slot, if it have an another. My dv5 have 2. But in this case you need an antenna. Voila, no 104 error. F**k HP!!
Post Reply