понедельник, 27 августа 2012 г.

Установка драйвера для NetGear WNA1100 USB WiFi адаптера

Попросили меня на днях подключить драйвер для WiFi адаптера NetGear WNA1100 USB. Выглядит сей девайс следующим образом (см. картинку).


Интересен он тем, что может работать в режиме Access Point в связке с hostapd. Итак, втыкаем этот девайс в машину и смотрим что адаптер определился:


[root@host src]# lsusb 
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 0846:9030 NetGear, Inc. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Если у вас также - значит поехали далее. Устанавливаем linux-headers, build-essential и качаем драйвера:

[root@host ~]# apt-get install linux-headers-$(uname -r)
[root@host ~]# apt-­get install build-essential
[root@host src]# cd /usr/src
[root@host src]# wget http://wireless.kernel.org/download/compat-wireless-2.6/compat-wireless-2.6.tar.bz2

Далее распаковываем наше добро, переходим в каталог с распакованными драйверами и даем команду на выбор необходимого модуля. Нас интересует только ath9k_htc.

[root@host src]# tar xf compat-wireless-2.6.tar.bz2
[root@host src]# tar xf linux­-headers
[root@host src]# cd compat-wireless-2.6
[root@host src]# ./scripts/driver­select ath9k_htc

Компилируем модули:

[root@host src]# make
[root@host src]# make install

После того как вы успешно откомпилировалось качаем firmware и кладем его в каталог /lib/firmware. (Небольшое замечание: иногда, если исходники ядра уже были и из них собирались модули или ядро, то нужно перейти в каталог с исходниками ядра и дать команду "make modules_prepare").

[root@host src]# wget http://linuxwireless.org/download/htc_fw/1.3/htc_9271.fw
[root@host src]# mv ./htc_9271.fw /lib/firmware

Подгружаем модуль и убеждаемся что все корректно загрузилось:

[root@host src]# modprobe ath9k_htc

[root@host src]# lsmod | grep ath9
ath9k_htc              42366  0 
mac80211              286250  1 ath9k_htc
ath9k_common            1371  1 ath9k_htc
ath9k_hw              300480  2 ath9k_htc,ath9k_common
ath                    11078  3 ath9k_htc,ath9k_common,ath9k_hw
cfg80211              128110  3 ath9k_htc,mac80211,ath
compat                  8652  5 ath9k_htc,mac80211,ath9k_common,ath9k_hw,cfg80211


На этом все! Можно ставить hostapd и заставить wifi адаптер работать в режиме AP. Мой конфиг hostpad выглядит следующим образом:


[root@host ~]# cat /etc/hostapd/hostapd.conf 
interface=wlan0
driver=nl80211
logger_stdout=-1
logger_stdout_level=2
ssid=Test
hw_mode=g
ieee80211n=1
ht_capab=[HT40+][SHORT-GI-40][DSSS_CCK-40]
channel=5
auth_algs=3
max_num_sta=5
wpa=2
wpa_passphrase=1234567890
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2

3 комментария:

Britgop комментирует...

Спасибо за подробную инструкцию!
На этапе закачки драйверов
[root@host src]# wget http://wireless.kernel.org/download/compat-wireless-2.6/compat-wireless-2.6.tar.bz2
появляется проблема: закачивается порядка 150 кбайт (3%), скорость падает до нуля, оставшееся время устремляется в бесконечность. Не подскажете в чем может быть проблема?

nicosha комментирует...

Может у вас место закончилось? =)

Unknown комментирует...

http://wireless.kernel.org/download/compat-wireless-2.6/compat-wireless-2.6.tar.bz2
Адрес сменился, если перейти по этой ссылке то можно найти правильный адрес.