6

I just installed Ubuntu on my mid 2012 MacBook Air. Everything worked out of the box, but the wifi is showing some weird behavior.

When I first login it's really fast, loading google.com is near instant, and browsing in general feels at least as smooth as it did on Mac OS. However, after a couple minutes the connection slows down dramatically, sometimes it takes over 5s to load google.com, a simple reboot fixes the problem for another couple minutes.

Specs:

  • Wifi: 02:00.0 Network controller: Broadcom Corporation BCM43224 802.11a/b/g/n (rev 01)
  • Driver: open-source brcmsmac driver
  • Kernel: Linux wega 3.8.0-21-generic #32-Ubuntu SMP Tue May 14 22:16:46 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
  • Distro: Ubuntu 13.04 (uptodate)

I tried a number of things, none of which actually helped

  • Use proprietary sta driver from broadcom
  • Installed firmware into /lib/firmware/brcms (which, as far as I can tell from logs, does not get loaded at all)
  • Switch router to only use 2.4 OR 5 GHz
  • Set router to only use a OR g OR n
  • Set router to use AES encryption only
  • Turned off power management on the adapter
  • Set regulatory region to the correct value (NL) on both router and laptop
  • Disable ipv6

Nothing seems to help, the slowdown always occurs. I did notice that the latency (ping google.com) stays roughly the same (around 9ms).

Below is some more information that might be of use.

$ lspci -nnk | grep -iA2 net
02:00.0 Network controller [0280]: Broadcom Corporation BCM43224 802.11a/b/g/n [14e4:4353] (rev 01)
    Subsystem: Apple Inc. Device [106b:00e9]
    Kernel driver in use: bcma-pci-bridge

$ rfkill list
0: hci0: Bluetooth
    Soft blocked: no
    Hard blocked: no
1: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: no

$ lsmod
Module                  Size  Used by
dm_crypt               22820  1 
arc4                   12615  2 
brcmsmac              550698  0 
coretemp               13355  0 
kvm_intel             132891  0 
parport_pc             28152  0 
kvm                   443165  1 kvm_intel
ppdev                  17073  0 
cordic                 12574  1 brcmsmac
brcmutil               14755  1 brcmsmac
mac80211              606457  1 brcmsmac
cfg80211              510937  2 brcmsmac,mac80211
bnep                   18036  2 
rfcomm                 42641  12 
joydev                 17377  0 
applesmc               19353  0 
input_polldev          13896  1 applesmc
snd_hda_codec_hdmi     36913  1 
microcode              22881  0 
snd_hda_codec_cirrus    23829  1 
nls_iso8859_1          12713  1 
uvcvideo               80847  0 
btusb                  22474  0 
snd_hda_intel          39619  3 
videobuf2_vmalloc      13056  1 uvcvideo
snd_hda_codec         136453  3 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_cirrus
bcm5974                17347  0 
bluetooth             228619  22 bnep,btusb,rfcomm
snd_hwdep              13602  1 snd_hda_codec
lpc_ich                17061  0 
videobuf2_memops       13202  1 videobuf2_vmalloc
videobuf2_core         40513  1 uvcvideo
videodev              129260  2 uvcvideo,videobuf2_core
bcma                   41051  1 brcmsmac
snd_pcm                97451  3 snd_hda_codec_hdmi,snd_hda_codec,snd_hda_intel
snd_page_alloc         18710  2 snd_pcm,snd_hda_intel
snd_seq_midi           13324  0 
snd_seq_midi_event     14899  1 snd_seq_midi
snd_rawmidi            30180  1 snd_seq_midi
snd_seq                61554  2 snd_seq_midi_event,snd_seq_midi
snd_seq_device         14497  3 snd_seq,snd_rawmidi,snd_seq_midi
snd_timer              29425  2 snd_pcm,snd_seq
snd                    68876  16 snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_pcm,snd_seq,snd_rawmidi,snd_hda_codec,snd_hda_intel,snd_seq_device,snd_hda_codec_cirrus
mei                    41158  0 
soundcore              12680  1 snd
apple_bl               13673  0 
mac_hid                13205  0 
lp                     17759  0 
parport                46345  3 lp,ppdev,parport_pc
usb_storage            57204  0 
hid_apple              13237  0 
hid_generic            12540  0 
ghash_clmulni_intel    13259  0 
aesni_intel            55399  399 
aes_x86_64             17255  1 aesni_intel
xts                    12885  1 aesni_intel
lrw                    13257  1 aesni_intel
gf128mul               14951  2 lrw,xts
ablk_helper            13597  1 aesni_intel
cryptd                 20373  4 ghash_clmulni_intel,aesni_intel,ablk_helper
i915                  600351  3 
ahci                   25731  3 
libahci                31364  1 ahci
video                  19390  1 i915
i2c_algo_bit           13413  1 i915
drm_kms_helper         49394  1 i915
usbhid                 47074  0 
drm                   286313  4 i915,drm_kms_helper
hid                   101002  3 hid_generic,usbhid,hid_apple

$ dmesg | egrep 'b43|bcma|brcm|[F]irm'
[    0.055025] [Firmware Bug]: ioapic 2 has no mapping iommu, interrupt remapping will be disabled
[    0.152336] [Firmware Bug]: ACPI: BIOS _OSI(Linux) query ignored
[    2.187681] pci_root PNP0A08:00: [Firmware Info]: MMCONFIG for domain 0000 [bus 00-99] only partially covers this bridge
[   12.553600] bcma-pci-bridge 0000:02:00.0: enabling device (0000 -> 0002)
[   12.553657] bcma: bus0: Found chip with id 0xA8D8, rev 0x01 and package 0x08
[   12.553688] bcma: bus0: Core 0 found: ChipCommon (manuf 0x4BF, id 0x800, rev 0x22, class 0x0)
[   12.553715] bcma: bus0: Core 1 found: IEEE 802.11 (manuf 0x4BF, id 0x812, rev 0x17, class 0x0)
[   12.553764] bcma: bus0: Core 2 found: PCIe (manuf 0x4BF, id 0x820, rev 0x0F, class 0x0)
[   12.605777] bcma: bus0: Bus registered
[   12.852925] brcmsmac bcma0:0: mfg 4bf core 812 rev 23 class 0 irq 17
[   13.085176] brcmsmac bcma0:0: brcms_ops_bss_info_changed: qos enabled: false (implement)
[   13.085186] brcmsmac bcma0:0: brcms_ops_config: change power-save mode: false (implement)
[   20.862617] brcmsmac bcma0:0: brcmsmac: brcms_ops_bss_info_changed: associated
[   20.862622] brcmsmac bcma0:0: brcms_ops_bss_info_changed: arp filtering: enabled true, count 0 (implement)
[   20.862625] brcmsmac bcma0:0: brcms_ops_bss_info_changed: qos enabled: true (implement)
[   20.897957] brcmsmac bcma0:0: brcms_ops_bss_info_changed: arp filtering: enabled true, count 1 (implement)


$ iwconfig
lo        no wireless extensions.

wlan0     IEEE 802.11abgn  ESSID:"wlan"  
          Mode:Managed  Frequency:5.22 GHz  Access Point: E0:46:9A:4E:63:9A   
          Bit Rate=65 Mb/s   Tx-Power=17 dBm   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality=63/70  Signal level=-47 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:13  Invalid misc:56   Missed beacon:0

2 Answers 2

1

I used to have the same wireless card in my Dell Vostro and I had some similar problems too.

Try to compile the driver as stated here (I do not use Ubuntu nor have the notebook anymore to test and make sure it works)

https://askubuntu.com/questions/55868/how-to-install-a-broadcom-wireless-driver

These can also help:

https://help.ubuntu.com/community/WifiDocs/Driver/bcm43xx http://ubuntuforums.org/showthread.php?t=1658627

Finally, I have a strong feeling that you do need to recompile the kernel and activate the CONFIG_B43_BCMA_EXTRA var to be able to load the b43 module.

0

Im sure I have similar hardware, and i was having the exact same issue that you are.

You can fix it fairly easily. I used this guide to fix the issue: http://forums.fedoraforum.org/showpost.php?p=1583224&postcount=7

My Hardware Info

[user@macbookair ~]$ sudo dmidecode -t 2 dmidecode 2.12 SMBIOS 2.4 present.

Handle 0x001C, DMI type 2, 16 bytes Base Board Information Manufacturer: Apple Inc. Product Name: Mac-2E6FAB96566FE58C Version: MacBookAir5,2 Serial Number: xxxxx Asset Tag: Base Board Asset Tag Features: Board is a hosting board Board is replaceable Location In Chassis: Part Component Chassis Handle: 0x001D Type: Motherboard Contained Object Handles: 0

[user@macbookair ~]$ sudo lspci | grep Network 02:00.0 Network controller: Broadcom Corporation BCM43224 802.11a/b/g/n (rev 01)

get the drivers from www.broadcom.com/support/802.11/linux_sta.php

wget http://www.broadcom.com/docs/linux_sta/hybrid-portsrc_x86_64-v5_100_82_112.tar.gz

extract

tar -xvzf hybrid-portsrc_x86_64-v5_100_82_112.tar.gz

remove the include line of include asm/system.h

nano src/wl/sys/wl_linux.c

search for the string .ndo_set_multicast_list and replace it with .ndo_set_rx_mode

build the driver

make

mkdir for the driver and copy driver

mkdir -p /lib/modules/`uname -r`/extra/wl && cp wl.ko /lib/modules/`uname -r`/extra/wl 

note sure what these do, but i think they load the driver

depmod -a && modprobe wl

i use fedora, so your mileage may vary. i also had to install akmods service because my wlan card wouldnt turn back on if i reset the networking service until i started akmods.

i am an absolute noob at linux, so take this information with that in mind!

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .