Wireless network problem on Macbook Air, Broadcom Corporation BCM43224

Greetings

Thanks in advance for your help… I am struggling with a fresh new OpenSuse 13.1 installation on a 2010 Macbook Air. lspci lists the wlan as a Broadcom Corporation BCM43224.

Lsmod shows : bcma 46699 2 brcmsmac,b43

Under network settings, the device appears as wlp1s0

When I run ifup on the device, ifconfig hangs, and I have to reboot. If I set it to come up on boot, it freezes during boot-up.

The macbook air is fully reliant on wireless networking, so this is a bit of a major problem!!

I have googled this extensively, and have got nowhere… It is really critical that I have the laptop operational in time for Monday morning’s work!! ARGH! Help, please? Can anyone talk me through some suggestions to try??

Yours again with thanks,

Jamie

You will probably get more responses from more knowledgeable people by posting in the Wireless sub-forum. There are several guides there.

You need to install Broadcom drivers. They are not in the base installation because of licensing issues.

On a machine with internet access, go to http://packman.links2linux.org/package/broadcom-wl/474269
Under Releases, click on the one corresponding to your version and kernel, such as

6.30.223.141_k3.11.10_7-2.7 openSUSE 13.1 x86_64

In the new window, under Downloads, click on the rpm file for the macbook air’s type of kernel - default or desktop. Save that file to some medium that you can read with the macbook air.

On the macbook air, put the broadcom rpm in a folder in your home directory. In YaST, create a new repository that is a Local Directory, Plain RPM directory, pointing to where you put the broadcom file. Use YaST to install the broadcom driver.

I prefer Network Manager over ifup, but I’m a GUI type. NM worked to connect my broadcom wireless card to our network.
Hope this helps.
Howard

Just to add, only downloading/installing the kernel module package (kmp) is not sufficient.
You need the one named “broadcom-wl” as well:
http://packman.links2linux.org/package/broadcom-wl/474270

OTOH, the Broadcom drivers should not really be necessary.
The kernel does contain a working driver for that card, maybe you would have to install additional firmware though.
But the broadcom-wl driver should work in any case.

FWIW: My MBA 4.1 running Suse 13.1 (kernel-desktop 3.11.10) with the same broadcom chipset and bcma (brcmsmac,b43) driver works quite well.

I did not install any additional broadcom drivers, the in kernel ones are working fine for me. Nor did I install the broadcom-wl package.

When ifconfig hangs, does the entire system hang? Can you get out to a virtual terminal to check dmesg, etc. to see if there is any additional information? Does /var/log/messages have anything interesting after a fresh boot before attempting to bring the interface up?

If you boot to a 13.1 live CD does wireless work?

Are you booting with any kernel arguments which might be influencing things? (cat /proc/cmdline to see)

As a possible workaround for your Monday deadline, could you obtain a USB wi-fi adapter to use temporarily, or an Apple USB Network adapter to get you through?

Probably, my laptop needed the broadcom drivers installed separately because wireless is through a PCMCIA card. The card was not inserted during the openSUSE 13.1 installation. I expect that with built-in wireless, the hardware is detected during installation, and the right drivers included.

As a test, I removed broadcom-wl and broadcom-wl-kmp-default, inserted the PCMCIA card, and rebooted. /var/log/messages contained this

2014-03-15T21:26:53.598309-07:00 T23-os131 kernel:   439.492228] pcmcia_socket pcmcia_socket1: pccard: CardBus card inserted into slot 1
2014-03-15T21:26:53.598364-07:00 T23-os131 kernel:   439.492286] pci 0000:07:00.0: [14e4:4329] type 00 class 0x028000
2014-03-15T21:26:53.598374-07:00 T23-os131 kernel:   439.492325] pci 0000:07:00.0: reg 0x10: [mem 0x00000000-0x00003fff]
2014-03-15T21:26:53.598382-07:00 T23-os131 kernel:   439.492728] pci 0000:07:00.0: BAR 0: assigned [mem 0xc8000000-0xc8003fff]
2014-03-15T21:26:53.598389-07:00 T23-os131 kernel:   439.492758] pci 0000:07:00.0: cache line size of 32 is not supported
2014-03-15T21:26:53.598397-07:00 T23-os131 kernel:   439.492923] b43-pci-bridge 0000:07:00.0: enabling device (0000 -> 0002)
2014-03-15T21:26:53.598405-07:00 T23-os131 kernel:   439.493141] b43-pci-bridge 0000:07:00.0: setting latency timer to 64
2014-03-15T21:26:53.618253-07:00 T23-os131 kernel:   439.512164] ssb: Found chip with id 0x4321, rev 0x01 and package 0x01
2014-03-15T21:26:53.618307-07:00 T23-os131 kernel:   439.512190] ssb: Core 0 found: ChipCommon (cc 0x800, rev 0x12, vendor 0x4243)
2014-03-15T21:26:53.618317-07:00 T23-os131 kernel:   439.512205] ssb: Core 1 found: IEEE 802.11 (cc 0x812, rev 0x0B, vendor 0x4243)
2014-03-15T21:26:53.618325-07:00 T23-os131 kernel:   439.512219] ssb: Core 2 found: PCI-E (cc 0x820, rev 0x02, vendor 0x4243)
2014-03-15T21:26:53.618333-07:00 T23-os131 kernel:   439.512232] ssb: Core 3 found: PCI (cc 0x804, rev 0x0D, vendor 0x4243)
2014-03-15T21:26:53.618340-07:00 T23-os131 kernel:   439.512246] ssb: Core 4 found: USB 1.1 Host (cc 0x817, rev 0x04, vendor 0x4243)
2014-03-15T21:26:53.678249-07:00 T23-os131 kernel:   439.572352] b43-phy1: Broadcom 4321 WLAN found (core revision 11)
2014-03-15T21:26:53.722334-07:00 T23-os131 kernel:   439.616209] b43-phy1: Found PHY: Analog 5, Type 4 (N), Revision 1
2014-03-15T21:26:53.746275-07:00 T23-os131 kernel:   439.640457] ssb: Sonics Silicon Backplane found on PCI device 0000:07:00.0
2014-03-15T21:26:53.758233-07:00 T23-os131 kernel:   439.654130] b43-phy1 ERROR: Firmware file "b43/ucode11.fw" not found
2014-03-15T21:26:53.758282-07:00 T23-os131 kernel:   439.654146] b43-phy1 ERROR: Firmware file "b43-open/ucode11.fw" not found
2014-03-15T21:26:53.758292-07:00 T23-os131 kernel:   439.654157] b43-phy1 ERROR: Please open a terminal and enter the command "sudo /usr/sbin/install_bcm43xx_firmware" to download the correct firmware for this driver version. For an off-line installation, go to http://en.opensuse.org/HCL/Network_Adapters_(Wireless)/Broadcom_BCM43xx and follow the instructions in the "Installing firmware from RPM packages" section.

Neither Network Manager nor YaST detected the card. The suggested

sudo /usr/sbin/install_bcm43xx_firmware

returned “command not found”.
I plugged in the network cable, installed broadcom-wl-kmp-default and rebooted. Selecting broadcom-wl-kmp-default for installation did not pull in broadcom-wl as a dependency. On rebooting, the card was still not detected - same /var/log/messages content. Finally I installed broadcom-wl, rebooted, and wireless works correctly.
As wolfi correctly stated, both broadcom-wl and broadcom-wl-kmp-default(desktop) are required.

Lesson learned is, have the card inserted during oS installation, and the right drivers will be included from the start.
Regards,
Howard

HAHAHA!!! YES!!! You know that total elation when, at last, it suddenly works? Haven’t had that for a while, but certainly did, this weekend!

Thank you so much for your very very kind responses to my issue with the Macbook Air. I’m delighted to say that this is being typed from it :slight_smile:
I can hardly believe that I was so dumb as not to check /var/log/messages when ifup hung… must have been stress or something. Duh…

Anyway - thanks again for all the suggestions, which I worked through, and discovered that the problem was the lack of the two firmware files. Once I’d installed the linux-firmware package, we were AWAY!

…and it’s not even Monday yet :))

Jamie

Great! Glad you got it working.

Some halcyon day in the future computers will just work, but until then fixing things is pretty much awesome. :}