# Broadcom Corporation BCM4306 802.11b/g rev02 [SOLVED]

## HeXiLeD

I am trying to troubleshoot this wireless pci card and right know i seem to have encountered a problem both on the system and live cd.

```
0b:00.0 Network controller: Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller (rev 02)
```

```
0b:00.0 Network controller: Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller (rev 02)

        Subsystem: Linksys WMP54G v1 802.11g PCI Adapter

        Kernel driver in use: b43-pci-bridge

        Kernel modules: ssb

```

```
b43legacy             101570  0

mac80211              194203  1 b43legacy

cfg80211              152414  2 b43legacy,mac80211

ssb                    36527  1 b43legacy
```

```
# iwconfig

eth3      no wireless extensions.

lo        no wireless extensions.

eth2      no wireless extensions.

usb0      no wireless extensions.

tunl0     no wireless extensions.

eth1      no wireless extensions.

wlan0     IEEE 802.11bg  ESSID:off/any

          Mode:Managed  Access Point: Not-Associated   Tx-Power=0 dBm

          Retry  long limit:7   RTS thr:off   Fragment thr:off

          Encryption key:off

          Power Management:on

eth0      no wireless extensions.
```

From linux wirelesss support we can see:

```
14e4:4320 - (b43legacy) - BCM4306/2 

14e4:4320 - BCM4306/3
```

I tried to compile my kernel (always the latest) with several support combinations. The current one seems to be most semi functional for wireless support: all confs.

However some errors still persist:

```
 # iwlist wlan0 scan 

wlan0     Interface doesn't support scanning : Network is down

# ifconfig wlan0 up

SIOCSIFFLAGS: No such file or directory
```

The live cd i used complains about the same error. I also get the information that i need the net-wireless/b43-fwcutter firmware installed.

I tried 3 firmware packages:

```
*  net-wireless/b43-firmware

      Latest version available: 4.174.64.19

      Latest version installed: 4.174.64.19

      Size of files: 5,846 kB

      Homepage:      http://linuxwireless.org/en/users/Drivers/b43

      Description:   broadcom firmware for b43 LP PHY and >=linux-2.6.32

      License:       as-is

*  net-wireless/b43-fwcutter

      Latest version available: 015

      Latest version installed: 015

      Size of files: 17 kB

      Homepage:      http://bu3sch.de/b43/fwcutter

      Description:   Firmware Tool for Broadcom 43xx based wireless network devices using the mac80211 wireless stack

      License:       GPL-2

*  sys-kernel/linux-firmware

      Latest version available: 20110731

      Latest version installed: 20110731

      Size of files: 14,894 kB

      Homepage:      http://www.kernel.org/pub/linux/kernel/people/dwmw2/firmware

      Description:   Linux firmware files

      License:       GPL-1 GPL-2 GPL-3 BSD freedist

```

```
# ls /lib/firmware/brcm/

bcm4329-fullmac-4.bin  bcm4329-fullmac-4.txt  bcm43xx-0.fw  bcm43xx_hdr-0.fw
```

I also do not get the pci card led light on either with my system of the live cd.

I have seen quite a few topics regarding the firmware and the driver being set in a manual way but all them were for 2.6 kernels.

Any suggestions for vanilla sources kernel 3.2.2.

----------

## Gusar

Wrong firmware version. For b43legacy you need version 3.130.20.0

----------

## HeXiLeD

That does not make much sense.... but even so... 

```
b43legacy - 3.130.20.0 - 295.14 - b43-fwcutter-012 
```

```
# cat /etc/portage/package.mask 

=net-wireless/b43-fwcutter-014

=net-wireless/b43-fwcutter-015
```

```
# emerge -pv net-wireless/b43-fwcutter

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild   R   ~] net-wireless/b43-fwcutter-012  0 kB
```

```
 # ifconfig wlan0 up

SIOCSIFFLAGS: No such file or directory

 # iwlist wlan0 scan

wlan0     Interface doesn't support scanning : Network is down
```

----------

## Gusar

 *HeXiLeD wrote:*   

> That does not make much sense....

 

In what way does it not make sense?

Anyway, waaaaaaaay too little info. Use pastebin to post dmesg output. And I'm going to start killing people that do not post dmesg output when they have any sort of driver issues. I mean seriously, it's the basics of the basics of *every* troubleshooting. Requests for dmesg are *everywhere*. And yet, there's still daily posts that don't have much more than "doesn't work" </rant>

----------

## HeXiLeD

 *Almighty-One-That-Knows-it-All wrote:*   

> In what way does it not make sense?

 

That net-wireless/b43-fwcutter-15 does not cover support on net-wireless/b43-fwcutter-12 which is version 3.130.20.0.

Technically once a new update comes out; it usually ALSO covers what the last version supported hence why i said it did not make much sense to my humble self who did not see the rightfulness of such oracle statements.

 *Gusar wrote:*   

> Anyway, waaaaaaaay too little info

 

Anywaaaaaaaaayyyy perhaps i should also make a link on my signature on HOW TO ANSWER QUESTIONS IN A SMART WAY since the link to ALL Configs & Hardware SPECIFICATIONS does not work for Lord Vader to see dmesg there ALONG with way too much more info.

 *Gusar wrote:*   

> And I'm going to start killing people that do not post dmesg output when they have any sort of driver issues.

 

Be a good chap and start by that arrogant guy that gave me that previews inadequate answer as a form of leading example of practice what you preach and refrain to come back to the topic. 

</sophisticated-answer-to-rant>

----------

## Gusar

I don't recall that link being in the post before. I'm very sure I'd check the kernel config if I saw it.

Anyway your dmesg shows that the driver loads:

```
b43-pci-bridge 0000:0b:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16

ssb: Core 0 found: ChipCommon (cc 0x800, rev 0x02, vendor 0x4243)

ssb: Core 1 found: IEEE 802.11 (cc 0x812, rev 0x04, vendor 0x4243)

ssb: Core 2 found: PCMCIA (cc 0x80D, rev 0x01, vendor 0x4243)

ssb: Core 3 found: V90 (cc 0x807, rev 0x01, vendor 0x4243)

ssb: Core 4 found: PCI (cc 0x804, rev 0x07, vendor 0x4243)

ssb: Core 5 found: IEEE 802.11 (cc 0x812, rev 0x04, vendor 0x4243)

ssb: Sonics Silicon Backplane found on PCI device 0000:0b:00.0

cfg80211: Calling CRDA to update world regulatory domain

b43legacy-phy0: Broadcom 4306 WLAN found (core revision 4)

b43legacy-phy0 debug: Found PHY: Analog 1, Type 2, Revision 1

b43legacy-phy0 debug: Found Radio: Manuf 0x17F, Version 0x2050, Revision 2

b43legacy-phy0 debug: Radio initialized

ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'

Broadcom 43xx-legacy driver loaded [ Features: PID ]
```

So wlan0 should be there.

When I compare to my machine, there is a small difference:

```
ieee80211 phy0: Selected rate control algorithm 'minstrel'

Broadcom 43xx-legacy driver loaded [ Features: PD ]
```

I don't have minstrel_ht in my kernel, from what I know it's for wireless-N, which b43legacy doesn't do. Firmware loads here after doing an ifconfig wlan0 up, then this appears dmesg:

```
b43legacy-phy0: Loading firmware version 0x127, patch level 14 (2005-04-18 02:36:27)
```

----------

## HeXiLeD

 *Gusar wrote:*   

> I don't recall that link being in the post before. I'm very sure I'd check the kernel config if I saw it.

 

Google cache 3 hours later my original post

The links are part of my signature for years now. All my hardware posts point to it to either for the netbook or the workstation as needed as it can be confirmed by any of my other posts.

I had minstrel_ht out of the kernel before and still had the same problem. However now i am curious if net-wireless/b43-fwcutter-15 as the same driver support for he pci card in question in net-wireless/b43-fwcutter-12  or not.

----------

## Gusar

Well, do you have the correct firmware now? There should be 16 files in /lib/firmware/b43lgacy, extracted by b43-fwcutter-012 from the 3.130.20.0 version of the wl driver.

```
$ ls -l /lib/firmware/b43legacy/

total 132

-rw-r--r-- 1 root root    18 Jan 29  2011 a0g0bsinitvals2.fw

-rw-r--r-- 1 root root   158 Jan 29  2011 a0g0bsinitvals5.fw

-rw-r--r-- 1 root root  2520 Jan 29  2011 a0g0initvals2.fw

-rw-r--r-- 1 root root  1818 Jan 29  2011 a0g0initvals5.fw

-rw-r--r-- 1 root root   158 Jan 29  2011 a0g1bsinitvals5.fw

-rw-r--r-- 1 root root  1818 Jan 29  2011 a0g1initvals5.fw

-rw-r--r-- 1 root root    18 Jan 29  2011 b0g0bsinitvals2.fw

-rw-r--r-- 1 root root   158 Jan 29  2011 b0g0bsinitvals5.fw

-rw-r--r-- 1 root root  2520 Jan 29  2011 b0g0initvals2.fw

-rw-r--r-- 1 root root  1818 Jan 29  2011 b0g0initvals5.fw

-rw-r--r-- 1 root root  1320 Jan 29  2011 pcm4.fw

-rw-r--r-- 1 root root  1320 Jan 29  2011 pcm5.fw

-rw-r--r-- 1 root root 21680 Jan 29  2011 ucode11.fw

-rw-r--r-- 1 root root 16360 Jan 29  2011 ucode2.fw

-rw-r--r-- 1 root root 20096 Jan 29  2011 ucode4.fw

-rw-r--r-- 1 root root 22280 Jan 29  2011 ucode5.fw
```

----------

## HeXiLeD

The only thing i have is:

```
# ls /usr/bin/b43-fwcutter -lah 

-rwxr-xr-x 1 root root 22K Mar  3 09:36 /usr/bin/b43-fwcutter

```

In /lib/firmare i have none of those files. In fact... i cant find any on the system.

```
2012-03-03 09:36:36 (402 KB/s) - `/usr/portage/distfiles/b43-fwcutter-012.tar.bz2' saved [14138/14138]

 * b43-fwcutter-012.tar.bz2 RMD160 SHA1 SHA256 size ;-) ...                                                                                                                    [ ok

>>> Unpacking source...

>>> Unpacking b43-fwcutter-012.tar.bz2 to /var/tmp/portage/net-wireless/b43-fwcutter-012/work

>>> Source unpacked in /var/tmp/portage/net-wireless/b43-fwcutter-012/work

>>> Compiling source in /var/tmp/portage/net-wireless/b43-fwcutter-012/work/b43-fwcutter-012 ...

make -j5 CC=x86_64-pc-linux-gnu-gcc 

x86_64-pc-linux-gnu-gcc -march=nocona -O2 -mtune=nocona -fforce-addr -ftracer -mmmx -msse3 -mfpmath=sse -pipe -std=c99 -Wall -pedantic -D_BSD_SOURCE -DFWCUTTER_VERSION_=012   -c -  wcutter.o fwcutter.c

x86_64-pc-linux-gnu-gcc -march=nocona -O2 -mtune=nocona -fforce-addr -ftracer -mmmx -msse3 -mfpmath=sse -pipe -std=c99 -Wall -pedantic -D_BSD_SOURCE -DFWCUTTER_VERSION_=012   -c -  d5.o md5.c

fwcutter.c: In function 'to_be16':

fwcutter.c:76:2: warning: dereferencing type-punned pointer will break strict-aliasing rules

fwcutter.c: In function 'to_be32':

fwcutter.c:102:2: warning: dereferencing type-punned pointer will break strict-aliasing rules

x86_64-pc-linux-gnu-gcc -march=nocona -O2 -mtune=nocona -fforce-addr -ftracer -mmmx -msse3 -mfpmath=sse -pipe -std=c99 -Wall -pedantic -D_BSD_SOURCE -DFWCUTTER_VERSION_=012 -o b43  cutter fwcutter.o md5.o -Wl,-O1 -Wl,--as-needed

>>> Source compiled.

>>> Test phase [not enabled]: net-wireless/b43-fwcutter-012

>>> Install b43-fwcutter-012 into /var/tmp/portage/net-wireless/b43-fwcutter-012/image/ category net-wireless

>>> Completed installing b43-fwcutter-012 into /var/tmp/portage/net-wireless/b43-fwcutter-012/image/

strip: x86_64-pc-linux-gnu-strip --strip-unneeded -R .comment -R .GCC.command.line

   usr/bin/b43-fwcutter

ecompressdir: bzip2 -9 /usr/share/man

 * QA Notice: Package triggers severe warnings which indicate that it

 *            may exhibit random runtime failures.

 * fwcutter.c:76:2: warning: dereferencing type-punned pointer will break strict-aliasing rules

 * fwcutter.c:102:2: warning: dereferencing type-punned pointer will break strict-aliasing rules

 * Please do not file a Gentoo bug and instead report the above QA

 * issues directly to the upstream developers of this software.

 * Homepage: http://bu3sch.de/b43/fwcutter

>>> Installing (1 of 1) net-wireless/b43-fwcutter-012

 * 

 * Firmware may be downloaded from http://linuxwireless.org.

 * This version of fwcutter works with all b43 driver versions.

 * 

 * Please read this forum thread for help and troubleshooting:

 * http://forums.gentoo.org/viewtopic-t-409194.html

 * 

>>> Auto-cleaning packages...

>>> No outdated packages were found on your system.

```

```
# ls  /var/tmp/portage/net-wireless

ls: cannot access /var/tmp/portage/net-wireless: No such file or directory
```

I extracted the package manually: 

```
# cat README 

                        BCM43XX Linux Driver Project

                        ============================

About this software

-------------------

b43-fwcutter is a tool which can extract firmware from various source files.

It's written for BCM43xx driver files.

The project page is http://bcm43xx.berlios.de/

Usage

-----

b43-fwcutter FILE               extracts the firmware from a source FILE to

                                the current directory, creating a directory

                                "b43" or "b43legacy" with files in it.

b43-fwcutter -i FILE            identify the driver file; print information

                                but don't extract.

b43-fwcutter -w /tmp FILE       extract and write firmware to /tmp.

b43-fwcutter -l                 prints a list of supported driver source files.

After extraction, copy the "b43" or "b43legacy" directory to your firmware

directory (usually /lib/firmware or similar, see below). Alternatively you

can use the -w option to b43-fwcutter.

Different distributions use different directories to load firmware from.

If the driver complains about missing firmware files look for the correct

directory. For some distributions you have to use /lib/hotplug/firmware

or /usr/lib/hotplug/firmware but other directories are also possible.

Because firmware file are stored in big endian, extraction doesn't depend

on the system you're using. You can use extracted firmware from any driver

on any system and also copy the extracted files to any other system (e.g.

if extraction on the target system isn't feasible.)

Where can I find some driver source files?

------------------------------------------

Please check the references at

http://www.linuxwireless.org/en/users/Drivers/bcm43xx#devicefirmware

It is recommended that you extract firmware for both b43 and b43legacy in

order to support both types of cards on your system.

```

```
# b43-fwcutter -l 

b43-fwcutter version 012

Extracting firmware is possible from these binary driver files.

The <ID> column shows the unique identifier string for your firmware.

You must select the firmware with the same ID as printed by the kernel driver on modprobe.

Note that only recent drivers print such a message on modprobe.

Please read http://linuxwireless.org/en/users/Drivers/b43#devicefirmware

<driver>        <filename>              <microcode>     <ID>    <MD5 checksum>

b43legacy       wl_apsta.o              295.14          FW10    e08665c5c5b66beb9c3b2dd54aa80cb3

b43             wl_apsta.o              351.126         FW11    9207bc565c2fc9fa1591f6c7911d3fc0

b43             wl_apsta_mimo.o         351.126         FW11    722e2e0d8cc04b8f118bb5afe6829ff9

b43             wl_apsta_mimo.o         410.2160        FW13    cb8d70972b885b1f8883b943c0261a3c

```

```
 # b43-fwcutter -w /lib/firmware wl_apsta.o

Cannot open input file wl_apsta.o

```

I checked the recommend topic and even so; something does not seem to be correct.

----------

## Gusar

b43-fwcutter gives you, well, the cutter. Now you need to use it to cut. Manually if you want (in which case follow the link that b43-fwcutter gave you and download the firmware from there), or you install =net-wireless/b43-firmware-3.130.20.0 which will do the downloading and cutting for you.

----------

