Я думаю, многим знакома ситуация, когда на ноутбуке определяются все устройства кроме беспроводной связи, ну или, как в моём случае, устройство определяется, но не работает.
Чтобы определить, что же за устройство отвечает за беспроводную связь, можно выполнить следующую команду:
$ lspci -v | grep -i -A 5 "network controller"
24:00.0 Network controller: Ralink corp. Device 3592
Subsystem: Hewlett-Packard Company Device 1638
Flags: bus master, fast devsel, latency 0, IRQ 19
Memory at d4700000 (32-bit, non-prefetchable) [size=64K]
Capabilities:
Kernel driver in use: rt2800pci
Как видно, устройство определилось как Ralink RT3592, и даже нашёлся драйвер rt2800pci. В описании этого драйвера действительно есть эта карта, но устройство не желает подсоединяться к сети.
Погуглив, я узнал, что я не единственный, у кого наблюдается проблема. Многие рекомендовали сходить на официальный сайт Ralink, скачать тарбол с драйверами и, следуя инструкциям, установить их. Установка правда заключалась в make && make install, что лично мне совсем не нравится: я желаю знать что, куда и зачем копируется в моей системе, чтобы в случае чего проблему было искать легче.
Итак. Первое, что требуется – это скачать тарбол с драйверами с официального сайта (придётся подписать соглашение).
На сайте производителя говорится, что эти драйвера подходят для RT3060, RT3062, RT3562 и RT3592. Я проверил только на своём чипе.
Далее распаковываем тарбол и внутри каталога находим файл README_STA_pci, в котором можно прочитать все инструкции по установке (в том числе пресловутый make install).
Далее по шагам.
1. изменяем Makefile согласно инструкции (мне не понадобилось)
2. изменяем os/linux/config.mk согласно инструкции (изменение значения параметров):
HAS_WPA_SUPPLICANT=y
HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y
3. make: у меня выдал ошибку при создании директории в корне (странно, что это есть в make), но сборка завершилась
4. sudo mkdir -p /etc/Wireless/RT2860STA
5. sudo cp RT2860STA.dat /etc/Wireless/RT2860STA
6. sudo cp RT2860STACard.dat /etc/Wireless/RT2860STA
6. sudo cp os/linux/rt3562sta.ko /lib/modules/$(uname -r)/kernel/drivers/net/wireless/rt2860sta.ko
7. sudo depmod $(uname -r)
8. добавляем модуль rt2800pci в чёрный список, для Ubuntu это равнозначно добавлению в /etc/modprobe.d/blacklist.conf строчки:
blacklist rt2800pci
9. перезагрузить машину
В принципе до восьмого пункта, чтобы проверить успешность, можно попробовать следующее:
$ sudo modprobe -r rt2800pci
$ sudo modprobe rt2860sta
… и перезапустить сеть. Если всё хорошо, то можно смело добавлять свободный модуль в чёрный список.
Конечно, по-хорошему нужно собрать пакет, но времени на разбор принципов сборки у меня не было. Зато такой пакет есть в репозитории Russian Fedora (респект), да и PKGBUILD для AUR тоже несложный.
Комментариев: 6
спасибо за статью, я выполнил все шаги и решил проблему. (проделал это пару месяцев назад)
А меньше недели назад выполнил update и после этого кнопка enable wireless connection исчезла совсем
sudo ifconfig wlan0 up
wlan0: ERROR while getting interface flags: No such device
помогите пожалуйста
Если ядро обновилось, то нужно пересобрать драйвер, заново скопировать модуль в каталог для нового ядра и выполнить depmod (в общем-то, повторить все шаги).
Судя по ошибке modprobe, модуля для текущего ядра нет, можете проверить командой:
file /lib/modules/$(uname -r)/kernel/drivers/net/wireless/rt2860sta.ko
да, вы правы, я проверил
file /lib/modules/$(uname -r)/kernel/drivers/net/wireless/rt2860sta.ko
/lib/modules/3.0.0-15-generic-pae/kernel/drivers/net/wireless/rt2860sta.ko: ERROR: cannot open `/lib/modules/3.0.0-15-generic-pae/kernel/drivers/net/wireless/rt2860sta.ko’ (No such file or directory)
прошел по всем шагам:
кнопка enable wireless connection появилась, но не подсвечена
всему виной моя невнимательность!
проблемы больше нет.
спасибо
sudo modprobe rt2860sta
FATAL: Module rt2860sta not found.