Как понизить версию драйверов беспроводной связи Broadcom bcmwl-kernel-source?
После новой установки 64-битной Ubuntu 13.04 мой вайфай теперь плохо себя ведет. Кажется, что время от времени теряется подключение к Интернету, поэтому в результате, например, веб-браузер прекращает загрузку сайтов в середине процесса, ждет ~3 секунды, а затем получает остальную часть сайта. Это не произошло в 12.10, в том же ноутбуке.
Другим симптомом, который объявил, что что-то не будет в порядке, было отключение Wi-Fi на мгновение, когда я нажал "Продолжить" на первом этапе установки Ubuntu, на экране, где вы выбираете "Обновить во время установки" и "установить MP3 служба поддержки".
У меня есть карта Broadcom BCM4313 (на самом деле это карта Dell WLAN 1501, но в данный момент я не очень хорошо понимаю, как эти два бренда связаны друг с другом)
~$ lspci -vvnn | grep 14e4
12:00.0 Network controller [0280]: Broadcom Corporation BCM4313 802.11b/g/n Wireless LAN Controller [14e4:4727] (rev 01)
Я читал, что это может быть ошибка в текущем драйвере, поставляемом в Ubuntu 13.04: bcmwl-kernel-source 6.20.155.1+bdcom-0ubuntu6
Как мне перейти на предыдущую рабочую версию?
Я попытался следовать этой инструкции, но 1) я не могу установить старую версию из репозитория, потому что она, кажется, недоступна для Ubuntu 13.04. и 2) Если я вручную скачаю и установлю отсюда файл.deb (bcmwl-kernel-source_5.100.82.112+bdcom-0ubuntu3_amd64.deb), после перезагрузки система отключит контроллер wl и снова выберет контроллер brcmsmac, как показано в диалоговом окне "Информация о соединении" из области уведомлений. Затем, если я попытаюсь выбрать его вручную, я получу:
~$ sudo modprobe wl
FATAL: module wl not found.
Это как-то связано с версией ядра? т.е. пакет.deb не совместим с моим текущим ядром. Есть идеи? Может быть, я должен перекомпилировать этот пакет с исходным кодом? Если так, то как?
Спасибо.
2 ответа
Мне удалось понизить версию беспроводного драйвера, но у меня остались те же проблемы. Я также пробовал другие драйверы, такие как bcma и даже ndiswrapper (драйверы для Windows), и проблема сохраняется. Я считаю, что проблема в новом ядре, так что, похоже, мне придется вернуться к 12.10.
Установив Ubuntu с 11.04, по моему опыту, с каждым выпуском Ubuntu становится все труднее заставить работать одну и ту же карту Wi-Fi...
В любом случае, если это кому-то пригодится, я понизил версию драйвера:
Сначала удалите текущий драйвер и установите новый из файла.deb.
sudo apt-get remove --purge bcmwl-kernel-source
sudo dpkg -i /deb_file_location/bcmwl-kernel-source_5.100.82.112+bdcom-0ubuntu3_amd64.deb
Заблокируйте версию пакета, чтобы предотвратить обновления.
pkexec gedit /etc/apt/preferences.d/bcmwl-kernel-source
и вставить в пудинг:
Package: bcmwl-kernel-source
Pin: version 5.100.82.112+bdcom*
Pin-Priority: 1001
Я также внес в черный список другие модули, чтобы быть уверенным, что они не загружаются при загрузке, но это может быть необязательно во всех случаях.
pkexec gedit /etc/modprobe.d/blacklist-bcm43.conf
и добавьте следующее:
blacklist brcmsmac
blacklist bcma
Перезагрузка и готово. Вы можете проверить, что драйвер используется, набрав:
lspci -k | grep wl
Который должен вернуться:
Kernel driver in use: wl
+1 за проблему WiFi. У меня Dell E6510 с Wi-Fi BCM4313, и с момента обновления 13.04 WiFi несколько раз в час подпрыгивал вверх и вниз. В основном это происходит очень быстро. Я заметил, что после приостановки / возобновления, хотя у меня обычно будет WiFi, если он падает после этого, я получаю подсказки для ввода беспроводного пароля, и он не будет переподключаться до перезагрузки. Grrrr.
Просто сейчас попробовал отключить управление питанием для WiFi, посмотрю как это работает.
sudo iwconfig wlan0 power off