Jump to content

resolving the wireless network adapter identification


Guest BuildSmart
 Share

42 posts in this topic

Recommended Posts

Guest BuildSmart

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.

 

__________________________________________________________________

 

Required tools.

__________________________________________________________________

 

 Ubuntu 8.04 (hardy-heron) <-- easy install

b43-fwcutter
sudo apt-get install b43-fwcutter

ssb-sprom
wget http://linuxwireless.org/download/bcm43xx/sprom/bcm43xx-sprom.tar.bz2
tar xjf bcm43xx-sprom.tar.bz2
cd bcm43xx-sprom
make
sudo cp ssb-sprom /usr/bin/
sudo chmod 0755 /usr/sbin/ssb-sprom
sudo chown root:wheel /usr/sbin/ssb-sprom

 

__________________________________________________________________

 

Details from "terminal session".

__________________________________________________________________

 

dale@D975XBX2KR:~$ sudo find /sys/devices |grep \*sprom\*
/sys/devices/pci0000:00/0000:00:1e.0/0000:04:02.0/ssb_sprom
dale@D975XBX2KR:~$ sudo su
Password:
root@D975XBX2KR:/home/dale# cp /sys/devices/pci0000:00/0000:00:1e.0/0000:04:02.0/ssb_sprom /home/dale/Desktop/original_sprom
root@D975XBX2KR:/home/dale# ssb-sprom -i Desktop/original_sprom -P
SPROM(0x04, Subsytem product ID) = 0x12FA
SPROM(0x06, Subsystem vendor ID) = 0x103C
SPROM(0x08, PCI Product ID) = 0x4320
SPROM(0x38, High 16 bits of Boardflags) = 0x0000
SPROM(0x72, Low 16 bits of Boardflags) = 0x0A49
SPROM(0x48, MAC address for 802.11b/g) = 00:16:38:c6:71:3b
SPROM(0x4E, MAC address for ethernet) = ff:ff:ff:ff:ff:ff
SPROM(0x54, MAC address for 802.11a) = ff:ff:ff:ff:ff:ff
SPROM(0x5A, Ethernet phy settings (0)) = 0x1F
SPROM(0x5A, Ethernet phy settings (1)) = 0x1F
SPROM(0x5B, et0mdcport) = ON
SPROM(0x5B, et1mdcport) = ON
SPROM(0x5C, Board revision) = 0x34
SPROM(0x5D, Locale / Country Code) = 0x0
SPROM(0x5D, A PHY antenna 0 available) = ON
SPROM(0x5D, A PHY antenna 1 available) = ON
SPROM(0x5D, B/G PHY antenna 1 available) = OFF
SPROM(0x5D, B/G PHY antenna 1 available) = OFF
SPROM(0x74, A PHY antenna gain) = 0x02
SPROM(0x75, A PHY antenna gain) = 0xFF
SPROM(0x5E, pa0b0) = 0x1528
SPROM(0x60, pa0b1) = 0xFA97
SPROM(0x62, pa0b2) = 0xFEAC
SPROM(0x6A, pa1b0) = 0xFFFF
SPROM(0x6C, pa1b1) = 0xFFFF
SPROM(0x6E, pa1b2) = 0xFFFF
SPROM(0x64, LED 0 behaviour) = 0xFF
SPROM(0x65, LED 1 behaviour) = 0xFF
SPROM(0x66, LED 2 behaviour) = 0xFF
SPROM(0x67, LED 3 behaviour) = 0xFF
SPROM(0x68, A PHY max powerout) = 0x4C
SPROM(0x69, B/G PHY max powerout) = 0x00
SPROM(0x70, A PHY idle TSSI target) = 0x3E
SPROM(0x71, B/G PHY idle TSSI target) = 0x00
SPROM(0x7E, SPROM version) = 0x02
root@D975XBX2KR:/home/dale# ssb-sprom -i Desktop/original_sprom --subv 0x106b --subp 0x004E -o Desktop/new_sprom
root@D975XBX2KR:/home/dale# ssb-sprom -i Desktop/new_sprom -P
SPROM(0x04, Subsytem product ID) = 0x004E
SPROM(0x06, Subsystem vendor ID) = 0x106B
SPROM(0x08, PCI Product ID) = 0x4320
SPROM(0x38, High 16 bits of Boardflags) = 0x0000
SPROM(0x72, Low 16 bits of Boardflags) = 0x0A49
SPROM(0x48, MAC address for 802.11b/g) = 00:16:38:c6:71:3b
SPROM(0x4E, MAC address for ethernet) = ff:ff:ff:ff:ff:ff
SPROM(0x54, MAC address for 802.11a) = ff:ff:ff:ff:ff:ff
SPROM(0x5A, Ethernet phy settings (0)) = 0x1F
SPROM(0x5A, Ethernet phy settings (1)) = 0x1F
SPROM(0x5B, et0mdcport) = ON
SPROM(0x5B, et1mdcport) = ON
SPROM(0x5C, Board revision) = 0x34
SPROM(0x5D, Locale / Country Code) = 0x0
SPROM(0x5D, A PHY antenna 0 available) = ON
SPROM(0x5D, A PHY antenna 1 available) = ON
SPROM(0x5D, B/G PHY antenna 1 available) = OFF
SPROM(0x5D, B/G PHY antenna 1 available) = OFF
SPROM(0x74, A PHY antenna gain) = 0x02
SPROM(0x75, A PHY antenna gain) = 0xFF
SPROM(0x5E, pa0b0) = 0x1528
SPROM(0x60, pa0b1) = 0xFA97
SPROM(0x62, pa0b2) = 0xFEAC
SPROM(0x6A, pa1b0) = 0xFFFF
SPROM(0x6C, pa1b1) = 0xFFFF
SPROM(0x6E, pa1b2) = 0xFFFF
SPROM(0x64, LED 0 behaviour) = 0xFF
SPROM(0x65, LED 1 behaviour) = 0xFF
SPROM(0x66, LED 2 behaviour) = 0xFF
SPROM(0x67, LED 3 behaviour) = 0xFF
SPROM(0x68, A PHY max powerout) = 0x4C
SPROM(0x69, B/G PHY max powerout) = 0x00
SPROM(0x70, A PHY idle TSSI target) = 0x3E
SPROM(0x71, B/G PHY idle TSSI target) = 0x00
SPROM(0x7E, SPROM version) = 0x02
root@D975XBX2KR:/home/dale#  cd /sys/devices/pci0000:00/0000:00:1e.0/0000:04:02.0
root@D975XBX2KR:/sys/devices/pci0000:00/0000:00:1e.0/0000:04:02.0# cp /home/dale/Desktop/new_sprom ./ssb_sprom

 

__________________________________________________________________

 

Details from "ioreg -lw0". (Mac OS X)

__________________________________________________________________

 

	| |   |   +-o pci14e4,4320@2  <class IOPCIDevice, registered, matched, active, busy 0, retain 9>
| |   |	 | {
| |   |	 |   "IOPCIResourced" = Yes
| |   |	 |   "IOInterruptControllers" = ("io-apic-0")
| |   |	 |   "IOName" = "pci14e4,4320"
| |   |	 |   "subsystem-id" = <4E000000>
| |   |	 |   "IODeviceMemory" = (({"address"=18446744073172697088,"length"=8192}))
| |   |	 |   "class-code" = <00800200>
| |   |	 |   "IOPowerManagement" = {"ChildrenPowerState"=2,"CurrentPowerState"=2}
| |   |	 |   "revision-id" = <03000000>
| |   |	 |   "IOInterruptSpecifiers" = (<1200000007000000>)
| |   |	 |   "IOChildIndex" = 2
| |   |	 |   "assigned-addresses" = <1010048200000000004000e00000000000200000>
| |   |	 |   "device-id" = <20430000>
| |   |	 |   "vendor-id" = <e4140000>
| |   |	 |   "name" = "pci14e4,4320"
| |   |	 |   "subsystem-vendor-id" = <6b100000>
| |   |	 |   "reg" = <0010040000000000000000000000000000000000101004020000000000000000000000000020
000>
| |   |	 |   "compatible" = <"pci106b,4e","pci14e4,4320","pciclass,028000">
| |   |	 | }
| |   |	 | 
| |   |	 +-o AirPort_Brcm43xx  <class AirPort_Brcm43xx, registered, matched, active, busy 0, retain 8>
| |   |	   | {
| |   |	   |   "APCurrentChannel" = 6
| |   |	   |   "APCurrentSSID" = "Apple Network 7885c7"
| |   |	   |   "IOSelectedMedium" = "00000080"
| |   |	   |   "CFBundleIdentifier" = "com.apple.driver.AirPortBrcm43xx"
| |   |	   |   "IOVendor" = "Apple"
| |   |	   |   "IOMatchCategory" = "IODefaultMatchCategory"
| |   |	   |   "APChipRev" = 3
| |   |	   |   "APMonitorMode" = No
| |   |	   |   "IOFeatures" = 8
| |   |	   |   "IOMaxPacketSize" = 1518
| |   |	   |   "IOMinPacketSize" = 64
| |   |	   |   "IOMediumDictionary" = {"00000080"={"Type"=128,"Index"=0,"Flags"=0,"Speed"=11000000}}
| |   |	   |   "IONameMatched" = "pci14e4,4320"
| |   |	   |   "IOActiveMedium" = "00000080"
| |   |	   |   "IONameMatch" = ("pci106b,4e","pci14e4,4311","pci14e4,4312","pci14e4,4313","pci14e4,4318","pci14e4,4319","pci14e4,431a","pci14e4,4320","pci14e4,4324","pci14e4,4325","pci14e4,4328","pci14e4,432b","pci14e4,432c","pci14e4,432d")
| |   |	   |   "IOModel" = "Wireless Network Adapter (802.11 b/g)"
| |   |	   |   "IOProbeScore" = 2
| |   |	   |   "IOFirmwareVersion" = "Broadcom BCM43xx 1.0 (4.170.46.5)"
| |   |	   |   "APFeatures" = 1
| |   |	   |   "IOBusyInterest" = "IOCommand is not serializable"
| |   |	   |   "IOLinkSpeed" = 54000000
| |   |	   |   "IOPowerManagement" = {"CurrentPowerState"=2}
| |   |	   |   "IOPacketFilters" = {"IONetworkFilterGroup"=275,"IOEthernetWakeOnLANFilterGroup"=0}
| |   |	   |   "IOMACAddress" = <001638c6713b>
| |   |	   |   "IOProviderClass" = "IOPCIDevice"
| |   |	   |   "IOLinkStatus" = 3
| |   |	   |   "APRoamTrigger" = 18446744073709551525
| |   |	   |   "IOGeneralInterest" = "IOCommand is not serializable"
| |   |	   |   "IOLocale" = "USA"
| |   |	   |   "IOClass" = "AirPort_Brcm43xx"
| |   |	   | }
| |   |	   | 
| |   |	   +-o AirPort_Brcm43xxInterface  <class AirPort_Brcm43xxInterface, registered, matched, active, busy 0, retain 10>
| |   |		 | {
| |   |		 |   "IOInterfaceType" = 6
| |   |		 |   "IONetworkData" = {"IOEthernetStatsKey"={"Size"=216,"Data"=<0000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000>,"Access Types"=9},"IONetworkStatsKey"={"Size"=20,"Data"=<5b000000000000008d0000000000000000000000>,"Access Types"=9},"IOOutputQueueStatsKey"={"Size"=44,"Data"=<000100000000000000000000000000008b000000000000000000000000000000000000000000
00000000000>,"Access Types"=9}}
| |   |		 |   "IO80211SSID" = "Apple Network 7885c7"
| |   |		 |   "IOLocation" = ""
| |   |		 |   "IOMulticastAddressList" = <01005e0000fb01005e0000013333000000fb333390156bf83333000000013333ffc6713b0103
3df0b92>
| |   |		 |   "IOInterfaceNamePrefix" = "en"
| |   |		 |   "IOActivePacketFilters" = {"IONetworkFilterGroup"=19,"IOEthernetWakeOnLANFilterGroup"=0}
| |   |		 |   "IO80211Channel" = 6
| |   |		 |   "IOMediaHeaderLength" = 14
| |   |		 |   "IOMediaAddressLength" = 6
| |   |		 |   "IO80211Locale" = "FCC"
| |   |		 |   "IOPrimaryInterface" = No
| |   |		 |   "IOInterfaceFlags" = 34915
| |   |		 |   "IORequiredPacketFilters" = {"IONetworkFilterGroup"=19,"IOEthernetWakeOnLANFilterGroup"=0}
| |   |		 |   "IOInterfaceExtraFlags" = 1073744192
| |   |		 |   "IOInterfaceUnit" = 1
| |   |		 |   "IO80211DriverVersion" = "Broadcom BCM43xx 1.0 (4.170.46.5)"
| |   |		 |   "IO80211CountryCode" = "US"
| |   |		 |   "BSD Name" = "en1"
| |   |		 |   "IOMaxTransferUnit" = 1500
| |   |		 |   "IOBuiltin" = No
| |   |		 |   "IOInterfaceState" = 3
| |   |		 |   "IO80211Band" = "2 GHz"
| |   |		 |   "IO80211HardwareVersion" = "vendorid: 0x14e4
deviceid: 0x4320
radiorev: 0x22050000
chipnum: 0x4306
chiprev: 0x3
corerev: 0x5
boardid: 0x4e
boardvendor: 0x106b
boardrev: 0x34
driverrev: 0x4aa2e05
ucoderev: 0x0
bus: 0x1
"
| |   |		 |   "IOControllerEnabled" = Yes
| |   |		 | }
| |   |		 | 
| |   |		 +-o IONetworkStack  <class IONetworkStack, registered, matched, active, busy 0, retain 11>
| |   |		   | {
| |   |		   |   "IOProviderClass" = "IOResources"
| |   |		   |   "IOMatchCategory" = "IONetworkStack"
| |   |		   |   "IOProbeScore" = 0
| |   |		   |   "IOClass" = "IONetworkStack"
| |   |		   |   "CFBundleIdentifier" = "com.apple.iokit.IONetworkingFamily"
| |   |		   |   "IOResourceMatch" = "IOBSD"
| |   |		   | }
| |   |		   | 
| |   |		   +-o IONetworkStackUserClient  <class IONetworkStackUserClient, !registered, !matched, active, busy 0, retain 5>
| |   |			   {
| |   |			   }

 

__________________________________________________________________

 

Details from "System Profiler".

__________________________________________________________________

 

AirPort:

 Type:	AirPort
 Hardware:	AirPort
 BSD Device Name:	en1
 IPv4 Addresses:	192.168.1.102
 IPv4:
 Addresses:	192.168.1.102
 Configuration Method:	DHCP
 Interface Name:	en1
 NetworkSignature:	IPv4.Router=192.168.1.1;IPv4.RouterHardwareAddress=00:0f:66:ab:ea:55
 Router:	192.168.1.1
 Subnet Masks:	255.255.255.0
 IPv6:
 Configuration Method:	Automatic
 DNS:
 Server Addresses:	65.32.1.65, 65.32.1.70
 DHCP Server Responses:
 Domain Name Servers:	65.32.1.65,65.32.1.70
 Lease Duration (seconds):	0
 DHCP Message Type:	0x05
 Routers:	192.168.1.1
 Server Identifier:	192.168.1.1
 Subnet Mask:	255.255.255.0
 Proxies:
 Exceptions List:	*.local, 169.254/16
 FTP Passive Mode:	Yes
 Ethernet:
 MAC Address:	00:16:38:c6:71:3b
 Media Options:	
 Media Subtype:	Auto Select

 

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_sprom
    bcm4318_sprom
    ssb-sprom

bcm43xx-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.1

NOTES:

 

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:

  • bcm4306
    bcm4309
    bcm4311
    bcm4318
    bcm4321 (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

broadcom.tar.gz

bcm43xx_tools.zip

Link to comment
Share on other sites

Guest BuildSmart
Any trick to RTL 8187 Wireless? :)

 

Thx 4 ur hard job.

 

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.

Link to comment
Share on other sites

Guest BuildSmart
So how do I run this in Terminal?

 

 

The application I supplied allows you to examine and change the identification information of the sprom data file.

./ssb-sprom -i bcm4306_sprom -P; # View original file
./ssb-sprom -i bcm4306_sprom -P --subv 0x106b --subp 0x004e -o new_sprom; # change the subsys ID's
./ssb-sprom -i new_sprom -P; # View modified file

 

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.

Link to comment
Share on other sites

Guest BuildSmart
I think he means an OSX Terminal window :dev:;):D I could be wrong, but I doubt it.

And I gave him the commands to change the ID's in the file but he has to first generate a file form his card, modify it then re-flash it back to the card.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

Guest BuildSmart
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.

Link to comment
Share on other sites

  • 4 weeks later...

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.

Link to comment
Share on other sites

Guest BuildSmart
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.

Link to comment
Share on other sites

Guest BuildSmart
Will the miniPCI bcm4311 that you're selling work on a HP notebook for e.g 6510b?

If so, how much does it cost?

 

Thanks.

Someone's selling the bcm4311 in this thread???
Link to comment
Share on other sites

  • 3 weeks later...
Guest BuildSmart
What are possible values for SPROM(0x5D, Locale / Country Code) = 0x0? For Worldwide.
If your asking here then you shouldn't mess with it, it's beyond your skill level and my patience to educate you on it.
Link to comment
Share on other sites

Guest BuildSmart
As always no real answer from you.
I'm sorry but I don't have time to educate anyone on anything, ask a real question, get a real answer, want to be educated, use google.

 

Answer to your question:

0x0
0x1
0x2
0x3
0x4
0x5
0x6
0x7
0x8
0x9
0xa
0xb
0xc
0xd
0xe
0xf

Invalid values:

0x00
0x01
0x02
0x03
0x04
0x05
0x06
0x07
0x08
0x09
0x0a
0x0b
0x0c
0x0d
0x0e
0x0f
0x10
0x11
0x12
0x13
0x14
0x15
0x16
0x17
0x18
0x19
0x1a
0x1b
0x1c
0x1d
0x1e
0x1f
0x20
0x21
0x22
0x23
0x24
0x25
0x26
0x27
0x28
0x29
0x2a
0x2b
0x2c
0x2d
0x2e
0x2f
0x30
0x31
0x32
0x33
0x34
0x35
0x36
0x37
0x38
0x39
0x3a
0x3b
0x3c
0x3d
0x3e
0x3f
0x40
0x41
0x42
0x43
0x44
0x45
0x46
0x47
0x48
0x49
0x4a
0x4b
0x4c
0x4d
0x4e
0x4f
0x50
0x51
0x52
0x53
0x54
0x55
0x56
0x57
0x58
0x59
0x5a
0x5b
0x5c
0x5d
0x5e
0x5f
0x60
0x61
0x62
0x63
0x64
0x65
0x66
0x67
0x68
0x69
0x6a
0x6b
0x6c
0x6d
0x6e
0x6f
0x70
0x71
0x72
0x73
0x74
0x75
0x76
0x77
0x78
0x79
0x7a
0x7b
0x7c
0x7d
0x7e
0x7f
0x80
0x81
0x82
0x83
0x84
0x85
0x86
0x87
0x88
0x89
0x8a
0x8b
0x8c
0x8d
0x8e
0x8f
0x90
0x91
0x92
0x93
0x94
0x95
0x96
0x97
0x98
0x99
0x9a
0x9b
0x9c
0x9d
0x9e
0x9f
0xa0
0xa1
0xa2
0xa3
0xa4
0xa5
0xa6
0xa7
0xa8
0xa9
0xaa
0xab
0xac
0xad
0xae
0xaf
0xb0
0xb1
0xb2
0xb3
0xb4
0xb5
0xb6
0xb7
0xb8
0xb9
0xba
0xbb
0xbc
0xbd
0xbe
0xbf
0xc0
0xc1
0xc2
0xc3
0xc4
0xc5
0xc6
0xc7
0xc8
0xc9
0xca
0xcb
0xcc
0xcd
0xce
0xcf
0xd0
0xd1
0xd2
0xd3
0xd4
0xd5
0xd6
0xd7
0xd8
0xd9
0xda
0xdb
0xdc
0xdd
0xde
0xdf
0xe0
0xe1
0xe2
0xe3
0xe4
0xe5
0xe6
0xe7
0xe8
0xe9
0xea
0xeb
0xec
0xed
0xee
0xef
0xf0
0xf1
0xf2
0xf3
0xf4
0xf5
0xf6
0xf7
0xf8
0xf9
0xfa
0xfb
0xfc
0xfd
0xfe
0xff

An explanation to the values can be found using google or reading the documentation.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

Guest BuildSmart
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.

Link to comment
Share on other sites

Thanks for your info. But regdomain should be 0x37 (ETSI1). That one is set in EEPROM which was 0x00 before. But the country code is different. What I'm trying to do is to set it to 276 which is actually done by the kernel (?)(seen a lot of dmesgs out there). What is this locale your're talking about? I know, in the end I should have IOLocale set accordingly in ioreg, is there a way to set it manually? (atm it comes up as 'Unknown'.

I suppose, my transmission power is to weak right now, that's why I'm trying to set the locale.

 

thx

Link to comment
Share on other sites

Guest BuildSmart
Thanks for your info. But regdomain should be 0x37 (ETSI1). That one is set in EEPROM which was 0x00 before. But the country code is different. What I'm trying to do is to set it to 276 which is actually done by the kernel (?)(seen a lot of dmesgs out there). What is this locale your're talking about? I know, in the end I should have IOLocale set accordingly in ioreg, is there a way to set it manually? (atm it comes up as 'Unknown'.

I suppose, my transmission power is to weak right now, that's why I'm trying to set the locale.

 

thx

Locale, Country Code and regdomain are 3 different things and do not affect the transmission power.

 

If regdomain is 0x37 then set it to 0x37, locale is a 0x0 to 0xf value and Country Code is a 0x0000 to 0x0fff value.

 

Again, a guess for your Locale is 9 or A, C is Asia Pacific and is usually what all European cards are preset to as a factory default.

 

If you don't understand what any of this means configure your AP for channel 13 and see if your card detects it, if it does then your locale is being set by the driver and doesn't need to be set in the card.

 

If you need further information then start by reading as much of the wifi and wifi RFC documentation you can find until you understand.

Link to comment
Share on other sites

Excuse me, BuildSmart?

Quote: 'The countrycode and regdomain settings control the channels the card can operate on, as well as maximum transmission power, whether active scanning can be used, where and how ad-hoc mode can be used and also whether DFS and TPC (802.11h) support is required.' (Madwifi.org)

 

But never mind

Link to comment
Share on other sites

Hi BuildSmart and thank you for your hard work.

 

My question is has anyone tried this method with a Linksys WUSB54GS? I cannot for the life of me find a solution for getting it to work. I am running LawlessPPC 10.5.4 and this is the one thing that has tainted my install.

 

I tried running the older Broadcom enabler script and it didn't work either. The chipset in the adapter is supposedly a BCM4320SKFBG

Link to comment
Share on other sites

Guest BuildSmart
Hi BuildSmart and thank you for your hard work.

 

My question is has anyone tried this method with a Linksys WUSB54GS? I cannot for the life of me find a solution for getting it to work. I am running LawlessPPC 10.5.4 and this is the one thing that has tainted my install.

 

I tried running the older Broadcom enabler script and it didn't work either. The chipset in the adapter is supposedly a BCM4320SKFBG

What is LawlessPPC, you mention it like everyone should know what it is???

 

What exactly are you trying to do???

 

What machine is this running on???

 

Have you confirmed the device you have is Broadcom based???

 

Are you using a Broadcom USB wireless driver???

 

Is the driver architecture the same as the machines architecture???

 

Because you provide no real information it's hard to help you.

 

Going the USB route as you are finding is not an easy task, you will never obtain the functionality you want unless it's only the ability to connect to an AP, AirPort functionality is never going to be a possibility and full TC compatibility is non-existent.

Link to comment
Share on other sites

 Share

×
×
  • Create New...