Wi-Fi Broadcom

Материал из ALT Linux Wiki

На некоторых ноутбуках со встроенными Wi-Fi адаптерами Broadcom BCM43* при установке ALT Linux могут быть проблемы с Wi-Fi, вылеты Wi-Fi соединения или низкая скорость работы беспроводной сети. Проблема решается заменой драйвера Wi-Fi адаптера по умолчанию.

Примечание: в большинстве случаев достаточно установить пакет kernel-modules-bcmwl-std-def или kernel-modules-bcmwl-un-def в зависимости от применяемого ядра


Как узнать модель Wi-Fi адаптера?

Примечание: Далее команды пользователя будут предваряться приглашением $ , суперпользователя root - #

Вы можете проверить модель своего Wi-Fi адаптера командой:

$ lspci -nn -d 14e4:
03:00.0 Network controller [0280]: Broadcom Inc. and subsidiaries BCM43142 802.11b/g/n [14e4:4365] (rev 01)

Или узнать модель своего Wi-Fi адаптера и используемый драйвер с помощью команды:

$ inxi -N
Network:   Device-1: Broadcom BCM4313 802.11bgn Wireless Network Adapter driver: bcma-pci-bridge 
           Device-2: Realtek RTL810xE PCI Express Fast Ethernet driver: r8169

Какие модели карт?

Обрезка имени ядра

std-def/un-def

Для std-def/un-def:

  • echo $(uname -r) - версия ядра: 6.12-std-def-alt1
  • echo $(uname -r) | cut -d '-' -f 2-3 - версия ядра: std-def

С числовой версией

Для ядра с числовой "версией":

# apt-get install kernel-modules-bcmwl-$(uname -r | cut -d '-' -f 2-3 | rev | cut -d '-' -f 2- | rev)
  • echo $(uname -r) - версия ядра: 6.12.34-6.12-alt1
  • echo $(uname -r | cut -d '-' -f 2-3) - версия ядра: 6.12-alt1
  • echo $(uname -r | cut -d '-' -f 2-3 | rev) - версия ядра: 1tla-21.6
  • echo $(uname -r | cut -d '-' -f 2-3 | rev | cut -d '-' -f 2- | rev) - версия ядра: 6.12

Подготовительные действия

Перед установкой драйверов обновите систему и ядро до последней версии.

# apt-get update
# apt-get dist-upgrade
# update-kernel -f

Выбор драйвера

Более-менее проверенные

Bcmwl

Удаляем остальные, чтобы не было конфликтов
# rm -fr /usr/lib/firmware/b43
# rm /etc/modprobe.d/blacklist-bcm.conf
# rm /etc/modprobe.d/blacklist-bcm2.conf
# apt-get remove kernel-modules-bcmwl-$(uname -r) | cut -d '-' -f 2-3
# apt-get remove kernel-modules-bcmwl-$(uname -r | cut -d '-' -f 2-3 | rev | cut -d '-' -f 2- | rev)
# apt-get remove bcmwl-kernel-conf
# reboot
Модуль ядра
Буквенная версия (std-def/un-def)
# apt-get install kernel-modules-bcmwl-$(uname -r) | cut -d '-' -f 2-3
Цифренная версия (6.12)
# apt-get install kernel-modules-bcmwl-$(uname -r | cut -d '-' -f 2-3 | rev | cut -d '-' -f 2- | rev)
Конфиг-файл
# apt-get install bcmwl-kernel-conf
# reboot

Пакет содержит файлы:

/etc/modprobe.d/blacklist-bcm.conf
/etc/modprobe.d/blacklist-bcm2.conf

Содержащие:

blacklist bcm43xx
blacklist ssb
blacklist b43
blacklist b44
blacklist b43legacy
blacklist bcma
blacklist brcmsmac
blacklist brcmfmac
blacklist bcma-pci-bridge

Не дающие этим модулям загружаться

Наверное, еще стоит добавить:

blacklist brcm80211

После перезагрузки может понадобиться заново соединиться с беспроводной сетью.

Проверяем
# inxi -N | grep Broadcom
 Device-2: Broadcom BCM43142 802.11b/g/n driver: wl 
# modinfo wl | head -n1
filename:       /lib/modules/5.10.198-std-def-alt1/updates/dkms/wl.ko

B43

B43 - проект по написанию методом реверс-инжениринга драйверов для wi-fi устройств Broadcom.[i]

Удаляем остальные, чтобы не было конфликтов
# rm -fr /usr/lib/firmware/b43
# rm /etc/modprobe.d/blacklist-bcm.conf
# rm /etc/modprobe.d/blacklist-bcm2.conf
# apt-get remove kernel-modules-bcmwl-$(uname -r) | cut -d '-' -f 2-3
# apt-get remove kernel-modules-bcmwl-$(uname -r | cut -d '-' -f 2-3 | rev | cut -d '-' -f 2- | rev)
# apt-get remove bcmwl-kernel-conf
# reboot

Установка

Готовые файлы

Скачайте отсюда архив вида b43fw_508.tar.gz и распакуйте его содержимое в /usr/lib/firmware/b43/

Распаковка с утилитой
Примечание: Я тестировал изначально как работает b43 в deb, там версия утилиты была 019. В ALT P11 версия 015 и прошивка по hash-сумме не подходит.

Для использования B43 нужно установить утилиту для извлечения и прошивку.

Установка утилиты:

# apt-get install b43-fwcutter

Установка прошивки:

Качаем с:

https://github.com/minios-linux/b43-firmware/releases

прошивку.

Например, в Debian 13 качался архив broadcom-wl-6.30.163.46.tar.bz2.

Архив содержит файл вида:

broadcom-wl-6.30.163.46.wl_apsta.o

Извлекаем файлы прошивки командой:

# b43-fwcutter -w /usr/lib/firmware wl_apsta.o

В итоге в каталоге /usr/lib/firmware будет создан каталог b43 с файлами *.fw, которые использует B43.

Конфиг-файл

Делаем конфиг-файл:

/etc/modprobe.d/blacklist-bcm.conf

Содержащий:

blacklist bcm43xx
blacklist ssb
blacklist b44
blacklist b43legacy
blacklist bcma
blacklist brcmsmac
blacklist brcmfmac
blacklist bcma-pci-bridge
blacklist brcm80211

Не дающий этим модулям загружаться

После перезагрузки может понадобиться заново соединиться с беспроводной сетью.

brcm80211

brcm80211 - уже входит в ядро Linux.

Удаляем другие драйвера и конфиги, чтобы не было конфликтов:

# rm -fr /usr/lib/firmware/b43
# rm /etc/modprobe.d/blacklist-bcm.conf
# rm /etc/modprobe.d/blacklist-bcm2.conf
# apt-get remove kernel-modules-bcmwl-$(uname -r) | cut -d '-' -f 2-3
# apt-get remove kernel-modules-bcmwl-$(uname -r | cut -d '-' -f 2-3 | rev | cut -d '-' -f 2- | rev)
# apt-get remove bcmwl-kernel-conf
# reboot
Конфиг-файл

Делаем конфиг-файл:

/etc/modprobe.d/blacklist-bcm.conf

Содержащий:

blacklist bcm43xx
blacklist ssb
blacklist b44
blacklist b43legacy
blacklist bcma
blacklist brcmsmac
blacklist brcmfmac
blacklist bcma-pci-bridge
blacklist b43

Не дающий этим модулям загружаться

После перезагрузки может понадобиться заново соединиться с беспроводной сетью.

brcmfmac

brcmfmac - входит в ядро Linux.

Удаляем другие драйвера и конфиги, чтобы не было конфликтов:

# rm -fr /usr/lib/firmware/b43
# rm /etc/modprobe.d/blacklist-bcm.conf
# rm /etc/modprobe.d/blacklist-bcm2.conf
# apt-get remove kernel-modules-bcmwl-$(uname -r) | cut -d '-' -f 2-3
# apt-get remove kernel-modules-bcmwl-$(uname -r | cut -d '-' -f 2-3 | rev | cut -d '-' -f 2- | rev)
# apt-get remove bcmwl-kernel-conf
# reboot
Конфиг-файл

Делаем конфиг-файл:

/etc/modprobe.d/blacklist-bcm.conf

Содержащий:

blacklist bcm43xx
blacklist ssb
blacklist b44
blacklist b43legacy
blacklist bcma
blacklist brcmsmac
blacklist bcma-pci-bridge
blacklist brcm80211
blacklist b43

Не дающий этим модулям загружаться

После перезагрузки может понадобиться заново соединиться с беспроводной сетью.

Экспериментальные

У меня 432142.

$ inxi -N | grep Broadcom
  Device-2: Broadcom BCM43142 802.11b/g/n driver: wl

У нее на сети низкая скорость.

Согласно заметке на askubuntu.com, ему посоветовали установить dkms-модуль. Как пишет один из пользователей:

...Это помогло моему ноутбуку HP ProBook6570b. До этого скорость была около 20 Мбит/с. Я выполнил команду и перезагрузил ноутбук для чистого старта. После этого я внезапно увидел 180 Мбит/с.

Я счастлив!

Я проэкспериментирую с этим.

Установка

# apt-get install dkms
# apt-get install kernel-headers-$(uname -r) | cut -d '-' -f 2-3
# apt-get install kernel-headers-modules-$(uname -r) | cut -d '-' -f 2-3
# apt-get install kernel-headers-common
  • Цифренная версия (6.12)
# apt-get install kernel-headers-$(uname -r | cut -d '-' -f 2-3 | rev | cut -d '-' -f 2- | rev)
# apt-get install kernel-headers-modules-$(uname -r | cut -d '-' -f 2-3 | rev | cut -d '-' -f 2- | rev)
# apt-get install kernel-headers-common

Качаем этот пакет:

Ставим через eepm:

# eepm install --repack /home/petr/Загрузки/broadcom-sta-dkms_6.30.223.271-26_amd64.deb

Компиляция в ручную:

  • Файлы располагаются в /usr/src/broadcom-sta*.
# cd $(ls -d /usr/src/broadcom-sta*)
  • Компилируем драйвер (укажите ту версию, которая в пакете):
# dkms add -m broadcom-sta -v $(rpm -qv broadcom-sta-dkms | cut -d '-' -f 4)
# dkms build -m broadcom-sta -v $(rpm -qv broadcom-sta-dkms | cut -d '-' -f 4)
  • Устанавливаем драйвер:
# dkms install -m broadcom-sta -v $(rpm -qv broadcom-sta-dkms | cut -d '-' -f 4)
Installing /lib/modules/6.12.45-6.12-alt1/updates/dkms/wl.ko.zst
  • Подгружаем драйвер
# modprobe wl.ko
  • Копируем в папку с драйверами
# cp /lib/modules/6.12.45-6.12-alt1/updates/dkms/wl.ko.zst /lib/modules/6.12.45-6.12-alt1/

Проверяем:

# modinfo wl | head -n1
filename:       /lib/modules/6.12.45-6.12-alt1/updates/dkms/wl.ko.zst

Конфиг-файл

Делаем конфиг-файл:

# mcedit /etc/modprobe.d/blacklist-bcm.conf

Содержащий:

blacklist bcm43xx
blacklist ssb
blacklist b43
blacklist b44
blacklist b43legacy
blacklist bcma
blacklist brcmsmac
blacklist brcmfmac
blacklist bcma-pci-bridge

Не дающий этим модулям загружаться

Поддержка

Сетевая карта (Broadcom) Bcmwl (проприетарный) B43 (открытый) brcm80211 (открытый) brcmfmac (открытый) dkms
BCM4311
BCM4312 (LP-PHY)
BCM4313
BCM4321 / BCM4322
BCM43224 / BCM43225
BCM43227 / BCM43228
BCM4331
BCM43142 7.48/1.14 10.27/2.59 1.88/1.59 3.78/1.67 4.53/1.59
BCM4352
BCM4360
BCM4365 / BCM4366
BCM4377 / BCM4378 / BCM4379

Тесты пользователей

Ахламов Петр, BCM43142, P11
Тестировалось 20.09.2025 на ноутбуке ASUS X555LNB
Драйвер Тест
Bcmwl Bdcm-speed-bcmwl.png
B43 Bdcm-speed-b43.png
brcm80211 Bdcm-speed-80211.png
brcmfmac Bdcm-speed-brcfmac.png
dkms Bdcm-speed-dkms.png

Решение проблем

Wi-fi не подключается

Бывает проблема что Wi-fi "крутится", но не подключается. Это решается странным решением:

  • вы выбираете сеть
  • вводите пароль
  • wi-fi начинает "крутиться"
  • вы отменяете
  • выбираете второ раз
  • wi-fi подключается

Проблемы с драйверами ALT

В случае, если модель вашего адаптера поддерживается драйверами ALT, драйверы установлены, но Wi-Fi не работает, или работает нестабильно, возможно, нужный модуль Wi-Fi не загружается, и была нарушена последовательность установки пакетов. Можно попробовать следующее решение:

Определим версию и тип вашего ядра:

$ uname -r
5.10.185-std-def-alt1

Проверим, какой драйвер Wi-Fi загружен:

$ inxi -N
Network:   Device-1: Broadcom BCM4313 802.11bgn Wireless Network Adapter driver: bcma-pci-bridge 
           Device-2: Realtek RTL810xE PCI Express Fast Ethernet driver: r8169

Мы видим, что загружен неверный драйвер bcma-pci-bridge вместо нужного драйвера wl Проверяем наличие установленного пакета драйвера из репозитория ALT:

$ rpm -q kernel-modules-bcmwl-std-def 
kernel-modules-bcmwl-std-def-6.30.223.271-alt15.330425.1.x86_64

Нужный пакет драйвера установлен и тип совпадает с типом ядра, затем:

$ rpm -q bcmwl-kernel-conf
пакет bcmwl-kernel-conf не установлен
$ ls /etc/modprobe.d/
alsa-modindex.conf

В системе не установлен пакет bcmwl-kernel-conf с параметрами настройки ядра, поэтому нужный нам модуль ядра не загружается. Для того, чтобы это исправить, выполните команды:

$ su -
# apt-get update
# apt-get install bcmwl-kernel-conf
# reboot

После перезагрузки нужный нам модуль Wi-Fi должен заработать, может понадобиться заново соединиться с беспроводной сетью.

Другим способом является запрет загрузки ненужного драйвера вручную, без установки пакета bcmwl-kernel-conf:

$ su -
# echo "blacklist bcma" >> /etc/modprobe.d/blacklist-bcma.conf
# reboot

Ссылки