51

Re: Включаем интернет по расписанию

Вот именно те строки

AuthMode=WPA2PSK
EncrypType=AES
WPAPSK=1111111111

Моей квалификации не хватит для создания скрипта  sad

Белый-Белый  ZyXEL Keenetic I серии  Zyxware перешёл на Entware

52

Re: Включаем интернет по расписанию

Zyxmon :

Там все элементарно, в файле /tmp/RT2860.dat содается конфиг, затем несколько строк скрипта (в которых и нужно разобраться) инициализируют wi-fi. Нужно создать 2 конфига, в кроне их менять и преинициализировать wi-fi.

Ну, да, это-то очевидно, вот с инициализацией надо поразбираться. И с реализацией тоже(возможно неск. вариантов) wink

yuoras :

Вот именно те строки

Да, да, они...
Для открытой сети вместо первой, видимо, должно быть:
AuthMode=Open
Остальные уже не важно.

Ну, если будет время, может вечером попробую поиграться этим... Задачка-то интересная! wink

53

Re: Включаем интернет по расписанию

Dr.Acid :

видимо, должно быть:

А не проще ли настроить wi-fi на открытую сеть и сохранить файл /tmp/RT2860.dat

Dr.Acid :

вот с инициализацией надо поразбираться.

Как несложно догадаться, файл /tmp/RT2860.dat читается прямо модулем ядра при загрузке (insmod /lib/modules/2.6.23-rt/rt2860v2_ap.ko)  big_smile

54

Re: Включаем интернет по расписанию

Промониторил два файла
1. С закрытой сетью
2. С открытой сетью

Меняются только эти два параметра

AuthMode=OPEN
EncrypType=NONE
Белый-Белый  ZyXEL Keenetic I серии  Zyxware перешёл на Entware

55

Re: Включаем интернет по расписанию

yuoras :

Меняются только эти два параметра

Логично.
В общем, схему предлагаю следующую
1) Создаем 2 копии RT2860.dat  - вариант для открытой сети, и для защищенной
2) По крону вызываем 2 скрипта, которые подменяют соответствующим файлом  /tmp/RT2860.dat
и перегружают модуль rt2860v2_ap.ko
3) Смотрим, что получилось.

Сейчас попробую провернуть такое дело...

56

Re: Включаем интернет по расписанию

Обратите внимание, что после скрипта wlan.sh вызывается bridge.sh и интерфейс ra0 объединяется в бридж с ethernet.
Перед выгрузкой модуля следует удалить ra0 из бриджа, а после инициализации ra0 - вернуть в бридж.

57

Re: Включаем интернет по расписанию

Zyxmon :

Обратите внимание, что после скрипта wlan.sh вызывается bridge.sh и интерфейс ra0 объединяется в бридж с ethernet.
Перед выгрузкой модуля следует удалить ra0 из бриджа, а после инициализации ra0 - вернуть в бридж.

Zyxmon, не успел прочитать ваше сообщение - только что попробовал сделал. Бридж не трогал, но роутер у меня в режиме "точка доступа" - бридж вроде все равно должен быть?
Вот скрипты:
wl_open.sh

#!/bin/sh

ifconfig ra0 down
rmmod rt2860v2_ap.ko
rm -f /tmp/RT2860.dat
cp ./RT2860_open.dat /tmp/RT2860.dat
insmod /lib/modules/2.6.23-rt/rt2860v2_ap.ko
ifconfig ra0 up
brctl addif br0 ra0

wl_prot.sh

#!/bin/sh

ifconfig ra0 down
rmmod rt2860v2_ap.ko
rm -f /tmp/RT2860.dat
cp ./RT2860_prot.dat /tmp/RT2860.dat
insmod /lib/modules/2.6.23-rt/rt2860v2_ap.ko
ifconfig ra0 up
brctl addif br0 ra0

Предполагается, что в директории, из которой они запускаются, уже лежат файлы RT2860_open.dat и RT2860_prot.dat
полученные путем копирования RT2860.dat в соответствующих режимах.
Для вызова из cron ябы прописал в cp полные пути.

P.S.
Скрипты исправил.
Попробовал подключиться к точке - всё ок.

Отредактировано Dr.Acid (2014-04-10 22:42:56)

58

Re: Включаем интернет по расписанию

Попробовал подключиться - айпишник не выдается. Надо допиливать.

59

Re: Включаем интернет по расписанию

Dr.Acid :

айпишник не выдается. Надо допиливать.

wi-fi отвалился от бриджа. brctl и ifconfig в помощь!

60

Re: Включаем интернет по расписанию

Zyxmon :
Dr.Acid :

айпишник не выдается. Надо допиливать.

wi-fi отвалился от бриджа. brctl и ifconfig в помощь!

Разобрался.
Нужно в конец скриптов дописать строку

brctl addif br0 ra0

Скрипты поправил в том посте.

P.S.
yuoras, протестируйте эти скрипты "в бою" и отпишитесь - как работает(или нет).
И с вас, кстати, итоговая реализация задумки... wink

Отредактировано Dr.Acid (2014-04-10 22:52:43)

61

Re: Включаем интернет по расписанию

Я бы для надежности добавил в начало скриптов "brctl delif br0 ra0"

62

Re: Включаем интернет по расписанию

Zyxmon :

Я бы для надежности добавил в начало скриптов "brctl delif br0 ra0"

Тоже так подумал, но вроде исхожу из того, что он сам отваливается нормально. Видимо, это происходит при выгрузке модуля. Но можно и добавить, конечно - перед ifconfig ra0 down
В принципе, у меня вроде так все заработало, но надо подождать "полноценных" тестов. smile

63

Re: Включаем интернет по расписанию

Спасибо , вечером затестим  smile

Белый-Белый  ZyXEL Keenetic I серии  Zyxware перешёл на Entware

64

Re: Включаем интернет по расписанию

Вот собственно решил и попробовать
Создал wifi_close.sh c содержимым

#!/bin/sh

ifconfig ra0 down
rmmod rt2860v2_ap.ko
rm -f /tmp/RT2860.dat
cp ./RT2860_close.dat /tmp/RT2860.dat
insmod /lib/modules/2.6.23-rt/rt2860v2_ap.ko
ifconfig ra0 up
brctl addif br0 ra0

Сделал в файле RT2860.dat изменения и переименовал его в RT2860_close.dat , переместил в папку /tmp
Запустил скрипт wifi_close.sh и сразу же отвалилась web морда (интернет и putty работают)
Кстати скрипт так и не отработал до конца (просто висит на процессе).
Вот скрин htop
http://s017.radikal.ru/i436/1404/4e/6c85750bfab1.jpg

Белый-Белый  ZyXEL Keenetic I серии  Zyxware перешёл на Entware

65

Re: Включаем интернет по расписанию

yuoras :

Вот собственно решил и попробовать

1) Ну, лично я, не правил файл RT2860.dat вручную, а просто прописав все необходимые настройки(защиту и т.п.), применив и убедившись, что всё работает, просто отписал(скопировал) /tmp/RT2860.dat под другим именем. Потом переключил сеть на открытую, и снова скопировал. Т.е. сам эти файлы не правил.
2) А сам скрипт wifi_close.sh вы из какой папки запускали? Нужно было из /tmp запускать, иначе команда cp не отработает(не найдет файл RT2860_close.dat)

Вообще, я бы так сделал:

1) Создал в /media/DISK_A1 папкую (допустим, wificontrol), т.е. на диске.
2) В эту папку поместил оба скрипта и оба файла .dat
3) В скриптах, в команде cp прописал так:

cp /media/DISK_A1/wificontrol/RT2860_close.dat /tmp/RT2860.dat

Вот так оно всё должно работать "железно".

Я точно ща не скажу, но вроде веб морда у меня не отваливалась.
Вечером ещё потестирую, поосновательней.

66

Re: Включаем интернет по расписанию

Всё сделал точно , как у Вас
В RT2860_open.dat оставил только

AuthMode=OPEN
EncrypType=NONE

Все файлы в одной папке /media/DISK_A1/system/root/wificonfig

#!/bin/sh

brctl delif br0 ra0
ifconfig ra0 down
rmmod rt2860v2_ap.ko
rm -f /tmp/RT2860.dat
cp /media/DISK_A1/system/root/wificonfig/RT2860_open.dat /tmp/RT2860.dat
insmod /lib/modules/2.6.23-rt/rt2860v2_ap.ko
ifconfig ra0 up
brctl addif br0 ra0

После запуска скрипта  отвалился WIFi и всё.
Интернет есть только по шнурку, в web морде можно войти куда угодно , кроме "Сеть Wi-Fi"
Помог только ребут

Отредактировано yuoras (2014-04-12 15:42:14)

Белый-Белый  ZyXEL Keenetic I серии  Zyxware перешёл на Entware

67

Re: Включаем интернет по расписанию

yuoras :

В RT2860_open.dat оставил только

Настройте как нужно wifi, сохраните файл и не трогайте его!

68

Re: Включаем интернет по расписанию

yuoras :

В RT2860_open.dat оставил только

Вот это не правильно - RT2860_open.dat должен представлять из себя весь вайл RT2860.dat, полученный при настройках роутера на открытый wifi.
Поэтому у вас wifi и не заработал - в RT2860.dat данных не хватало.

69

Re: Включаем интернет по расписанию

Zyxmon :

Настройте как нужно wifi, сохраните файл и не трогайте его!

Я пробовал и так тоже (Описывал в 64-м сообщении), только полученные файлы переименовал!!!

Белый-Белый  ZyXEL Keenetic I серии  Zyxware перешёл на Entware

70

Re: Включаем интернет по расписанию

Собственно, рано радуемся.
Решил ещё попробовать. В общем, всё работает, но очень недолго: через несколько секунд после подключения к wifi она падает(адрес получить успевает, но, например, на веб зайти уже не успеваю). Нужно разбираться, что там происходит.

UPD
Похоже, ложная тревога - всё работает. Сейчас настраиваю полноценную тестовую связку, о результатах отпишу.

Отредактировано Dr.Acid (2014-04-12 22:09:21)

71

Re: Включаем интернет по расписанию

Итак, после окончательных тестов, разборов глюков и т.п.
окончательный(рабочий, проверенный, оттестированный) вариант скриптов:
wl_open.sh

#!/bin/sh

ifconfig ra0 down
rm -f /tmp/RT2860.dat
cp /media/DISK_A1/wifi_switch/RT2860_open.dat /tmp/RT2860.dat
ifconfig ra0 up

wl_prot.sh

#!/bin/sh

ifconfig ra0 down
rm -f /tmp/RT2860.dat
cp /media/DISK_A1/wifi_switch/RT2860_prot.dat /tmp/RT2860.dat
ifconfig ra0 up

Пояснения: Никаких отключений от бриджа, выгрузки модулей и т.п. - всё делается "на ходу" smile
Всё, что нужно - вырубить ra0, заменить файлик RT2860.dat на нужный, и снова врубить ra0
У меня(теперь) работает четко.
yuoras, делайте RT2860_open.dat и RT2860_prot.dat из своих соответствующих конфигураций(копированием, править самому ничего не нужно) и пробуйте эти скрипты - должно всё работать.

Мысль:
У меня название сети(SSID) было одинаковым - может, имеет смысл его разным делать, чтоб сразу было видно, что за сеть и не было путаницы с конфигурацией со стороны клиентов(хотя у меня вроде нормально всё было). Можно поэкспериментировать с этим...

72

Re: Включаем интернет по расписанию

Dr.Acid,
Благодарим за доводку,
Полезная штука. Только менять  буду не шифрование сети, а мощность передатчика приглушать
ночью и утром, а днем на всю катушку.

73

Re: Включаем интернет по расписанию

start :

Полезная штука. Только менять  буду не шифрование сети, а мощность передатчика приглушать
ночью и утром, а днем на всю катушку.

А вот тут уже - свободный полет фантазии wink  Много чего можно придумать - тут, скорей, сам принцип интересен.

74

Re: Включаем интернет по расписанию

Попробовал
С защищённой сети без проблем переходит в открытую, а вот с открытой в защищённую нет.
Даже ssid не отображается при поиске wifi сетей, такое чувство , что ra0 не поднимается!!

Белый-Белый  ZyXEL Keenetic I серии  Zyxware перешёл на Entware

75

Re: Включаем интернет по расписанию

yuoras :

С защищённой сети без проблем переходит в открытую, а вот с открытой в защищённую нет.
Даже ssid не отображается при поиске wifi сетей, такое чувство , что ra0 не поднимается!!

1) Проверить на ошибки (я пробовал туда-сюда по неск раз - всё работало). Правда, исходное состояние(после загрузки) у меня было открытая сеть, но думаю, это не важно, - могу проверить и наоборот(не помню, может и проверял так тоже).
2) Может, мало времени ждете. Обновление происходит с некоторой задержкой. Сами скрипты у меня выполняются где-то около 5 сек. + через задержку будет видна новая сеть. Сек 20-30 на все должно хватить.
3) Можно ещё в консоли вручную вводить по команде из скрипта и смотреть, что будет.
4) Проверить, поднялся ли ra0 можно через ifconfig - должно быть UP

UPD
Проверил для случая, когда в исходном состоянии сеть защищенная. Всё работает, переключает туда-обратно без проблем, но(см. замечание):
Замечание:
Если вы подключаетесь к роутеру по wifi(как я) и запускаете скрипт в терминале, в процессе его выполнения(после команды ifconfig ra0 down) связь с роутером пропадает, и дальнейшие команды, я подозреваю, не выполняются(/не успевают выполниться)
Поэтому, я запускаю скрипты так:

~ # /media/DISK_A1/wifi_switch/wl_prot.sh &

Тогда скрипт выполняется в фоне, я же получаю консоль, которая тутже "дохнет"
При этом всё отрабатывает четко, т.е. уже через несколько чекунд винда показывает, что wi-fi соединение разорвано, а в соединении отображается "обновленная" сеть.
При работе через cron этой проблемы, естественно, не будет.

Отредактировано Dr.Acid (2014-04-14 18:29:31)