0. Введение и история вопроса
Этот ответ основан на обширном исследовании, проведенном различными пользователями Ubuntu, которые работали вместе практически по всем вопросам, связанным с Broadcom. Выражаем особую благодарность chili555, который помогал на форумах Ubuntu и на этом сайте, задавал много вопросов, касающихся беспроводных устройств, и другим, которые внесли свой вклад в электронную почту, чаты, IRC и многое другое в тестировании различных драйверов с помощью нескольких самых популярных карт Broadcom Wireless. (Огромное спасибо Chili555 на самом деле. Этот парень знает свое дело).
В целом мы хотели предложить ответ, который мог бы быть простым для понимания и охватывал большинство карт / драйверов Broadcom. После того, как вы будете следовать этому руководству, вам НУЖНО проверить беспроводное соединение в течение не менее 2 часов (я на самом деле рекомендую 8 часов) с другим устройством в режиме Ad-Hoc, инфраструктуре или в обоих режимах. Распространенные проблемы, которые будут решены (кроме драйверов, не устанавливаемых):
- Тайм-аут соединения через несколько минут или часов
- Останавливает поиск других устройств (не видит других устройств)
- Продолжает запрашивать пароль даже в тех случаях, когда у AP нет
- Останавливает любой прием / передачу трафика (требуется временная перезагрузка для временного исправления)
- Сбой системы с ошибками dmesg в журнале (ссылка 1 ниже)
- Система полностью зависает (Вы можете нажать только кнопку «Перезагрузка / Питание») (ссылка 1 ниже)
- Создает огромные отчеты журнала, пытаясь правильно настроить или подключиться
- Сбой при установке через дополнительные драйверы / дополнительное оборудование (ссылка 3 ниже)
- Подключается и отключается непрерывно каждые X секунд
- Появляется подключенным к Network Manager, но не получает Интернет
- Пытается подключиться много раз без правильного завершения соединения
- Занимает слишком много времени для подключения
- После обновления с предыдущей версии (например: 12.04 до 12.10) он перестает работать
- Беспроводная карта не включается, не включается и не отключается (ссылка 2 ниже)
- Беспроводная карта заблокирована оборудованием
- Больше проблем найдено в Launchpad, Ubuntu Forum и Askubuntu
Ссылка 1 - https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1060268
Ссылка 2 - https://bugs.launchpad.net/ubuntu/+source/bcmwl/+bug/732677
Ссылка 3 - выдает ошибку, аналогичную «Извините, установка этого драйвера не удалась.»
Итак, имея в виду следующее, мы имеем сейчас следующее, которое упрощается всего за 3 шага:
1. Зная, какая у вас беспроводная карта Broadcom
Существуют десятки беспроводных карт Broadcom, и каждый день появляются новые. Ключом к поиску правильного драйвера для любой сетевой карты является то, что известно как PCI ID (PCI.ID). Чтобы выяснить, какой у вас PCI.ID, перейдем к открытию терминала, нажав CTRL+ ALT+ T(должно открыться окно с пустым фоном), и внутри этого терминала мы запустим следующую команду:
lspci -nn -d 14e4:
Если у вас есть беспроводной адаптер Broadcom, вы получите что-то вроде следующего (идентификатор 14e4, используемый в приведенном выше примере, в большинстве случаев является беспроводной картой Broadcom):
Broadcom Corporation BCM4306 802.11bgn Wireless Network Adapter [14e4:4320] (rev 03)
PCI.ID в этом примере это 14e4: 4320, как видно из скобок [...]. В некоторых случаях вам также потребуется версия ревизии (если она появится) для некоторых особых случаев. В этом случае версия ревизии - версия 03, как показано в скобках (...) в конце. Итак, что вам нужно после этого поиска:
[14e4:4320] (rev 03)
С этой новой информацией вы можете посмотреть в таблице ниже и выбрать подходящий метод для установки вашего драйвера. Например, в этом случае, поскольку у вас есть 14e4: 4320 rev 03 , если мы перейдем вниз по списку к тому, который показывает точно такой же PCI.ID, вы увидите, что в столбцах для Ubuntu 12.04, 13.10 или 14.04 он показывает firmware-b43-installer
пакет драйвера. Это означает, что вам нужно будет только установить этот конкретный пакет, поскольку он появляется во всех столбцах версий Ubuntu.
ПРИМЕЧАНИЕ. - Прежде чем продолжить, если вы ранее установили какие-либо драйверы, занесли в черный список или раскомментировали какие-либо файлы драйверов или файлы конфигурации или внесли какие-либо изменения в систему, чтобы драйверы работали в предыдущих попытках, вам придется отменить их, чтобы следуйте этому руководству. Мы предполагаем, что вы делаете это с нуля и не изменили никакие файлы конфигурации, модули или драйверы в системе каким-либо образом (кроме обновления системы). Это включает любые установки, использующие apt-get, aptitude, synaptic, dpkg, центр программного обеспечения или ручную компиляцию и установку пакетов. Система должна начинаться с нуля, чтобы это работало и чтобы не возникало конфликтов, которые могут возникнуть, если ранее была сделана работа.
Например, если вы ранее установили bcmwl-kernel-source
пакет, вам необходимо удалить его с помощью метода очистки:
sudo apt-get purge bcmwl-kernel-source
2. Подготовка системы
Если вы только что установили Ubuntu, вам нужно будет создать индекс доступных пакетов, прежде чем мы сможем установить ваш драйвер, если вы еще этого не сделали:
sudo apt update
Я бы даже пошел дальше, чтобы обновить список Ubuntu PCI.ID:
sudo update-pciids
На тот случай, если только что появился идентификатор конкретного нового устройства Broadcom, которое вы используете.
Теперь, используя PCI.ID, который вы нашли в приведенных выше шагах, мы затем ищем в списке ниже, чтобы найти соответствующий PCI.ID и способ простой и правильной установки драйвера, связанного с ним. Терминал будет использоваться, чтобы избежать любых проблем, связанных с GUI. Это относится ко всем случаям, кроме отмеченных. Процедура установки выполняется только через терминал, а также при подключении к Интернету с помощью временного проводного Ethernet-подключения или USB-модема или любых возможных средств, которые могут на время предоставить вашему ПК доступ в Интернет. После того, как вы найдете в списке ниже правильный пакет, мы приступаем к установке.
3. Установка пакета (онлайн)
Предполагая, что вы использовали PCI.ID 14e4: 4320 rev 03, как показано в поиске выше, а затем посмотрели на таблицу ниже и обнаружили, что правильный пакет для установки - это firmware-b43-installer
, мы затем приступаем к простой установке этого пакета в терминале:
sudo apt install firmware-b43-installer
а затем перезагрузите
sudo reboot
Формат для установки довольно прост, это просто:
sudo apt install <PACKAGE_NAME>
В приведенном выше примере PACKAGE_NAME - это firmware-b43-installer
.
WIRELESS TABLE BROADCOM (Обновлено 18 августа 2017 г.)
PCI.ID 16.04 LTS 17.10+
------------------------------------------------------------------------------------
14e4:0576 Special Case #1 UNKNOWN
14e4:1713 firmware-b43-installer firmware-b43-installer
14e4:4301 firmware-b43-installer firmware-b43-installer
14e4:4306 firmware-b43-installer firmware-b43-installer
14e4:4306 rev 02 firmware-b43-installer firmware-b43-installer
14e4:4306 rev 03 firmware-b43-installer firmware-b43-installer
14e4:4307 firmware-b43-installer firmware-b43-installer
14e4:4311 firmware-b43-installer firmware-b43-installer
14e4:4311 rev 01 firmware-b43-installer firmware-b43-installer
14e4:4312 firmware-b43-installer firmware-b43-installer
14e4:4313 firmware-b43-installer firmware-b43-installer
14e4:4315 firmware-b43-installer firmware-b43-installer
14e4:4315 rev 01 firmware-b43-installer firmware-b43-installer
14e4:4318 firmware-b43-installer firmware-b43-installer
14e4:4318 rev 02 firmware-b43-installer firmware-b43-installer
14e4:4319 firmware-b43-installer firmware-b43-installer
14e4:4320 rev 02 firmware-b43-installer firmware-b43-installer
14e4:4320 rev 03 firmware-b43-installer firmware-b43-installer
14e4:4321 firmware-b43-installer firmware-b43-installer
14e4:4324 firmware-b43-installer firmware-b43-installer
14e4:4325 firmware-b43-installer firmware-b43-installer
14e4:4328 firmware-b43-installer firmware-b43-installer
14e4:4328 rev 03 bcmwl-kernel-source bcmwl-kernel-source
14e4:4329 bcmwl-kernel-source bcmwl-kernel-source
14e4:432a bcmwl-kernel-source bcmwl-kernel-source
14e4:432b bcmwl-kernel-source bcmwl-kernel-source
14e4:432c bcmwl-kernel-source bcmwl-kernel-source
14e4:432d bcmwl-kernel-source bcmwl-kernel-source
14e4:4331 firmware-b43-installer firmware-b43-installer
14e4:4335 firmware-b43-installer firmware-b43-installer
14e4:4350 firmware-b43-installer firmware-b43-installer
14e4:4353 Special Case #1 UNKNOWN
14e4:4353 rev 01 Special Case #1 UNKNOWN
14e4:4357 Special Case #1 UNKNOWN
14e4:4358 bcmwl-kernel-source bcmwl-kernel-source
14e4:4359 bcmwl-kernel-source bcmwl-kernel-source
14e4:4360 bcmwl-kernel-source bcmwl-kernel-source
14e4:4365 bcmwl-kernel-source bcmwl-kernel-source
14e4:4365 rev 01 bcmwl-kernel-source bcmwl-kernel-source
14e4:43a0 bcmwl-kernel-source bcmwl-kernel-source
14e4:43ae rev 02 UNKNOWN UNKNOWN
14e4:43b1 bcmwl-kernel-source bcmwl-kernel-source
14e4:43b1 rev 03 bcmwl-kernel-source bcmwl-kernel-source
14e4:43c3 rev 04 UNKNOWN Special Case #2
14e4:4727 bcmwl-kernel-source bcmwl-kernel-source
14e4:4727 rev 01 Special Case #1 Special Case #1
14e4:a962 firmware-b43-installer firmware-b43-installer
------------------------------------------------------------------------------------
Особый случай № 1 - Использование bcma
и brcmsmac
комбинация драйверов. Требуемая прошивка установлена по умолчанию в пакете linux-firmware
.
Особый случай № 2 - Для ASUS PCE-AC88 AC3100 :
- Загрузите этот файл и после распаковки поместите его в / lib / firmware / brcm
sudo cp brcmfmac4366c-pcie.bin /lib/firmware/brcm/brcmfmac4366c-pcie.bin
- Затем
sudo nano /etc/rc.local
добавьте modprobe brcmfmac и сохраните
sudo reboot
В оборудовании, таком как Lenovo S10-2, если ваша беспроводная карта застревает при попытке подключиться к SSID (продолжает пытаться подключиться), то альтернативой, чтобы заставить ее работать, было бы установить bcmwl-kernel-source
пакет (удалить все другие установленные пакеты, связанные с ним ). Прочитайте раздел «Отладка» ниже для получения дополнительной информации об этом беспроводном устройстве.
ВАЖНОЕ ПРИМЕЧАНИЕ. После сентября 2014 года, если вы последуете этому ответу, но у вас по-прежнему возникают проблемы с установкой правильного драйвера, попробуйте firmware-b43-installer
пакет и сообщите нам об этом в комментариях. Произошли некоторые изменения, и некоторые драйверы будут работать только с этим пакетом. Не забудьте иметь чистую систему перед ее установкой:
sudo apt install firmware-b43-installer
В некоторых особых случаях после установки firmware-b43-installer
вам необходимо удалить модуль b43, снова включить его и даже перейти к разблокировке с помощью rfkill:
sudo modprobe -r b43
sudo modprobe b43
sudo rfkill unblock all
Если у вас есть карта Broadcom с другим pci.id, задайте новый вопрос. После решения решение будет добавлено в это руководство.
4. Установка пакета (в автономном режиме)
4.1 Установка firmware-b43-installer
Для установки в firmware-b43-installer
автономном режиме смотрите этот ответ .
4.2 Установка bcmwl-kernel-source
Для случаев, когда вам нужно установить, bcmwl-kernel-source
но вы находитесь в автономном режиме, вот отличный ответ об этом. Но в основном выполните следующие действия:
- Поиск пакета в репозиториях пакетов Ubuntu
- Убедитесь, что вы выбрали правильную архитектуру (32-битная, 64-битная и т. Д.)
- Загрузите пакет и связанные с ним пакеты зависимостей в одной папке.
- Когда у вас есть все необходимые пакеты (и их зависимости), перейдите в папку, в которой есть все пакеты, и запустите
sudo dpkg -i *.deb
. Это установит все пакеты в этой папке. Если это дает какие-либо ошибки, прочитайте ошибку и выполните шаги, которые она упоминает.
Чтобы привести пример, после перехода к пункту 1, упомянутому выше, если бы у вас был Broadcom 14e4:43a0
, вы бы искали bcmwl-kernel-source
пакет, и после выбора соответствующей версии Ubuntu (в моем случае 16.04 или Xenial) я попал бы на следующую страницу:
http://packages.ubuntu.com/xenial/bcmwl-kernel-source
На этой странице я бы выбрал соответствующую архитектуру (32 или 64), но также должен был бы загрузить 3 зависимости пакета, упомянутые на этой странице, как показано на следующем рисунке:
После загрузки всех пакетов и зависимостей вы можете продолжить копирование всех пакетов в одну папку и выполнить dpkg
команду, как указано в шаге 4 выше.
НОТА
На некоторых компьютерах перед выполнением команд необходимо отключить параметры безопасной загрузки в BIOS. Это относится к случаям, например, когда bcmwl-kernel-source уже установлен, но драйвер еще не работает. Вы можете сделать переустановку следующим образом или отключить безопасную загрузку, зайдя в BIOS Setup:
sudo apt-get install --reinstall bcmwl-kernel-source
DEBUGGING
Следующая информация является дополнительным материалом для чтения по решению различных проблем, связанных с беспроводным управлением и конфликтами с другими сетевыми устройствами. Знайте, что в некоторых случаях вам нужно иметь обновленную версию ядра, поскольку каждая новая версия ядра представляет либо новые сетевые драйверы, либо усовершенствует существующие драйверы, либо решает ошибки, связанные с ними.
Перед прочтением пунктов, упомянутых ниже, убедитесь, что все репозитории включены в вашей системе Ubuntu. Чтобы проверить, запустите на терминале software-properties-gtk
и убедитесь, что все опции на вкладке программного обеспечения Ubuntu включены.
Для настройки беспроводных устройств через терминал я рекомендую Как подключиться и отключиться от сети вручную в терминале?
Если ваше соединение прерывается время от времени, некоторые пользователи предлагают установить для IPv6 значение Игнорировать . Просто зайдите в Network Manager (значок сети на верхней панели). Нажмите на нее, затем выберите « Изменить настройки» . Затем перейдите к беспроводному соединению, которое вы используете, выберите его. Теперь перейдите к последней вкладке, где упоминаются настройки IPv6 . В поле Метод выберите Игнорировать .
Если ваш ноутбук не обнаружил вашу беспроводную карту, некоторые пользователи упомянули, что использование rfkill unblock all
решит проблему. Другие просто выключили и снова включили переключатель WiFi на своих ноутбуках (физический переключатель доступен на этих ноутбуках). Для получения дополнительной информации, rfkill
пожалуйста, прочитайте rf kill unblock all НЕ РАБОТАЕТ!
Если вы получаете b43-phy0 ОШИБКА: Фатальная ошибка прямого доступа к памяти / предупреждение b43-phy0: Принудительный PIO делает следующее:
sudo rmmod b43
sudo modprobe b43 pio=0 qos=0
Если это работает, добавьте его в RC-файлы, чтобы он выполнялся при каждой загрузке. Вы можете изменить PIO на 1, если вам это нужно.
Если у вас есть требуемый ключ, недоступный при установке модуля DKMS (например, Nvidia, Broadcom или другие), вы можете перейти к ответу пилота здесь.
Если ваша беспроводная карта видит / не видит маршрутизатор и застревает в бесконечном цикле «Попытка подключения (попробуйте 1/3)», решение может заключаться в правильной конфигурации вашего маршрутизатора или беспроводного устройства SSID.
Для всех беспроводных карт в целом очень важно также учитывать используемые вами сетевые устройства (маршрутизаторы, коммутаторы, беспроводные каналы и беспроводные диапазоны и т. Д.). С помощью этой информации вы сможете лучше оценить источник проблемы, когда попадете в тупик. Примером может служить Lenovo S10-2, в котором используется PCIID 14e4: 4315 rev 01 . Даже после установки правильного драйвера пользователь может зацикливаться на попытке подключения. Он будет видеть беспроводной SSID, но при попытке подключиться к нему он войдет в цикл повторного подключения.
Решение состояло в том, что это конкретное беспроводное устройство не поддерживало каналы 40 МГц и не поддерживало 802.11N. Маршрутизатор в этом случае фактически вещал с принудительной 40 МГц и только по WiFi-N. Когда маршрутизатор был установлен в автоматический режим и канал 20/40 МГц, беспроводная карта работала правильно. Это сценарий случая, который также повторяется в других случаях, поэтому правильная оценка сетевого оборудования может очень помочь.
Для случаев, когда вы получаете повторение:
ОШИБКА @ wl_cfg80211_get_station: неверный адрес Mac ...
когда это происходит, dmesg
и ваше беспроводное соединение часто прерывается (несколько раз в час или день), проблема может заключаться в том, что вы находитесь внутри беспроводного сигнала, который используется в качестве беспроводного моста (2 маршрутизатора, использующие один и тот же SSID и соединение). Это может произойти с современными маршрутизаторами, которые имеют возможность расширять беспроводное соединение, предлагая тот же SSID. Ваше беспроводное соединение может оборваться, потому что вы можете находиться между обоими маршрутизаторами, а уровень сигнала между ними почти одинаков.
Если ваше соединение разрывается очень часто, это означает, что вы находитесь почти в центре обоих маршрутизаторов. Чтобы понизить или исключить частоту отбрасывания вашего беспроводного устройства, попытайтесь расположиться так, чтобы ваша беспроводная карта могла видеть только один маршрутизатор или хотя бы один из маршрутизаторов имел более высокий уровень сигнала, чем другой.
Существуют также некоторые методы, чтобы заставить беспроводное устройство подключаться только к определенному маршрутизатору, установив BSSID в MAC-адрес маршрутизатора, к которому вы хотите подключиться. Это заставит ваше беспроводное устройство подключиться ТОЛЬКО к нему.
Проблемы с безопасной загрузкой
В некоторых конкретных случаях установка драйверов, будь то в автономном режиме через различные пакеты DEB или через apt-get с доступом в Интернет, не будет работать, если Безопасная загрузка не отключена.
Это связано с тем, что Secure Boot запрещает доступ, поэтому драйверы будут выглядеть так, как будто они установлены правильно, хотя на самом деле это не так. Так что в ОЧЕНЬ конкретных случаях вам необходимо временно отключить безопасную загрузку, чтобы драйверы работали.
Обновление прошивки Linux
В других случаях поиск и установка последней версии прошивки Linux решит проблему. Либо решить мелкие проблемы, которые возникали с работающей картой, либо заставить карту работать впервые.