brcm80211 problem with BCM43225
From: Ilya Kogan <hidden>
Date: 2011-01-10 03:06:49
Hello, Firstly, sorry about the huge e-mail but I figured more information would help. I purchased an Acer Aspire 1551 (http://support.acer.com/acerpanam/notebook/2010/Acer/Aspire/Aspire1551/Aspire1551sp2.shtml) that contains a Broadcom BCM43225 and have been having a world of issues trying to get it to work. I'm trying to do this with Ubuntu 10.10 64-bit which includes Kernel 2.6.35-24. Thus far I have tried the following drivers with various failure modes: 1. Broadcom STA, their closed-source driver. This was from Ubuntu's "Additional Drivers" tool. 2. “Broadcom 802.11n Wireless LAN Driver”, which I assume was brcm80211 but can't quite recall, also from "Additional Drivers". 3. brcm80211 from “linux-backports-modules-compat-wireless-2.6.36-2.6.35-24-generic”. 4. brcm80211 from http://ubuntuforums.org/showthread.php?t=1617380. This involves getting a copy of linux-next, hacking up the Makefile so that it can build the driver without the the rest of the kernel, and manually copying brcm80211.ko and the firmware into the right place. 5. brcm80211 from the latest compat-wireless tarball. 6. brcm80211 from the latest compat-wireless git. The Broadcom STA driver detected the card as BCM4357 and every command I tried with iwconfig gave me “Invalid Argument”. The rest of the drivers detected the card correctly, but some strange things happened. First, here's the relevant entries from the kernel log during module init: [ 572.439045] Compat-wireless backport release: compat-wireless-2011-01-06 [ 572.439052] Backport based on linux-next.git next-20110107 [ 572.465233] cfg80211: Calling CRDA to update world regulatory domain [ 572.478124] cfg80211: World regulatory domain updated: [ 572.478129] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp) [ 572.478135] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm) [ 572.478139] cfg80211: (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm) [ 572.478143] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm) [ 572.478147] cfg80211: (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm) [ 572.478151] cfg80211: (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm) [ 572.501499] brcm80211 0000:06:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17 [ 572.501511] brcm80211 0000:06:00.0: setting latency timer to 64 [ 572.508965] Found chip type AI (0x13a1a8d9) [ 572.519912] wlc_bmac_attach:: deviceid 0x4357 nbands 1 board 0xe021 macaddr: c4:46:19:6c:a9:c0 [ 572.520270] cfg80211: Updating information on frequency 2412 MHz for a 20 MHz width channel with regulatory rule: [ 572.520275] cfg80211: 2402000 KHz - 2472000 KHz @ KHz), (300 mBi, 2000 mBm) [ 572.520279] cfg80211: Updating information on frequency 2417 MHz for a 20 MHz width channel with regulatory rule: [ 572.520283] cfg80211: 2402000 KHz - 2472000 KHz @ KHz), (300 mBi, 2000 mBm) [ 572.520286] cfg80211: Updating information on frequency 2422 MHz for a 20 MHz width channel with regulatory rule: [ 572.520290] cfg80211: 2402000 KHz - 2472000 KHz @ KHz), (300 mBi, 2000 mBm) [ 572.520294] cfg80211: Updating information on frequency 2427 MHz for a 20 MHz width channel with regulatory rule: [ 572.520300] cfg80211: 2402000 KHz - 2472000 KHz @ KHz), (300 mBi, 2000 mBm) [ 572.520306] cfg80211: Updating information on frequency 2432 MHz for a 20 MHz width channel with regulatory rule: [ 572.520312] cfg80211: 2402000 KHz - 2472000 KHz @ KHz), (300 mBi, 2000 mBm) [ 572.520318] cfg80211: Updating information on frequency 2437 MHz for a 20 MHz width channel with regulatory rule: [ 572.520325] cfg80211: 2402000 KHz - 2472000 KHz @ KHz), (300 mBi, 2000 mBm) [ 572.520331] cfg80211: Updating information on frequency 2442 MHz for a 20 MHz width channel with regulatory rule: [ 572.520337] cfg80211: 2402000 KHz - 2472000 KHz @ KHz), (300 mBi, 2000 mBm) [ 572.520343] cfg80211: Updating information on frequency 2447 MHz for a 20 MHz width channel with regulatory rule: [ 572.520350] cfg80211: 2402000 KHz - 2472000 KHz @ KHz), (300 mBi, 2000 mBm) [ 572.520356] cfg80211: Updating information on frequency 2452 MHz for a 20 MHz width channel with regulatory rule: [ 572.520363] cfg80211: 2402000 KHz - 2472000 KHz @ KHz), (300 mBi, 2000 mBm) [ 572.520369] cfg80211: Updating information on frequency 2457 MHz for a 20 MHz width channel with regulatory rule: [ 572.520376] cfg80211: 2402000 KHz - 2472000 KHz @ KHz), (300 mBi, 2000 mBm) [ 572.520382] cfg80211: Updating information on frequency 2462 MHz for a 20 MHz width channel with regulatory rule: [ 572.520388] cfg80211: 2402000 KHz - 2472000 KHz @ KHz), (300 mBi, 2000 mBm) [ 572.520395] cfg80211: Updating information on frequency 2467 MHz for a 20 MHz width channel with regulatory rule: [ 572.520402] cfg80211: 2457000 KHz - 2482000 KHz @ KHz), (300 mBi, 2000 mBm) [ 572.520407] cfg80211: Updating information on frequency 2472 MHz for a 20 MHz width channel with regulatory rule: [ 572.520414] cfg80211: 2457000 KHz - 2482000 KHz @ KHz), (300 mBi, 2000 mBm) [ 572.520420] cfg80211: Updating information on frequency 2484 MHz for a 20 MHz width channel with regulatory rule: [ 572.520427] cfg80211: 2474000 KHz - 2494000 KHz @ KHz), (300 mBi, 2000 mBm) [ 572.520785] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht' [ 572.524533] wl_set_hint: Sending country code US to MAC80211 [ 572.524542] wl0: Broadcom BCM43xx 802.11 MAC80211 Driver (1.82.8.0) (Compiled at 15:18:31 on Jan 9 2011) [ 572.524566] cfg80211: Calling CRDA for country: US [ 572.530110] cfg80211: Updating information on frequency 2412 MHz for a 20 MHz width channel with regulatory rule: [ 572.530117] cfg80211: 2402000 KHz - 2472000 KHz @ KHz), (300 mBi, 2700 mBm) [ 572.530122] cfg80211: Updating information on frequency 2417 MHz for a 20 MHz width channel with regulatory rule: [ 572.530126] cfg80211: 2402000 KHz - 2472000 KHz @ KHz), (300 mBi, 2700 mBm) [ 572.530130] cfg80211: Updating information on frequency 2422 MHz for a 20 MHz width channel with regulatory rule: [ 572.530134] cfg80211: 2402000 KHz - 2472000 KHz @ KHz), (300 mBi, 2700 mBm) [ 572.530137] cfg80211: Updating information on frequency 2427 MHz for a 20 MHz width channel with regulatory rule: [ 572.530141] cfg80211: 2402000 KHz - 2472000 KHz @ KHz), (300 mBi, 2700 mBm) [ 572.530144] cfg80211: Updating information on frequency 2432 MHz for a 20 MHz width channel with regulatory rule: [ 572.530148] cfg80211: 2402000 KHz - 2472000 KHz @ KHz), (300 mBi, 2700 mBm) [ 572.530152] cfg80211: Updating information on frequency 2437 MHz for a 20 MHz width channel with regulatory rule: [ 572.530156] cfg80211: 2402000 KHz - 2472000 KHz @ KHz), (300 mBi, 2700 mBm) [ 572.530159] cfg80211: Updating information on frequency 2442 MHz for a 20 MHz width channel with regulatory rule: [ 572.530163] cfg80211: 2402000 KHz - 2472000 KHz @ KHz), (300 mBi, 2700 mBm) [ 572.530166] cfg80211: Updating information on frequency 2447 MHz for a 20 MHz width channel with regulatory rule: [ 572.530170] cfg80211: 2402000 KHz - 2472000 KHz @ KHz), (300 mBi, 2700 mBm) [ 572.530174] cfg80211: Updating information on frequency 2452 MHz for a 20 MHz width channel with regulatory rule: [ 572.530177] cfg80211: 2402000 KHz - 2472000 KHz @ KHz), (300 mBi, 2700 mBm) [ 572.530181] cfg80211: Updating information on frequency 2457 MHz for a 20 MHz width channel with regulatory rule: [ 572.530185] cfg80211: 2402000 KHz - 2472000 KHz @ KHz), (300 mBi, 2700 mBm) [ 572.530188] cfg80211: Updating information on frequency 2462 MHz for a 20 MHz width channel with regulatory rule: [ 572.530192] cfg80211: 2402000 KHz - 2472000 KHz @ KHz), (300 mBi, 2700 mBm) [ 572.530195] cfg80211: Disabling freq 2467 MHz [ 572.530198] cfg80211: Disabling freq 2472 MHz [ 572.530200] cfg80211: Disabling freq 2484 MHz [ 572.530204] cfg80211: Regulatory domain changed to country: US [ 572.530207] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp) [ 572.530211] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2700 mBm) [ 572.530215] cfg80211: (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 1700 mBm) [ 572.530219] cfg80211: (5250000 KHz - 5330000 KHz @ 40000 KHz), (300 mBi, 2000 mBm) [ 572.530223] cfg80211: (5490000 KHz - 5600000 KHz @ 40000 KHz), (300 mBi, 2000 mBm) [ 572.530226] cfg80211: (5650000 KHz - 5710000 KHz @ 40000 KHz), (300 mBi, 2000 mBm) [ 572.530230] cfg80211: (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 3000 mBm) The first brcm80211 that I tried was the one from (4). This one actually lit up the LED claiming that wireless was on and managed to show me a list of wireless networks through iwlist scan. NetworkManager, however, continue to claim that wireless was disabled. Figuring this was an NM problem, I rebooted. As soon as the kernel finished booting, the wireless LED turned off and has not turned back on since. At one point, I forced the interface to be up via “ifconfig wlan0 up” and then did “iwlist wlan0 scan” with hilarious results. Sometimes the system would explode with white and black bars, sometimes I would get a white screen, and sometimes I would get scan results that were totally wonky (see scan.log). One of those versions would log the following when Itried to toggle the wireless switch: Jan 8 22:48:44 Lulzer kernel: [ 259.727970] wl0: MAC Detected a change on the RF Disable Input 0x10000 Jan 8 22:48:44 Lulzer kernel: [ 260.327466] wl0: MAC Detected a change on the RF Disable Input 0x0 Jan 8 22:48:53 Lulzer kernel: [ 268.753399] wl0: MAC Detected a change on the RF Disable Input 0x10000 Below are the relevant details as command output, also, a hwinfo dump and kernel log are attached. “iw event -t” yields no output during insertion or removal of the module. I'm willing to be a guinea pig to help debug this and possibly hack on it a bit myself once I figure out how these things work. Also, please let me know if I'm not actually running with the recommend debug options, I modified config.mk to set the ones mentioned on the website. Thanks very much, Ilya Kogan ikogan@Lulzer:~$ lspci 00:00.0 Host bridge: Advanced Micro Devices [AMD] RS780 Host Bridge Alternate 00:01.0 PCI bridge: Acer Incorporated [ALI] Device 9602 00:04.0 PCI bridge: Advanced Micro Devices [AMD] RS780 PCI to PCI bridge (PCIE port 0) 00:05.0 PCI bridge: Advanced Micro Devices [AMD] RS780 PCI to PCI bridge (PCIE port 1) 00:11.0 SATA controller: ATI Technologies Inc SB700/SB800 SATA Controller [AHCI mode] 00:12.0 USB Controller: ATI Technologies Inc SB700/SB800 USB OHCI0 Controller 00:12.2 USB Controller: ATI Technologies Inc SB700/SB800 USB EHCI Controller 00:13.0 USB Controller: ATI Technologies Inc SB700/SB800 USB OHCI0 Controller 00:13.2 USB Controller: ATI Technologies Inc SB700/SB800 USB EHCI Controller 00:14.0 SMBus: ATI Technologies Inc SBx00 SMBus Controller (rev 41) 00:14.1 IDE interface: ATI Technologies Inc SB700/SB800 IDE Controller (rev 40) 00:14.2 Audio device: ATI Technologies Inc SBx00 Azalia (Intel HDA) (rev 40) 00:14.3 ISA bridge: ATI Technologies Inc SB700/SB800 LPC host controller (rev 40) 00:14.4 PCI bridge: ATI Technologies Inc SBx00 PCI to PCI Bridge (rev 40) 00:16.0 USB Controller: ATI Technologies Inc SB700/SB800 USB OHCI0 Controller 00:16.2 USB Controller: ATI Technologies Inc SB700/SB800 USB EHCI Controller 00:18.0 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor HyperTransport Configuration 00:18.1 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Address Map 00:18.2 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor DRAM Controller 00:18.3 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Miscellaneous Control 00:18.4 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Link Control 01:05.0 VGA compatible controller: ATI Technologies Inc M880G [Mobility Radeon HD 4200] 01:05.1 Audio device: ATI Technologies Inc RS880 Audio Device [Radeon HD 4200] 03:00.0 Ethernet controller: Atheros Communications AR8151 v1.0 Gigabit Ethernet (rev c0) 06:00.0 Network controller: Broadcom Corporation BCM43225 802.11b/g/n (rev 01) ikogan@Lulzer:~$ cat /proc/cpuinfo processor : 0 vendor_id : AuthenticAMD cpu family : 16 model : 6 model name : AMD Athlon(tm) II Neo K325 Dual-Core Processor stepping : 3 cpu MHz : 800.000 cache size : 1024 KB physical id : 0 siblings : 2 core id : 0 cpu cores : 2 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 5 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nonstop_tsc extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a 3dnowprefetch osvw ibs skinit wdt nodeid_msr npt lbrv svm_lock nrip_save bogomips : 2593.60 TLB size : 1024 4K pages clflush size : 64 cache_alignment : 64 address sizes : 48 bits physical, 48 bits virtual power management: ts ttp tm stc 100mhzsteps hwpstate processor : 1 vendor_id : AuthenticAMD cpu family : 16 model : 6 model name : AMD Athlon(tm) II Neo K325 Dual-Core Processor stepping : 3 cpu MHz : 800.000 cache size : 1024 KB physical id : 0 siblings : 2 core id : 1 cpu cores : 2 apicid : 1 initial apicid : 1 fpu : yes fpu_exception : yes cpuid level : 5 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nonstop_tsc extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a 3dnowprefetch osvw ibs skinit wdt nodeid_msr npt lbrv svm_lock nrip_save bogomips : 2593.49 TLB size : 1024 4K pages clflush size : 64 cache_alignment : 64 address sizes : 48 bits physical, 48 bits virtual power management: ts ttp tm stc 100mhzsteps hwpstate ikogan@Lulzer:~$ uname -a Linux Lulzer 2.6.35-24-generic #42-Ubuntu SMP Thu Dec 2 02:41:37 UTC 2010 x86_64 GNU/Linux ikogan@Lulzer:~$ lsmod Module Size Used by binfmt_misc 7984 1 vboxnetadp 5395 0 vboxnetflt 19131 0 vboxdrv 1818472 2 vboxnetadp,vboxnetflt parport_pc 30086 0 ppdev 6804 0 snd_hda_codec_atihdmi 3079 1 snd_hda_codec_realtek 299844 1 arc4 1497 2 snd_hda_intel 26019 2 snd_hda_codec 100919 3 snd_hda_codec_atihdmi,snd_hda_codec_realtek,snd_hda_intel brcm80211 732072 0 snd_hwdep 6660 1 snd_hda_codec snd_pcm 89104 2 snd_hda_intel,snd_hda_codec uvcvideo 62379 0 videodev 49359 1 uvcvideo snd_seq_midi 5932 0 v4l1_compat 15519 2 uvcvideo,videodev mac80211 289506 1 brcm80211 v4l2_compat_ioctl32 12614 1 videodev snd_rawmidi 22207 1 snd_seq_midi snd_seq_midi_event 7291 1 snd_seq_midi fglrx 2523725 32 snd_seq 57512 2 snd_seq_midi,snd_seq_midi_event cfg80211 173372 2 brcm80211,mac80211 snd_timer 23850 2 snd_pcm,snd_seq acer_wmi 15969 0 snd_seq_device 6912 3 snd_seq_midi,snd_rawmidi,snd_seq compat 7653 2 mac80211,cfg80211 snd 64181 13 snd_hda_codec_realtek,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_rawmidi,snd_seq,snd_timer,snd_seq_device led_class 3393 2 acer_wmi,compat psmouse 62080 0 serio_raw 4910 0 soundcore 1240 1 snd video 22176 0 edac_core 46822 0 snd_page_alloc 8588 2 snd_hda_intel,snd_pcm output 2527 1 video i2c_piix4 10047 0 edac_mce_amd 9387 0 k10temp 3535 0 shpchp 34910 0 lp 10201 0 parport 37032 3 parport_pc,ppdev,lp usb_storage 50372 0 ahci 22210 2 libahci 26052 1 ahci pata_atiixp 4405 0 atl1c 34955 0 ikogan@Lulzer:~$ sudo iwconfig lo no wireless extensions. eth0 no wireless extensions. vboxnet0 no wireless extensions. wlan0 IEEE 802.11bgn ESSID:off/any Mode:Managed Access Point: Not-Associated Tx-Power=0 dBm Retry long limit:7 RTS thr:off Fragment thr:off Encryption key:off Power Management:off ikogan@Lulzer:~$ sudo iwlist scan lo Interface doesn't support scanning. eth0 Interface doesn't support scanning. vboxnet0 Interface doesn't support scanning. wlan0 Interface doesn't support scanning : Network is down ikogan@Lulzer:~$ sudo iw wlan0 info Interface wlan0 ifindex 5 type managed ikogan@Lulzer:/lib/firmware/brcm$ ls -la total 376 drwxr-xr-x 2 root root 4096 2011-01-09 21:53 . drwxr-xr-x 51 root root 4096 2011-01-08 23:57 .. -rw-r--r-- 1 root root 269595 2011-01-09 21:53 bcm4329-fullmac-4-218-248-5.bin -rw-r--r-- 1 root root 1604 2011-01-09 21:53 bcm4329-fullmac-4-218-248-5.txt lrwxrwxrwx 1 root root 31 2011-01-09 21:53 bcm4329-fullmac-4.bin -> bcm4329-fullmac-4-218-248-5.bin lrwxrwxrwx 1 root root 31 2011-01-09 21:53 bcm4329-fullmac-4.txt -> bcm4329-fullmac-4-218-248-5.txt -rw-r--r-- 1 root root 97376 2011-01-08 11:58 bcm43xx-0-610-809-0.fw lrwxrwxrwx 1 root root 22 2011-01-08 11:58 bcm43xx-0.fw -> bcm43xx-0-610-809-0.fw -rw-r--r-- 1 root root 180 2011-01-08 11:58 bcm43xx_hdr-0-610-809-0.fw lrwxrwxrwx 1 root root 26 2011-01-08 11:59 bcm43xx_hdr-0.fw -> bcm43xx_hdr-0-610-809-0.fw Thanks again, -- Ilya Kogan