Problem getting BCM4312 to work on openSUSE 11.3

Hi,

There are several threads with similar subjects, however, even after having read them all, I could no get the wireless to work on my ACER Extensa 5620. I have been using SUSE since the 8.1 days, but never had so much trouble getting the wireless to work.

04:00.0 Network controller [0280]: Broadcom Corporation BCM4312 802.11b/g LP-PHY [14e4:4315] (rev 01)
        Subsystem: Foxconn International, Inc. Device [105b:e003]

I already tryed both the b43 drivers (by running /usr/sbin/install_bcm43xx_firmware) and the sta drivers (from packman repositories).

When using the b43 drivers I get

   64.084614] b43-phy0 ERROR: Fatal DMA error: 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
   64.084624] b43-phy0 ERROR: This device does not support DMA on your system. Please use PIO instead.

but it still loads (using PIO I think).

The problem is that I cannot get it to authenticate. If I use an AP without any security, it connects and gets the IP. If I used WEP or WPA, it keeps trying but never makes it.

Here is the kernel output when connecting to the AP with wep enabled (the last three lines keep repeating indefinitely):


Jul 29 15:01:01 orange kernel:  2134.617213] b43-pci-bridge 0000:04:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
Jul 29 15:01:01 orange kernel:  2134.617236] b43-pci-bridge 0000:04:00.0: setting latency timer to 64
Jul 29 15:01:01 orange kernel:  2134.625363] ssb: Core 0 found: ChipCommon (cc 0x800, rev 0x16, vendor 0x4243)
Jul 29 15:01:01 orange kernel:  2134.625383] ssb: Core 1 found: IEEE 802.11 (cc 0x812, rev 0x0F, vendor 0x4243)
Jul 29 15:01:01 orange kernel:  2134.625401] ssb: Core 2 found: PCMCIA (cc 0x80D, rev 0x0A, vendor 0x4243)
Jul 29 15:01:01 orange kernel:  2134.625418] ssb: Core 3 found: PCI-E (cc 0x820, rev 0x09, vendor 0x4243)
Jul 29 15:01:01 orange kernel:  2134.651386] ssb: Sonics Silicon Backplane found on PCI device 0000:04:00.0
Jul 29 15:01:01 orange kernel:  2134.660762] b43-phy3: Broadcom 4312 WLAN found (core revision 15)
Jul 29 15:01:01 orange kernel:  2134.682758] phy3: Selected rate control algorithm 'minstrel'
Jul 29 15:01:01 orange kernel:  2134.684388] Registered led device: b43-phy3::tx
Jul 29 15:01:01 orange kernel:  2134.684473] Registered led device: b43-phy3::rx
Jul 29 15:01:01 orange kernel:  2134.684513] Registered led device: b43-phy3::radio
Jul 29 15:01:01 orange kernel:  2134.684624] Broadcom 43xx driver loaded  Features: PMLS, Firmware-ID: FW13 ]
Jul 29 15:01:02 orange ifup:     wlan0     name: BCM4312 802.11b/g
Jul 29 15:01:02 orange ifup:     wlan0     is controlled by ifplugd
Jul 29 15:01:02 orange ifup:     wlan0     name: BCM4312 802.11b/g
Jul 29 15:01:02 orange ifup-wireless:     wlan0     starting wpa_supplicant
Jul 29 15:01:02 orange kernel:  2135.094290] b43 ssb0:0: firmware: requesting b43/ucode15.fw
Jul 29 15:01:02 orange kernel:  2135.097898] b43 ssb0:0: firmware: requesting b43/lp0initvals15.fw
Jul 29 15:01:02 orange kernel:  2135.100703] b43 ssb0:0: firmware: requesting b43/lp0bsinitvals15.fw
Jul 29 15:01:02 orange kernel:  2135.233255] b43-phy3: Loading firmware version 410.2160 (2007-05-26 15:32:10)
Jul 29 15:01:03 orange kernel:  2136.663748] b43-phy3 ERROR: Fatal DMA error: 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
Jul 29 15:01:03 orange kernel:  2136.663758] b43-phy3 ERROR: This device does not support DMA on your system. Please use PIO instead.
Jul 29 15:01:03 orange kernel:  2136.663764] b43-phy3: Controller RESET (DMA error) ...
Jul 29 15:01:03 orange kernel:  2136.820295] b43-phy3: Loading firmware version 410.2160 (2007-05-26 15:32:10)
Jul 29 15:01:05 orange kernel:  2138.227175] b43-phy3: Controller restarted
Jul 29 15:01:05 orange kernel:  2138.232069] ADDRCONF(NETDEV_UP): wlan0: link is not ready
Jul 29 15:01:05 orange ifup-dhcp: Starting DHCP4 client on wlan0
Jul 29 15:01:05 orange dhcpcd[19135]: wlan0: dhcpcd 3.2.3 starting
Jul 29 15:01:05 orange dhcpcd[19135]: wlan0: hardware address = 00:22:69:5a:a7:fd
Jul 29 15:01:05 orange dhcpcd[19135]: wlan0: broadcasting for a lease
Jul 29 15:01:05 orange ifup-dhcp: . 
Jul 29 15:01:06 orange kernel:  2139.641607] wlan0: authenticate with 00:18:84:88:1f:40 (try 1)
Jul 29 15:01:06 orange kernel:  2139.643436] wlan0: authenticated
Jul 29 15:01:06 orange kernel:  2139.663402] wlan0: associate with 00:18:84:88:1f:40 (try 1)
Jul 29 15:01:06 orange kernel:  2139.665978] wlan0: RX AssocResp from 00:18:84:88:1f:40 (capab=0xc11 status=0 aid=1)
Jul 29 15:01:06 orange kernel:  2139.665982] wlan0: associated
Jul 29 15:01:06 orange kernel:  2139.667026] ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
Jul 29 15:01:06 orange kernel:  2139.667078] cfg80211: Calling CRDA for country: PT
Jul 29 15:01:06 orange kernel:  2139.679986] cfg80211: Current regulatory domain updated by AP to: PT
Jul 29 15:01:06 orange kernel:  2139.679990]     (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
Jul 29 15:01:06 orange kernel:  2139.679993]     (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 1600 mBm)
Jul 29 15:01:08 orange avahi-daemon[2966]: Registering new address record for fe80::222:69ff:fe5a:a7fd on wlan0.*.
Jul 29 15:01:08 orange ifup-dhcp: . 
Jul 29 15:01:10 orange ifup-dhcp: . 
Jul 29 15:01:13 orange ifup-dhcp: . 
Jul 29 15:01:15 orange ifup-dhcp: . 
Jul 29 15:01:17 orange kernel:  2150.031101] wlan0: no IPv6 routers present
Jul 29 15:01:17 orange ifup-dhcp: . 
Jul 29 15:01:20 orange ifup-dhcp: . 
Jul 29 15:01:22 orange ifup-dhcp: . 
Jul 29 15:01:23 orange ifup-dhcp:  
Jul 29 15:01:23 orange ifup-dhcp:     wlan0     DHCP4 continues in background
Jul 29 15:01:25 orange dhcpcd[19135]: wlan0: timed out
Jul 29 15:01:25 orange dhcpcd[19135]: wlan0: trying to use old lease in `/var/lib/dhcpcd/dhcpcd-wlan0.info'
Jul 29 15:01:25 orange dhcpcd[19135]: wlan0: lease information file `/var/lib/dhcpcd/dhcpcd-wlan0.info' does not exist
Jul 29 15:01:25 orange dhcpcd[19135]: wlan0: broadcasting for a lease
Jul 29 15:01:45 orange dhcpcd[19135]: wlan0: timed out
Jul 29 15:01:45 orange dhcpcd[19135]: wlan0: trying to use old lease in `/var/lib/dhcpcd/dhcpcd-wlan0.info'
Jul 29 15:01:45 orange dhcpcd[19135]: wlan0: lease information file `/var/lib/dhcpcd/dhcpcd-wlan0.info' does not exist
Jul 29 15:01:45 orange dhcpcd[19135]: wlan0: broadcasting for a lease
Jul 29 15:02:05 orange dhcpcd[19135]: wlan0: timed out
Jul 29 15:02:05 orange dhcpcd[19135]: wlan0: trying to use old lease in `/var/lib/dhcpcd/dhcpcd-wlan0.info'
Jul 29 15:02:05 orange dhcpcd[19135]: wlan0: lease information file `/var/lib/dhcpcd/dhcpcd-wlan0.info' does not exist
Jul 29 15:02:05 orange dhcpcd[19135]: wlan0: broadcasting for a lease

When using the STA drivers I do no get the DMA problem, but it cannot see or connect to any wireless networks.

I have been using openSUSE 11.0 in this laptop with no problems. While performing the tests, I am using a second, different, laptop with openSUSE 11.1, which is able to connect to the wireless network with no problems.

I appreciate any help. Thanks.

Somthing I forgot to say: I am using KDE and made my initial tests with NetworkManager. These final tests were made using ifup, with NetworkManager disabled. The results were the same using both systems.

Hust mo make sure nothing weird happened to the wireless board, I booted into Windows. Then it did not work in windows either… I rebooted again from Windows to Windows and worked normally again…

I then booted into openSUSE 11.3 again, and no am getting the exact same behaviour with wl/sta as with b43. They seem to complete the connection, but are unable to acquire an IP.

On 07/29/2010 10:06 AM, hcostelha wrote:
>
> Hust mo make sure nothing weird happened to the wireless board, I booted
> into Windows. Then it did not work in windows either… I rebooted again
> from Windows to Windows and worked normally again…
>
> I then booted into openSUSE 11.3 again, and no am getting the exact
> same behaviour with wl/sta as with b43. They seem to complete the
> connection, but are unable to acquire an IP.

I cannot help you with wl, but I can make it work with b43.

The DMA ERROR you are getting usually occurs with Netbooks, not with Notebooks,
but you are just “lucky”. The b43 developers know about the problem, but none of
us have such a device, and we have not found a fix. We do have a workaround. You
should create a file (as root) named /etc/modprobe.d/50-b43.conf and include the
line


options b43 pio=1 qos=0 nohwcrypt=1

As you noted, the driver switched to PIO after the DMA error; however, that is
an ugly hack that does not work on all devices. The fix above will work. The
downside is that PIO is slower than DMA and more CPU intensive.

Thanks fot the tip. However, I just tried it and the result is the same, it cannot get an IP.

I can confirm the modprobe options were used, since dmesg shows “PIO initialized” and “QoS disabled”, and the DMA error does not show anymore.

Any more ideas? Thanks.

Well, no I even tryed with ndiswrapper, and the resul is exactly the same… I can “connect” to AP, I can scan for wireless networks, I cannot just get an IP (when using encryption).

Ok, my mistake. It is working now using the options you specified. Do not know why it did not worked a while ago, when I first tested with those options…

On 07/29/2010 01:35 PM, hcostelha wrote:
>
> Ok, my mistake. It is working now using the options you specified. Do
> not know why it did not worked a while ago, when I first tested with
> those options…

Those options usually make it work if the PIO hack fails.

exactly the same card on a hp pavillion dm1 1020sa…
I have the same error, however appears only after some time few hours of wireless usage… all you have to do is to reboot. I added the hack now I will see what happens.

sometimes… unfortunately very random at boot time it simply fails to initialize the wireless driver freezing the machine. a simple hard reset solves the problem. However sometimes again very random that is not enough and I have to reboot the machine with ssb.blacklist=1 (that was the only way to get the 11.3 kde live cd booting actually)

Alin

Thanks for the hack