# Broadcom BCM43225 (b43) won't work with git-sources-3.1

## pedosb

I've been using the broadcom-sta driver successfully. But I saw in this page that the b43 driver is now available for my board.

Here is my lspci:

```

lspci -vnn | grep 14e4

03:00.0 Network controller [0280]: Broadcom Corporation BCM43225 802.11b/g/n [14e4:4357] (rev 01)

```

I've enable b43, according to http://en.gentoo-wiki.com/wiki/Broadcom_43xx

The computer boots ok, if I compile b43 I can load it successfully, but no interface is available with ifconfig, iw list, iwconfig neither with cat /proc/net/dev

any tips?

----------

## Gusar

Did you install the firmware? What does dmesg say?

----------

## pedosb

Well, I think I've installed the firmware. I've download the fwcutter 015 and installed the 5.10.56.27.3 broadcom firmware, It doesn't work, so I've download the 5.100.138 broadcom firmware too. All the files were extracted to /lib/firmware.

The only think I've found in the dmesg about the board is:

```

[    0.504061] pci 0000:03:00.0: [14e4:4357] type 0 class 0x000280

```

When I load the driver (modprob b43) I get the following message in the dmesg.

```

[  276.857023] cfg80211: Calling CRDA to update world regulatory domain

[  276.860208] Broadcom 43xx driver loaded [ Features: PMNL, Firmware-ID: FW13 ]

```

The complete dmesg is in: http://pastie.org/2712414

----------

## Gusar

Using the firmware from 5.100.138 is definitely wrong. It's for kernels starting with 3.2. The right one to use for 3.1 is 5.10.56.27.3. "It doesn't work" doesn't really say anything.

dmesg is weird, there should be way more regarding b43 in there. Do you have any other driver installed that might conflict? All three (wl, brcmsmac, b43) support this device. Hmm, did you also activate bcma in your kernel? You need it for this card.

----------

## pedosb

Update bellow

I erase my /lib/firmware/b43 folder, and the extracted the 5.10.57.27.3 again, now I'm using just it.

Well, I have wl but with kernel 3.0, so I don't think it will cause any conflict, am I right? I've tried brcmsmac, bit it is now disabled (in fact all staging drivers are).

I think the problem was the bcma that wasn't enabled. Can't the kernel raise an error when the b43 is detected without the bcma, or bcma is needed only for this card?

Now I get the card, as we can see in the iw list command, but I think it is detected as an 802.11g and not as 802.11n as it should be (I think).

```
Wiphy phy0

        Band 1:

                Frequencies:

                        * 2412 MHz [1] (20.0 dBm)

                        * 2417 MHz [2] (20.0 dBm)

                        * 2422 MHz [3] (20.0 dBm)

                        * 2427 MHz [4] (20.0 dBm)

                        * 2432 MHz [5] (20.0 dBm)

                        * 2437 MHz [6] (20.0 dBm)

                        * 2442 MHz [7] (20.0 dBm)

                        * 2447 MHz [8] (20.0 dBm)

                        * 2452 MHz [9] (20.0 dBm)

                        * 2457 MHz [10] (20.0 dBm)

                        * 2462 MHz [11] (20.0 dBm)

                        * 2467 MHz [12] (20.0 dBm) (passive scanning, no IBSS)

                        * 2472 MHz [13] (20.0 dBm) (passive scanning, no IBSS)

                        * 2484 MHz [14] (20.0 dBm) (passive scanning, no IBSS)

                Bitrates (non-HT):

                        * 1.0 Mbps

                        * 2.0 Mbps (short preamble supported)

                        * 5.5 Mbps (short preamble supported)

                        * 11.0 Mbps (short preamble supported)

                        * 6.0 Mbps

                        * 9.0 Mbps                                                                                                                                      

                        * 12.0 Mbps                                                                                                                                     

                        * 18.0 Mbps                                                                                                                                     

                        * 24.0 Mbps

                        * 36.0 Mbps

                        * 48.0 Mbps

                        * 54.0 Mbps

        max # scan SSIDs: 4

        max scan IEs length: 2285 bytes

        Coverage class: 0 (up to 0m)

        Available Antennas: TX 0 RX 0

        Supported interface modes:

                 * IBSS

                 * managed

                 * AP

                 * AP/VLAN

                 * WDS

                 * monitor

        Supported commands:

                 * new_interface

                 * set_interface

                 * new_key

                 * new_beacon

                 * new_station

                 * set_bss

                 * authenticate

                 * associate

                 * deauthenticate

                 * disassociate

                 * join_ibss

                 * remain_on_channel

                 * set_tx_bitrate_mask

                 * action

                 * frame_wait_cancel

                 * set_wiphy_netns

                 * set_channel

                 * set_wds_peer

                 * connect

                 * disconnect

        Supported TX frame types:

                 * IBSS: 0x0000 0x0010 0x0020 0x0030 0x0040 0x0050 0x0060 0x0070 0x0080 0x0090 0x00a0 0x00b0 0x00c0 0x00d0 0x00e0 0x00f0

                 * managed: 0x0000 0x0010 0x0020 0x0030 0x0040 0x0050 0x0060 0x0070 0x0080 0x0090 0x00a0 0x00b0 0x00c0 0x00d0 0x00e0 0x00f0

                 * AP: 0x0000 0x0010 0x0020 0x0030 0x0040 0x0050 0x0060 0x0070 0x0080 0x0090 0x00a0 0x00b0 0x00c0 0x00d0 0x00e0 0x00f0

                 * AP/VLAN: 0x0000 0x0010 0x0020 0x0030 0x0040 0x0050 0x0060 0x0070 0x0080 0x0090 0x00a0 0x00b0 0x00c0 0x00d0 0x00e0 0x00f0

                 * mesh point: 0x0000 0x0010 0x0020 0x0030 0x0040 0x0050 0x0060 0x0070 0x0080 0x0090 0x00a0 0x00b0 0x00c0 0x00d0 0x00e0 0x00f0

                 * P2P-client: 0x0000 0x0010 0x0020 0x0030 0x0040 0x0050 0x0060 0x0070 0x0080 0x0090 0x00a0 0x00b0 0x00c0 0x00d0 0x00e0 0x00f0

                 * P2P-GO: 0x0000 0x0010 0x0020 0x0030 0x0040 0x0050 0x0060 0x0070 0x0080 0x0090 0x00a0 0x00b0 0x00c0 0x00d0 0x00e0 0x00f0

        Supported RX frame types:

                 * IBSS: 0x00d0

                 * managed: 0x0040 0x00d0

                 * AP: 0x0000 0x0020 0x0040 0x00a0 0x00b0 0x00c0 0x00d0

                 * AP/VLAN: 0x0000 0x0020 0x0040 0x00a0 0x00b0 0x00c0 0x00d0

                 * mesh point: 0x00b0 0x00c0 0x00d0

                 * P2P-client: 0x0040 0x00d0

                 * P2P-GO: 0x0000 0x0020 0x0040 0x00a0 0x00b0 0x00c0 0x00d0
```

When I tried to associate with my router using WPA2 (wpa_supplicant) I got the following messages in the syslog, and can't connect.

```
Oct 17 22:24:14 pedro-acer kernel: [  428.453996] b43-phy0 debug: Removing Interface type 2

Oct 17 22:24:14 pedro-acer kernel: [  428.454190] b43-phy0 debug: Wireless interface stopped

Oct 17 22:24:14 pedro-acer kernel: [  428.454336] bcma: Switched to core: 0x800

Oct 17 22:24:14 pedro-acer kernel: [  428.454344] bcma: Switched to core: 0x812

Oct 17 22:24:15 pedro-acer kernel: [  428.953874] b43-phy0: Loading firmware version 508.1084 (2009-01-14 01:32:01)

Oct 17 22:24:15 pedro-acer kernel: [  428.953889] bcma: Switched to core: 0x800

Oct 17 22:24:15 pedro-acer kernel: [  428.953898] bcma: Switched to core: 0x812

Oct 17 22:24:15 pedro-acer kernel: [  428.984881] b43-phy0 debug: Chip initialized

Oct 17 22:24:15 pedro-acer kernel: [  428.984944] b43-phy0 debug: PIO initialized

Oct 17 22:24:15 pedro-acer kernel: [  428.985012] b43-phy0 debug: QoS enabled

Oct 17 22:24:15 pedro-acer kernel: [  428.985655] b43-phy0 debug: Wireless interface started

Oct 17 22:24:15 pedro-acer kernel: [  428.985661] b43-phy0 debug: Adding Interface type 2

Oct 17 22:24:15 pedro-acer kernel: [  428.996058] ADDRCONF(NETDEV_UP): wlan0: link is not ready

Oct 17 22:24:15 pedro-acer /etc/init.d/net.wlan0[7077]: WARNING: net.wlan0 has started, but is inactive

Oct 17 22:24:23 pedro-acer kernel: [  436.898444] wlan0: authenticate with 00:18:e7:ef:29:36 (try 1)

Oct 17 22:24:23 pedro-acer kernel: [  436.900018] wlan0: authenticated

Oct 17 22:24:23 pedro-acer kernel: [  436.900046] wlan0: associate with 00:18:e7:ef:29:36 (try 1)

Oct 17 22:24:23 pedro-acer kernel: [  436.903238] wlan0: RX AssocResp from 00:18:e7:ef:29:36 (capab=0x431 status=0 aid=2)

Oct 17 22:24:23 pedro-acer kernel: [  436.903244] wlan0: associated

Oct 17 22:24:23 pedro-acer kernel: [  436.904525] ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready

Oct 17 22:24:26 pedro-acer kernel: [  440.232035] ieee80211 phy0: wlan0: No probe response from AP 00:18:e7:ef:29:36 after 500ms, disconnecting.

Oct 17 22:24:26 pedro-acer kernel: [  440.243064] cfg80211: Calling CRDA to update world regulatory domain

Oct 17 22:24:28 pedro-acer kernel: [  441.745731] wlan0: authenticate with 00:18:e7:ef:29:36 (try 1)

Oct 17 22:24:28 pedro-acer kernel: [  441.945434] wlan0: authenticate with 00:18:e7:ef:29:36 (try 2)

Oct 17 22:24:28 pedro-acer kernel: [  442.145372] wlan0: authenticate with 00:18:e7:ef:29:36 (try 3)

Oct 17 22:24:28 pedro-acer kernel: [  442.345290] wlan0: authentication with 00:18:e7:ef:29:36 timed out

Oct 17 22:24:33 pedro-acer kernel: [  447.300499] wlan0: no IPv6 routers present
```

So I tried to disable any security on the network and use the iw command (I've used iw wlan0 connect galactica). The syslog says

```
Oct 17 23:07:27 pedro-acer kernel: [ 3019.776974] b43-phy0: Loading firmware version 508.1084 (2009-01-14 01:32:01)

Oct 17 23:07:27 pedro-acer kernel: [ 3019.776993] bcma: Switched to core: 0x800

Oct 17 23:07:27 pedro-acer kernel: [ 3019.777004] bcma: Switched to core: 0x812

Oct 17 23:07:27 pedro-acer kernel: [ 3019.808013] b43-phy0 debug: Chip initialized

Oct 17 23:07:27 pedro-acer kernel: [ 3019.808080] b43-phy0 debug: PIO initialized

Oct 17 23:07:27 pedro-acer kernel: [ 3019.808147] b43-phy0 debug: QoS enabled

Oct 17 23:07:27 pedro-acer kernel: [ 3019.808798] b43-phy0 debug: Wireless interface started

Oct 17 23:07:27 pedro-acer kernel: [ 3019.808808] b43-phy0 debug: Adding Interface type 2

Oct 17 23:07:27 pedro-acer kernel: [ 3019.818822] ADDRCONF(NETDEV_UP): wlan0: link is not ready

Oct 17 23:07:44 pedro-acer kernel: [ 3037.150672] wlan0: authenticate with 00:18:e7:ef:29:36 (try 1)

Oct 17 23:07:44 pedro-acer kernel: [ 3037.152256] wlan0: authenticated

Oct 17 23:07:44 pedro-acer kernel: [ 3037.152632] wlan0: associate with 00:18:e7:ef:29:36 (try 1)

Oct 17 23:07:44 pedro-acer kernel: [ 3037.155252] wlan0: RX AssocResp from 00:18:e7:ef:29:36 (capab=0x421 status=0 aid=2)

Oct 17 23:07:44 pedro-acer kernel: [ 3037.155258] wlan0: associated

Oct 17 23:07:44 pedro-acer kernel: [ 3037.156823] ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready

Oct 17 23:07:44 pedro-acer dhcpcd[12554]: wlan0: carrier acquired

Oct 17 23:07:44 pedro-acer dhcpcd[12554]: wlan0: rebinding lease of 1.1.1.100

Oct 17 23:07:44 pedro-acer dhcpcd[12554]: wlan0: acknowledged 1.1.1.100 from 1.1.1.254

Oct 17 23:07:44 pedro-acer dhcpcd[12554]: wlan0: checking for 1.1.1.100

Oct 17 23:07:49 pedro-acer dhcpcd[12554]: wlan0: leased 1.1.1.100 for infinity

Oct 17 23:07:54 pedro-acer kernel: [ 3047.648419] wlan0: no IPv6 routers present
```

And the iw event -t -f says

```
1318903663.074494: wlan0 (phy #0): scan started

1318903664.464968: wlan0 (phy #0): scan finished: 2412 2417 2422 2427 2432 2437 2442 2447 2452 2457 2462 2467 2472 2484, "galactica"

1318903664.475724: wlan0 (phy #0): auth 00:18:e7:ef:29:36 -> 4c:0f:6e:61:f8:bb status: 0: Successful [frame: b0 00 40 01 4c 0f 6e 61 f8 bb 00 18 e7 ef 29 36 00 18 e7 ef 29 36 c0 a3 00 00 02 00 00 00]

1318903664.479286: wlan0: new station 00:18:e7:ef:29:36

1318903664.479576: wlan0 (phy #0): assoc 00:18:e7:ef:29:36 -> 4c:0f:6e:61:f8:bb status: 0: Successful [frame: 10 00 40 01 4c 0f 6e 61 f8 bb 00 18 e7 ef 29 36 00 18 e7 ef 29 36 d0 a3 21 04 00 00 02 c0 01 04 82 84 8b 96 32 08 0c 12 18 24 30 48 60 6c 2d 1a 4e 10 1b ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3d 16 0a 07 1b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 dd 18 00 50 f2 02 01 01 00 00 03 a4 00 00 27 a4 00 00 42 43 5e 00 62 32 2f 00]

1318903664.479681: wlan0 (phy #0): connected to 00:18:e7:ef:29:36
```

Then I've waited some time and tried ping -I wlan0 8.8.8.8 when I got the message in syslog

```
Oct 17 23:09:53 pedro-acer kernel: [ 3166.198650] ieee80211 phy0: wlan0: No probe response from AP 00:18:e7:ef:29:36 after 500ms, disconnecting.

Oct 17 23:09:53 pedro-acer dhcpcd[12554]: wlan0: carrier lost

Oct 17 23:09:53 pedro-acer kernel: [ 3166.219924] cfg80211: Calling CRDA to update world regulatory domain
```

And the iw event -t -f

```
1318904147.579871: wlan0: unknown event 20

1318904147.579941: wlan0 (phy #0): deauth 4c:0f:6e:61:f8:bb -> 00:18:e7:ef:29:36 reason 4: Disassociated due to inactivity [frame: c0 00 00 00 00 18 e7 ef 29 36 4c 0f 6e 61 f8 bb 00 18 e7 ef 29 36 00 00 04 00]

1318904147.580005: wlan0 (phy #0): disconnected (local request)
```

So I can't use the card yet. I've pasted my dmesg and my kernel .config in:

http://www.laps.ufpa.br/pedrobatista/dmesg

http://www.laps.ufpa.br/pedrobatista/.config

Any other tips?

Thanks in advance Gusar

----------

## pedosb

The problem of being disconnecting and not associating with WPA2 was because I was using the option "Force usage of PIO instead of DMA".

The problem I've now is the 802.11g instead of 802.11n.

The other think I've observed is that when I was using the wl module (in kernel 3.0) I saw in my router that the signal was 90-99% to my PC (I'm just on the side of the router) now it's just 25-35%. And of course it was 802.11n now the router show it's connected as 802.11g.

Gusar, I've some knowledge in programming, so I think I can help in the development of the drivers (if it's needed), do you know anywhere I can start to make the driver more compatible?

----------

## Gusar

bcma is needed for this card and around three others. Basically those that are supported by brcmsmac. Previous Broadcom cards used ssb instead of bcma, that's why b43 doesn't insist on having bcma there. As for N, b43 doesn't yet support 5GHz and 40MHz channels. If your router is set to that, set it to 2.4GHz and a 20MHz channel. If that won't work, brcmsmac might be a better option for now.

If you want to help development of b43, the mailing list would probably be the best place to ask about what you could do: http://lists.infradead.org/mailman/listinfo/b43-dev. Then there's the general wireless list: http://vger.kernel.org/vger-lists.html#linux-wireless

----------

## pedosb

Thanks Gusar.

I think the signal is now pretty week, not only in home, but in all environments (in my classroom I couldn't get a signal), but I assume that is because it isn't fully operation yet (it work with wl).

I'll take a look and try to help in the lists, thanks again!

----------

