resolving the wireless network adapter identification

Guest: BuildSmart_*

Posted 09 June 2008 - 09:42 AM

Guest: BuildSmart_*

Guests

I looked at the posts about fixing the dell / hp wireless cards and thought wouldn't it be nice to use the same approach for broadcom 54g cards and turning them into Airport Extreme cards but all that work using bcm43xx was far too taxing on my nerves so I looked for a simpler and easier solution and I found it.

I didn't have an Airport card to obtain the firmware from so my alternative was to use the cards existing firmware and modify the ID's so that it would be recognized properly.

I also didn't have a laptop which used the miniPCI card but I did have a PCI to miniPCI adapter and figured this was just as good.

Currently the only restriction is the broadcom chipsets and ID's that are currently supported, as time progresses this will expand to include some of the faster (11n) cards.

Well now that this proved to be a success I thought I'd try doing the same with a LinkSYS WMP54GS (it's Broadcom chipset based) this afternoon since I had time on my hands.

I figured that I'd use the same ID's even though the card was a regular PCI slot card and uses the BCM4306 chip but if I came across a BCM4318 chipped card I would use "0x4318 / 0x106b / 0x4318" productid, subsys_vendor and subsys_product since it would more closely match the actual hardware.

Worked like a charm, now the LinkSYS WMP54GS PCI card thinks it's an Airport Extreme.

I used the same firmware file on the card since it was a lot newer than what came in the LinkSYS card and I've attached it so you can just copy the file over.

I will make one recommendation, cd to the directory containg the ssb_sprom file (copying with : in the path names sometimes causes problems).

I've attached the firmware file for both BCM4306 and BCM4318 cards and the ssb-sprom app, just copy ssb-sprom to /usr/sbin in your ubuntu-hardy installation and you should be good to go.

The card will still continue to function and work in Linux and Windows.

For Windows you may need to edit the bcmwl5.inf file, this requires changing the "&SUBSYS_xxxxxxxx" ID to "&SUBSYS_004E106B" and commenting out the "CatalogFile" line and that should be the only thing required to make the card work again in Windows.

I've included the basic linux tools for Mac OS X (Intel) so you can poke around without loading a Live CD or installing Linux.

The following attachment includes the following files:broadcom.tar.gz:bcm4306_sprombcm4318_spromssb-sprombcm43xx-tools:(Installer)/usr/bin/b43-asm/usr/bin/b43-asm.bin/usr/bin/b43-dasm/usr/bin/b43-fwcutter/usr/bin/b43-fwcutterdf/usr/bin/bcm43xx-fwcutter/usr/bin/bcm43xx-ival/usr/bin/bcm43xx-sprom/usr/bin/sprommod.sh/usr/bin/ssb-sprom/usr/share/man/man1/b43-fwcutter.1/usr/share/man/man1/bcm43xx-fwcutter.1NOTES:

The ssb-sprom application is an Mac intel 10.5.x application that is executed from within the terminal application.

The two example sprom files are for you to examine and familiarize your self with the ssb-sprom application, flashing these files to your cards is not recommended, if you do so then all cards flashed with these sprom files will contain the same MAC address which will cause network problems.

The ssb-sprom application only currentlys work on the 11a/b/g Broadcom based wireless cards and adapters due to the lack of N-PHY reverse engineering but the linux development group is working on resolving this issue.

I do have a modified version of the ssb-sprom application that has the ability to modify the sprom data found on the 11n Broadcom cards and adapters but until the linux development group is able to natively support the card it will not be possible to read or write the sprom data to these cards using the linux method.

If performing this task is scary or you wish to risk bricking your card I would be more than happy to perform the flash for you for a fee of $7.95.

I have the ability to perform this process on the following Broadcom cards and adapters at this time:miniPCI:bcm4306bcm4309bcm4311bcm4318bcm4321 (11n)PCI: (at this time I have not found a card I can't repgrogram)WMP54GS (LinkSYS)WMP54G (LinkSYS Broadcom version)WMP300G (LinkSYS 11n)WLI-PCI-G300N (Buffalo Technology 11n)Dynex (all Broadcom based adapters)EDUP (PCI - miniPCI w/Broadcom miniPCI card)TP-Link (all Broadcom based cards)PCIe (PCI-Express):I have only come accros 1 card so far in PCIe)[link]DW-556 (D-Link Broadcom version)miniPCIe:I currently do not have the ability to reprogram these cards due to the cost of the PCIe x1 to miniPCIe x1 adapter however should the demand justify the cost I will provide the service for these cards as well.I will be selling miniPCI and PCI adapters that will be available in 11g and 11n and each PCI adapter will be available for regular or low-profile cases.

The miniPCI cards will be the 11g version until such time that I can find a mainland supplier of the adapters.

Cost will depend on the card of choice and price ranges from $15.00 to $60.00

Guest: BuildSmart_*

Posted 12 June 2008 - 09:28 PM

Yes, same as RTL8185L, I did one a couple months back, took software for the RTL8185L, made some edits to the info.plist.

It was some tiny cheap Taiwan card that came with Mac drivers.

I'm able to also re-ID the Atheros based cards although the solution is a self written Mac application, the option for a do-it-yourself is unavailable AFAIK cause I couldn't find a solution that worked or had any kind of reliability and the high risk of bricking a card isn't a pretty thought when the solution I did find had a terrible success rate.

I'm in the midst of making a couple of plug'n'play broadcom wireless PCI cards that will be available with regular and low-profile (SFF) brackets.

The 11g card will configured as an Airport Extreme 2 and the 11n will be configured identical to the apple 11n Broadcom card.

Typical cost for the 11g card will be around $15.00 for miniPCI, around $30.00 for PCI and the 11n PCI card will be around $60.00 (less if I can make a larger than 100 peice production run - I'm OEM'ing the card to apple specifications but in PCI configuration) and I'm also having made a nice PCI to minPCI wireless adapter including antenna for $20.00 so you can make use of a miniPCI wifi card you already have.

My goal/interest is to make an inexpensive wifi solution that will suit just about every need.

NOTE: the ssb-sprom application modifies the disk file, it does not modify your card, the supplied sprom files are for examination and experimentation while you familiarize yourself with the ssb-sprom application, it is not recommended that you flash these files to your miniPCI card.

You will also find that you are unable to do any of the 11n cards because linux does not yet have a native driver that allows writing the sprom on these cards due to the lack of reverse engineering of the N-PHY.

Guest: BuildSmart_*

Posted 24 June 2008 - 06:25 AM

Do you know if this process will work on a Broadcom 4301 chipset, which by the way I haven't got to work by editing the Info.plist, doing so results in a nasty kernel panic.

...

Never mind, this card is terrible in all senses of the word. Can't hold a decent connection to anything in any OS.

The BCM4301 requires more than just ID modification, you need to tweak the transmit and receive gains but the card has issues with WPA even after all that and is not a good choice for use unless you're desperate or it's an emergency backup in my opinion.

Posted 19 July 2008 - 03:42 AM

BigPimpin

InsanelyMac Legend

Members

557 posts

Location:North Slope

Thanks for the procedure, BuildSmart! I finally got around to trying this on a BCM4306 miniPCI card I picked up on ebay for less than 10 USD. A very simple procedure* and it worked like a charm. I understand that Apple's vendor id is 0x106b, but what does device 0x004e correspond to in Apple's AirPort hardware lineup? Is that used for all their b/g adapters?

* It was a simple procedure once I updated my Fedora 8 kernel to a version high enough to support the ssb driver. That part was a nightmare and took 2 days. Once done, however, the rest was a piece of cake. It would have been much easier to just use a LiveCD with a recent kernel already on it.

Guest: BuildSmart_*

Posted 20 July 2008 - 07:42 AM

Guest: BuildSmart_*

Guests

Thanks for the procedure, BuildSmart! I finally got around to trying this on a BCM4306 miniPCI card I picked up on ebay for less than 10 USD. A very simple procedure* and it worked like a charm. I understand that Apple's vendor id is 0x106b, but what does device 0x004e correspond to in Apple's AirPort hardware lineup? Is that used for all their b/g adapters?

* It was a simple procedure once I updated my Fedora 8 kernel to a version high enough to support the ssb driver. That part was a nightmare and took 2 days. Once done, however, the rest was a piece of cake. It would have been much easier to just use a LiveCD with a recent kernel already on it.

Really, I used a Ubuntu CD and did it without installing on any HD's.

The ID's correspond to the chipset of the cards, 004e is for a b/g adapter. if you have a card that supports a/b/g then use 0087 (or is that 0086).

Dell's DW1450/DW1470 were good candidates in miniPCI and DW1490 is the miniPCIe which I've had good luck with.

Posted 11 August 2008 - 11:18 PM

eberts

InsanelyMac Geek

Members

138 posts

Ok, got another question. What if I can't set the country code in my atheros based card (WG311T, 0013/168c)? I set the regdomain to different values (37 etsi1 for germany) but there's no chance to have os x setting the country code to 276 (DE). With madwifi it says it's been overridden manually by attaching country code to ath_pci. Did you find any way to do something similar in os x?
(btw, subsystem is set to 0086 106b and pci class is set to 280 now, was 200 before)

Guest: BuildSmart_*

Posted 11 August 2008 - 11:55 PM

Guest: BuildSmart_*

Guests

Ok, got another question. What if I can't set the country code in my atheros based card (WG311T, 0013/168c)? I set the regdomain to different values (37 etsi1 for germany) but there's no chance to have os x setting the country code to 276 (DE). With madwifi it says it's been overridden manually by attaching country code to ath_pci. Did you find any way to do something similar in os x?(btw, subsystem is set to 0086 106b and pci class is set to 280 now, was 200 before)

Cheers

There really is no reason you need to change the Locale/Country Code since the driver does compensate for it and setting the regdomain (Regulatory Domain) has little effect unless you need to make use of special channels.

If your device does not support 802.11a/b/g you should not set it to 0x0086, an 802.11b/g device uses 0x004e

The listings for Locale/Country Code are not the same as the regdomain, Locale is 0 to f, any value greater than f is invalid, looking at the info I think you want 9 or A, C would be Asia Pacific (so you understand that they are different from the regdomain which would be 0x276).

I started with the madwifi tools in my search to improve a cards compatibility and performance but have since moved to a private OS X solution that allows me to do so much more to a card from a GUI because I am having cards made by Atheros as an OEM so I really can't be of any help with using the madwifi tools anymore and the private software is not available for public use.