- Broadcom wireless
- Contents
- History
- Driver selection
- Installation
- brcm80211
- broadcom-wl
- Offline installation
- Manually
- Known issues
- Ethernet card is not detected
- Troubleshooting
- Setting broadcom-wl in monitor mode
- Device inaccessible after kernel upgrade
- Device with broadcom-wl driver not working/showing
- Interfaces swapped with broadcom-wl
- Interface is showing but not allowing connections
- Suppressing console messages
- Device BCM43241 not detected
- Device BCM43241 EFI Vars
- Connection is unstable with some routers
- No 5GHz for BCM4360 (14e4:43a0) / BCM43602 (14e4:43ba) devices
- Device works intermittently
- SSH freeze for BCM4331 with b43
- Установка драйверов на устройства беспроводной сети Broadcom
- Содержание
- Список проблем, которые будут решены:
- Определение оборудования
- Подготовка системы
- Установка необходимого пакетa
- Установка Offline
- Как заставить заработать wifi на чипе broadcom 43xx под Linux
- Решение быстрое
- Запуск драйверов производителя — решение посложнее
- Далее делаем следующее:
Broadcom wireless
This article details how to install and setup a Broadcom wireless network device.
Contents
History
Broadcom has a noted history with its support for Wi-Fi devices regarding GNU/Linux. For a good portion of its initial history, Broadcom devices were either entirely unsupported or required the user to tinker with the firmware. The limited set of wireless devices that were supported were done so by a reverse-engineered driver. The reverse-engineered b43 driver was introduced in the 2.6.24 kernel.
In August 2008, Broadcom released the 802.11 Linux STA driver officially supporting Broadcom wireless devices on GNU/Linux. This is a restrictively licensed driver and it does not work with hidden ESSIDs, but Broadcom promised to work towards a more open approach in the future.
In September 2010, Broadcom released a fully open source driver. The brcm80211 driver was introduced in the 2.6.37 kernel and in the 2.6.39 kernel it was sub-divided into the brcmsmac and brcmfmac drivers.
The types of available drivers are:
Driver | Description |
---|---|
brcm80211 | Kernel driver mainline version (recommended) |
b43 | Kernel driver reverse-engineered version |
broadcom-wl | Broadcom driver with restricted license |
Driver selection
To know what driver(s) are operable on the computer’s Broadcom wireless network device, the device ID and chipset name will need to be detected. Cross-reference them with the driver list of supported brcm80211 and b43 devices.
Installation
brcm80211
The kernel contains two built-in open-source drivers: brcmfmac for native FullMAC and brcmsmac for mac80211-based SoftMAC. They should be automatically loaded when booting.
Two reverse-engineered open-source drivers are built-in to the kernel: b43 and b43legacy. b43 supports most newer Broadcom chipsets, while the b43legacy driver only supports the early BCM4301 and BCM4306 rev.2 chipsets. To avoid erroneous detection of your WiFi cards chipset, blacklist the unused driver.
Both of these drivers require non-free firmware to function. Install b43-firmware AUR , b43-firmware-classic AUR , or b43legacy-firmware AUR depending on the chipset.
If the b43 module does not load on boot, you need to force it by creating the following file:
broadcom-wl
The factual accuracy of this article or section is disputed.
There are two variants of the restrictively licensed driver:
Offline installation
An Internet connection is the ideal way to install the broadcom-wl driver; many newer laptops with Broadcom cards forgo Ethernet ports, so a USB Ethernet adapter or Android tethering may be helpful. If you have neither, you will need to first install the base-devel group during installation. Then, use another Internet-connected computer to download linux-headers and the driver tarball from the AUR, and install them in that order.
Manually
Install the appropriate driver for your system architecture from the Broadcom website. After this, to avoid driver/module collisions with similar modules and make the driver available, do:
The wl module should automatically load lib80211 or lib80211_crypt_tkip otherwise they will have to be manually loaded.
If the driver does not work at this point, you may need to update dependencies:
To make the module load at boot, refer to Kernel modules. It is recommending that you blacklist conflicting modules.
Known issues
Ethernet card is not detected
Broadcom wireless module has a history of conflicting with Broadcom Ethernet module (see #Interfaces swapped with broadcom-wl).
Due to conflicts between wl (wireless module) and tg3 (Ethernet module), tg3 is now blacklisted as of broadcom-wl-dkms 6.30.223.271-27[1]. See also FS#70476.
This also affects broadcom-wl as it is built based on broadcom-wl-dkms .
Troubleshooting
Setting broadcom-wl in monitor mode
Monitor mode is used to capture 802.11 frames over the air. This can be useful for diagnosing issues on a network or testing the security of your wireless network. Often, monitor mode is required to capture certain frames for wireless penetration testing, but it may be unethical or even illegal to capture frames on any network you do not own, manage or have permission to perform penetration testing against.
To set broadcom-wl in monitor mode you have to set 1 to /proc/brcm_monitor0 :
It will create a new network interface called prism0 .
To work in monitor mode, use this newly created network interface.
Device inaccessible after kernel upgrade
Since the 3.3.1 kernel the bcma module was introduced. If using a brcm80211 driver be sure it has not been blacklisted. It should be blackisted if using a b43 driver.
If you are using broadcom-wl , uninstall and reinstall it after upgrading your kernel or switch to broadcom-wl-dkms package.
Device with broadcom-wl driver not working/showing
Be sure the correct modules are blacklisted and occasionally it may be necessary to blacklist the brcm80211 drivers if accidentally detected before the wl driver is loaded. Furthermore, update the modules dependencies depmod -a , verify the wireless interface with ip addr , kernel upgrades will require an upgrade of the non-DKMS package.
Interfaces swapped with broadcom-wl
Users of the broadcom-wl driver may find their Ethernet and Wi-Fi interfaces have been swapped. See Network configuration#Network interfaces for an answer.
Interface is showing but not allowing connections
Suppressing console messages
You may continuously get some verbose and annoying messages during the boot, similar to
To disable those messages, increase the loglevel of printk messages that get through to the console — see Silent boot#sysctl.
Device BCM43241 not detected
This device will not display with either lspci nor lsusb ; there is no known solution yet.
Device BCM43241 EFI Vars
As per the driver page it may be necessary to copy the efi vars before the driver will operate correctly. However the expected path depends on your system.
Write the efi vars into the referenced location, e.g. on a thinkpad tablet:
Connection is unstable with some routers
If no other approaches help, install linux-lts , or use a previous driver version.
No 5GHz for BCM4360 (14e4:43a0) / BCM43602 (14e4:43ba) devices
Issue appears to be linked to a channel issue. Changing the wireless channel to a lower channel number (like 40 or, if your router show MHz instead of channel numbers, like 5200 MHz or 5280 MHz) seems to allow connection to 5GHz bands. If your router has the same SSID for the 2.4GHZ and 5GHZ, this can fix problems with your wireless connection being unstable or very slow.
Device works intermittently
In some cases (e.g. using BCM4331 and b43-firmware AUR ), wifi connection works intermittently. One way to fix this is to check if the card is hard-blocked or soft-blocked by kernel, and if it is, unblock it with rfkill.
SSH freeze for BCM4331 with b43
The b43-firmware AUR driver has been observed hanging in ssh sessions with BCM4331. Installing broadcom-wl and removing b43 solves it.
Источник
Установка драйверов на устройства беспроводной сети Broadcom
Содержание
Данное руководство реализовано, учитывая интенсивность поиска решения проблемы установки драйверов на сетевые карты, известные как Broadcom Wireless Cards. В совокупности, есть желание помочь начинающим и не только пользователям, определить и установитъ аппроприативные 1) драйвера на адаптер беспроводной сети. После применения изменений, настоятельно рекомендуется протестировать соединение как минимум в течениe двух часов непрерывного использования, лучше всего — до восьми часов UP-a.
Список проблем, которые будут решены:
Само решение проблемы систематизируется в ТРИ основных ступени:
Определение оборудования
Существует множество модификаций сетевых карт Broadcom и постоянно появляются всё новые версии. Посему, лучшим решением остаётся определение модели
по PCI.ID. Для этого, необходимо открыть терминал Ctrl+Alt+T и ввести 2) :
Примерным ответом будет:
В данном случае установлен bcmwl-kernel-source. 3)
Обладая этой информацией, мы можем определить правильную версию драйвера из списка Broadcom, который будет приведён ниже.
Например, как только мы выяснили, что PCI.ID карты — [14e4:4320] (rev 03), то oбратившись к списку драйверов мы увидим, что данный PCI.ID
соответствует пакету firmware-b43-installer который и необходимо будет впоследствии установить для правильной работы беспроводного адаптера.
Hеважно, что иcпользовалось для установки пакета: терминал, Synaptic, Центр Приложений, dpkg или же ручная компиляция.
Нам необходимо начать с нуля и очистить систему от всего, что может помешать работе аппропреативного драйвера.
Т.е., если был установлен пакет bcmwl-kernel-source, его нужно удалить:
Подготовка системы
Если у нас свежеустановленная система, то первым делом необходимо обновить списки источников приложений:
Также, крайне рекомендуется обновить списки PCI.ID:
это на случай, если специфичный драйвер устройства появился совсем недавно. Во избежание возможных проблем, установку будем проводить исключительно через терминал.
Установка необходимого пакетa
Как уже упомяналось выше, мы будем рассматривать установку пакета firmware-b43-installer
Для этого набираем в терминале:
и перезагружаемся для применения изменений:
Формат установки пакета крайне прост:
Надеюсь, понятно, что вместо
нужно подставить имя пакета из списка ниже:
Special Case #1 — используется комбинация драйверов bcma и brcmsmac. Требуется прошивка, устанавливаемая по умолчанию пакетом linux-firmware.
Special Case #2 — в аппаратных средствах, таких как например Lenovo S10-2, Ваша карта может зациклиться в процессе соединения SSID.
Альтернативным решением может послужить установка пакета bcmwl-kernel-source.
Следует упомянуть, что в некоторых особых случаях после установки firmware-b43-installer, нужно будет удалить модуль b43, a затем активировать его заново и произвести разблокировку средствами rfkill:
Если устройство определилось с иным PCI.ID, задайте свой вопрос автору данной инструкции: AskUbuntu
Установка Offline
В том случае, когда проводная сеть недоступна, есть возможность установить bcmwl-kernel-source с установочного диска.
Для этого нужно вставить установочный CD/DVD или USB и скопировать эти файлы в домашнюю директорию.
На установочном диске (флешке) эти файлы находятся в директориях:
После чего, запускаем саму установку:
Если у Вас Ubuntu 14.04.2 4) , пакет придётся скачивать из сети:
64-BIT
32-BIT
Скопируйте нужную версию в домашнюю директорию и установите тем же способом как показано выше. В обоих случаях необходимо доустановить dkms с установочного диска или USB. Его можно скачать отдельно тут.
Пакет firmware-b43-installer, при полном отсутствии любого подключения к сети придётся скачать иным путём, например через смартфон. Нужно будет скачать эти два файла и положить их опять-таки в домашнюю директорию:
Для 64-BIT
Первый файл, Второй файл
Для 32-BIT
Первый файл, Второй файл
После этого, выполняем в терминале:
Если будут какие-то ошибки, то продолжать не надо. Значит что-то сделал не так. Проверьте правильность введения команд.
Осталось переподключить модуль ядра:
В случае установки Ubuntu 16.04 в режиме dualboot, необходимо отключить SecureBoot. В противном случае, драйвер не запустится.
На этом всё.
Удачи в освоении системы.
Особая благодарность chili555 и Pilot6
Источник
Как заставить заработать wifi на чипе broadcom 43xx под Linux
Когда где-то год назад я поставил на свой Dell Latitude D520 с чипом broadcom 4311 Ubuntu 8.10, то столкнулся с тем, что wi-fi работать напрочь отказывался. Я погуглил, пару дней поизучал посты на различных форумах, сделал какие-то шаманские действия и благополучно забыл и про проблему и про те действия, которые делал.
Все бы хорошо, но черт меня дернул поставить Karmic Koala с нуля… Про проблему я вспомнил сразу. А вот решение было забыто напрочь.
Решение быстрое
ERROR: Firmware file «b43/ucode5.fw» not found or load failed
Пройдясь по гуглу я нашел блог, в котором было решение проблемы вида «распакуй архив туда-то и все заработает». Скачал оттуда архив, в котором было недостающее firmware, распаковал в /lib/firmware/ и все действительно заработало.
Надо сказать, что в 8.10 проблема так легко не решалась, потому что там были другие драйвера. В 8.10 были bcm43xx, сейчас же грузятся b43.
Попутно с поиском решения я набрел на сайт с этими самыми драйверами b43, где есть много информации по поддержке этими драйверами различных чипсетов broadcom 43xx.
Также я в нескольких местах встречал мнение, что b43 работают хуже и нестабильнее нативных драйверов.
Мне тоже показалось, что раньше я видел в списке сетей гораздо больше, поэтому я решил пойти по немного более сложному пути, который был еще в 8.10, а именно:
Запуск драйверов производителя — решение посложнее
Родные драйвера я скачал с сайта поддержки Dell. Были они в виде self-extracting архива, но без проблем распаковались file-roller’ом
Далее делаем следующее:
- Устанавливаем ndiswrapper — утилиту, которая позволяет драйверам Windows для беспроводных карт работать в Linux.
- Удаляем модуль b43 из автозагрузки помещая его в blacklist:
sudo vim /etc/modprobe.d/blacklist.conf
добавляем туда строчку: blacklist b43 - Загружаем виндовые драйвера:
sudo ndiswrapper -i /path_to_drivers/bcmwl5.inf - Чтобы ndiswrapper запускался при загрузке системы, дописываем его в /etc/modules (sudo vim /etc/modules и добавляем туда строчку ndiswrapper)
- Далее после перезагрузки все должно бы заработать, но не тут то было.
Перезагрузился, а wi-fi по прежнему не работает.
Причиной тому яляется модуль ssb, который загружается перед ndiswrapper и не дает ему взять на себя управление wi-fi картой.
Если этот модуль загружен (смотрим с помощью lsmod | grep ssd ), то опять открываем /etc/modprobe.d/blacklist.conf и добавляем туда ssd и b44 — который вызывает загрузку ssd.
По субъективным ощущениям на виндовых драйверах все работает действительно лучше и стабильнее.
Источник