Eu quero definir o canal do cartão WiMA de forma proativa com o shell script. Atualmente, tenho o seguinte script:
/etc/network/interfaces
# tell wlan0 will be controlled manually
iface wlan0 inet manual
setup.sh
iw dev wlan0 interface add mon0 type monitor
# wait until mon0 is successfully created
ip link show mon0 2>/dev/null 1>/dev/null
while [ $? -ne 0 ]
do
ip link show mon0 2>/dev/null 1>/dev/null
done
ifconfig mon0 up
# wait until mon0 is activated
ifconfig mon0 2>/dev/null 1>/dev/null
while [ $? -ne 0 ]
do
ifconfig mon0 2>/dev/null 1>/dev/null
done
iw mon0 set channel 1 HT20
E então, posso definir o canal do cartão Wi-Fi digitando [sudo] ./setup.sh
No entanto, gostaria de saber se existe uma maneira de esperar até que a placa WiFi defina seu canal como 1 pelo último comando iw mon0 set channel ...
.
ou seja, em pseudocódigo
iw mon0 set channel 1 HT20
channel = get_wifi_current_channel
while [ "$channel"-ne 1 ]
do
;
done
e eu estou procurando um bom de get_wifi_current_channel
Uma coisa que eu encontrei é iwconfig mon0
:
$ iwconfig mon0
mon0 IEEE 802.11bgn Mode:Monitor Frequency:2.412 GHz Tx-Power=15 dBm
...
Se não houver nada para get_wifi_current_channel
, posso fazer um script ou um programa manipulando a saída de iwconfig mon0
.