====== Настройка сети 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
#!/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
[[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
#!/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="
MYESSID
$(awk -F \: '/ESSID/ {print "- "$2"
"}' /tmp/iwlist)
"
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="
password
MYPASSWD
"
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="
"
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
Для gtk3 заменить на
Испытано: PRA, PR-1312-XFCE, AltLinux Simply, Richy. Теоретически должно работать в любом Linux.
Добавлено DdShurick