X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/be4aa36f4873365cbb465e3dfc648d023b681853..80db4b51be9dacbcfa18923e48b8b7e740b2ad28:/package/madwifi/files/lib/wifi/madwifi.sh diff --git a/package/madwifi/files/lib/wifi/madwifi.sh b/package/madwifi/files/lib/wifi/madwifi.sh index 7b696f0d5..bd93d4736 100755 --- a/package/madwifi/files/lib/wifi/madwifi.sh +++ b/package/madwifi/files/lib/wifi/madwifi.sh @@ -79,7 +79,7 @@ disable_atheros() ( config_get phy "$device" phy set_wifi_down "$device" - + include /lib/network cd /proc/sys/net for dev in *; do @@ -104,8 +104,12 @@ enable_atheros() { [ -n "$regdomain" ] && echo "$regdomain" > /proc/sys/dev/$phy/regdomain config_get country "$device" country - [ -z "$country" ] && country="0" - echo "$country" > /proc/sys/dev/$phy/countrycode + case "$country" in + [A-Za-z]*) country=`grep -i "$country" /lib/wifi/madwifi_countrycodes.txt |cut -d " " -f 2`;; + [0-9]*) ;; + *) country="" ;; + esac + [ -n "$country" ] && echo "$country" > /proc/sys/dev/$phy/countrycode config_get_bool outdoor "$device" outdoor "0" echo "$outdoor" > /proc/sys/dev/$phy/outdoor @@ -165,7 +169,7 @@ enable_atheros() { esac ;; esac - + [ -x "$(which gpioctl 2>/dev/null)" ] || antenna= gpioctl "dirout" "$antgpio" >/dev/null 2>&1 case "$gpioval" in @@ -192,12 +196,12 @@ enable_atheros() { config_get enc "$vif" encryption config_get eap_type "$vif" eap_type config_get mode "$vif" mode - + case "$mode" in sta) config_get_bool nosbeacon "$device" nosbeacon;; adhoc) config_get_bool nosbeacon "$vif" sw_merge 1;; esac - + [ "$nosbeacon" = 1 ] || nosbeacon="" ifname=$(wlanconfig "$ifname" create wlandev "$phy" wlanmode "$mode" ${nosbeacon:+nosbeacon}) [ $? -ne 0 ] && { @@ -299,10 +303,10 @@ enable_atheros() { config_get_bool comp "$vif" compression 0 iwpriv "$ifname" compression "$comp" >/dev/null 2>&1 - config_get_bool minrate "$vif" minrate + config_get minrate "$vif" minrate [ -n "$minrate" ] && iwpriv "$ifname" minrate "$minrate" - config_get_bool maxrate "$vif" maxrate + config_get maxrate "$vif" maxrate [ -n "$maxrate" ] && iwpriv "$ifname" maxrate "$maxrate" config_get_bool burst "$vif" bursting @@ -362,7 +366,7 @@ enable_atheros() { config_get ssid "$vif" ssid [ -n "$ssid" ] && { iwconfig "$ifname" essid on - iwconfig "$ifname" essid "$ssid" + iwconfig "$ifname" essid ${ssid:+-- }"$ssid" } set_wifi_up "$vif" "$ifname" @@ -406,7 +410,7 @@ enable_atheros() { done } -check_device() { +check_atheros_device() { [ ${1%[0-9]} = "wifi" ] && config_set "$1" phy "$1" config_get phy "$1" phy [ -z "$phy" ] && { @@ -429,7 +433,7 @@ detect_atheros() { [ -d ath ] || return for dev in $(ls -d wifi* 2>&-); do found=0 - config_foreach check_device wifi-device + config_foreach check_atheros_device wifi-device [ "$found" -gt 0 ] && continue devname="$(cat /proc/sys/dev/$dev/dev_name)" @@ -469,6 +473,7 @@ config wifi-iface option mode ap option ssid OpenWrt option encryption none + EOF devidx=$(($devidx + 1)) done