Rebranding Broadcom 802.11a/b/g/n Cards as Airport

In this guide, I’ll be showing you on how to rebrand a Broadcom card which OSX detects as a Third Party Wireless card to Apple’s genuine Airport card. There are few reasons on why you should rebrand. Well , I would quote what BuildSmart and chrand have said about it :-

Basically I purchased the Linksys WMP300N wireless card with the hopes that it would work seamlessly in OSX. After fiddling with it for a while I was able to get it to work, but not at N speeds. I started doing some research and found that it would not work because its vendor and product IDs were not on Apple’s whitelist. One way to get it to work is to change the card’s IDs so that is on the whitelist.

Chrand of Insanelymac

Knowing me. So I tested out this hypothesis and its indeed true. For instance I’ve noticed that my BCM4321 (non apple branded) preformed kinda slow as in internet surfing , connection dropouts. I thought I am the only one. After checking out forums such as InsanelyMac,  I found out that I am not the only one. Thankfully BuildSmart found a solution on how to rebrand these cards so that OSX would see them as genuine apple airport cards thus giving us full N speed. Anyhow , I got my hands dirty and did that. The guide written by Chrand was simple but then it was out of date and it did not include pictures to help folks who are new to Linux. I thought of blogging about it and sharing on how to do it. So you may ask what are the advantages of doing so. Let me list em all for you :-

  • Makes it more vanilla (since everyone is talking about going retail and want to be as close to a real mac as possible)
  • Immunity against system upgrades (yes its true if you use a generic card however knowing how Apple works. They could simply blacklist non-Apple Broadcom cards so that they would not work at all). Its just possible
  • Increases your confidence level so you’ve finally managed to do something that is related to low-level hardware stuff
  • increases resale value of the card (in case if you want to sell it back. Suppose if you bought it for $10 , now you can sell it for $20 or so and you can say that its 100% genuine apple card instead of third party wireless)

Before you do this , be warned that there is a risk involved here. If you did something wrong here , it could render your wifi card useless. Don’t tell me I’ve warned you. I’ve already tested this method with couple of my friends over @ #snowleopard and found out that it did work and it did not ruin their laptops and desktops. Thanks Galaxy and apoc :P

Basically , you’ll be needing the following stuffs ;-

  • Broadcom Wireless Card (such as Dell 1505, 1510 , 1490 , 1390 , etc) (which OSX sees as a third party wireless)
  • Ubuntu 9.10 Live Disc (no we will not be installing Linux) (if you dont have a CD Drive , for instance a netbook then you can Google yourself on how to run Ubuntu 9.10 on a usb disk. For instance I used this software. I used my 2GB flash drive and just pointed out where is my ISO and it did work. Oh yeah it requires Windows) - Ubuntu 9.04 would work as well
  • An Active Internet Connection via Ethernet or by other means (i.e 3G Wireless) (as Wireless will not work during this time) . So I recommend you to plug in ethernet cable !

1. Firstly run Ubuntu in Live Mode. We would not be installing ubuntu to our PC. If you have linux installed (any variant) then you may want to use that. But I’ll be solely focusing on how to do it in ubuntu and if you’ve a linux of another distribution (i.e SuSe)

2. Fire up Terminal. Its located in Applications -> Accessories –> Terminal

3. Be sure to test if there is any Internet connectivity (i.e if the cable is plugged in and such) , to do so type ping www.google.com If you get responses , voila you’re on the Internet. If not check your cable  (I’m assuming that you’ll be connecting the PC via ethernet). Again let me tell you this , WiFi Will not work at this time !

4. Once that is done , type lspci in Terminal and you should see something like this ;-

Be sure that you see something like Broadcom Wireless . Okay so if you see Broadcom Wireless , you’re good to go

5. Next up is for us to grab the needed tools which are :-

sudo apt-get install build-essential
sudo apt-get install curl
sudo apt-get install git-core

Notice I use type sudo -s and apt-get install build-essential curl git-core as it saves me time. i prefer to do this way . Do wait for a while as it could take some time for it to download.( as you can see in the image above) :-

6. We’ll be installing this driver. Type apt-get install b43-fwcutter && modprobe b43 (make sure that you’re running it as root otherwise add the sudo command). If you are not sure , check the picture below :-

7. It will prompt you to extract the firmware , in this case just hit yes. The process would once again continue , and it would fetch several files for it to work. Again this is relatively fast if you’re on a high-speed broadband connection but it certainly took me a long time to get these files

8. Once that is done , we’ll be getting the latest ssbsprom tool which is used to extract our wireless card’s firmware in order for us to change its device subids to match of an apple’s wifi card.

git clone http://git.bu3sch.de/git/b43-tools.git && cd b43-tools/ssb_sprom && make

You can just copy and paste the above command. Once you’ve done that. Type

cp ssb-sprom /usr/sbin/

chmod 755 /usr/sbin/ssb-sprom && chown root:root /usr/sbin/ssb-sprom

Once everything is ready , now here comes the crucial part , type

SSB_SPROM=$(find /sys/devices -name ssb_sprom)

and then followed by echo $SSB_SPROM

If you see something like /sys/device/pci/<numbers>/ssb_sprom. Then you’re in luck. But when you type echo $SSB_SPROM and you get nothing. You should stop now as ubuntu does not see your wireless card. However if you see more then 1 entry , you should consider reading this

Suppose if you see something like as above , then type

cd && cat $SSB_SPROM > ssb_sprom_copy

and

sudo ssb-sprom -i ssb_sprom_copy -P

What this does is that it dumps the ROM from the device to a file. You’ll see something like this. Take note of Subsystem Product and Vendor ID. (Oh by the way I’ve flashed mine to Apple IDs , so yours may differ) . Again the positioning of your vendor id may differ as each card has its own SPROM revision. If you notice mine is a revision 5 SPROM. It just means I am using the 5th version of Broadcoms ROM. There is up to version 8.

Okay next up we’ll be changing our subsystem vendor ids to match of an Apple product. Since I’ve a BCM4328 which is also used in a macbook air. I’ve changed mine to 008B. However if you have 4328/4321 and if you would like to match of a MacBook Pro/MacBook then its

ssb-sprom -i ssb_sprom_copy –-subv 0×106b –-subp 0×0087 -o new_ssb_sprom_copy

What this command does is that it copies the old rom , changes the sub vendor id (0x106b which is Apple Computer , Inc) and sub vendor product (to match of an Airport ID) and copies it a new file !

Suppose if you use a Broadcom a/b/g Wifi card , then the subp id is 0x004e , you’ll just have to change that. Once you’ve done that , lets review our changes. To do so , type

ssb-sprom -i new_ssb_sprom_copy -P

Once you’re happy with your changes (be sure to check of the other IDs and make sure they aren’t changed). Then let us issue the final two commands .

echo $SSB_SPROM

This is just to check that Linux sees our drive and now for the command that would flash our device. Be sure that you’re connected to AC and be sure to double check your rom against with the old one to make sure you did not fiddle with other settings. Lastly but not least , make sure you aren’t doing it on a HP laptop or IBM laptop or any laptop which whitelists Wifi Card. Okay , I’ve guessed I’ve warned you enough. Now let us cross our fingers and issue this command

sudo cp new_ssb_sprom_copy $SSB_SPROM

This could take anywhere from several seconds to several minutes. Be patient . Once its done ,(that is if it does not give any error messages) type sudo reboot or sudo reboot -n

Reboot back to OSX and check out system profiler and select Airport and you’ll be amazed.

Troubleshooting and Additional Information

  1. If the speeds are way to slow. Trying swapping the grey and black antennas that should do the trick for you.
  2. Here is another tip from Christian , basically by changing the ‘Region’ to US and FCC , you could able to unlock speeds up to 300Mbps  - However bear in mind that you may be violating the laws of your country if you do this.

I’ve taken this idea a little further with an HP branded half-height BCM4322 a/b/g/n card that I got from eBay to replace the stock b/g card in my Dell mini10v . WIFI kit is regionalised a little like DVD players, and different regions permit different channels to be used. I have a US purchased TimeCapsule router and the HP card I bought was set to DE for Germany. The FCC in the US allows pretty much everything but DE restricts some channels and it meant the highest speed 5GHz mode that the TimeCapsule offers was using channels not visible to the HP card. So.. as well as switching the vendor/product ID’s around to match an Apple Airport Extreme I’ve also changed ‘regrev’ to be 0×0001 (an educated guess) which shows up as FCC in System Profiler and ‘ccode’ to US (it’s a text string, not hex) from DE. On reboot I now have access to channels 149+ on an Apple Extreme branded card ;) and Network Utility is reporting a link speed of 300Mbit/sec. Legacy region settings probably explains why some folk aren’t seeing link speeds over 130MB/s on some cards even though they are now detected as ‘Apple’ models. Enjoy! – Christian

Credits : BuildSmart, chrand. You can read the original how-to here. If you need more help , i.e as in more step-by-step pictures , you can take a look at my imageshack gallery , i’ve included more pictures in it. I understand that some of us are not comfortable with working with CLI . Thats why I took more shots , you can check em out here (thanks Imageshack for hosting it)

Thanks to Carib Mendez (for pointing out my mistakes :P ) and Dabluest (for confirming that it works other then my test subjects)

Related posts brought to you by Yet Another Related Posts Plugin.

Leave a comment ?

159 Comments.

  1. awesome guide – quick question:
    I just completed flashing my wireless card to:

    Card Type: AirPort Extreme (0x14E4, 0x8B)

    and is only supporting:

    Supported PHY Modes: 802.11 b/g

    My question is since my wireless card originally is a b/g/n, i flashed to 8b, how can i get the n capabilities, should i reflash?

  2. fabioroberto :

    cgdavilab :Hello, I followed all the steps until the: cd && cat $SSB_SPROM > ssb_sprom_copy and then the computers freezes up, I waited a while but nothing happens, any idea why this is happening?

    me too, any solution?

    same thing here…

  3. Typing “git clone git://git.bu3sch.de/git/b43-tools.git && cd b43-tools/ssb_sprom && make” came up with “The remote end hung up unexpectedly”.

    Anyone know of a way to fix this or an alternative server?

  4. Anyone know what device id’s i can flash my broadcom card to? Its only a b/g card and i cant find what id’s to use. Its detected as

    04:01.0 Network controller: Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller (rev 03)

    thanks

  5. OK figured it out

    Card Type: AirPort Extreme (0x14E4, 0x4E)
    Firmware Version: Broadcom BCM43xx 1.0 (5.10.91.27)
    Locale: Unknown
    Country Code: AU
    Supported PHY Modes: 802.11 b/g
    Supported Channels: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13

    nice!

  6. Hey Prasys!

    Thanks for the awesome guide :) I just rebranded my Dell 1501 4322 a/b/g/n to Apple Airport.

    For the people who have the same card, I used the Subsystem Product Id as 0×0093.

    Also, if you are confused that this card uses STA drivers under linux and not b43 to function, worry not, just follow the guide with Ubuntu Live CD, it works !

    -Rock

  7. HELP

    all going file until the last command… got this error :(

    root@ubuntu:~# sudo cp new_ssb_sprom_copy $SSB_SPROM
    cp: writing `/sys/devices/pci0000:00/0000:00:1c.1/0000:0c:00.0/ssb_sprom’: Operation not supported

    i’m using
    Ubuntu 10.4.1
    BCM4312

    any workaround for this… thanx

  8. farhanito :HELPall going file until the last command… got this error root@ubuntu:~# sudo cp new_ssb_sprom_copy $SSB_SPROM cp: writing `/sys/devices/pci0000:00/0000:00:1c.1/0000:0c:00.0/ssb_sprom’: Operation not supportedi’m using Ubuntu 10.4.1 BCM4312any workaround for this… thanx

    ah…solved

    i have to run this command

    rmmod b43

    and than do the copy…

  9. for everyone the link on step 8 changed to

    git clone git://git.bu3sch.de/b43-tools.git && cd b43-tools/ssb_sprom && make

  10. I was never prompted to extract the firmware like in step 7. Is this normal now or did I do something wrong here? I’m using Ubuntu 10.4.1 Dell Inspironn 1525

  11. It work for me on my dw1510, dw1395, dw1397

  12. lapocompris :What would be the subsystem product ID for a Broadcom 4312, please ?

    That would be 0x004e

  13. I’ve managed to make all of those steps, and still can’t use the wireless in my Dell D630 with 10.6.6.
    Anyone have any clues?

  14. @Charles , few issues on D630 . I was told that you’ll have to edit DSDT or something regarding that. Kindly check out insanelymac. I remember there used to be a thread for this in the forum

  15. Hi Pradeesh, thanks for your tutorial. I have a 4312 card, and been trying to follow the instructions, I use a P55 UD3L board, and a live Ubuntu 9.10 with ethernet connection. I’ve been cutting, pasting, then typing everything, and get to the point :
    root@ubuntu:~# ssb-sprom -i new_ssb_sprom_copy -P
    Could not open –infile new_ssb_sprom_copy
    whatever I do.
    I also get confused with the following line :
    ssb-sprom -i ssb_sprom_copy –-subv 0×106b –-subp 0×0087 -o new_ssb_sprom_copy
    Is it ×orX?
    What 2 characters should I type before subv and subp?
    Thanks for any help!

  16. Ok, so I resolved this problem and I found out it was two hyphens!
    I am still facing a problem though, first time I boot my hackintosh I have a kernel panic, and if I reboot right after the computer starts normally and wifi works.
    Any idea?

  17. i have just one thing to say: AWESOME

  18. bro prasys, can u please repair the pic up there..? :) thanks…

  19. sudo ssb-sprom -i ssb_sprom_copy -P

    Illegal value for sprom_rev

  20. Hi Pradeesh
    Not having much success when issuing the final command: sudo cp new_ssb_sprom_copy $SSB_SPROM

    Returns: …is not a directory

    Using BCM4312 rev1 on unbuntu 9.10, 10.04.2
    –subv 0x106b
    –subp 0x004e
    Not much hits on the web either! Please could you help?
    Thx
    Prab

  21. Try to rebranding Broadcom 4311.
    I search a apple product ID!

    But there comes an error after
    sudo ssb-sprom -i ssb_sprom_copy -P

    with the message
    Illegal value for sprom_rev

  22. Problem found, everything OK!

  23. This needs updating BADLY. I tried with newer versions of Ubuntu and had problems. With 9.10 there are also problems, for example at step 6 the command “apt-get install b43-fwcutter && modprobe b43″ doesn’t work, and the newer version of b43-fwcutter doesn’t “prompt” anything, so it’s impossible to get beyond this step. It also says “http://git.bu3sch.de/git/b43-tools.git” is an “empty Git repository” so I guess it’s gone? Please update this, I have several cards I’d like to rebrand ASAP.

  24. Ktilford,

    The new git repository is git://git.bu3sch.de/b43-tools.git

    Apart from that everything works as expected. Just remember to run the commands as root (i.e with sudo in the beginning of the commands).

    I was able to rebrand my BCM4322 with Ubuntu 11.04.

    Thanks prasys!

  25. Have a problem. When I put in the command:

    ssb-sprom -i ssb_sprom_copy –subv 0×106B –subp 0×0087 -o new_ssb_sprom_copy

    I get this error:
    –subv value parsing error. Format: 0xFFFF

    Help!

  26. ok so if u get ssb_sprom is not a directory
    http://linuxwireless.org/en/users/Drivers/b43#relatedtools

    says if u see more than one pci address line then uhave to specify which.. command is in there.

    SSB_SPROM=$(find /sys/devices -name ssb_sprom | grep 04:00.0)
    change the 04 to whatever your lspci says then

    echo $SSB_SPROM
    now it works. took 45 secs to write eeprom.

  27. 0x106b small b not big B

  28. :cry:
    I get to ‘modprobe b43′ and I get no prompt to extract the firmware. Nothing at all. Does anyone know a solution ?

  29. Can you please tell where the mistake?

    lspci
    sudo apt-get install build-essential
    sudo apt-get install curl
    sudo apt-get install git-core
    apt-get install b43-fwcutter && modprobe 43
    git clone git://git.bu3sch.de/b43-tools.git && cd b43-tools/ssb_sprom && make
    chmod 755 /usr/sbin/ssb-sprom && chown root:root /usr/sbin/ssb-sprom
    SSB_SPROM=$(find /sys/devices -name ssb_sprom)
    echo $SSB_SPROM
    cd && cat $SSB_SPROM > ssb_sprom_copy
    sudo apt-get install and
    and
    sudo ssb-sprom -i ssb_sprom_copy –P
    ssb-sprom -i ssb_sprom_copy –-subv 0×14e4 –-subp 0×04b5 -o new_ssb_sprom_copy
    ssb-sprom -i new_ssb_sprom_copy –P
    echo $SSB_SPROM
    sudo reboot or sudo reboot -n

  30. Broadcom BCM94312MCG for Lenovo
    Subsystem Vendor ID = 0x14E4
    Subsystem Product ID = 0x04B5
    Full installation on hard drive ubuntu 11.04.

    Enter by hand!:

    1) lspci

    2) sudo apt-get update

    3) sudo apt-get install build-essential

    4) sudo apt-get install curl

    5) sudo apt-get install git-core

    6) sudo -s

    7) (apt-get install b43-fwcutter && modprobe 43)
    sudo apt-get install b43-fwcutter
    sudo modprobe b43

    8) git clone git://git.bu3sch.de/b43-tools.git && cd b43-tools/ssb_sprom && make

    9) sudo cp ssb-sprom /usr/sbin/

    10) sudo chmod 755 /usr/sbin/ssb-sprom

    11) sudo chown root:root /usr/sbin/ssb-sprom

    12) SSB_SPROM=$(find /sys/devices -name ssb_sprom)

    13) echo $SSB_SPROM

    14) sudo cat $SSB_SPROM > ssb_sprom_copy

    15) ssb-sprom -i ssb_sprom_copy -P

    16) ssb-sprom -i ssb_sprom_copy –-subv 0×14e4 –-subp 0×04b5 -o new_ssb_sprom_copy

    17) ssb-sprom -i new_ssb_sprom_copy -P

    18) echo $SSB_SPROM

    19) sudo reboot or sudo reboot -n

  31. ah…solved

    i have to run this command

    rmmod b43

    and than do the copy…

    this fixed my issue!

  32. ah…solved
    i have to run this command
    rmmod b43
    and than do the copy…

    this fixed my issue

  33. i stumbled into a few problems here….
    firstly i wasn’t prompted to fetch and extract the frimware…
    secondly : the cat $SSB_SPROM > ssb_sprom_copy …. it takes ages (i waited 3 hours and wasn’T finished.. but the computer didn’T freeze. so i checked out “cat” and used >> instead of > and it worked ………
    thirdly : i gives me ” Illegal value for sprom_rev” . after typing (by hand) ssb-sprom -i ssb_sprom_copy -P……
    please help…….

  34. I resolved the 2 problems i had ….. though i am still stuck with the “Illegal value for sprom_rev” when trying to “ssb-sprom -i ssb_sprom_copy -P” ….

    please help…. an explanation is also great…. thnx in advance …
    (different ubuntu versions and am using an Acer Aspire one d250 with Broadcom bcm4312(Chip id))

  35. Could this possibly be used on the BCM4313 t make it compatible with Lion? :lol:

  36. After “sudo git clone git://git.bu3sch.de/b43-tools.git && cd b43-tools/ssb_sprom && make”
    i got these errors:
    mkdir: cannot create directory `dep/’: Permission denied
    mkdir: cannot create directory `dep/’: Permission denied
    mkdir: cannot create directory `obj/’: Permission denied
    make: *** [obj/ssb_sprom.o] Error 1
    trying to rebrand BCM4312 rev2 on ubuntu 10.04
    Help please!!!

  37. Hi,

    Fantastic How-to but I have a slightly different issues that I hope you can help with. I have bought a Dell Wireless 1510 that I want to make compatible with HP Pavilion DV6 (the chipset is compatible it just doesnt like it being Dell) I can bypass the whitelist by putting in the card AFTER to power on test so I wondered if you knew

    1) If this same process would work but with HP Subsys and vendor

    2) What the above are for a HP card?

    thanks

    D

  38. What about the cards with the newest broadcom chips (4313, 43224, 43225). Is there any solution for them yet?

  39. Just bought an ‘ersatz’ BCM94322MC off ebay – changed subp to 0×0093 and subv to 0x106b, and now my card is reported as ‘Airport Extreme’ :grin:

    That’d be a BlackBook 4,1 with AirDrop enabled then…

    Thanks to those that developed and published this technique!

  40. Forgot to mention :oops:

    I used Ubuntu live 32bit 10.04LTS

    And you absolutely MUST not use the wireless interface at any time prior to carrying out the technique (whilst booted into Ubuntu, of course). Use wired ethernet for simplicity.

  41. BCM4311.
    Just trying this with Linux 9.04 and Mint 8 and both were coming back with failed to fetch on the curl and git-core files. Downloaded Ubuntu 12.04 LTS x86 and

    sudo apt-get install curl git-core build-essential worked.

    I get to sudo git clone git://git.bu3sch.de/b43-tools.git && cd b43-tools/ssb_sprom && make

    and it says: fatal: unable to connect to git.bu3sch.de: git.bu3sch.de: name or service not known. A bit of reading later I used:

    sudo git clone git://git.bues.ch/b43-tools.git && cd b43-tools/ssb_sprom && make

    and after all that I get nothing, might try again just to see if I get something lol.

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

CommentLuv badge

Trackbacks and Pingbacks: