[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'ов - всё путём.
Спасибо за помощь.