linux wi-fi dyi За подключение к wifi-сетям отвечает программа wpa_supplicant, которая умеет находить заданную сеть по ssid, генерировать ключи и прочее. Настройки программы wpa_supplicant лежат в текстовом conf-файле, в котором можно описать несколько сетей, включая приоритеты.
Однако wpa_supplicant ничего не знает о dhcp. Про dhcp зато знает программа udhcpc, которая умеет реагировать на сигналы USR1 -- Renew lease и USR2 -- Release lease.
Для взаимодействия с wpa_supplicant существует программа wpa_cli реализующая консольный интерфейс, которая может работать в режиме демона вызывая при событиях CONNECT и DISCONNECT указанный скрипт (параметры -B и -a) скрипт например следующего вида:
dh-daemon.sh:
#!/bin/sh
IFACE="$1"
ACTION="$2"
case "$ACTION" in
"CONNECTED")
echo connected
killall -USR1 udhcpc
;;
"DISCONNECTED")
echo disconnected
killall -USR2 udhcpc
;;
*)
echo "Unknown action: \"$ACTION\""
exit 1
;;
esac
Итого запуск wifi с авто-подключениями к известным сетям и тривиальным прописыванием
неизвестных через wpa_cli имеет следующий вид:
#!/bin/sh
cd /etc/wpa
wpa_supplicant -i wlan0 -c ./home.cfg -Dwext -B
udhcpc -i wlan0
wpa_cli -B -a ./dh-daemon.sh
Voila.
источник