среда, 21 мая 2008 г.

Опыт настройки USB-адаптера D-Link DWL-G122 в Ubuntu

отсюда

Мой опыт настройки USB-адаптера D-Link DWL-G122 в Ubuntu 7.10 Linux, но думаю что методика применима для большинства дистрибутивов (аналогичным методом точно можно настроить в Ubuntu 7.04)

Предисловие

Будем настраивать соединение Wi-Fi USB-адаптера D-Link DWL-G122 rev.C с точкой доступа в Ubuntu 7.10 Linux

Будем пользоваться windows-драйверами через ndiswrapper. Соответственно предполагается что ndiswrapper уже установлен в системе. Для Ubuntu 7.10 это пакеты ndiswrapper-common и ndiswrapper-utils-1.9 Естественно понадобятся и windows-драйвера.

В рассматриваемом адаптере используется чипсет производства Ralink. Проблема в том, что Linux считает, что он умеет работать с данным чипсетом. Соответственно при загрузке ОС мы с большой долей вероятности в выводе команды 'ifconfig -a' увидим сетевой интерефейс 'rausb0'

Все операции должны выполняться с правами пользователя root

Естественно, я снимаю с себя всякую ответственность за результат Ваших действий в системе :-(


Тактика и стратегия

1. Найти ...

Находим модули ядра, которые нам мешают.

lsmod | grep rt7

lsmod | grep rt2

Вывод данных команд будет зависеть от версии дистрибутива Linux. В моем случае это были rt73usb, rt2x00usb и rt2x00lib

2. ... и обезвредить

modprobe -l

показывает где находятся модули ядра. В моем случае все 3 модуля (rt73usb, rt2x00usb и rt2x00lib) находились в каталоге /lib/modules/2.6.22-14-generic/ubuntu/wireless/rt2x00/

Чтобы данные модули больше не подгружались, их нужно либо удалить, либо переименовать. Я выбрал второе.

cd /lib/modules/2.6.22-14-generic/ubuntu/wireless/rt2x00/

mv rt2x00usb.ko rt2x00usb.ko.old

mv rt2x00lib.ko rt2x00lib.ko.old

mv rt73usb.ko rt73usb.ko.old

Все. После перезагрузки системы эти модули не будут загружены.

3. "Заграница" нам поможет

Сначала проинсталлируем драйвера адаптера. Для этого перейдем в каталог где они лежат и выполним команду:

ndiswrapper -i Dr71WU.inf

где Dr71WU.inf inf-файл драйвера нашего адаптера. Данная команда копирует нужные ей файлы в каталог /etc/ndiswrapper. Оттуда модуль ядра ndiswrapper и будет брать их в дальнейшем.

Теперь скажем ядру что оно должно использовать модуль ndiswrapper, для этого:

modprobe -i ndiswrapper

depmod -a

Теперь проверим что в файле /etc/modprobe.d/aliases отсутствует запись для rausb0

Далее создаем интерфейс wlan0

vi /etc/modprobe.d/ndiswrapper

с такой записью:

alias wlan0 ndiswrapper

Теперь можно перезагрузить систему и если все было правильно, то вывод команды 'ifconfig -a' покажет наличие в системе интерфейса wlan0.

Если этого не произошло, попробуйте еще раз сделать

modprobe -i ndiswrapper

depmod -a

это должно помочь.

4. "Полная тайна вкладов... то есть организации"

Дальше рассказ о том как настроить WPA-шифрование. Для этого в системе должен быть wpa_supplicant (пакет wpasupplicant в Ubuntu 7.10)

Предположения относительно точки доступа:

- SSID = testnet

- сеть "скрытая", т.е. не анонсирует своего имени

- адрес сети 00:11:22:33:44:55

- используются протоколы WPA-PSK, WPA2-PSK, TKIP, AES

- пароль PSK = 1234567890axcvf

- на точке доступа настроена динамическая раздача адресов

Двоичный пароль запрашиваем командой:

wpa_passphrase testnet 1234567890axcvf

и получаем от него нечто вроде:

network={
ssid="testnet"
#psk="1234567890axcvf"
psk=95d5e79040c1da5c70981fbc51679331b53245e923b7dc62f0621826d529abfa
}

Вариантов два.

Вариант 1

Если беспроводная сеть является постоянной, то в файле /etc/network/interfaces прописываем:

auto wlan0
iface wlan0 inet dhcp
wpa-driver wext
wpa-ssid testnet
wpa-bssid 00:11:22:33:44:55
wpa-scan-ssid 1
wpa-ap-scan 2
wpa-proto WPA RSN
wpa-pairwise TKIP CCMP
wpa-group TKIP CCMP
wpa-auth-alg OPEN
wpa-key-mgmt WPA-PSK
wpa-psk 95d5e79040c1da5c70981fbc51679331b53245e923b7dc62f0621826d529abfa


Вариант 2

Если беспроводная сеть нужна время от времени,

то ее можно инициализировать следующим способом

wpa_supplicant -D wext -i wlan0 -c /etc/wpa_supplicant.conf -B

Содержимое файла /etc/wpa_supplicant.conf:

ctrl_interface=/var/run/wpa_supplicant
ap_scan=2
network={
ssid="testnet"
bssid=00:11:22:33:44:55
scan_ssid=1
proto=WPA RSN
key_mgmt=WPA-PSK
auth_alg=OPEN
pairwise=TKIP CCMP
group=TKIP CCMP

psk=95d5e79040c1da5c70981fbc51679331b53245e923b7dc62f0621826d529abfa
}

IP-адрес получается динамически, говорим:

dhclient wlan0

Все.

Комментариев нет: