Внимание! Данная инструкция действительна только для Ubuntu 12.04 с ядром 3.2.хх! В версиях ядра 3.5 и выше Вы получите крах системы!
Драйвера rt2800, установленные в системе Ubuntu 12.04 не совсем корректно работают с Wi-Fi картами на базе чипов Ralink RT2870 (DLink DWA-160rev.B2 и ему подобные) - скорость соединения меньше, чем заявлено в спецификации. Более того, проприетарный драйвер для RT2870 поддерживает ядра linux только до версии 2.6.34, и установка его на Ubuntu 12.04 (а также Ubuntu 11.10) в чистом виде невозможна. Решение следующее:
1. Командой в терминале (CTRL+ALT+T)
lsusb
смотрим модель нашей карты.
На сайте Ralink выбираем нужный на драйвер: в нашем случае RT2870USB(RT2870/RT2770). Для загрузки в появившемся окне необходимо ввести имя и адрес электронной почты.
2. С помощью Менеджера архивов распаковываем скаченный архив два раза- после первой распаковки Вы опять получите архив; после второй распаковки появится папка с установочными файлами. Перемещаем ее в домашнюю папку и переименовываем для удобства в rt2870.
3. Заходим в папку /rt2870/os/linux/
Открываем в текстовом редакторе файл config.mk и меняем следующие параметры:
# Support Wpa_Supplicant
HAS_WPA_SUPPLICANT=n
# Support Native WpaSupplicant for Network Maganger
HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=n
на:
# Support Wpa_Supplicant
HAS_WPA_SUPPLICANT=y
# Support Native WpaSupplicant for Network Maganger
HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y
сохраняем файл.
4.Переходим в папку /rt2870/include/os/
Открываем в текстовом редакторе файл rt_linux.h, находим и переименовываем следующие функции:
- usb_buffer_alloc() переименовываем в usb_alloc_coherent()
- usb_buffer_free() переименовываем в usb_free_coherent()
Примечание: в функциях в скобках находятся ее аргументы, поэтому поиском ищем только название функции без круглых скобок!
Сохраняем файл.
5. Компилируем и устанавливаем драйвер. Для этого в терминале выполняем следующие команды:
cd ~/rt2870
sudo su
sudo make
sudo make install
активируем драйвер командой:
sudo modprobe -r rt2870sta
6. Добавляем неиспользуемые в дальшейшем драйвера 2800usb 2x00usb в blacklist. Для этого в терминале выполняем:
sudo gedit /etc/modprobe.d/blacklist.conf
в появившемся редакторе в конец файла добавляем следующие строки:
blacklist rt2x00usb
blacklist rt2x00lib
blacklist rt2800usb
blacklist rt2800li
сохраняем файл.
Перезагружаем систему.
Проверим установку драйвера. Для этого в терминале набираем:
lsmod | grep rt
если отображается модуль rt2870sta, то мы все сделали правильно, и через менеджер сети можно установить параметры беспроводного соединения.
Установка драйверов для карт на основе других более новых чипов Ralink производится также кроме пункта 4. Его в драйверах с версии 2.5.0.0 и выше выполнять не нужно.