PDA

View Full Version : WPA connectivity problems with BCM43xx-based Broadcom wireless adapter


Ronnie Bass
2006-12-30, 04:29 PM CST
Hey All!

I've scoured the web and the forums for answers with little effect. I've come to seek the guidance of the almighty Fedora sherpas!

I'm on FC6 x86_64. I've verified the functionality of my wireless adapter (henceforth wlan0) with wide open wireless networks. I've configured the /etc/wpa_supplicant/wpa_supplicant.conf file as follows:

ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=wheel
ap_scan=2
update_config=1

network={
ssid="any"
key_mgmt=NONE
disabled=1
}

network={
ssid="mySSID"
psk="myPSK"
proto=WPA
key_mgmt=WPA-PSK
pairwise=TKIP
group=TKIP
disabled=1
}


I've configured the /etc/sysconfig/wpa_supplicant file as follows:

# wlan0 and wifi0
# INTERFACES="-iwlan0 -iwifi0"
INTERFACES="-iwlan0"
# ndiswrapper and prism
# DRIVERS="-Dndiswrapper -Dprism"
DRIVERS="-Dndiswrapper"


I've set the wpa_supplicant as a running service and used "chkconfig wpa_supplicant on" to ensure boot utility. I've installed the wpa_gui tool. Here's the dump from the wpa_supplicant run:

[root@Libra /]# wpa_supplicant -iwlan0 -Dndiswrapper -c/etc/wpa_supplicant/wpa_supplicant.conf -d
Initializing interface 'wlan0' conf '/etc/wpa_supplicant/wpa_supplicant.conf' driver 'ndiswrapper' ctrl_interface 'N/A'
Configuration file '/etc/wpa_supplicant/wpa_supplicant.conf' -> '/etc/wpa_supplicant/wpa_supplicant.conf'
Reading configuration file '/etc/wpa_supplicant/wpa_supplicant.conf'
ctrl_interface='/var/run/wpa_supplicant'
ctrl_interface_group=10 (from group name 'wheel')
ap_scan=2
update_config=1
Priority group 0
id=0 ssid='any'
id=1 ssid='mySSID'
Initializing interface (2) 'wlan0'
EAPOL: SUPP_PAE entering state DISCONNECTED
EAPOL: KEY_RX entering state NO_KEY_RECEIVE
EAPOL: SUPP_BE entering state INITIALIZE
EAP: EAP entering state DISABLED
EAPOL: External notification - portEnabled=0
EAPOL: External notification - portValid=0
SIOCGIWRANGE: WE(compiled)=20 WE(source)=18 enc_capa=0xf
capabilities: key_mgmt 0xf enc 0xf
Own MAC address: xx:xx:xx:xx:xx:xx
Driver does not support WPA.
wpa_driver_wext_set_key: alg=0 key_idx=0 set_tx=0 seq_len=0 key_len=0
wpa_driver_wext_set_key: alg=0 key_idx=1 set_tx=0 seq_len=0 key_len=0
wpa_driver_wext_set_key: alg=0 key_idx=2 set_tx=0 seq_len=0 key_len=0
wpa_driver_wext_set_key: alg=0 key_idx=3 set_tx=0 seq_len=0 key_len=0
Setting scan request: 0 sec 100000 usec
Added interface wlan0
Wireless event: cmd=0x8b06 len=12
State: DISCONNECTED -> SCANNING


As you can see, the driver apparently doesn't support WPA, but I find that hard to believe. Can anyone confirm that WPA is or is not supported by ANY of the Broadcom adapters in Linux/FC6? If you have experience with this functionality, please let me know.

When running the wpa_gui and attempting to associate to my wireless network, which it detects, I get the error "Association request to the driver failed."

All roads point to the driver, in these cases. Can anyone enlighten me on any errors I've made in configuration or if this is a known problem being solved?

Thanks in advance, from a very frustrated wireless nut!

zeroelixis
2006-12-30, 05:23 PM CST
Looks like ndiswrapper is reporting that wpa is not supported....your configs look ok. Try running wpa_supplicant with two d's on the end "-dd" for more detailed output and check the ndiswrapper wiki to see if your driver supports wpa.

Ronnie Bass
2006-12-30, 06:10 PM CST
I ran it with -dd like you said, but the output is relatively unchanged. The lines immediately above and immediately below the like "Driver does not support WPA" do not indicate any information of substance as to the issue. I would surmise that the issue still lies with the driver, but I don't believe ndiswrapper is at fault.

As I'd mentioned, the BCM43xx drivers are hit or miss, and it appears that with WPA, they're straight out to sea! For grins I tested the connection without bringing up the wlan0 adapter first, and after the error "Association request to the driver failed." came up in wpa_gui, I did a ifup wlan0 from the terminal. After a very long pause, the adapter connected but with a completely erroneous IP address and subnet mask. Might be a glitch with the wpa_supplicant, but I thought it was interesting to note.

I could take down all wireless security on my network except MAC filtering, but I'd prefer to keep my nosy Windows tech neighbors out. Hardly seems worth it just to get wireless working in FC6.

Still open to ideas, and thanks for your quick response, zeroelixis.

Ronnie Bass
2006-12-30, 06:30 PM CST
The plot thickens...

I forced ndiswrapper to not load and manually loaded it after boot. Here's the dmesg output confirming that the driver DOES support WPA:

ndiswrapper version 1.32 loaded (preempt=no,smp=yes)
ndiswrapper (link_pe_images:577): fixing KI_USER_SHARED_DATA address in the driver
ndiswrapper: driver bcmwl5 (Broadcom,03/23/2006, 4.40.19.0) loaded
ACPI: PCI Interrupt 0000:06:02.0[A] -> GSI 21 (level, low) -> IRQ 177
ndiswrapper: using IRQ 177
wlan0: ethernet device 00:14:a5:63:90:50 using NDIS driver: bcmwl5, version: 0x4281300, NDIS version: 0x501, vendor: '', 14E4:4318.5.conf
wlan0: encryption modes supported: WEP; TKIP with WPA, WPA2, WPA2PSK; AES/CCMP with WPA, WPA2, WPA2PSK
usbcore: registered new driver ndiswrapper
ADDRCONF(NETDEV_UP): wlan0: link is not ready
ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready


Any additional thoughts?

zeroelixis
2006-12-30, 06:32 PM CST
Just for fiddling purposes you could try using the "wext" driver instead of the ndiswrapper. Also have you tried using fedoras networkmanager? thats pretty good for automagically configuring wpa/wep conenctions.
http://fedoraproject.org/wiki/Tools/NetworkManager
If that doesn't help you could try using the ndiswrapper from CVS.

Ronnie Bass
2006-12-30, 08:01 PM CST
Just when I was about to give up... after 8+ hours of fiddling and tweaking... the problem is resolved.

How did I do it, you ask?

I simply enabled the NetworkManagerDispatcher... problem solved. After all this time I thought that I'd have to play with wpa_supplicant and whatnot... but the GUI came to the rescue. Unbelieveable! I LOVE Linux!

Anyway... I rebooted the system for the last time and wanted to check that an RC5 change I made went through. When I got into the GUI, I noticed the little network connection icon and that it gave me information on nearby wireless connections. I decided to add my own, using the encryption information and key I previously specified in the wpa_supplicant.conf file, but it didn't work right. I changed the "Type" from "Automatic (Default)" to "TKIP" and it came right up! I didn't even have to enable the adapter, it took care of itself.

So for anyone with a similar problem who may come across this trolling on Google or Yahoo, don't bother with the console stuff. Just turn on the NetworkManagerDispatcher service, and you make your life VERY simple!

Good luck, and thanks to those to read and helped me in this forum!