Linux bcm43224 wifi adapter slows down a couple minutes after boot
- by Blubber
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