IPB

Здравствуйте, гость ( Вход | Регистрация )

> wlan-static для live-sysv, wifi в сети со статической адресацией
Поделиться
speccyfighter
сообщение 12.2.2018, 17:33
Сообщение #1


Крупный специалист
*****

Группа: Пользователь
Сообщений: 461
Регистрация: 1.5.2013
Вставить ник
Цитата
Пользователь №: 2379
Страна: Беларусь
Город: Не указан
Пол: Муж.



Репутация: 1


Текущий вариант скриптов для конфигурирования WiFi на беспроводной статике.
Конфигуратор интерактивный:
- По-русски задаёт простые вопросы и просит ввода.
Пароль на точку доступа не знаю как скрыть при вводе. Не сохранять в историю можно покиливанием сессии: kill -9 $$

В конфигуратор скорее всего надо добавить подсказки запроса ввода, отображающие формат ввода в качестве примеров ввода. Кроме пароля к точке доступа. Для пользователя, который по уровню близок к нулю.

Скрипты завязаны именно на лайв live-sysv, поскольку он уже на первом старте конфигурирует dhcp и сеть на первом старте _уже_ сконфигурирована как dhcp, а для статики это надо выкручивать назад.

Сначала запускается конфигуратор:
- Просьба конфигуратора ввода чего-то - ввод пользователем.
Выполняется один раз.

После конфигуратора и после каждого старта лайва запускается старт-скрипт для поднятия сети.

В скриптах много мусора, он будет болтаться вплоть до релиза.

Конфигуратор::
Код
$ cat /run/media/user/alt-live-storage/usr/sbin/wlan-static-conf
#!/bin/bash

rfkill unblock all
sleep 1

killall dhcpcd &>/dev/null
chkconfig livecd-net-eth off &>/dev/null
# /etc/rc.d/init.d/network stop &>/dev/null
# chkconfig network off &>/dev/null


# Блокировка dhcp
#
# Вручную в option для интерфейсов,
# сменить в BOOTPROTO с dhcp на static
#


## Перевод BOOTPROTO с dhcp на static
grep . /sys/class/net/*/uevent | grep -v lo/ | grep INTERFACE | awk -F '=' '{print $2}' | \
while read NETIFACE
    do
    sed -i 's/BOOTPROTO=dhcp/BOOTPROTO=static/' /etc/net/ifaces/$NETIFACE/options
done
/etc/rc.d/init.d/network restart &>/dev/null


# Настройка, тест, не удалять!!!
## Очистка предыдущих настроек сети
#ETCDIR=/etc/net/ifaces
#[ -d "$ETCDIR" ] || return 1
#RMDIR=`find "$ETCDIR" -mindepth 1 -maxdepth 1 -xtype d -name "*"|sort -u|grep -E -vw 'ifaces/default|ifaces/lo|ifaces/unknown'`
#rm -rf "$ETCDIR"


# Для отладки, следующие два блока не раскомментировать!!!
# Это необходимый мусор!!!

# Создание каталогов сетевых интерфейсов
#SYSDIR=/sys/class/net
#[ -d "$SYSDIR" ] || return 1
#}
#find "$SYSDIR" -mindepth 1 -maxdepth 1 -xtype d -printf '%f\n' |
#    while read IFACE; do
#        read TYPE < "$SYSDIR/$IFACE/type"
#        [ "$TYPE" = 1 ] && echo "$IFACE"    # ethernet
#    done
#} >

#[ -n "$1" ] || return 1
#[ -d "$ETCDIR" ] || return 2
#IFACEDIR="$ETCDIR/$1"
#[ ! -d "$IFACEDIR" ] || return 0
#echo -n "$1 "
# NB: 3 seconds means STP ports will stay down => unconfigured
#mkdir -p "$IFACEDIR" && {
#    echo TYPE=eth
#    echo BOOTPROTO=dhcp
#    echo DHCP_TIMEOUT=7
#} > "$IFACEDIR/options"


echo -e "\nКонфигуратор WIFI в сети со статической адресацией\nОшибки не обрабатываются, будьте внимательны"

# Конфигурирование DNS
echo -e "\nВведите IP адрес первого DNS сервера:"
read DNS1
echo -e "\nВведите IP адрес второго DNS сервера:"
read DNS2

#
# DNS-ы для беспроводного интерфейса. Отладочный блок!!!
#
#WLANIFACE=`grep INTERFACE $(grep -l wlan /sys/class/net/*/uevent)|awk -F '=' '{print $2}'`
#D=`echo -e "nameserver $DNS1\nnameserver $DNS2"`
#    echo "$D" >/etc/net/ifaces/$WLANIFACE/resolv.conf
#    /sbin/resolvconf -a "$WLANIFACE" </etc/net/ifaces/$WLANIFACE/resolv.conf

D=`echo -e "nameserver $DNS1\nnameserver $DNS2"`
grep . /sys/class/net/*/uevent | grep -v lo/ | grep INTERFACE | awk -F '=' '{print $2}' | \
while read NETIFACE
    do
# Настройка, тест, отладочная часть, не удалять!!!
#    mkdir -p /etc/net/ifaces/$NETIFACE
#    echo TYPE=eth >/etc/net/ifaces/$NETIFACE/options
    echo "$D" >/etc/net/ifaces/$NETIFACE/resolv.conf
    /sbin/resolvconf -a "$NETIFACE" </etc/net/ifaces/$NETIFACE/resolv.conf
done


# Имя беспроводного интерфейса WIFI
WLANIFACE=`grep INTERFACE $(grep -l wlan /sys/class/net/*/uevent)|awk -F '=' '{print $2}'`
echo WLANIFACE=$WLANIFACE >/etc/net/wlan-static


ip link set $WLANIFACE up

# Конфигурирование точки доступа
echo -e "\nДоступные точки доступа:"
iwlist $WLANIFACE scan | grep -i ssid

echo -e "\nВведите имя точки доступа:"
read NAMESSID
echo -e "\nВведите пароль:"
read PASWSSID


wpa_passphrase $NAMESSID $PASWSSID > /etc/wpa_supplicant/wpa_supplicant.conf


echo -e "\nВведите ваш IP адрес:"
read IPADDR
echo IPADDR=$IPADDR >>/etc/net/wlan-static
echo -e "\nВведите сетевую маску:"
read NETMASK
echo NETMASK=$NETMASK >>/etc/net/wlan-static
echo -e "\nВведите IP адрес шлюза:"
read IPGATE
echo IPGATE=$IPGATE >>/etc/net/wlan-static


echo -e "\nДля поднятия беспроводной сети WIFI,\nс правами root запустите wlan-static-start\n"



Стартер-скрипт:
Код
$ cat /run/media/user/alt-live-storage/usr/sbin/wlan-static-start
#!/bin/bash

rfkill unblock all

sleep 2

killall wpa_supplicant &>/dev/null



WLANIFACE=`grep INTERFACE $(grep -l wlan /sys/class/net/*/uevent)|awk -F '=' '{print $2}'`
IPADDR=`grep IPADDR /etc/net/wlan-static | awk -F '=' '{print $2}'`
NETMASK=`grep NETMASK /etc/net/wlan-static | awk -F '=' '{print $2}'`
IPGATE=`grep IPGATE /etc/net/wlan-static | awk -F '=' '{print $2}'`


ip link set $WLANIFACE up



#grep . /sys/class/net/*/uevent | grep -v lo/ | grep INTERFACE | awk -F '=' '{print $2}' | \
#while read NETIFACE
#    do
## Настройка, тест, отладочная часть, не удалять!!!
#    /sbin/resolvconf -a "$NETIFACE" </etc/net/ifaces/$NETIFACE/resolv.conf
#done



wpa_supplicant -B -D wext -i $WLANIFACE -c /etc/wpa_supplicant/wpa_supplicant.conf

ip addr add $IPADDR/$NETMASK dev $WLANIFACE
ip route add default via $IPGATE

echo -e "\nПосле загрузки или перезагрузки компьютера,\nдля поднятия беспроводной сети WIFI,\nвыполните эту команду.\n"



Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

Сообщений в этой теме


Ответить в эту темуОткрыть новую тему
( Гостей: 1 )
Пользователей: 0

 



RSS Текстовая версия Сейчас: 6.7.2025, 22:04