Contribute
Register

Rebranding BCM94322MC based on prasys guide. What device id?

Status
Not open for further replies.
deckert said:
Here is another url, I just tried it and it worked: git://git.bues.ch/b43-tools.git

That link worked :)

I'm at another stumbling block now, when I enter:

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

echo $SSB_SPROM

I get a blank line, no /sys/device/pci/numbers/ssb_sprom, the card is recognised by Ubuntu.

A quick google brought up this site - http://english.journaldulapin.com/2012/01/09/turning-a-wi-fi-card-into-airport-extreme-card/

If it is empty, then the card is not recognized by the b43 driver and you must try to fix it (if possible) to continue.

So... how do I fix it?

The card is a BCM94321MC.
 
superandy07 said:
I'm at another stumbling block now, when I enter:

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

echo $SSB_SPROM

I get a blank line, no /sys/device/pci/numbers/ssb_sprom, the card is recognised by Ubuntu.

A quick google brought up this site - http://english.journaldulapin.com/2012/01/09/turning-a-wi-fi-card-into-airport-extreme-card/

So... how do I fix it?

The card is a BCM94321MC.

I had the same problem when I did my card as well. Mine is also a BCM94321.
I'll try to go through how I got mine to work.

1. After booting into Linux open a terminal and runn the following
Code:
sudo -s <enter>
lspci | grep Broadcom <enter>
If you have an installed linux system you will be prompted for a password after the first command, enter your root password and proceed with the second command. This simply removes the need for you to put sudo at the start of each command as you are now using the root account in the terminal.

to find your wireless device, mine is listed as - 03:00.0 Network controller: Broadcom Corporation BCM4321 802.11a/b/g/n (rev 01)
take note of the numbers at the start

2. Check the directory for this device to see if ssb_sprom exists
Code:
ls /sys/devices/pci0000\:00/0000\:00\:1c.1/0000\:03\:00.0/
replace the last five digits (03\:00.0) with the numbers from the first step, most likely only one number will be different. The slashes (\) before the colons are needed to "escape" them as they are "special" characters, so don't delete them. Here is mine:
Code:
root@ubuntu:~# ls -l /sys/devices/pci0000\:00/0000\:00\:1c.1/0000\:03\:00.0/
total 0
-rw-r--r-- 1 root root    4096 2012-03-02 12:34 broken_parity_status
-r--r--r-- 1 root root    4096 2012-03-02 12:31 class
-rw-r--r-- 1 root root    4096 2012-03-02 12:31 config
-r--r--r-- 1 root root    4096 2012-03-02 12:34 consistent_dma_mask_bits
-r--r--r-- 1 root root    4096 2012-03-02 12:31 device
-r--r--r-- 1 root root    4096 2012-03-02 12:34 dma_mask_bits
lrwxrwxrwx 1 root root       0 2012-03-02 13:18 driver -> ../../../../bus/pci/drivers/wl
-rw------- 1 root root    4096 2012-03-02 12:34 enable
-r--r--r-- 1 root root    4096 2012-03-02 12:31 irq
-r--r--r-- 1 root root    4096 2012-03-02 12:34 local_cpulist
-r--r--r-- 1 root root    4096 2012-03-02 12:31 local_cpus
-r--r--r-- 1 root root    4096 2012-03-02 12:34 modalias
-rw-r--r-- 1 root root    4096 2012-03-02 12:34 msi_bus
drwxr-xr-x 3 root root       0 2012-03-02 13:18 net
-r--r--r-- 1 root root    4096 2012-03-02 12:34 numa_node
drwxr-xr-x 2 root root       0 2012-03-02 12:34 power
--w--w---- 1 root root    4096 2012-03-02 12:34 remove
--w--w---- 1 root root    4096 2012-03-02 12:34 rescan
--w------- 1 root root    4096 2012-03-02 12:34 reset
-r--r--r-- 1 root root    4096 2012-03-02 12:31 resource
-rw------- 1 root root   16384 2012-03-02 12:34 resource0
-rw------- 1 root root 1048576 2012-03-02 12:34 resource2
-rw------- 1 root root 1048576 2012-03-02 12:34 resource2_wc
lrwxrwxrwx 1 root root       0 2012-03-02 12:31 subsystem -> ../../../../bus/pci
-r--r--r-- 1 root root    4096 2012-03-02 12:34 subsystem_device
-r--r--r-- 1 root root    4096 2012-03-02 12:34 subsystem_vendor
-rw-r--r-- 1 root root    4096 2012-03-02 12:31 uevent
-r--r--r-- 1 root root    4096 2012-03-02 12:31 vendor

This is likely due to there being another driver for these cards in later versions of the linux kernel (I'm using an Ubuntu 11.04 live CD, the guide is written using Ubuntu 9.10)

3. Unload the newer driver and load the b43 driver instead
Code:
modprobe -r wl
modprobe b43
dmesg | tail -n 50 | grep ssb

The first line unloads the newer driver and any modules that depend on it being loaded, the second line loads the b43 driver and any of its dependencies, the last line looks through the last 50 lines from the kernel ring buffer (think of this as the systems log) for the string "ssb"
mine outputs:
Code:
[  969.969043] ssb: Core 0 found: ChipCommon (cc 0x800, rev 0x12, vendor 0x4243)
[  969.969059] ssb: Core 1 found: IEEE 802.11 (cc 0x812, rev 0x0B, vendor 0x4243)
[  969.969074] ssb: Core 2 found: PCI-E (cc 0x820, rev 0x02, vendor 0x4243)
[  969.969094] ssb: Core 3 found: PCI (cc 0x804, rev 0x0D, vendor 0x4243)
[  969.969102] ssb: Core 4 found: USB 1.1 Host (cc 0x817, rev 0x04, vendor 0x4243)
[  970.048807] ssb: Sonics Silicon Backplane found on PCI device 0000:03:00.0

4. rerun the command from step 2 and ssb_sprom should now be there:
Code:
root@ubuntu:~# ls -l /sys/devices/pci0000\:00/0000\:00\:1c.1/0000\:03\:00.0/
total 0
-rw-r--r-- 1 root root    4096 2012-03-02 12:34 broken_parity_status
-r--r--r-- 1 root root    4096 2012-03-02 12:31 class
-rw-r--r-- 1 root root    4096 2012-03-02 12:31 config
-r--r--r-- 1 root root    4096 2012-03-02 12:34 consistent_dma_mask_bits
-r--r--r-- 1 root root    4096 2012-03-02 12:31 device
-r--r--r-- 1 root root    4096 2012-03-02 12:34 dma_mask_bits
lrwxrwxrwx 1 root root       0 2012-03-02 12:47 driver -> ../../../../bus/pci/drivers/b43-pci-bridge
-rw------- 1 root root    4096 2012-03-02 12:34 enable
-r--r--r-- 1 root root    4096 2012-03-02 12:31 irq
-r--r--r-- 1 root root    4096 2012-03-02 12:34 local_cpulist
-r--r--r-- 1 root root    4096 2012-03-02 12:31 local_cpus
-r--r--r-- 1 root root    4096 2012-03-02 12:34 modalias
-rw-r--r-- 1 root root    4096 2012-03-02 12:34 msi_bus
-r--r--r-- 1 root root    4096 2012-03-02 12:34 numa_node
drwxr-xr-x 2 root root       0 2012-03-02 12:34 power
--w--w---- 1 root root    4096 2012-03-02 12:34 remove
--w--w---- 1 root root    4096 2012-03-02 12:34 rescan
--w------- 1 root root    4096 2012-03-02 12:34 reset
-r--r--r-- 1 root root    4096 2012-03-02 12:31 resource
-rw------- 1 root root   16384 2012-03-02 12:34 resource0
-rw------- 1 root root 1048576 2012-03-02 12:34 resource2
-rw------- 1 root root 1048576 2012-03-02 12:34 resource2_wc
drwxr-xr-x 6 root root       0 2012-03-02 12:47 ssb0:0
drwxr-xr-x 3 root root       0 2012-03-02 12:47 ssb0:1
-rw------- 1 root root    4096 2012-03-02 12:47 ssb_sprom
lrwxrwxrwx 1 root root       0 2012-03-02 12:31 subsystem -> ../../../../bus/pci
-r--r--r-- 1 root root    4096 2012-03-02 12:34 subsystem_device
-r--r--r-- 1 root root    4096 2012-03-02 12:34 subsystem_vendor
-rw-r--r-- 1 root root    4096 2012-03-02 12:31 uevent
-r--r--r-- 1 root root    4096 2012-03-02 12:31 vendor


You should now be able to set the $SSB_SPROM variable via the command SSB_SPROM=$(find /sys/devices -name ssb_sprom)

Code:
root@ubuntu:~# SSB_SPROM=$(find /sys/devices -name ssb_sprom)
root@ubuntu:~# echo $SSB_SPROM
/sys/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/ssb_sprom
 
deckert said:
I had the same problem when I did my card as well. Mine is also a BCM94321.
I'll try to go through how I got mine to work.

What a stunning reply, thank you so much!

This is how far I got this time:

Code:
andy@andy-H61M-S2V-B3:~$ sudo -s
[sudo] password for andy: 
root@andy-H61M-S2V-B3:~# lspci | grep Broadcom
02:00.0 Network controller: Broadcom Corporation BCM4312 802.11b/g LP-PHY (rev 01)
root@andy-H61M-S2V-B3:~# ls /sys/devices/pci0000\:00/0000\:00\:1c.0/0000\:02\:00.0/
broken_parity_status      dma_mask_bits  local_cpus  remove     subsystem
class                     driver         modalias    rescan     subsystem_device
config                    enable         msi_bus     reset      subsystem_vendor
consistent_dma_mask_bits  irq            net         resource   uevent
device                    local_cpulist  power       resource0  vendor
root@andy-H61M-S2V-B3:~# modprobe -r w1
FATAL: Module w1 not found.
root@andy-H61M-S2V-B3:~# modprobe b43
root@andy-H61M-S2V-B3:~# dmesg | tail -n 50 | grep ssb
root@andy-H61M-S2V-B3:~# ls /sys/devices/pci0000\:00/0000\:00\:1c.0/0000\:02\:00.0/
broken_parity_status      dma_mask_bits  local_cpus  remove     subsystem
class                     driver         modalias    rescan     subsystem_device
config                    enable         msi_bus     reset      subsystem_vendor
consistent_dma_mask_bits  irq            net         resource   uevent
device                    local_cpulist  power       resource0  vendor
root@andy-H61M-S2V-B3:~# SSB_SPROM=$(find /sys/devices -name ssb_sprom)
root@andy-H61M-S2V-B3:~# echo $SSB_SPROM

root@andy-H61M-S2V-B3:~#

Still getting a blank line :(
 
superandy07 said:
What a stunning reply, thank you so much!

This is how far I got this time:

Code:
andy@andy-H61M-S2V-B3:~$ sudo -s
[sudo] password for andy: 
root@andy-H61M-S2V-B3:~# lspci | grep Broadcom
02:00.0 Network controller: Broadcom Corporation BCM4312 802.11b/g LP-PHY (rev 01)
root@andy-H61M-S2V-B3:~# ls /sys/devices/pci0000\:00/0000\:00\:1c.0/0000\:02\:00.0/
broken_parity_status      dma_mask_bits  local_cpus  remove     subsystem
class                     driver         modalias    rescan     subsystem_device
config                    enable         msi_bus     reset      subsystem_vendor
consistent_dma_mask_bits  irq            net         resource   uevent
device                    local_cpulist  power       resource0  vendor
root@andy-H61M-S2V-B3:~# modprobe -r w1
FATAL: Module w1 not found.
root@andy-H61M-S2V-B3:~# modprobe b43
root@andy-H61M-S2V-B3:~# dmesg | tail -n 50 | grep ssb
root@andy-H61M-S2V-B3:~# ls /sys/devices/pci0000\:00/0000\:00\:1c.0/0000\:02\:00.0/
broken_parity_status      dma_mask_bits  local_cpus  remove     subsystem
class                     driver         modalias    rescan     subsystem_device
config                    enable         msi_bus     reset      subsystem_vendor
consistent_dma_mask_bits  irq            net         resource   uevent
device                    local_cpulist  power       resource0  vendor
root@andy-H61M-S2V-B3:~# SSB_SPROM=$(find /sys/devices -name ssb_sprom)
root@andy-H61M-S2V-B3:~# echo $SSB_SPROM

root@andy-H61M-S2V-B3:~#

Still getting a blank line :(

Two things
1. BCM4312 802.11b/g - your card uses a different chipset to mine
2. modprobe -r w1 - this should be wl(lowercase L) not w1(one) so this may be the issue rather than the different chipset (4321 vs 4312)

also, found this on another site to do with the rebranding process:

Card compatibility list:
Model Number Original Product ID / Vendor ID Patch Result
BCM4311, revision 01 Product: 0×1364 / Vendor: 0x103C Vendor: 0x106B / Product: 0×0087 Ok
BCM4311, revision 02 Product: 0×1375 / Vendor: 0x103C Vendor: 0x106B / Product: 0×0087 Ok
BCM4312, revision 01 Product: 0×0007 / Vendor: 0×1028 Vendor: 0x106B / Product: 0x004E Ok
BCM4321, revision 03 Product: 0×1028 / Vendor: 0×0226 Vendor: 0x106B / Product: 0x008C Ok
BCM4321 802.11a/b/g/n (rev 03) Product: 0x000A / Vendor: 0×1028 Vendor: 0x106B / Product: 0x008B Ok
BCM4322 802.11a/b/g/n (rev 01) Product: 0×1380 / Vendor: 0x103C Vendor: 0x106B / Product: 0×0093 Ok

in case you need the correct product and vendor IDs for the bcm4312
 
deckert said:
Two things
1. BCM4312 802.11b/g - your card uses a different chipset to mine
2. modprobe -r w1 - this should be wl(lowercase L) not w1(one) so this may be the issue rather than the different chipset (4321 vs 4312)

I'm such an idiot, I've been had by the guy who sold me the card.

Anyway I think it's now working, it's coming up in System Report, but it won't turn on in the Network Preference pane.

Wi0by.png
 
superandy07 said:
Anyway I think it's now working, it's coming up in System Report, but it won't turn on in the Network Preference pane.

Does anything happen when you click the Turn Wi-fi On button?
Can you post a screenshot of the Wi-Fi section of the system report?
 
deckert said:
Does anything happen when you click the Turn Wi-fi On button?
Can you post a screenshot of the Wi-Fi section of the system report?

I managed to get a refund from the seller on eBay, I decided to go with this instead -

dN0LQ.jpg


The only problem is performance is a bit flakey, I have the exact same card in my Macbook, so I can only assume it is antennas on the PCI card. I have one similar below -

acNMC.jpg


I was wondering if something like this would improve the performance -

http://www.ebay.co.uk/itm/300682215238
 
Hi there

Just wanted to say THANKS's

I got two of those Broadcom 43xx and rebranded them tonight with your help

Thanks very much
 
rebrand wifi.pngBCM94322MC rebranded successfully on Lion 10.7.4 with Ubuntu 12-04 Live CD! Great work, guys, thanks you all!
 

Attachments

  • rebrand wifi.png
    rebrand wifi.png
    153.5 KB · Views: 437
deckert said:
You should now be able to set the $SSB_SPROM variable via the command SSB_SPROM=$(find /sys/devices -name ssb_sprom)
Trying to rebrand this card:
03:00.0 Network controller [0280]: Broadcom Corporation BCM43224 802.11a/b/g/n [14e4:4353] (rev 01)
Subsystem: Hewlett-Packard Company WMIB-275N Half-size Mini PCIe Card [103c:1509]

Get to:
root@ubuntu:~/b43-tools/ssb_sprom# echo $SSB_SPROM

root@ubuntu:~/b43-tools/ssb_sprom#

Tried
root@ubuntu:~# ls /sys/devices/pci0000\:00/0000\:00\:1c.1/0000\:03\:00.0/
ls: cannot access /sys/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/: No such file or directory

Can't get the table to load. Any suggestions?

I'm on Ubuntu 12.04.

This card works on my mbp with Product: 0×0093.
Shows supported at http://linuxwireless.org/en/users/Drivers/b43#relatedtools
 
Status
Not open for further replies.
Back
Top