Wi-Fi Broadcom: различия между версиями
Илья Н. (обсуждение | вклад) мНет описания правки |
Нет описания правки |
||
(не показано 12 промежуточных версий 3 участников) | |||
Строка 1: | Строка 1: | ||
На некоторых ноутбуках со встроенными Wi-Fi адаптерами Broadcom BCM43* при установке ALT Linux могут быть проблемы с Wi-Fi, вылеты Wi-Fi соединения или низкая скорость работы беспроводной сети. Проблема решается заменой драйвера Wi-Fi адаптера по умолчанию. | На некоторых ноутбуках со встроенными Wi-Fi адаптерами Broadcom BCM43* при установке ALT Linux могут быть проблемы с Wi-Fi, вылеты Wi-Fi соединения или низкая скорость работы беспроводной сети. Проблема решается заменой драйвера Wi-Fi адаптера по умолчанию. | ||
{{Note| в большинстве случаев достаточно установить пакет kernel-modules-bcmwl-std-def или kernel-modules-bcmwl-un-def в зависимости от применяемого ядра}} | |||
==Как узнать модель Wi-Fi адаптера?== | ==Как узнать модель Wi-Fi адаптера?== | ||
Строка 46: | Строка 47: | ||
|BCM4331 || +? || + || + || ''14e4:4331'' | |BCM4331 || +? || + || + || ''14e4:4331'' | ||
|- | |- | ||
|BCM4360 || || + || || 14e4:43a0 | |BCM4360 || + || + || || 14e4:43a0 | ||
|- | |- | ||
|BCM4352 || || + || || 14e4:43a0 | |BCM4352 || || + || || 14e4:43a0 | ||
Строка 56: | Строка 57: | ||
Данный способ меняет драйвер по умолчанию на модуль <code>wl</code> из пакета {{pkg|kernel-modules-bcmwl-std-def (un-def)}} | Данный способ меняет драйвер по умолчанию на модуль <code>wl</code> из пакета {{pkg|kernel-modules-bcmwl-std-def (un-def)}} | ||
{{Note|Данный вариант поддерживает следующие модели - BCM4311-, BCM4312-, BCM4313-, BCM4321-, | {{Note|Данный вариант поддерживает следующие модели - BCM4311-, BCM4312-, BCM4313-, BCM4321-, | ||
BCM4322-, BCM43224-, and BCM43225-, BCM43227- | BCM4322-, BCM43224-, and BCM43225-, BCM43227-, BCM4360- и BCM43228-based оборудование.}} | ||
{{attention|Не забудьте обновить ядро перед установкой, иначе может не загрузится система после установки. Если в репозитории ядро новее, чем в вашей системе, при установке запрошенного модуля может установиться новое ядро с одним-единственным модулем.}} | {{attention|Не забудьте обновить ядро перед установкой, иначе может не загрузится система после установки. Если в репозитории ядро новее, чем в вашей системе, при установке запрошенного модуля может установиться новое ядро с одним-единственным модулем.}} | ||
Строка 66: | Строка 67: | ||
# reboot | # reboot | ||
Основная статья - [ | Основная статья - [[Обновление ядра]] | ||
Затем, после перезагрузки, определите версию и тип своего ядра: | Затем, после перезагрузки, определите версию и тип своего ядра: | ||
Строка 80: | Строка 81: | ||
Выбор пакета '''std-def''' или '''un-def''' зависит от типа вашего ядра. Затем: | Выбор пакета '''std-def''' или '''un-def''' зависит от типа вашего ядра. Затем: | ||
# apt-get | # apt-get install bcmwl-kernel-conf | ||
# reboot | # reboot | ||
Строка 101: | Строка 102: | ||
`--wl.ko</pre> | `--wl.ko</pre> | ||
|} | |} | ||
====Проверяем==== | |||
# 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 | |||
===Установка закрытых Deb-драйверов=== | ===Установка закрытых Deb-драйверов=== | ||
Строка 110: | Строка 118: | ||
Ставим dkms: | Ставим dkms: | ||
# apt-get install dkms | # apt-get install dkms | ||
Ставим исходники ядра: | |||
# apt-get install kernel-headers-std-def | |||
или | |||
# apt-get install kernel-headers-un-def | |||
Ставим [https://pkgs.org/download/broadcom-sta-dkms debian-овский пакет] с dkms-модулями BCM через epm: | Ставим [https://pkgs.org/download/broadcom-sta-dkms debian-овский пакет] с dkms-модулями BCM через epm: | ||
# epm install /home/petr/Загрузки/broadcom-sta-dkms_6.30.223.271-16_all.deb | # epm install /home/petr/Загрузки/broadcom-sta-dkms_6.30.223.271-16_all.deb | ||
Строка 198: | Строка 210: | ||
Если ваше устройство отсутствует в пакете с модулями от ALT, то лучше их удалить: | Если ваше устройство отсутствует в пакете с модулями от ALT, то лучше их удалить: | ||
# apt-get remove kernel-modules-bcmwl-std-def (un-def)--> | # apt-get remove kernel-modules-bcmwl-std-def (un-def)--> | ||
====Проверяем==== | |||
# 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 | |||
===О NDIS-wrapper=== | ===О NDIS-wrapper=== | ||
Строка 219: | Строка 238: | ||
# tar xjf broadcom-wl-5.10.56.27.3_mipsel.tar.bz2 | # tar xjf broadcom-wl-5.10.56.27.3_mipsel.tar.bz2 | ||
# b43-fwcutter -w "$FIRMWARE_INSTALL_DIR" broadcom-wl-5.10.56.27.3/driver/wl_apsta/wl_prebuilt.o | # b43-fwcutter -w "$FIRMWARE_INSTALL_DIR" broadcom-wl-5.10.56.27.3/driver/wl_apsta/wl_prebuilt.o | ||
# modprobe b43 | |||
==Решение проблем== | ==Решение проблем== | ||
Строка 267: | Строка 287: | ||
*[https://bugzilla.altlinux.org/46812 Ошибка 46812 - Не загружается нужный модуль Wi-Fi Broadcom (wl)] | *[https://bugzilla.altlinux.org/46812 Ошибка 46812 - Не загружается нужный модуль Wi-Fi Broadcom (wl)] | ||
{{Category navigation|title=Wi-Fi|category=WiFi|sortkey={{SUBPAGENAME}}}} | {{Category navigation|title=Wi-Fi|category=WiFi|sortkey={{SUBPAGENAME}}}} | ||
[[Категория:Оборудование]] |
Текущая версия от 01:34, 24 июля 2024
На некоторых ноутбуках со встроенными Wi-Fi адаптерами Broadcom BCM43* при установке ALT Linux могут быть проблемы с Wi-Fi, вылеты Wi-Fi соединения или низкая скорость работы беспроводной сети. Проблема решается заменой драйвера Wi-Fi адаптера по умолчанию.
Как узнать модель Wi-Fi адаптера?
Вы можете проверить модель своего 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
Какие модели карт?
Ниже приведена таблица соответствия между моделью Wi-Fi адаптера и возможными драйверами:
Модель | ALT-драйвер | DEB-драйвер | b43 | PCI-ID |
---|---|---|---|---|
В кодах PCI-ID: жирным = b43; простым = ALT/DEB; курсив = оба. | ||||
BCM4306/3 | + | 14e4:4307 14e4:4320 14e4:4324 | ||
BCM4311 | + | + | + | 14e4:4311 14e4:4312 14e4:4313 |
BCM4312 | + | + | + | 14e4:4315 |
BCM4313 | + | + | 14e4:4313 14e4:4727 | |
BCM4318 | + | 14e4:4318 14e4:4319 | ||
BCM4321 | + | + | 14e4:4328 14e4:4329 14e4:432a | |
BCM4322 | + | + | + | 14e4:432b 14e4:432c 14e4:432d |
BCM43142 | + | 14e4:4365 | ||
BCM43224 | + | + | + | 14e4:4353 |
BCM43225 | + | + | + | 14e4:4357 |
BCM43227 | + | + | + | 14e4:4358 |
BCM43228 | + | + | + | 14e4:4359 |
BCM4331 | +? | + | + | 14e4:4331 |
BCM4360 | + | + | 14e4:43a0 | |
BCM4352 | + | 14e4:43a0 |
Доступные драйверы
ALT-драйвера
Данный способ меняет драйвер по умолчанию на модуль wl
из пакета kernel-modules-bcmwl-std-def (un-def)
Для обновления ядра выполните команды:
$ su - # apt-get update # update-kernel # reboot
Основная статья - Обновление ядра
Затем, после перезагрузки, определите версию и тип своего ядра:
$ uname -r 5.10.185-std-def-alt1
И выполните следующие команды:
$ su - # apt-get install kernel-modules-bcmwl-std-def (un-def)
Выбор пакета std-def или un-def зависит от типа вашего ядра. Затем:
# apt-get install bcmwl-kernel-conf # reboot
После перезагрузки может понадобиться заново соединиться с беспроводной сетью.
[Содержимое пакета] |
---|
bcmwl-kernel-conf.rpm `--etc `--modprobe.d |--blacklist-bcm.conf `--blacklist-bcm2.conf kernel-modules-bcmwl-*-def.rpm `--lib `--modules `--*krnlver-*-def-alt1 `--net `--wl.ko |
Проверяем
# 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
Установка закрытых Deb-драйверов
В Debian есть пакет с несвободными драйверами для wifi карт broadcom для фрамеворка DKMS, который поддерживает большее количество Wi-fi карт.
Ставим dkms:
# apt-get install dkms
Ставим исходники ядра:
# apt-get install kernel-headers-std-def
или
# apt-get install kernel-headers-un-def
Ставим debian-овский пакет с dkms-модулями BCM через epm:
# epm install /home/petr/Загрузки/broadcom-sta-dkms_6.30.223.271-16_all.deb
Пакет содержит модули для dkms.
[Содержимое пакета] |
---|
broadcom-sta-dkms_6.30.223.271-16_all.deb |--etc | `--modprobe.d | `--broadcom-sta-dkms.conf `--usr |--src | `--broadcom-sta-6.30.223.271 | |--src | | |--wl | | | `--sys | | | |--wl_iw.c | | | |--wl_linux.h | | | |--wlc_wowl.h | | | |--wlc_pub.h | | | |--wl_iw.h | | | |--wlc_key.h | | | |--wl_cfg80211_hybrid.h | | | |--wl_dbg.h | | | |--wlc_ethereal.h | | | |--wlc_utils.h | | | |--wl_linux.c | | | |--wlc_types.h | | | |--wl_cfg80211_hybrid.c | | | `--wl_export.h | | |--common | | | `--include | | | `--proto | | | |--bcmeth.h | | | |--bcmip.h | | | |--ieee80211_radiotap.h | | | |--802.11.h | | | |--bcmevent.h | | | |--ethernet.h | | | |--wpa.h | | | `--802.1d.h | | |--shared | | | |--linux_osl.c | | | `--bcmwifi | | | `--include | | | |--bcmwifi_rates.h | | | `--bcmwifi_channels.h | | `--include | | |--wlioctl.h | | |--osl.h | | |--packed_section_start.h | | |--epivers.h | | |--packed_section_end.h | | |--bcmcrypto | | | `--tkhash.h | | |--bcmendian.h | | |--bcmdefs.h | | |--linux_osl.h | | |--linuxver.h | | |--pcicfg.h | | |--bcmutils.h | | |--siutils.h | | `--typedefs.h | |--dkms.conf | |--Makefile | `--lib | |--wlc_hybrid.o_i386 | `--wlc_hybrid.o_amd64 `--share |--broadcom-sta | |--broadcom-sta.ids |--doc | `--broadcom-sta-dkms | |--changelog.Debian.gz | |--README.txt.gz | |--copyright | `--README.Debian `--lintian `--overrides `--broadcom-sta-dkms |
Проверяем
# 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
О NDIS-wrapper
NDISwrapper — программная прослойка, позволяющая использовать драйверы WiFi, предназначенные для Windows в Linux.
НО!
- NDISwrapper реализует NDISv5 и драйвера структуры WDM (XP), в то время как современные драйвера имеют структуру WDF (NT6+) и NDISv6.
- Видимо по этой причине модуль ядра в ALT Linux больше не собирается (но исходники есть и можно собирать вручную)
B43
B43 - проект по написанию методом реверс-инжениринга драйверов для wi-fi устройств Broadcom.[i]
Для использования B43 нужно установить сам драйвер и прошивку.
Установка драйвера:
# apt-get install b43-fwcutter
Установка прошивки:
# export FIRMWARE_INSTALL_DIR="/lib/firmware" # wget http://mirror2.openwrt.org/sources/broadcom-wl-5.10.56.27.3_mipsel.tar.bz2 # tar xjf broadcom-wl-5.10.56.27.3_mipsel.tar.bz2 # b43-fwcutter -w "$FIRMWARE_INSTALL_DIR" broadcom-wl-5.10.56.27.3/driver/wl_apsta/wl_prebuilt.o # modprobe b43
Решение проблем
Проблемы с драйверами 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