Различия

Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.

Ссылка на это сравнение

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
  
Печать/экспорт