# [solved] broadcom-sta: no device created for BCM4311

## fberger

Edit: Conclusion: broadcom-sta does not support Broadcom BCM4311 (rev 02) [14e4:4319]. Check for the device ID with lspci -n or lspci -nn.

Hi,

on kernels <2.6.3 I've used the bg43 module for my wireless card which worked flawlessly. After a kernel upgrade I was told to do a firmware upgrade, after which the card was still recognized but could no longer find any accesspoints.

Anyway, I now have switched to broadcom-sta, read almost anything I could find and now I am stuck at this problem: the kernel module loads, but no network device is created for the card.

Here we go with the usual suspects:

$ uname -a

```

Linux wanderer 2.6.31-rc3 #5 PREEMPT Tue Jul 6 15:30:00 CEST 2010 i686 Intel(R) Pentium(R) M processor 1.73GHz GenuineIntel GNU/Linux

```

$ emerge --search broadcom

```

Searching...    

[ Results for search key : broadcom ]

[ Applications found : 1 ]

*  net-wireless/broadcom-sta

      Latest version available: 5.60.48.36-r1

      Latest version installed: 5.60.48.36-r1

```

$ lsmod

```

Module                  Size  Used by

snd_pcm_oss            38496  0 

snd_mixer_oss          14564  1 snd_pcm_oss

snd_seq_oss            27072  0 

snd_seq_midi_event      5956  1 snd_seq_oss

snd_seq                46512  4 snd_seq_oss,snd_seq_midi_event

snd_seq_device          6128  2 snd_seq_oss,snd_seq

kqemu                 125700  0 

i915                  208520  1 

fb                     33452  1 i915

drm                   141568  2 i915

i2c_algo_bit            5448  1 i915

cfbcopyarea             3748  1 i915

i2c_core               19668  3 i915,drm,i2c_algo_bit

cfbimgblt               2692  1 i915

cfbfillrect             3780  1 i915

wl                   1949828  0 

lib80211_crypt_tkip     8868  0 

lib80211                5220  2 wl,lib80211_crypt_tkip

option                 21160  2 

usbserial              31688  6 option

usb_storage            49576  0 

pcmcia                 24492  0 

yenta_socket           23856  1 

rsrc_nonstatic          9188  1 yenta_socket

snd_intel8x0           29600  0 

pcmcia_core            32340  3 pcmcia,yenta_socket,rsrc_nonstatic

psmouse                41428  0 

tg3                   109736  0 

libphy                 18884  1 tg3

ehci_hcd               35028  0 

snd_ac97_codec         99268  1 snd_intel8x0

ac97_bus                1348  1 snd_ac97_codec

uhci_hcd               22672  0 

snd_pcm                69708  3 snd_pcm_oss,snd_intel8x0,snd_ac97_codec

snd_timer              19432  2 snd_seq,snd_pcm

rng_core                3816  0 

snd                    49604  9 snd_pcm_oss,snd_mixer_oss,snd_seq_oss,snd_seq,snd_seq_device,snd_intel8x0,snd_ac97_codec,snd_pcm,snd_timer

snd_page_alloc          7884  2 snd_intel8x0,snd_pcm

```

$ dmesg | grep "802\|wl\|bg43\|ssd"

```

lib80211: common routines for IEEE802.11 drivers

lib80211_crypt: registered algorithm 'NULL'

lib80211_crypt: registered algorithm 'TKIP'

wl: module license 'MIXED/Proprietary' taints kernel.

```

$ ifconfig -a

```

eth0      Link encap:Ethernet  ...

          inet addr:192.168.100.1  Bcast:192.168.100.255  Mask:255.255.255.0

          UP BROADCAST MULTICAST  MTU:1500  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

          Interrupt:11 

lo        Link encap:Local Loopback  

          inet addr:127.0.0.1  Mask:255.0.0.0

          UP LOOPBACK RUNNING  MTU:16436  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0 

          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

ppp0      Link encap:Point-to-Point Protocol  

          inet addr: ... P-t-P:10.64.64.64  Mask:255.255.255.255

          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1

          RX packets:26861 errors:0 dropped:0 overruns:0 frame:0

          TX packets:24795 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:3 

          RX bytes:30403878 (28.9 MiB)  TX bytes:3202682 (3.0 MiB)

```

$ cat /etc/udev/rules.d/70-persistent-net.rules

```

# PCI device 0x14e4:0x1677 (tg3)

SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="00:14:22:c3:b6:81", KERNEL=="eth*", NAME="eth0"

```

As far as I can see all modules are loaded, all old bg43 and SSD and whatnot stuff has been removed, but ifconfig -a doesn't see a device.  :Sad: 

Any pointers or hints will be greatly appreciated.

Regards,

FlorianLast edited by fberger on Wed Jul 07, 2010 10:52 am; edited 1 time in total

----------

## d2_racing

Hi, try with kernel 2.6.33 or 2.6.34.

----------

## fberger

Switched to 2.6.34: the very same situation.  :Confused: 

To get a starting ground: at which point is the wlan0/eth1 device supposed to be created? I.e. is this more of a kernel issue, a module issue or an udev issue?

EDIT: And how could I produce some debugging output or logs? It simply strikes me that the driver loads, is unable to create the device and doesn't seem to complain a bit.  :Shocked: 

Florian

----------

## cach0rr0

First things first, please confirm the following settings:

https://forums.gentoo.org/viewtopic-t-816158-highlight-broadcomsta.html#6187066

With that sorted - udev should be making the device. I assume there is also no sign of it in /proc/net/wireless ?

----------

## fberger

 *cach0rr0 wrote:*   

> First things first, please confirm the following settings:
> 
> https://forums.gentoo.org/viewtopic-t-816158-highlight-broadcomsta.html#6187066

 

I've already stumbled across that bug and the HOSTAP thing.  :Wink: 

From the .config the kernel has just been built with:

$ grep 'LIB80211\|WIRELESS_EXT\|CFG80211_WEXT\|WEXT_PRIV\|MAC80211\|B43\|SSB' .config

```
CONFIG_WIRELESS_EXT=y

CONFIG_WEXT_PRIV=y

CONFIG_CFG80211_WEXT=y

CONFIG_WIRELESS_EXT_SYSFS=y

CONFIG_LIB80211=m

CONFIG_LIB80211_CRYPT_WEP=m

CONFIG_LIB80211_CRYPT_CCMP=m

CONFIG_LIB80211_CRYPT_TKIP=m

# CONFIG_LIB80211_DEBUG is not set

# CONFIG_MAC80211 is not set

CONFIG_SSB_POSSIBLE=y

# CONFIG_SSB is not set
```

I hope CONFIG_SSB_POSSIBLE=y is not a problem since CONFIG_SSB is not set - I couldn't disable it via menuconfig.

 *cach0rr0 wrote:*   

> With that sorted - udev should be making the device. I assume there is also no sign of it in /proc/net/wireless ?

 

Of course not:

$ cat /proc/net/wireless 

```
Inter-| sta-|   Quality        |   Discarded packets               | Missed | WE

 face | tus | link level noise |  nwid  crypt   frag  retry   misc | beacon | 22

```

And that's all. *sigh*

Florian

----------

## fberger

Oh, I see I missed lspci. For the record:

$ lspci | grep -i broad

```
02:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5751 Gigabit Ethernet PCI Express (rev 01)

03:03.0 Network controller: Broadcom Corporation BCM4311 [AirForce 54g] 802.11a/b/g PCI Express Transceiver (rev 02)
```

The latter is the one. According to the Broadcom docs it should work.

Florian

----------

## cach0rr0

hrmm...your kernel is just fine 

rmmod the module, then modprobe it and do dmesg |tail -n 20 *without* grepping for anything. 

I do not have any definite ideas either, you seem to have set everything up correctly from what I can tell.

----------

## fberger

 *fberger wrote:*   

> According to the Broadcom docs it should work.

 

...or not?

http://www.broadcom.com/docs/linux_sta/README.txt

```
BRCM            PCI          PCI

Product Name    Vendor ID    Device ID

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

4311 2.4 Ghz    0x14e4       0x4311

4311 Dualband   0x14e4       0x4312

4311 5 Ghz      0x14e4       0x4313 

```

$ lspci -n | grep 14e4

```
02:00.0 0200: 14e4:1677 (rev 01)

03:03.0 0280: 14e4:4319 (rev 02)

```

 :Question: 

Just how many 4311s are there? Does that mean the Broadcom driver doesn't support mine?

Florian

----------

## fberger

 *cach0rr0 wrote:*   

> rmmod the module, then modprobe it and do dmesg |tail -n 20 *without* grepping for anything.

 

Be my guest:  :Smile: 

$ rmmod wl

$ modprobe wl

$ dmesg | tail -n 20

```
intel8x0_measure_ac97_clock: measured 50509 usecs (2435 samples)

intel8x0: clocking to 48000

EXT3-fs (sda3): using internal journal

lib80211: common routines for IEEE802.11 drivers

lib80211_crypt: registered algorithm 'NULL'

lib80211_crypt: registered algorithm 'TKIP'

wl: module license 'MIXED/Proprietary' taints kernel.

Disabling lock debugging due to kernel taint

[drm] Initialized drm 1.1.0 20060810

pci 0000:00:02.0: PCI INT A -> Link[LNKA] -> GSI 11 (level, low) -> IRQ 11

pci 0000:00:02.0: setting latency timer to 64

[drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0

Adding 498956k swap on /dev/sda2.  Priority:-1 extents:1 across:498956k 

QEMU Accelerator Module version 1.3.0, Copyright (c) 2005-2007 Fabrice Bellard

KQEMU installed, max_locked_mem=452032kB.

Intel ICH 0000:00:1e.2: PCI INT A disabled

Intel ICH 0000:00:1e.2: PCI INT A -> Link[LNKA] -> GSI 11 (level, low) -> IRQ 11

Intel ICH 0000:00:1e.2: setting latency timer to 64

intel8x0_measure_ac97_clock: measured 50394 usecs (2429 samples)

intel8x0: clocking to 48000
```

That only shows things I did recently, like restarting kqemu and alsa.

Still, wl appears in lsmod.

----------

## cach0rr0

 *fberger wrote:*   

> 
> 
> ```
> 
> 4311 2.4 Ghz    0x14e4       0x4311
> ...

 

It looks like that is the case, yes, no support. I will say I am 80% sure. I guess it is possible they updated the driver but not the documentation, but unlikely. And since the source is not available i cannot grep for the PCI ID like I normally do with drivers. 

The in-kernel b43 should support it. 

```

# grep 0x4319 /usr/src/linux-2.6.99-zen0/drivers/ssb/*

/usr/src/linux-2.6.99-zen0/drivers/ssb/b43_pci_bridge.c:        { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4319) },

```

As for your scanning issue, it sounds very similar to this - https://forums.gentoo.org/viewtopic-t-830381-highlight-broadcom.html

----------

## fberger

 *cach0rr0 wrote:*   

> It looks like that is the case, yes, no support. I will say I am 80% sure.

 

I'm having all this trouble on a Dell 610, an otherwise very fine machine, and I just figured out that over the years they have used different vendors for the wifi stuff. And I happen to buy one with Broadcom.  :Rolling Eyes: 

 *cach0rr0 wrote:*   

> The in-kernel b43 should support it.

 

Well, after a firmware update it stopped finding access points.

I think I'll give ndiswrapper a go. There are reports of it working on the configuration I have here.

Thanks,

Florian

----------

## fberger

OK, following this excellent guide from Ubuntu I finally got a wlan0 device again.

Now I'm back at

$ iwlist wlan0 scan

```
wlan0     No scan results

```

 :Rolling Eyes:  But that's another issue.

Let's settle this with the conclusion that broadcom-sta does not support Broadcom BCM4311 (rev 02) [14e4:4319].

Thanks for your help,

Florian

----------

## d2_racing

So you use the old b43.

----------

