Bug 6293 - B43 wireless driver does not work after resume with broadcom 4331 chipset
: B43 wireless driver does not work after resume with broadcom 4331 chipset
Status: RESOLVED FIXED
Product: Mageia
Classification: Unclassified
Component: RPM Packages
: 2
: x86_64 Linux
: Normal Severity: major
: ---
Assigned To: Mageia Bug Squad
:
:
:
:
:
:
  Show dependency treegraph
 
Reported: 2012-06-02 15:13 CEST by Andy Liebman
Modified: 2013-09-02 15:21 CEST (History)
3 users (show)

See Also:
Source RPM: kernel-desktop-3.3.6-2.mga2-1-1.mga2
CVE:


Attachments
Log of unloading b43 driver. Note the lack of evidence of unloading the driver! (28.74 KB, text/plain)
2012-06-02 15:15 CEST, Andy Liebman
Details

Description Andy Liebman 2012-06-02 15:13:15 CEST
I am running Mageia 2 on a Macbook Pro 8,2.  This has the following broadcom wireless chipset: 

03:00.0 Network controller: Broadcom Corporation BCM4331 802.11a/b/g/n (rev 02)

Full support for this chipset was added to the b43 driver in the 3.3 kernel.  It requires installing b43-fwcutter and extracting the newest firmware.  I did extract the latest firmware and the b43 driver works fine and loads the ucode29_mimo.fw firmware.  The b43 driver works fine. 

However, after suspend to RAM and wakeup, the wireless fails to reconnect. 

One workaround I have found is that if I unload the b43 module resume, Mageia 2 then reloads it again immediately (weird, don't understand why that's the case?) and now I can connect to my wireless access points and get an IP address.  So, the workaround is: 

Wake up from sleep
Run "modprobe -r b43"
Then netapplet reconnects to my wireless

The same thing happens with all Wireless APs I have used, so I don't think the problem is related to any specific AP. 

As a more convenient workaround so that b43 reloads after sleep, I created the following file /etc/pm/sleep.d/99sleep-script

#!/bin/sh
case "$1" in
     suspend|freeze)
     ;;
     
     resume|thaw)
          /sbin/modprobe -r b43
     ;;
     
     *)
     ;;
esac

and now b43 reloads automatically after sleep.  

I can also just create a file /etc/pm/config.d/modules with the following content: 

      SUSPEND_MODULES="b43"

and that works too without the 99sleep-script. But, two things are wrong here: 

1.  I should not HAVE to reload b43 after waking from sleep?
2.  Why does "/sbin/modprobe -r b43"  BOTH unload the b43 driver and then reload it?  I would think unloading it should unload it and not load it again automatically.
Comment 1 Andy Liebman 2012-06-02 15:15:55 CEST
Created attachment 2415 [details]
Log of unloading b43 driver.  Note the lack of evidence of unloading the driver!
Comment 2 Thomas Backlund 2012-07-13 11:00:22 CEST
Can you try kernel-3.3.8-1.mga2 from updates_testing.

It has a fix for this.
Comment 3 claire robinson 2012-08-01 18:05:21 CEST
Andy could you please test with the new kernel and leave a comment either here or on bug 6914.

Thanks!
Comment 4 Samuel Verschelde 2013-09-02 15:21:35 CEST
Let's hope the update fixed the bug, as we didn't hear back from the reporter.

Note You need to log in before you can comment on or make changes to this bug.