ar6000 (FR's wifi) bugs, workarounds and CLI usage tips, read this for stable wifi

Paul Fertser fercerpav at gmail.com
Sun Feb 21 16:26:39 CET 2010


Hi,

I've got involved in some wifi configuration recently and so tested FR
with different APs and settings. As a result, several interesting
observations were made, i hope you'll find them useful.


1. Weird SSID bug

Thanks to the hint by Werner i found out that i can never connect to
my WPA+RSN AP when its SSID is "Paul-g700ap". wpa_supplicant
associates but 4-way handshake times out after sending 2/4. Every
time. Changing SSID to e.g. "Paul-g700af" and power-cycling ar6000
reliably makes it work. Changing it back reliably makes it not work.

To sum up: if WPA authentication times out, try changing SSID.


2. Do not hurry to start up wpa_supplicant, add some pause after
powering on the chip:

fsoraw -r WiFi -- bash -c "sleep 5; wpa_supplicant -ieth0 -Dwext -c/etc/wpa_supplicant/wpa_supplicant.conf"


3. It's recommended to power-cycle the chip after every wpa_supplicant
invocation, the fsoraw method does that automatically, if you're
using any other way, you might need to do that manually.


4. With some APs to get reliable (sometimes any) operation, you need
the "maxperf trick":

wmiconfig -ieth0 --power=maxperf


5. Suspend/resume works just fine but you need some additional trick
to get DHCP lease again after resume. For that you can start

wpa_cli -G100 -a /usr/local/bin/wifi-dhcp.sh

with wifi-dhcp.sh:

#!/bin/sh
[ "$2" = "CONNECTED" ] && {
       dhclient $1
       pkill -f "wpa_cli -a"
       wpa_cli -a $0 -B -G100
}

The need for restarting wpa_cli comes from a kernel bug (the driver
fails to notify the userspace about disconnection), the fix is
available on the kernel ML and will be committed soon; after that you
won't need pkill & wpa_cli lines any more.

With Debian (no idea if that's applicable to OE, sorry) after applying
the fix you should be able to use standard /etc/network/interfaces
configuration methods, it should invoke wpa_cli, wpa_action and
ifupdown on its own, but i haven't tried to make that work yet, please
try it yourself and report the results.

HTH
-- 
Be free, use free (http://www.gnu.org/philosophy/free-sw.html) software!
mailto:fercerpav at gmail.com



More information about the community mailing list