Wi-Fi USB-адаптер D-Link DWL-G122 rev.C и Ubuntu 7.10

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

[Иван Осипов (bellycat77 at gmail dot com)]

Предисловие

    Будем настраивать соединение 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

Все.

[ опубликовано 24/10/2007 ]

Иван Осипов (bellycat77 at gmail dot com) - Wi-Fi USB-адаптер D-Link DWL-G122 rev.C и Ubuntu 7.10   Версия для печати