LINUX.ORG.RU
ФорумAdmin

wi-fi клиент на OpenWrt

 , ,


1

2

Понадобилось тут сделать одну девайсятину на MR3020. Поставил openwrt, сначало надо ее заставить подрубатся к существующей wi-fi сети. Казалось бы банально, но уже тут затык. С виду все настроилось (настраивал через веб-интерфейс), IP по wi-fi выдался, но ни роутер сеть не видит, не из сети роутер не пингуется.

Конфиги - http://paste.org.ru/?3vrvg2


Ответ на: комментарий от ii343hbka

firewall я вообще не трогал. Когда настраивал wlan поставил его в зону lan вместо wan, мне кажется это логичней, но в зоне wan тот же эффект.

Dzusan
() автор топика
Ответ на: комментарий от Dzusan

Добавил - нифига.

Попробовал еще

etc/init.d/dnsmasq stop
Тоже не помогло.

Dzusan
() автор топика

Поставил LAN и WLAN в разные подсети и заработало! А теперь объясните нубу почему?

И еще вопрос в догонку. На этом же роутере потребуется реализовать следующую задачу: когда он видит wi-fi c определенным именем, то подключается к ней в режиме клиента, а когда не видит сам устанавливает точку доступа. Как это проще всего реализовать?

Dzusan
() автор топика
Ответ на: комментарий от ii343hbka

Как это сделать автоматически не додумался. Придется ведь постоянно сканировать сеть на предмет присутствия той заветной точки, а это как-то нерационально... Сделал на ручном переключателе, благо он есть на роутере.

Оставлю здесь решение для завершенности темы

Поднимаем GPIO buttons http://wiki.openwrt.org/doc/howto/hardware.button. Дальше конфигурируем два wifi-iface в /etc/config/wireless:

config wifi-iface
        option ssid '***'
        option encryption 'psk2'
        option device 'radio0'
        option mode 'sta'
        option bssid '90:E6:BA:79:BF:15'
        option key '***'
        option network 'client'

config wifi-iface
        option device 'radio0'
        option mode 'ap'
        option ssid '***'
        option wmm '0'
        option encryption 'psk2'
        option key '***'
        option network 'point'
        option disabled '1'
Конфигурируем каждый в /etc/config/network и не забываем про dhcp:
config interface 'client'
        option _orig_ifname 'wlan0'
        option _orig_bridge 'false'
        option proto 'static'
        option ipaddr '192.168.1.20'
        option netmask '255.255.255.0'
        option gateway '192.168.1.10'
        option dns '8.8.8.8'

config interface 'point'
        option _orig_ifname 'radio0.network2'
        option _orig_bridge 'false'
        option proto 'static'
        option ipaddr '192.168.1.20'
        option netmask '255.255.255.0'
        option gateway '192.168.1.20'
        option broadcast '192.168.2.255'
Пишем два скрипта:
root@OpenWrt:~# cat /bin/wifi-client-up
#!/bin/sh
uci set wireless.@wifi-iface[0].disabled=0
uci set wireless.@wifi-iface[1].disabled=1
wifi

root@OpenWrt:~# cat /bin/wifi-point-up
#!/bin/sh
uci set wireless.@wifi-iface[0].disabled=1
uci set wireless.@wifi-iface[1].disabled=0
wifi
И наконец биндим кнопку:
uci add system button    
uci set system.@button[-1].button=BTN_1
uci set system.@button[-1].action=pressed
uci set system.@button[-1].handler='/bin/wifi-point-up'
uci commit system

uci add system button    
uci set system.@button[-1].button=BTN_1
uci set system.@button[-1].action=released
uci set system.@button[-1].handler='/bin/wifi-client-up'
uci commit system
Ура!

Dzusan
() автор топика
Ответ на: комментарий от Dzusan

ну да
я начинал как-то пробовать писать такую штуку на баше и тоже для mr3020
но все заглохло после того как я возгордился собой и подумал, что раз еще никто не изобретал, то, может я первый, а раз так, то надо отдать сообществу, ну а если так, то надо не только для mac80211, а и для броадкома и еще для чего, а это надо уже копать /lib/wifi/
ну и все на этом заглохло
а так у нее был uci конфиг, там описывалась частота опроса в секундах
имхо норм решение, ведь по-другому не узнать, есть ли нужная точка в радиусе видимости

ii343hbka ★★★
()
Ответ на: комментарий от ii343hbka

А вот интересно при сканировании скажем раз в минуту энергопотребление сильно возрастет? Это важно, поскольку обмен данными вообще будет редко и почутьчуть, а девайсятина будет от батарейки работать.

Dzusan
() автор топика
Ответ на: комментарий от Dzusan

пробовать надо
вот если на андройде включить вифи и не выключать он сильно быстрее садится?
на своем n900 разница почти не ощущается
ну если только нет передачи данных, а вифи в фоне включенный висит

ii343hbka ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.