Беспроводное управление wlan0
Я реализовал функцию для подключения моего устройства к точке доступа, которая содержит:
iw mlan0 connect $SSID
udhcpc -i mlan0
while : ; do
echo "Pausing until connection established"
mlan0_ip=`/sbin/ifconfig mlan0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}'`
if [ -z "$mlan0_ip" ]
then
sleep 1
else
break
fi
done
Я не понимаю, почему команда iw mlan0 connect $SSID сохраняет запрос. Действительно, он заблокирован на
[ 6231.764960] wlan: SCAN COMPLETED: scanned AP count=9
[ 6231.798636] wlan: Connected to bssid 1a:XX:XX:XX:52:66 successfully
[ 6231.808511] IPv6: ADDRCONF(NETDEV_CHANGE): mlan0: link becomes ready
udhcpc (v1.22.1) started
Sending discover...
Sending discover...
Sending discover...
[ 6241.126472] ADDBA RSP: Failed(1a:XX:XX:XX:52:66 tid=6)
Sending discover...
[ 6264.263093] ADDBA RSP: Failed(1a:XX:XX:XX:52:66 tid=6)
Sending select for 192.168.50.33...
[ 6264.497054] ADDBA RSP: Failed(1a:XX:XX:XX:52:66 tid=6)
Lease of 192.168.50.33 obtained, lease time 43200
По сути, я никогда не вхожу в цикл while.. Я хотел бы выполнить некоторые другие команды после настройки сети
1 ответ
Решение
Попробуйте поставить амперсанд в конце команды, он будет работать в фоновом режиме, позволяя выполнить следующую команду.
iw mlan0 connect $SSID &
udhcpc -i mlan0
while : ; do
echo "Pausing until connection established"
mlan0_ip=`/sbin/ifconfig mlan0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}'`
if [ -z "$mlan0_ip" ]
then
sleep 1
else
break
fi
done
Но я вижу в журнале сообщение udhcpd, и тогда проблема будет в том, что, если iw запущен и udhpcd запущен, но цикл не запускается, вы можете попытаться добавить амперсанд также и ко второй команде.
udhcpc -i mlan0 &