20080725

WiFi карточка D-Link DWL-G630 (RaLink RT2561/RT61 rev B 802.11g)

Достал из коробки лежащую уже с год без дела WiFi-карточку D-Link DWL-G630. lspci опознаёт её так:
07:00.0 Network controller: RaLink RT2561/RT61 rev B 802.11g
Вспомнил, что год назад нужно было скачивать драйвера с сайта Ralink и настраивать их весьма нестандартым способом. Детали, впрочем, забыл. За прошедший год ситуация несколько изменилась. Теперь (дистрибутивное ядро 2.6.24-1-686) при втыкании карточки автоматически подгружается модуль rt61pci, создаётся почему-то сразу два интерфейса ra0 (почему-то без wireless-extensions) и wlan0_rename. Честно говоря, я так и не понял, поддерживает ли этот драйвер rt61pci мою карточку в варианте «rev B» или нет…

В общем, скачал то, что называется улучшенный legacy driver, rt61, CVS-срез. В отличие от идущего с ядром rt61pci он не умеет работать с wpa_supplicant, но по моему прошлому опыту он точно поддерживает эту карточку. После распаковки архива с драйвером, перехода в rt61-cvs-2008072016/Module/, make и make install через минуту меня стал доступен новый драйвер rt61.

Поскольку в отличие от ситуации год назад настраивается он теперь вполне стандартными инструментами iwconfig и iwpriv, я удалил оставшийся от прошлогодних экспериментов каталог с его настройками /etc/Wireless.

Для работы карточки требуется установить также прошивки. Я просто поставил пакет firmware-ralink, и нужные прошивки легли куда надо (в /lib/firmware). Прошивки можно взять также отдельно с сайта Ralink.

После этого при втыкании карточки iwconfig стал показывать только один интерфейс ra0, а lsmod подтвердил, что автоматически грузиться rt61.

Дальнейшая настройка достаточно проста. Можно после втыкания карточки просто запускать графическую утилиту RutilT (есть в дистрибутиве), и в ней выбирать нужную сеть и вбивать пароль.

Можно и традиционно, из коммандной строки, используя iwconfig. Для настроек шифрования вместо wpa_supplicant с этим драйвером можно установить нужные параметры утилитой iwpriv (примеры есть в README к драйверу). Мне же хотелось, чтобы настройки определялись в традиционном для Debian /etc/network/interfaces, поэтому все нужные команды прописал туда. Моя точка доступа настроена на использование WPA2PSK с шифрованием AES (для WPAPSK/TKIP заменить на WPAPSK и TKIP соответственно). В этом случае настройки такие::
auto ra0
iface ra0 inet dhcp
pre-up iwconfig ra0 mode managed
pre-up iwpriv ra0 set AuthMode=WPA2PSK
pre-up iwpriv ra0 set EncrypType=AES
pre-up iwconfig ra0 essid "MYESSID"
pre-up iwpriv ra0 set WPAPSK="mypassword"
После этого беспроводная сеть стала подключаться автоматически, а также отключаться и подключаться по ifdown/ifup ra0. Мне бо́льшего и не надо :)

Если что, вот ветка форума, посвящённая обсуждению legacy-драйвера rt61 (pci).