Jump to content

[Development]-Broadcom 4311 Fix


Achilleus
 Share

348 posts in this topic

Recommended Posts

I took out my card to test to see what would happen. And what I saw was that AirPort still showed up in the Network section in System Profiler and it still shows up in the Network section of System Preferences. However, AppleAirPortBrcm4311.kext and IO80211Family.kext didn't load at startup.

Link to comment
Share on other sites

I just drop some lines here to confirm that the eprom hack works. DO NOT DO THE BIOS HACK, isnt really needed. I myself bought a dell 1390 which was blacklisted in the BIOS and after fighting a bit I managed to do the trick on my HP compaq 6720. Now Im writting this using my wireless conection. I've posted more details in the original thread.

If you dont want to hotplug the card on your laptop you could get a mini-pcie-to-pcie adapter and do the hack on a desktop PC.

 

http://www.orbitmicro.com/global/pciexpres...pter-p-771.html

 

a bit too expensive for one-use though...

 

besides this eprom hack I didnt have to do anything else. It worked out of the box in the next reboot (10.5.2). Hard switch works fine, software switch too.

Link to comment
Share on other sites

"a bit too expensive for one-use though..."

 

$104 !?!? lol ....you weren't kidding!

 

Edit: @BlackCH: I'm curious, did you use a live cd for the hack or was a format/installation of linux required? Also, would you mind copying your instructions over to this thread as well so we can make this a "one stop shop" so to speak for anyone who stumbles upon it seeking a solution? I would copy your instructions myself but wouldn't want to do so without your permission.

Link to comment
Share on other sites

OK, here is it.

I had a Intel 3945ABG mini-PCIe card inside my HP compaq 6720s. No chance to get that wireless card working yet. So I bought a cheap Dell 1390 card to replace it. The problem: HP BIOS only boots with whitelisted devices (with HP firmware) therefore if you plug a OEM card (or from any vendor other than HP) and turn on the computer you get an 'error 104 no supported device' or something like that and you can not go any further. So what it needed to be done was inserting the right HP vendor and device IDs in the firmware of the Dell card. Something to notice is that HP ships the same machine with broadcom cards too (not mine).

If your broadcom 4311 already works under windows/linux but not in OSX this hack wont fix it. In that case the problem lays on a bad PCI configuration. Try chunnan's IOPCIFamily.kext, it might bring your card to life.

 

Here is how I did based on the guide from Philip J Fry: http://forum.insanelymac.com/index.php?sho...mp;hl=dell+1390 . Thanks and credits to him!. His guide didnt quit work for me as it is but without it would have been difficult to figure out how to to this.

I've flashed some graphics cards and even a SCSI card to use on my G4. I knew it works if its done in the right way. although I dont have any experience in Linux was worthy to try 'cos the procedure wouldnt be so different...

Download the necessary files and put it on a memory stick or something:

 

-firmware: http://downloads.openwrt.org/sources/wl_apsta-3.130.20.0.o

-bcm43xx-fwcutter: http://prdownload.berlios.de/bcm43xx/bcm43...ter-006.tar.bz2 (this is just in case)

-bcm43xx-sprom: http://linuxwireless.org/download/bcm43xx/...x-sprom.tar.bz2

 

Boot to knoppix, plug the memory stick, change the permissions to read-write; De-commpress bcm43xx-fwcutter-006.tar.bz2 and bcm43xx-sprom.tar.bz2. Then from the root shell navigate to each of the folders created (two, by decompressing the tar) and type

 

>make

 

this will compile the two tools so you can use them. If all goes right you will get two new files: bcm43xx-fwcutter and ssb-sprom. Make shure everything is in the memory stick. I did this with knoppix 'cause it didnt work in Ubuntu

EDIT: seems to work on ubuntu you just have to type:

>sudo apt-get install build-essentials

and then follow the above procedure

 

Hotplug the new card

Prepare to boot to Ubuntu, either to the live CD or to a HD installation (you will need to get connected to internet from Ubuntu! make shure your ethernet is good to go). I used HD install, because I figured that I might have to reboot a couple of times and booting from HD is faster.

So unplug your old card, and turn the computer on. When you get to the grub boot menu, try inserting the new card at once. Grub might freeze when you do this, so reboot an try again. Notice that you have to secure the card with one screw at least otherwise it falls out of place (be carefull here. Is very likely the small screw falls inside the computer). My laptop has a external swich for the wireless/bluetooth; I guessed will be wise to tape the pin 20 to force the card to be power-on all the time, in case the swich wouldnt work in linux.... here are details about how to do this: http://forum.insanelymac.com/index.php?sho...mp;#entry510044

 

Once you get to boot to Ubuntu with your new card plugged in you need to check if is actually seen by the system.

 

from the terminal type:

 

>lspci

 

this will output a list of all the devices connected. Your broadcom should be listed there. if not reboot and repeat the hotplugging. The rest of the hack wont work until you get this done-

If you see your broadcom listed there is all good!

Installing the firmware

Download bcm43xx-fwcutter from here:

http://packages.ubuntu.com/dapper/i386/bcm...cutter/download

 

it would ask if you want to open it with a default application. Say 'yes'. This will compile and install fwcutter automatically. Then:

 

1) Open System -> Administration -> Restricted Driver Manager and you will see that under the Firmware drop down arrow it says Firmware for Broadcom 43xx chipset family and under Status it says Not in Use.

2) Tick the box under Enabled to enable the firmware.

3) Click Enable Firmware to continue and the bcm43xx-fwcutter package will be installed. If you receive a time out error message then you may need to switch to a different repository mirror or try the off-line install further down this page.

4) Select Download from the Internet to proceed using the pre-filled URI or select a local file (wl_apsta-3.130.20.0.o in your memory stick) if you prefer.

5) Click Ok to extract the firmware.

6) If the Status has changed to In use, then you are successful.

 

for more details about this see:

https://help.ubuntu.com/community/WifiDocs/...r/bcm43xx/Gutsy

 

Now in the terminal type:

 

> sudo modprobe -r bcm43xx

> sudo modprobe bcm43xx

>dmesg

 

if in the output you get any errors regarding bcm43xx type those tree lines again. If doesnt help repeat the firmware extraction...

if no errors then:

 

>iwconfig

this will list the wifi adapter by name; ethX (X=number of the adapter). The adapter which has wireless capabilities is the one

>sudo iwlist ethX scan

this showld scan the networks in range. In my case it didnt; the anthenna was disconnected

 

Hacking the eprom

 

in the terminal:

 

>cd memorystick/bcm43xx-sprom

>sudo iwpriv ethX read_sprom > card_sprom

this creates a dump of the eprom

>./ssb-sprom -i card_sprom --subv 0x103c --subp 0x1363 > new_sprom

this will creates a patched frimware from the dump with the desired subv and subp IDs. Notice that 103c and 1363 worked for my HP lap, you might need to put other ID numbers....

>sudo iwpriv ethX write_sprom $(cat new_sprom)

this will writes the patched firmware back to the eprom

 

At this point my keyboard crashed. so I couldn type the last two line of the hack to check if all went fine. So I tryed to reboot but didnt work either. I finally hard-rebooted and crossed my fingers. Luckly everything went as spected. No more BIOS lock messages, and the 1390 card worked out of the box on 10.5.2. I had to delete my old connection from the Network Preferences and create a new Airport conection... That was it.

 

 

 

The last two lines to check all is OK:

 

>sudo iwpriv eth1 read_sprom > sprom_check

>./ssb-sprom -i sprom_check -P

Check at the subsystem vendor/product ID.

 

If after this hack your card isnt recognized under OSX try the IOPCIFamily.kext by chunnan. It might do the trick.

 

Good Luck!

 

I've attached a zip with the files you will need. You still have to compile them

bcm43xx.zip

post-51637-1203700067_thumb.png

Link to comment
Share on other sites

"i'm screwed and doomed to windows...can that process be simplified?"

 

There are MANY people who have been working on a fix for this issue for quite some time. Quite frankly there is no "simple" fix for a hardware issue when dealing with an operating system that it isn't supposed to run on. The write up that BlackCH posted is very inclusive and, if followed, should provide an adequate solution for the problem. If you're looking for a point and click fix it probably isn't going to happen anytime soon, if ever. Try your hand at the guide posted and if you have any problems with it I'm certain, as we all become more comfortable with the fix, that there are many who will be willing to answer any questions that you may have regarding the process.

Link to comment
Share on other sites

but guys, be aware I had to do all that because my BIOS would lock up the computer when it finds a no-HP-firmware card connected. Not all computers have this BIOS blacklist lock.

If your coumputer still boots with a broadcom 4311 card in, I would say you dont need to do the eprom flashing... and if you still want to flash it you dont need to hotplug it.

Link to comment
Share on other sites

ok with the risk of sounding stupid i have a few questions here? have the possibility of getting the original HP/Compaq supplied card to work been scrapped?

could it be possible to load the eeprom/firmware from the Dell card onto the original card. Or am i totally out of luck and have to buy a new card to get wireless on my laptop?

Link to comment
Share on other sites

I can't really answer the first question as I am unsure of what everybody else thinks. I don't really see how loading the original eeprom or firmware from the Dell card onto the original card would help. I really think you would be better off buying a new card though. I got mine for $15 and although I still haven't finished the SPROM hack because I have been running into tons of problems because I don't have Knoppix and I can't download it, it was worth buying.

Link to comment
Share on other sites

"could it be possible to load the eeprom/firmware from the Dell card onto the original card."

 

That's a very good question. I would have to assume that there are enough differences between the physical hardware in the cards that this wouldn't be possible. The problem, as you are probably aware of, is that the firmware that enables the HP/Compaq cards isn't permanently installed and has to be loaded at boot. The Dell card, obviously, doesn't have this restriction. Perhaps boogersniffer could compare the model numbers (and any other helpful identifying serial numbers etc...) of the two cards, since he is the proud owner of both, and let us know what the differences are.

 

To take it a step further, and I'm only assuming that this could be done so if anyone knows better feel free to chime in, perhaps the eeprom/firmware could be pulled off of each card and uploaded here for comparison. That would give us a great understanding of what can/cannot be done.

Link to comment
Share on other sites

ok with the risk of sounding stupid i have a few questions here? have the possibility of getting the original HP/Compaq supplied card to work been scrapped?

could it be possible to load the eeprom/firmware from the Dell card onto the original card. Or am i totally out of luck and have to buy a new card to get wireless on my laptop?

 

I thought about getting the original HP supply too. It would have cost me double, but it would have work out of the box.

 

Do you mean to load the PC card firmware onto a apple airport card?.... That might work too. It works for graphics cards so I dont know why shouldnt work as long as they have the same chip (broadcom 4311 in this case) and the eprom has the same storage capacity.

Link to comment
Share on other sites

yeah my idea was that the main difference between the two cards is that the Dell card has the enabling firmware on chip and that the HP, for some odd reason, doesn't. i don't know if its a hardware limitation. my trail of logic is that the cards are probably made by some OEM manufacturer, and not in-house so there is atleast some probability that the cards share almost the same hardware, and that its an implementation strategy. but i am only speculating.

Link to comment
Share on other sites

I tried loading sprom from one card to the other and it didn't work. Also, the sprom hack didn't work for me. I don't know why, the hack worked like it was supposed to but my BIOS still gave me the error. The card works fine in linux though. By the way BlackCH, everything compiled in Ubuntu just fine all I needed to do type "sudo apt-get install build-essentials" so you really don't need the Knoppix cd unless you can't update for some reason.

Link to comment
Share on other sites

my HP 4311 did not work on my pavilion, i would not recommend getting the HP one, it would not make the 104 error, but will not work!!

 

Good I didnt buy it then....

Im wonder whats the difference in the Dell firmware to make it work....

Link to comment
Share on other sites

">./ssb-sprom -i card_sprom --subv 0x103c --subp 0x1363 > new_sprom

this will creates a patched frimware from the dump with the desired subv and subp IDs. Notice that 103c and 1363 worked for my HP lap, you might need to put other ID numbers...."

 

@boogersniffer: I'm not asking this to insult you because I know you are very capable but simply from a troubleshooting point of view, did you check the subv and subp ID's from your own hp card and use those and not just the id's from the guide?

 

@blackch: Could you give us more info regarding your card? i.e. model/revision numbers

Link to comment
Share on other sites

@boogersniffer: could it be that you changes never actually gets written to rom chip on the card, any way to verify? that would explain why the sprom doesn't work for you. also did you get an error while loading the Dell card onto the HP card. if not that would mean that either the rom chip doesn't get written to or that there actually is enough rom on the chip for the firmware?

Link to comment
Share on other sites

Well a few minutes later after I posted, I figured out how to use the SPROM from my original card on the Dell card. I had to open the file and take out some stuff at the beggining and then it worked. Mikespug, yeah my ids are the same as the ones in the tutorial but whats weird is that I had to take the whole dump from my other card and put it on my Dell card. However, it appears that it doesn't work in OS X. Probably because I used the whole dump I will have to try it in Tiger and see if it works. And if it still doesn't work I will probably have to do some changes to the SPROM dump and go from there. I think I will also try restoring the original SPROM on the Dell card and hotplug it in OS X.

 

EDIT: Just found some good info here about SPROM editing with the Broadcom cards: http://bcm-specs.sipsolutions.net/SPROM

Link to comment
Share on other sites

there is 2 things i am sure of. somebody will one day fix the problem with the wifi plaguing us.

the other is that it won't be anyone in this thread right now. every time i check this thread i get frustrated since it seems as though every the main participants keep going in circles. IT IS A F_ING MINI PCIE PROBLEM NOT THE CARD!!! if these people knew anything u;d know if ur card works in windows/linux u dont need to do the sprom thing (hopefully that'll keep 2 ppl from frying their cards due to the stupidity of this thread)

Link to comment
Share on other sites

there is 2 things i am sure of. somebody will one day fix the problem with the wifi plaguing us.

the other is that it won't be anyone in this thread right now. every time i check this thread i get frustrated since it seems as though every the main participants keep going in circles. IT IS A F_ING MINI PCIE PROBLEM NOT THE CARD!!! if these people knew anything u;d know if ur card works in windows/linux u dont need to do the sprom thing (hopefully that'll keep 2 ppl from frying their cards due to the stupidity of this thread)

 

well, if you keep coming to check the thread means that you havent found a solution by yourself... At least people here are trying to find solutions....

 

in the other hand I must say it might be a PCI IO configuration problem: If your card works in window or linux you most definitely dont need to edit the eprom..... If only OSX doesnt recognize the card but you can still use it under windows changing the subsys IDs wont fix it and the problem is somewhere else.

 

Theres a IOPCIFamily.kext by chunnan (search 'drivers' sections). This kext fix wrong PCI configurations and seems to bring to life unrecognized (but known as supported) network cards such as Marvell Yukon 88E8038. see this thread:

http://forum.insanelymac.com/index.php?showtopic=87592

 

Might be worthy to try.

Link to comment
Share on other sites

well, if you keep coming to check the thread means that you havent found a solution by yourself... At least people here are trying to find solutions....in the other hand I must say it might be a PCI IO configuration problem: If your card works in window or linux you most definitely dont need to edit the eprom..... If only OSX doesnt recognize the card but you can still use it under windows changing the subsys IDs wont fix it and the problem is somewhere else.Theres a IOPCIFamily.kext by chunnan (search 'drivers' sections). This kext fix wrong PCI configurations and seems to bring to life unrecognized (but known as supported) network cards such as Marvell Yukon 88E8038. see this thread:http://forum.insanelymac.com/index.php?showtopic=87592Might be worthy to try.
ur pretty smart since u recommended something that wasn't related to the card but pci instead. and guess what: it is REALLY close to working with that kext that chun nun made. my ethernet now works and my wifi is detected, it also detects my access point but still i can't connect, but i think that more due to the fact i didn't edit my networkinterfaces file yet.

 

EDIT:i don't want to startle anyone but it was the pci-e slot, since chun nan fixed it i am coming to you live through my dell 1490 woop woop

time to do a merry jig.

peace out!

Link to comment
Share on other sites

 Share

×
×
  • Create New...