Ath9k, AR9160, Openwrt and 5 ghz
simone pascucci
cxjepa
Sat Feb 14 04:30:17 PST 2009
Hi,
I'm running the configuration as in the title. I'm trying to set up a
5 ghz N mode access point, but hostapd fails with the following error
root at OpenWrt:~# wifi up
Configuration file: /var/run/hostapd-wlan0.conf
Line 8: DEPRECATED: 'debug' configuration variable is not used anymore
Opening raw packet socket for ifindex 0
BSS count 1, BSSID mask ff:ff:ff:ff:ff:ff (0 bits)
SIOCGIWRANGE: WE(compiled)=22 WE(source)=21 enc_capa=0xf
nl80211: Added 802.11b mode based on 802.11g information
Allowed channel: mode=1 chan=1 freq=2412 MHz max_tx_power=20 dBm
Allowed channel: mode=1 chan=2 freq=2417 MHz max_tx_power=20 dBm
Allowed channel: mode=1 chan=3 freq=2422 MHz max_tx_power=20 dBm
Allowed channel: mode=1 chan=4 freq=2427 MHz max_tx_power=20 dBm
Allowed channel: mode=1 chan=5 freq=2432 MHz max_tx_power=20 dBm
Allowed channel: mode=1 chan=6 freq=2437 MHz max_tx_power=20 dBm
Allowed channel: mode=1 chan=7 freq=2442 MHz max_tx_power=20 dBm
Allowed channel: mode=1 chan=8 freq=2447 MHz max_tx_power=20 dBm
Allowed channel: mode=1 chan=9 freq=2452 MHz max_tx_power=20 dBm
Allowed channel: mode=1 chan=10 freq=2457 MHz max_tx_power=20 dBm
Allowed channel: mode=1 chan=11 freq=2462 MHz max_tx_power=20 dBm
Allowed channel: mode=0 chan=1 freq=2412 MHz max_tx_power=20 dBm
Allowed channel: mode=0 chan=2 freq=2417 MHz max_tx_power=20 dBm
Allowed channel: mode=0 chan=3 freq=2422 MHz max_tx_power=20 dBm
Allowed channel: mode=0 chan=4 freq=2427 MHz max_tx_power=20 dBm
Allowed channel: mode=0 chan=5 freq=2432 MHz max_tx_power=20 dBm
Allowed channel: mode=0 chan=6 freq=2437 MHz max_tx_power=20 dBm
Allowed channel: mode=0 chan=7 freq=2442 MHz max_tx_power=20 dBm
Allowed channel: mode=0 chan=8 freq=2447 MHz max_tx_power=20 dBm
Allowed channel: mode=0 chan=9 freq=2452 MHz max_tx_power=20 dBm
Allowed channel: mode=0 chan=10 freq=2457 MHz max_tx_power=20 dBm
Allowed channel: mode=0 chan=11 freq=2462 MHz max_tx_power=20 dBm
wlan0: IEEE 802.11 Configured channel (44) not found from the channel
list of current mode (2) IEEE 802.11a
wlan0: IEEE 802.11 Hardware does not support configured channel
Could not select hw_mode and channel. (-1)
wlan0: Unable to setup interface.
rmdir[ctrl_interface]: No such file or directory
enable_mac80211(wlan0): Failed to set up wpa for interface wlan0
I'm trying to read the source code, but it's quite long and, if
possible, maybe someone could address me on the source of the error.
As you can see, the nl80211 is running a function which set up a B
mode network, based on the G datas taken from somewhere.
Hostapd seems to behave as expected, as it recognize correctly the 44
channel (which I selected) and associate it to the 802.11a mode. The
problem is that something is returning a list of channels from the 2.4
spectrum, and hostapd stops because the channel 44 is not between
them.
This is the config for hostapd in /lib/wifi/hostapd
root at OpenWrt:~# cat /lib/wifi/hostapd.sh
hostapd_setup_vif() {
local vif="$1"
local driver="$2"
local hostapd_cfg=
# Examples:
# psk-mixed/tkip => WPA1+2 PSK, TKIP
# wpa-psk2/tkip+aes => WPA2 PSK, CCMP+TKIP
# wpa2/tkip+aes => WPA2 RADIUS, CCMP+TKIP
# ...
# TODO: move this parsing function somewhere generic, so that
# later it can be reused by drivers that don't use hostapd
# crypto defaults: WPA2 vs WPA1
case "$enc" in
wpa2*|WPA2*|*PSK2*|*psk2*)
wpa=2
crypto="CCMP"
;;
*mixed*)
wpa=3
crypto="CCMP TKIP"
;;
*)
wpa=1
crypto="TKIP"
;;
esac
# explicit override for crypto setting
case "$enc" in
*tkip+aes|*TKIP+AES|*tkip+ccmp|*TKIP+CCMP) crypto="CCMP TKIP";;
*tkip|*TKIP) crypto="TKIP";;
*aes|*AES|*ccmp|*CCMP) crypto="CCMP";;
esac
# use crypto/auth settings for building the hostapd config
case "$enc" in
*psk*|*PSK*)
config_get psk "$vif" key
if [ ${#psk} -eq 64 ]; then
append hostapd_cfg "wpa_psk=$psk" "$N"
else
append hostapd_cfg "wpa_passphrase=$psk" "$N"
fi
;;
*wpa*|*WPA*)
# required fields? formats?
# hostapd is particular, maybe a default
configuration for failures
config_get server "$vif" server
append hostapd_cfg "auth_server_addr=$server" "$N"
config_get port "$vif" port
port=${port:-1812}
append hostapd_cfg "auth_server_port=$port" "$N"
config_get secret "$vif" key
append hostapd_cfg
"auth_server_shared_secret=$secret" "$N"
config_get nasid "$vif" nasid
append hostapd_cfg "nas_identifier=$nasid" "$N"
append hostapd_cfg "eapol_key_index_workaround=1" "$N"
append hostapd_cfg
"radius_acct_interim_interval=300" "$N"
append hostapd_cfg "ieee8021x=1" "$N"
append hostapd_cfg "auth_algs=1" "$N"
append hostapd_cfg "wpa_key_mgmt=WPA-EAP" "$N"
append hostapd_cfg "wpa_group_rekey=300" "$N"
append hostapd_cfg "wpa_gmk_rekey=640" "$N"
;;
*)
wpa=0
crypto=
;;
esac
config_get ifname "$vif" ifname
config_get bridge "$vif" bridge
config_get ssid "$vif" ssid
config_get device "$vif" device
config_get channel "$device" channel
config_get hwmode "$device" hwmode
case "$hwmode" in
11a) hwmode=a;;
11b) hwmode=b;;
11g) hwmode=g;;
*)
hwmode=
[ "$channel" -gt 14 ] && hwmode=a
;;
esac
cat > /var/run/hostapd-$ifname.conf <<EOF
ctrl_interface=/var/run/hostapd-$ifname
driver=$driver
interface=$ifname
hw_mode=${hwmode:-g}
channel=$channel
${bridge:+bridge=$bridge}
ssid=$ssid
debug=4
wpa=$wpa
${crypto:+wpa_pairwise=$crypto}
ieee80211n=1
ht_capab=[RX-STBC123][SHORT-GI-40][DSSS_CCK-40][HT40-]
$hostapd_cfg
EOF
hostapd -dd -P /var/run/wifi-$ifname.pid -B
/var/run/hostapd-$ifname.conf
}
More information about the Hostap
mailing list