Вопрос или проблема
Я пытаюсь настроить свой беспроводной адаптер уже две недели. У меня карта беспроводной связи 1814:3290. Я на Linux Mint 14 64-бит. Я попробовал все предложения, которые есть здесь:
https://askubuntu.com/questions/240553/how-do-i-install-ra3290-bin-wireless-driver-into-lib-firmware
http://ubuntuforums.org/showthread.php?t=2104129
https://askubuntu.com/questions/240553/how-do-i-install-ra3290-bin-wireless-driver-into-lib-firmware
Я обновил свой ядро до 3.8.5-030805-generic. Первое, что я попробовал, – это скомпилировать драйверы (используя оригинальное ядро 3.5.0-17-generic). Когда я скомпилировал и установил, мой беспроводной адаптер заработал, но я постоянно получал паники ядра каждый раз, когда входил в систему. Итак, я modprobe -r rt3290sta
. После этого я попытался обновить ядро до того, что у меня сейчас, и скопировать bin файл. Ядро увидело беспроводную карту, но она не была активной или чем-то еще. Я проверил rfkill
, и ничего не было заблокировано. Затем я снова попытался скомпилировать драйверы после make clean
. Теперь, когда я пытаюсь скомпилировать драйверы, я получаю следующее:
/home/dis/Downloads/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../../os/linux/pci_main_dev.c:43:23: ошибка: ожидалось ‘=’, ‘,’, ‘;’, ‘asm’ или ‘__attribute__’ перед ‘rt2860_remove_one’
/home/dis/Downloads/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../../os/linux/pci_main_dev.c:44:22: ошибка: ожидалось ‘=’, ‘,’, ‘;’, ‘asm’ или ‘__attribute__’ перед ‘rt2860_probe’
/home/dis/Downloads/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../../os/linux/pci_main_dev.c:63:46: ошибка: ожидалось ‘=’, ‘,’, ‘;’, ‘asm’ или ‘__attribute__’ перед ‘__devinitdata’
/home/dis/Downloads/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../../os/linux/pci_main_dev.c:85:17: ошибка: ‘rt2860_pci_tbl’ не объявлен здесь (не в функции)
/home/dis/Downloads/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../../os/linux/pci_main_dev.c:86:17: ошибка: ‘rt2860_probe’ не объявлен здесь (не в функции)
/home/dis/Downloads/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../../os/linux/pci_main_dev.c:88:5: ошибка: неявное объявление функции ‘__devexit_p’ [-Werror=implicit-function-declaration]
/home/dis/Downloads/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../../os/linux/pci_main_dev.c:88:29: ошибка: ‘rt2860_remove_one’ не объявлен здесь (не в функции)
/home/dis/Downloads/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../../os/linux/pci_main_dev.c:292:24: ошибка: ожидалось ‘=’, ‘,’, ‘;’, ‘asm’ или ‘__attribute__’ перед ‘rt2860_probe’
/home/dis/Downloads/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../../os/linux/pci_main_dev.c:463:23: ошибка: ожидалось ‘=’, ‘,’, ‘;’, ‘asm’ или ‘__attribute__’ перед ‘rt2860_remove_one’
/home/dis/Downloads/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../../os/linux/pci_main_dev.c:71:1: ошибка: ‘__mod_pci_device_table’ ссылается на неопределенный символ ‘rt2860_pci_tbl’
cc1: некоторые предупреждения рассматриваются как ошибки
make[2]: *** [/home/dis/Downloads/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../../os/linux/pci_main_dev.o] Ошибка 1
make[1]: *** [_module_/home/dis/Downloads/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux] Ошибка 2
make[1]: Выход из директории `/usr/src/linux-headers-3.8.5-030805-generic'
make: *** [LINUX] Ошибка 2
Все также обновлено. Я не уверен, что делать дальше. Может, мне стоит понизить версию ядра до 3.6 или 3.7?
Правка: Я понизил версию ядра до 3.7.2 и повторно скомпилировал драйверы. Ядро видит мой беспроводной адаптер, но он, похоже, не работает, и все зависает. Попробую ядро 3.6.
Правка2: После дополнительных тестов я обнаружил, что 3.7.2 и 3.6.11 оба вызывают паники ядра после установки драйвера беспроводной связи.
Правка3: Я установил 3.7.11 и скомпилировал и установил драйверы беспроводной связи. Беспроводное соединение работало 3 секунды, а затем произошла паника ядра.
Я купил HP Envy Dv7. Мой беспроводной адаптер не работал с родным модулем, и я получал панику ядра с проприетарным модулем Ralink rt3290. Поэтому я нашел решение на русском сайте (http://forum.ubuntu.ru/index.php?topic=217802.0)
sudo su
apt-get install linux-headers-`uname -r` build-essential --force-yes -y
cd ~
wget -c https://www.kernel.org/pub/linux/kernel/projects/backports/2013/03/15/compat-drivers-2013-03-15.tar.bz2
tar xvf compat-drivers-2013-03-15.tar.bz2 | tail
cd compat-drivers-2013-03-15
scri*/dri* rt2x00
make
make install
Так что, внесите в черный список ваш модуль rt3290, “разчерните” оба rt2800pci и rt2x00pci и перезагрузитесь. Теперь у меня все работает хорошо.
Ответ или решение
Решение проблемы с беспроводным подключением RT3290 на Linux Mint 14
Если у вас возникли проблемы с беспроводной картой RT3290 на системе Linux Mint 14, и вы уже исчерпали возможности различных решений, приведенных на форумах, то данная инструкция может помочь вам решить данную проблему.
Обзор ситуации
Многочисленные попытки установить драйвера для вашей беспроводной карты RT3290, по всей видимости, не увенчались успехом. Вы столкнулись с проблемами, включая паники ядра и ошибки компиляции, которые могут быть связаны с изменениями в версиях ядра. После переключения между версиями ядра 3.5, 3.6 и 3.7 вы заметили, что беспроводная карта не функционирует должным образом.
Возможные решения
-
Используйте Updated Backports
Один из эффективных способов решить проблему с драйверами – это использование backports, которые предоставляют свежие версии драйверов для старых ядер. Вам потребуется выполнить следующие шаги в терминале:sudo apt-get install linux-headers-$(uname -r) build-essential --force-yes -y cd ~ wget -c https://www.kernel.org/pub/linux/kernel/projects/backports/latest-compat/compat-drivers-<date>.tar.bz2 tar xvf compat-drivers-<date>.tar.bz2 cd compat-drivers-<date> make sudo make install
Не забудьте заменить
<date>
на соответствующую дату файла, доступного на сайте kernel.org. -
Настройка черного списка
После успешной установки драйверов, вам необходимо откорректировать настройки загрузчика для отключения стандартного модуля RT3290, а также включить модули для RT2800PCI и RT2X00PCI:- Откройте терминал и выполните команду:
echo "blacklist rt3290sta" | sudo tee -a /etc/modprobe.d/blacklist.conf echo "unblacklist rt2800pci" | sudo tee -a /etc/modprobe.d/blacklist.conf echo "unblacklist rt2x00pci" | sudo tee -a /etc/modprobe.d/blacklist.conf
- Перезагрузите компьютер, чтобы изменения вступили в силу.
-
Проверка состояния беспроводного адаптера
После перезагрузки проверьте, активен ли беспроводной адаптер, выполнив команду:rfkill list
Убедитесь, что в выводе команды не указано блокировок (blocked).
-
Обновление ядра
В некоторых случаях обновление ядра до более новой версии (например, 3.8 или выше) может улучшить работу беспроводных адаптеров. Для этого выполните:sudo apt-get update sudo apt-get upgrade
Затем проверьте наличие обновлений ядра и установите их.
Заключение
Следуя данному руководству, вы должны успешно разрешить проблемы с беспроводной картой RT3290 на Linux Mint 14. Если проблема не решается, возможно, стоит рассмотреть использование другого дистрибутива Linux или проверить наличие аппаратных неисправностей адаптера.
Регулярное обновление системы и драйверов позволяет избежать многих проблем с совместимостью, поэтому старайтесь поддерживать систему в актуальном состоянии. Если у вас возникнут дополнительные вопросы, не стесняйтесь обращаться за помощью на профильные форумы или сообщества Linux.