[SOLVED] Падает wifi
Доброе время суток!
Вчера решил таки настроить wifi с WPAPSK (раньше работал WEP).
Ноутбук compaq evo n600c
Pcmsia-карточка Dlink dwl-g650
Точка доступа Linksys WRT54GC.
Нашёл как http://linuxforum.ru/index.php?showtopic=36148
Всё сразу заработало.
Однако, хотелось чтобы при загрузке ноутбука происходило подключение.
Найти сходу как это сделать не получилось.
Тогда я написал свой скрипт net.ath0
#!/usr/bin/python import os, sys, commands, string, time cmd = sys.argv[1] def wait_for_connect(): i = 60 while 1: out = commands.getoutput( 'wpa_cli -i ath0 status' ) _temp = string.split( out, '\n' ) search = _temp.count( 'wpa_state=COMPLETED' ) if search != 0: print 'Connected' return 0 else: i -= 1 if i == 0: return 1 time.sleep(1) def start(): print 'Starting Wifi...' os.system( 'wpa_supplicant -iath0 -Dmadwifi -c /etc/wpa_supplicant/wpa_supplicant.conf 1>/dev/null 2>/dev/null &') result = wait_for_connect() if result == 1: print 'Closing by timeout - 60sec' stop() return os.system( 'dhcpcd -n ath0 1>/dev/null 2>/dev/null &' ) def stop(): print 'Terminating connection' os.system( 'wpa_cli -i ath0 terminate' ) def restart(): print 'Restarting Wifi' stop() start() if cmd == '': exit if cmd == 'start': start() if cmd == 'stop': stop() if cmd == 'restart': restart()
Корявенько, зато работает.
На это не успокоился и всё-таки нашёл решение:
modules=( "wpa_supplicant" )
wpa_supplicant_ath0="Dmadwifi"
wpa_timeout_ath0=60
dhcp_ath0="nosendhost"
config_myAP=("dhcp")
preferred_aps=("myAP")
Как полагается сделал net.ath0 симлинком на net.lo
Сделал /etc/init.d/net.ath0 start
Соединение появлось, интернет появился, обрадовался.
Но не тут то было.
Через 5-6 минут соеднение стабильно обрывается.
Приходится делать /etc/init.d/net.ath0 restart
замечу, что при запуске моим скриптом ничего не падает)
wpa_supplicant, wpa_cli и dhcpcd запускаются так
/sbin/wpa_supplicant Dmadwifi -c/etc/wpa_supplicant/wpa_supplicant.conf -B -iath0 -P/var/run/wpa_supplicant-ath0.pid
/bin/wpa_cli -a/etc/wpa_supplicant/wpa_cli.sh -p/var/run/wpa_supplicant -iath0 -P/var/run/wpa_cli-ath0.pid -B
/sbin/dhcpcd -m 2000 ath0
Если запустить руками, то всё работает нормально.
В чём может быть загвозда?
- Для комментирования войдите или зарегистрируйтесь
у меня
у меня нормально пашет
=)
без всяких извратов =)
внимательно почитайте /etc/conf.d/net.example там все есть =)
___________________________________________
Gentoo GNU/Linux 2.6.23 GCC 4.2.2 Dual Xeon
Working on Gentoo for iPAQ hx4700 :-)
Решение из
Решение из net.example всё время падает.
В логах только
В логах только это
Oct 28 20:16:24 [wpa_cli] interface ath0 CONNECTED
Oct 28 20:16:27 [dhcpcd] MAC address = 00:11:95:db:3d:ce
Oct 28 20:16:28 [dhcpcd] verified 192.168.250.163 address is not in use
Oct 28 20:16:28 [dhcpcd] your IP address = 192.168.250.163
Oct 28 20:23:18 [wpa_cli] interface ath0 DISCONNECTED
Oct 28 20:23:20 [dhcpcd] terminating on signal 15
При включённом -dd для wpa_supplicant
Покажи
Покажи wpa_supplicant.conf.
network={ ssid="myAP" psk=*
network={
ssid="myAP"
psk=********************************************************
key_mgmt=WPA-PSK
proto=RSN
pairwise=CCMP TKIP
group=CCMP TKIP
}
Вечером
Вечером посмотрю свой wpa_supplicant.conf. У меня примерно такая же карта. Все работает.
А в строке:
/sbin/wpa_supplicant Dmadwifi -c/etc/wpa_supplicant/wpa_supplicant.conf -B -iath0 -P/var/run/wpa_supplicant-ath0.pid
перед D нету минуса. Это опечатка или это действительно так?
Это не
Это не опечатка. Действительно так запускается.
Добавил минус. Тестирую, отключится или нет.
Скорее всего дело не в wpa_supplicant.conf, т.к. мой скрипт использует его же.
10 минут прошло,
10 минут прошло, я ещё в сети.
В догонку немного дополню вопрос
При запуске /etc/init.d/net.ath0 start
Службы стартуют, ожнако коннект не устанавливается.
Приходится делать -"- restart
Бывает приходится два три раза рестарт делать.
Это из-за чего может быть?
А слова
А слова какие-нибудь говорит? Там в конф. файле есть параметр время в течении которого он пытается установит связь, а потом уходит в фоновый режим. Посмотри через wpa_cli может коннект есть, а он просто не может получть IP.
Кстати, какая версия wpa_supplicant?
Версия 0.5.7 В
Версия 0.5.7
В конфге то есть параметр, отвечающий за таймаут, но в man'е ничего про это нет.
Впрочем, вроде всё наладилось...
Сделал несколько stop/start'ов - всё путём.
Спасибо за помощь.