[CentOS] Problems with Broadcom 4312 wireless

Fri Jun 12 11:54:02 UTC 2009
David McGuffey <davidmcguffey at verizon.net>

> 
> There are some possibly-related notes on this page in the wiki:
> 
> http://wiki.centos.org/HowTos/Laptops/HP/Pavilion-ze5300_Series
> 
> Short summary: neither bcm43xx nor ndiswrapper are a perfect solution,
> and you may need to blacklist the bcm43xx driver to use ndiswrapper.
> 
> That wiki entry was originally written for CentOS 5.0.  I'm currently
> running 5.3 with the supplied bcm43xx driver and it has some problems
> with duplicate/dropped packets so the performance is suboptimal, but
> it does work.
> 

Yes, the bcm43xx driver is ugly.  Finally got it to work last night by
placing the AP in WEP Open Authentication. The driver won't work with
WEP Shared Key, or WPA/WPA2 in any mode.  And, there is a lot of packet
loss. This won't do for a laptop that has to go back to college and hit
a lot of APs that may be configured with WPA.

Next step is to remove the bcm43xx driver and replace it with the more
modern b43 driver from Broadcom.

Here is some more info I captured last night:

//////////////////////

A slice from /var/log/messages

Jun 10 19:57:27 ErichLaptop kernel: bcm43xx: Radio hardware status
changed to enabled
Jun 10 19:57:47 ErichLaptop kernel: bcm43xx: set security
called, .active_key = 0, .enabled = 1, .encrypt = 1
Jun 10 19:58:07 ErichLaptop kernel: bcm43xx: set security called, .level
= 0, .enabled = 0, .encrypt = 0
Jun 10 19:58:08 ErichLaptop kernel: bcm43xx: set security
called, .active_key = 0, .enabled = 1, .encrypt = 1
Jun 10 19:58:12 ErichLaptop kernel: bcm43xx: set security called, .level
= 0, .enabled = 0, .encrypt = 0
Jun 10 19:58:40 ErichLaptop kernel: bcm43xx: set security
called, .active_key = 0, .enabled = 1, .encrypt = 1
Jun 10 19:59:00 ErichLaptop kernel: bcm43xx: set security called, .level
= 0, .enabled = 0, .encrypt = 0
Jun 10 19:59:00 ErichLaptop kernel: bcm43xx: set security
called, .active_key = 0, .enabled = 1, .encrypt = 1
Jun 10 19:59:04 ErichLaptop kernel: bcm43xx: set security called, .level
= 0, .enabled = 0, .encrypt = 0
Jun 10 19:59:11 ErichLaptop kernel: bcm43xx: set security called, .level
= 0, .enabled = 0, .encrypt = 0
Jun 10 19:59:27 ErichLaptop kernel: bcm43xx: set security called, .level
= 0, .enabled = 0, .encrypt = 0
Jun 10 19:59:27 ErichLaptop kernel: bcm43xx: Radio initialized
Jun 10 19:59:27 ErichLaptop kernel: bcm43xx: DMA-32 0x0200 (RX) max used
slots: 1/64
Jun 10 19:59:27 ErichLaptop kernel: bcm43xx: DMA-32 0x02A0 (TX) max used
slots: 0/512
Jun 10 19:59:27 ErichLaptop kernel: bcm43xx: DMA-32 0x0280 (TX) max used
slots: 0/512
Jun 10 19:59:27 ErichLaptop kernel: bcm43xx: DMA-32 0x0260 (TX) max used
slots: 0/512
Jun 10 19:59:27 ErichLaptop kernel: bcm43xx: DMA-32 0x0240 (TX) max used
slots: 0/512
Jun 10 19:59:27 ErichLaptop kernel: bcm43xx: DMA-32 0x0220 (TX) max used
slots: 2/512
Jun 10 19:59:27 ErichLaptop kernel: bcm43xx: DMA-32 0x0200 (TX) max used
slots: 0/512
Jun 10 20:10:00 ErichLaptop kernel: bcm43xx: Microcode rev 0x127, pl 0xe
(2005-04-18  02:36:27)
Jun 10 20:10:00 ErichLaptop kernel: bcm43xx: Radio turned on
Jun 10 20:10:00 ErichLaptop kernel: bcm43xx: Radio enabled by hardware
Jun 10 20:10:01 ErichLaptop kernel: bcm43xx: Chip initialized
Jun 10 20:10:01 ErichLaptop kernel: bcm43xx: 32-bit DMA initialized
Jun 10 20:10:01 ErichLaptop kernel: bcm43xx: Keys cleared
Jun 10 20:10:01 ErichLaptop kernel: bcm43xx: Selected 802.11 core
(phytype 2)
Jun 10 20:10:01 ErichLaptop kernel: bcm43xx: set security called, .level
= 0, .enabled = 0, .encrypt = 0
Jun 10 20:10:12 ErichLaptop kernel: bcm43xx: Radio initialized
Jun 10 20:10:12 ErichLaptop kernel: bcm43xx: DMA-32 0x0200 (RX) max used
slots: 1/64
Jun 10 20:10:12 ErichLaptop kernel: bcm43xx: DMA-32 0x02A0 (TX) max used
slots: 0/512
Jun 10 20:10:12 ErichLaptop kernel: bcm43xx: DMA-32 0x0280 (TX) max used
slots: 0/512
Jun 10 20:10:12 ErichLaptop kernel: bcm43xx: DMA-32 0x0260 (TX) max used
slots: 0/512
Jun 10 20:10:12 ErichLaptop kernel: bcm43xx: DMA-32 0x0240 (TX) max used
slots: 0/512
Jun 10 20:10:12 ErichLaptop kernel: bcm43xx: DMA-32 0x0220 (TX) max used
slots: 1/512
Jun 10 20:10:12 ErichLaptop kernel: bcm43xx: DMA-32 0x0200 (TX) max used
slots: 0/512
Jun 10 20:12:05 ErichLaptop kernel: bcm43xx driver
Jun 10 20:12:05 ErichLaptop kernel: bcm43xx: Chip ID 0x4311, rev 0x1
Jun 10 20:12:05 ErichLaptop kernel: bcm43xx: Number of cores: 4
Jun 10 20:12:05 ErichLaptop kernel: bcm43xx: Core 0: ID 0x800, rev 0x11,
vendor 0x4243
Jun 10 20:12:05 ErichLaptop kernel: bcm43xx: Core 1: ID 0x812, rev 0xa,
vendor 0x4243
Jun 10 20:12:05 ErichLaptop kernel: bcm43xx: Core 2: ID 0x817, rev 0x3,
vendor 0x4243
Jun 10 20:12:05 ErichLaptop kernel: bcm43xx: Core 3: ID 0x820, rev 0x1,
vendor 0x4243
Jun 10 20:12:05 ErichLaptop kernel: bcm43xx: PHY connected
Jun 10 20:12:05 ErichLaptop kernel: bcm43xx: Detected PHY: Analog: 4,
Type 2, Revision 8
Jun 10 20:12:05 ErichLaptop kernel: bcm43xx: Detected Radio: ID:
2205017f (Manuf: 17f Ver: 2050 Rev: 2)
Jun 10 20:12:05 ErichLaptop kernel: bcm43xx: Radio initialized
Jun 10 20:12:05 ErichLaptop kernel: bcm43xx: Radio initialized
Jun 10 20:12:16 ErichLaptop NetworkManager: <info>  eth1: driver is
'bcm43xx'. 
Jun 10 20:12:20 ErichLaptop kernel: bcm43xx: PHY connected
Jun 10 20:12:21 ErichLaptop kernel: bcm43xx: Microcode rev 0x127, pl 0xe
(2005-04-18  02:36:27)
Jun 10 20:12:21 ErichLaptop kernel: bcm43xx: Radio turned on
Jun 10 20:12:21 ErichLaptop kernel: bcm43xx: Radio enabled by hardware
Jun 10 20:12:22 ErichLaptop kernel: bcm43xx: Chip initialized
Jun 10 20:12:22 ErichLaptop kernel: bcm43xx: 32-bit DMA initialized
Jun 10 20:12:22 ErichLaptop kernel: bcm43xx: Keys cleared
Jun 10 20:12:22 ErichLaptop kernel: bcm43xx: Selected 802.11 core
(phytype 2)
Jun 10 20:12:22 ErichLaptop kernel: bcm43xx: set security called, .level
= 0, .enabled = 0, .encrypt = 0
Jun 10 20:12:22 ErichLaptop kernel: bcm43xx: set security called, .level
= 0, .enabled = 0, .encrypt = 0
Jun 10 20:13:44 ErichLaptop kernel: bcm43xx: set security
called, .active_key = 0, .enabled = 1, .encrypt = 1
Jun 10 20:14:04 ErichLaptop kernel: bcm43xx: set security called, .level
= 0, .enabled = 0, .encrypt = 0
Jun 10 20:14:04 ErichLaptop kernel: bcm43xx: set security
called, .active_key = 0, .enabled = 1, .encrypt = 1
Jun 10 20:14:08 ErichLaptop kernel: bcm43xx: set security called, .level
= 0, .enabled = 0, .encrypt = 0
Jun 10 20:14:26 ErichLaptop kernel: bcm43xx: set security
called, .active_key = 0, .enabled = 1, .encrypt = 1
Jun 10 20:14:46 ErichLaptop kernel: bcm43xx: set security called, .level
= 0, .enabled = 0, .encrypt = 0
Jun 10 20:14:47 ErichLaptop kernel: bcm43xx: set security
called, .active_key = 0, .enabled = 1, .encrypt = 1
Jun 10 20:14:51 ErichLaptop kernel: bcm43xx: set security called, .level
= 0, .enabled = 0, .encrypt = 0[root at ErichLaptop ~]#
Jun 10 20:14:57 ErichLaptop kernel: bcm43xx: set security called, .level
= 0, .enabled = 0, .encrypt = 0
Jun 10 21:01:42 ErichLaptop kernel: bcm43xx: set security
called, .active_key = 0, .enabled = 1, .encrypt = 1
Jun 10 21:02:02 ErichLaptop kernel: bcm43xx: set security called, .level
= 0, .enabled = 0, .encrypt = 0
Jun 10 21:02:02 ErichLaptop kernel: bcm43xx: set security
called, .active_key = 0, .enabled = 1, .encrypt = 1
Jun 10 21:02:06 ErichLaptop kernel: bcm43xx: set security called, .level
= 0, .enabled = 0, .encrypt = 0
Jun 10 21:02:42 ErichLaptop kernel: bcm43xx: set security
called, .active_key = 0, .enabled = 1, .encrypt = 1
Jun 10 21:03:02 ErichLaptop kernel: bcm43xx: set security called, .level
= 0, .enabled = 0, .encrypt = 0
Jun 10 21:03:02 ErichLaptop kernel: bcm43xx: set security
called, .active_key = 0, .enabled = 1, .encrypt = 1
Jun 10 21:03:06 ErichLaptop kernel: bcm43xx: set security called, .level
= 0, .enabled = 0, .encrypt = 0
Jun 10 21:03:08 ErichLaptop kernel: bcm43xx: set security called, .level
= 0, .enabled = 0, .encrypt = 0
Jun 10 21:03:13 ErichLaptop kernel: bcm43xx: set security called, .level
= 0, .enabled = 0, .encrypt = 0
Jun 10 21:03:13 ErichLaptop kernel: bcm43xx: Radio initialized
Jun 10 21:03:13 ErichLaptop kernel: bcm43xx: DMA-32 0x0200 (RX) max used
slots: 1/64
Jun 10 21:03:13 ErichLaptop kernel: bcm43xx: DMA-32 0x02A0 (TX) max used
slots: 0/512
Jun 10 21:03:13 ErichLaptop kernel: bcm43xx: DMA-32 0x0280 (TX) max used
slots: 0/512
Jun 10 21:03:13 ErichLaptop kernel: bcm43xx: DMA-32 0x0260 (TX) max used
slots: 0/512
Jun 10 21:03:13 ErichLaptop kernel: bcm43xx: DMA-32 0x0240 (TX) max used
slots: 0/512
Jun 10 21:03:13 ErichLaptop kernel: bcm43xx: DMA-32 0x0220 (TX) max used
slots: 2/512
Jun 10 21:03:13 ErichLaptop kernel: bcm43xx: DMA-32 0x0200 (TX) max used
slots: 0/512

//////////////////////

Pinging my Verizon FiOS provided firewall/switch/wireless gateway (note
the packet loss)

PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=12.8 ms
64 bytes from 192.168.1.1: icmp_seq=17 ttl=64 time=39.9 ms
64 bytes from 192.168.1.1: icmp_seq=20 ttl=64 time=33.5 ms
64 bytes from 192.168.1.1: icmp_seq=21 ttl=64 time=9.21 ms
64 bytes from 192.168.1.1: icmp_seq=22 ttl=64 time=9.41 ms
64 bytes from 192.168.1.1: icmp_seq=31 ttl=64 time=41.7 ms
64 bytes from 192.168.1.1: icmp_seq=37 ttl=64 time=50.6 ms
64 bytes from 192.168.1.1: icmp_seq=38 ttl=64 time=9.04 ms
--- 192.168.1.1 ping statistics ---
41 packets transmitted, 8 received, 80% packet loss, time 40000ms
rtt min/avg/max/mdev = 9.049/25.789/50.648/16.287 ms

////////////////////////

>From lspci
...
09:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5755M
Gigabit Ethernet PCI Express (rev 02)
0c:00.0 Network controller: Broadcom Corporation BCM4312 802.11a/b/g
(rev 01)


////////////////////////

>From lspci -n
...
09:00.0 0200: 14e4:1673 (rev 02)
0c:00.0 0280: 14e4:4312 (rev 01)