Различия
Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.
— |
setups:wi-fi [2020/04/03 09:31] (текущий) |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== Настройка сети Wi-Fi из консоли ====== | ||
+ | Если старт сети производится из-под пользователя | ||
+ | |||
+ | su | ||
+ | Password: | ||
+ | |||
+ | Убиваем предыдущую сессию wpa_supplicant, если была запущена. | ||
+ | [ $(pidof wpa_supplicant) ] && kill $(pidof wpa_supplicant) | ||
+ | Если нет конфигурационного файла wpa_supplicant.conf, создаём | ||
+ | wpa_passphrase MYUSSID MYPASSWORD > /etc/wpa_supplicant.conf | ||
+ | |||
+ | Определяем интерфейс Wi-Fi | ||
+ | basename $(dirname /sys/class/net/*/phy80211) | ||
+ | wlan0 | ||
+ | Запускаем соединение с Wi-Fi роутером | ||
+ | wpa_supplicant -B -D nl80211 -i wlan0 -c /etc/wpa_supplicant.conf | ||
+ | Successfully initialized wpa_supplicant | ||
+ | Получаем IP автоматически | ||
+ | dhcpcd wlan0 | ||
+ | dhcpcd[2217]: version 6.4.7 starting | ||
+ | dhcpcd[2217]: DUID 00:01:00:01:1b:ee:81:e8:20:68:9d:3a:89:c2 | ||
+ | dhcpcd[2217]: wlan0: IAID 9d:3a:89:c2 | ||
+ | dhcpcd[2217]: wlan0: soliciting a DHCP lease | ||
+ | dhcpcd[2217]: wlan0: soliciting an IPv6 router | ||
+ | dhcpcd[2217]: wlan0: offered 192.168.1.100 from 192.168.1.1 | ||
+ | dhcpcd[2217]: wlan0: leased 192.168.1.100 for 7200 seconds | ||
+ | dhcpcd[2217]: wlan0: adding route to 192.168.1.0/24 | ||
+ | dhcpcd[2217]: wlan0: adding default route via 192.168.1.1 | ||
+ | dhcpcd[2217]: forked to background, child pid 2248 | ||
+ | |||
+ | Одна тонкость, для новых версий wpa_supplicant указать драйвер nl80211 вместо wext. | ||
+ | ===== Все одним скриптом: ===== | ||
+ | Запускать от root | ||
+ | |||
+ | <code> | ||
+ | #!/bin/sh | ||
+ | #wi-fi up (console). DdShurick 25.11.14 version 002 GPL | ||
+ | if [ $(whoami) = root ]; then | ||
+ | IFACE=$(basename $(dirname /sys/class/net/*/phy80211)) | ||
+ | [ $(pidof dhcpcd) ] && dhcpcd -k $IFACE | ||
+ | [ $(pidof wpa_supplicant) ] && kill $(pidof wpa_supplicant) | ||
+ | if [ "$(cat /sys/class/net/$IFACE/operstate)" != "up" ]; then | ||
+ | ifconfig $IFACE up | ||
+ | sleep 2 | ||
+ | fi | ||
+ | echo "Выберите сеть" | ||
+ | if iwlist $IFACE scan | grep ESSID; then | ||
+ | echo -n "ESSID: " | ||
+ | read MYESSID | ||
+ | echo -n "Пароль " | ||
+ | read MYPASSWD | ||
+ | wpa_passphrase $MYESSID $MYPASSWD > /tmp/wpa.conf | ||
+ | wpa_supplicant -B -D wext -i $IFACE -c /tmp/wpa.conf | ||
+ | dhcpcd $IFACE | ||
+ | else | ||
+ | echo "Доступные сети не найдены" | ||
+ | fi | ||
+ | else | ||
+ | echo "У вас нет прав на выполнение wifiup, нужны права root" | ||
+ | fi | ||
+ | </code> | ||
+ | |||
+ | [[http://forum.puppyrus.org/index.php/topic,16233.new.html#new|Обсуждение]] | ||
+ | |||
+ | 14.07.11 DdShurick | ||
+ | |||
+ | ===== GUI ===== | ||
+ | |||
+ | По просьбе из [[http://forum.puppyrus.org/index.php/topic,16233.new.html#new|обсуждения]], то же но с GUI | ||
+ | |||
+ | <code> | ||
+ | #!/bin/sh | ||
+ | #wi-fi up. DdShurick 04.12.14 version 003 | ||
+ | which loginroot && loginroot=loginroot || loginroot=sudo | ||
+ | [ `id -u` = 0 ] || exec $loginroot $0 | ||
+ | IFACE=$(basename $(dirname /sys/class/net/*/phy80211)) | ||
+ | [ $(pidof dhcpcd) ] && dhcpcd -k $IFACE | ||
+ | [ $(pidof wpa_supplicant) ] && kill $(pidof wpa_supplicant) | ||
+ | [ "$(cat /sys/class/net/$IFACE/operstate)" = "up" ] || ifconfig $IFACE up | ||
+ | sleep 2 | ||
+ | iwlist $IFACE sc | egrep 'Address:|Channel:|Quality|Encryption key:|ESSID:' > /tmp/iwlist | ||
+ | export Window="<vbox> | ||
+ | <text><label>Найдены сети Wi-Fi</label></text> | ||
+ | <list> | ||
+ | <variable>MYESSID</variable> | ||
+ | $(awk -F \: '/ESSID/ {print "<item>"$2"</item>"}' /tmp/iwlist) | ||
+ | </list> | ||
+ | <button><label>Подключить</label></button> | ||
+ | </vbox>" | ||
+ | eval $(gtkdialog -c --program "Window") | ||
+ | |||
+ | [ "$EXIT" = "Cancel" -o "$EXIT" = "abort" ] && exit | ||
+ | [ "$MYESSID" ] || exit | ||
+ | [ "$EXIT" = "Подключить" ] || exit | ||
+ | KEY=$(grep $MYESSID -B 1 /tmp/iwlist | awk '/Encryption/ {print $2}') | ||
+ | if [ "$KEY" = "key:on" ]; then | ||
+ | export Passw="<vbox> | ||
+ | <text><label>Введите пароль для $MYESSID</label></text> | ||
+ | <entry> | ||
+ | <visible>password</visible> | ||
+ | <variable>MYPASSWD</variable> | ||
+ | </entry> | ||
+ | <button><label>Подключить</label></button> | ||
+ | </vbox>" | ||
+ | eval $(gtkdialog -c --program "Passw") | ||
+ | [ "$EXIT" = "Cancel" -o "$EXIT" = "abort" ] && exit | ||
+ | [ "$MYPASSWD" ] || exit | ||
+ | [ "$EXIT" = "Подключить" ] || exit | ||
+ | wpa_passphrase $MYESSID $MYPASSWD | grep -v '#psk' > /tmp/wpa.conf | ||
+ | wpa_supplicant -B -D nl80211 -i $IFACE -c /tmp/wpa.conf | ||
+ | #wpa_supplicant -B -D wext -i $IFACE -c /tmp/wpa.conf #для старых версий wpa_supplicant | ||
+ | dhcpcd $IFACE | ||
+ | if [ "$?" = 0 ]; then | ||
+ | export Addr="<vbox> | ||
+ | <text><label>Соединение с сетью ${MYESSID} установлено.Сохранить настройки для сети ${MYESSID}?</label></text> | ||
+ | <button><label>Сохранить</label></button> | ||
+ | </vbox>" | ||
+ | eval $(gtkdialog -c --program "Addr") | ||
+ | [ "$EXIT" = "Cancel" -o "$EXIT" = "abort" ] && exit | ||
+ | [ "$EXIT" = "Сохранить" ] || exit | ||
+ | MYADDR=$(grep -B 5 USSR /tmp/iwlist | awk '/Address/ {print $5}') | ||
+ | cp /tmp/wpa.conf /etc/network-wizard/wireless/wpa_profiles/${MYADDR}.wpa.conf | ||
+ | fi | ||
+ | elif [ "$KEY" = "key:off" ]; then | ||
+ | iwconfig $IFACE essid $MYESSID key off | ||
+ | dhcpcd $IFACE | ||
+ | fi | ||
+ | </code> | ||
+ | |||
+ | Для gtk3 <list> заменить на <tree> | ||
+ | |||
+ | Испытано: PRA, PR-1312-XFCE, AltLinux Simply, Richy. Теоретически должно работать в любом Linux. | ||
+ | |||
+ | Добавлено DdShurick | ||