Отже, Wireless Pentagram WU61RL працює під лінуксом на драйвері rt73, який можна стягнути з офіційного сайту http://www.ralinktech.com.tw. Однак мені так і не вдалося до цього часу заставити запрацювати ці драйвера (або помилки при компілюванні, або просто висне комп при запусканню модуля). Наступні мої спроби були з ndiswrapper, про які я вже писав, однак мені ніяк не вдалося запрацювати цей драйвер з WPA2 кодуванням, причому під WEP працювало все чудово. Звичайно, хочеться досконалості, то ж я продовжив експерименти, і зрештою мені вдалося знайти комбінації для вже скомпільованих в ядрі драйверів rt73usb та самостійно компільованих драйверів з http://rt2x00.serialmonkey.com/.
Так виглядає /etc/network/interfaces для модуля ядра rt73usb (в мене статичне ip!!!):
# WPA2 rt73usb
auto wlan0
iface wlan0 inet static
wpa-driver wext
wpa-ssid MYNETWORKNAME
wpa-ap-scan 1
wpa-proto RSN
wpa-pairwise CCMP
wpa-group CCMP
wpa-key-mgmt WPA-PSK
wpa-psk GENERATED_BY_wpa-password_KEY
address 192.168.0.2
netmask 255.255.255.128
gateway 192.168.0.1
А це для скомпільованого драйвера rt73:
# WPA2 rt73
auto wlan0
iface wlan0 inet static
address 192.168.0.2
netmask 255.255.255.128
gateway 192.168.0.1
pre-up ifconfig wlan0 up
pre-up iwconfig wlan0 mode managed
pre-up iwconfig wlan0 essid MYNETWORKNAME
pre-up iwpriv wlan0 set AuthMode=WPA2PSK
pre-up iwpriv wlan0 set EncrypType=AES
pre-up iwpriv wlan0 set SSID=MYNETWORKNAME
pre-up iwpriv wlan0 set WPAPSK=MY_WIRELESS_WPA2_PASSWORD
pre-up iwpriv wlan0 set SSID=MYNETWORKNAME
Таке я додав до файлу /etc/modprobe.d/blacklist :
# wireless
blacklist rt2500usb
blacklist rt2x00usb
blacklist rt2x00lib
blacklist rt73usb
#blacklist rt73
blacklist ndiswrapper
Як видно, зараз я працюю з самотужки скомпільованим драйвером rt73. Для rt73usb достатньо розкоментувати стрічку з rt73 та закометувати стрічку з rt73usb.
Корисний скрипт wirelesstest.rt73 для підтримки перевірки безпровідного зв’язку (ідею я потягнув на форумі Убунту), лежить в /usr/local/bin/:
#!/bin/bash
# FILENAME: /usr/local/bin/wirelesstest
# note the backticks in the next line
if ! `ping -c3 192.168.0.1 >/dev/null 2>&1` ; then
/etc/init.d/networking stop
echo "`date +%b" "%d" "%T` `hostname` wirelesstest: net stoped" >> /var/log/syslog
/sbin/modprobe -r rt73usb
/sbin/modprobe -r rt2x00usb
/sbin/modprobe -r rt2500usb
/sbin/modprobe -r rt2x00lib
/sbin/modprobe -r rt73
echo "`date +%b" "%d" "%T` `hostname` wirelesstest: rt73 unloaded" >> /var/log/syslog
lsmod | grep rt73 >> /var/log/syslog
echo "`date +%b" "%d" "%T` `hostname` wirelesstest: sleeping 5s" >> /var/log/syslog
sleep 5s
/sbin/modprobe rt73
echo "`date +%b" "%d" "%T` `hostname` wirelesstest: rt73 loaded" >> /var/log/syslog
#modprobe -r rt73usb
#modprobe -r rt2x00usb
#modprobe -r rt2500usb
#modprobe rt73usb
/etc/init.d/networking start
echo "`date +%b" "%d" "%T` `hostname` wirelesstest: net started" >> /var/log/syslog
fi
exit 0
і подібний wirelesstest.rt73usb для rt73usb:
#!/bin/bash
# FILENAME: /usr/local/bin/wirelesstest
# note the backticks in the next line
if ! `ping -c3 192.168.0.1 >/dev/null 2>&1` ; then
/etc/init.d/networking stop
echo "`date +%b" "%d" "%T` `hostname` wirelesstest: net stoped" >> /var/log/syslog
/sbin/modprobe -r rt73usb
/sbin/modprobe -r rt2x00usb
/sbin/modprobe -r rt2500usb
/sbin/modprobe -r rt2x00lib
/sbin/modprobe -r rt73
echo "`date +%b" "%d" "%T` `hostname` wirelesstest: rt73usb unloaded" >> /var/log/syslog
lsmod | grep rt >> /var/log/syslog
echo "`date +%b" "%d" "%T` `hostname` wirelesstest: sleeping 5s" >> /var/log/syslog
sleep 5s
/sbin/modprobe rt73usb
echo "`date +%b" "%d" "%T` `hostname` wirelesstest: rt73usb loaded" >> /var/log/syslog
echo "`date +%b" "%d" "%T` `hostname` wirelesstest: sleeping 2s" >> /var/log/syslog
sleep 2s
/etc/init.d/networking start
echo "`date +%b" "%d" "%T` `hostname` wirelesstest: net started" >> /var/log/syslog
fi
exit 0
Скрипт запустається через cron, для цього через sudo crontab -e додається лінійку
* * * * * /usr/local/bin/wirelesstest
Ця стрічка буде перевіряти зв’язок через кожну хвилину, а оця
*/4 * * * * /usr/local/bin/wirelesstest
через кожні 4 хвилини. Зрозуміло, треба замість wirelesstest вписати відповідно wirelesstest.rt73 або wirelesstest.rt73usb відповідно, зробити виконувальними файли /usr/local/bin/wirelesstest.rt73 та /usr/local/bin/wirelesstest.rt73usb, і перезапустити cron. Результат можна дивитися через tail -f /var/log/syslog .
Цікаво, що з ndiswrapper драйвером WICD показує, що мережа має кодування WEP, хоча насправді це WPA2. Аналогічно перевірялося з rutilt.
Немає коментарів:
Дописати коментар