Wi-Fi Broadcom: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
 
(не показано 40 промежуточных версий 6 участников)
Строка 1: Строка 1:
Дано:
На некоторых ноутбуках со встроенными 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 broadcom BCM4313
*Вылеты Wi-fi соединения


Что делать?
==Как узнать модель Wi-Fi адаптера?==
==Советы Сообщества==
{{Примечание|Далее команды пользователя будут предваряться приглашением <code>$</code> , суперпользователя '''root''' - <code>#</code>}}
=== Правка конфига NetworkManager ===
Вы можете проверить модель своего Wi-Fi адаптера командой:
Добавить в файл /etc/NetworkManager/NetworkManager.conf строчки:
$ lspci -nn -d 14e4:
  [device]
  03:00.0 Network controller [0280]: Broadcom Inc. and subsidiaries BCM43142 802.11b/g/n [14e4:4365] (rev 01)
wifi.scan-rand-mac-address=no


Перезагружаем NetworkManager.
Или узнать модель своего Wi-Fi адаптера и используемый драйвер с помощью команды:
# service NetworkManager restart
$ 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


=== Установка b43-fwcutter ===
==Какие модели карт?==
  # apt-get install b43-fwcutter
Ниже приведена таблица соответствия между моделью Wi-Fi адаптера и возможными драйверами:
<center>
{| class="wikitable collapsible" style="float:center; margin-left:2em"
!Модель || ALT-драйвер || DEB-драйвер || b43 || '''PCI-ID'''
|-
|colspan="5" | В кодах PCI-ID: жирным = '''b43'''; простым = ALT/DEB; курсив = ''оба''.
|-
|BCM4306/3 || || || + || '''14e4:4307<br>14e4:4320<br>14e4:4324'''
|-
|BCM4311 || + || + ||+|| ''14e4:4311''<br>''14e4:4312''<br>14e4:4313
|-
|BCM4312 || + || + ||+|| ''14e4:4315''
|-
|BCM4313 || + || + || || 14e4:4313<br>14e4:4727
|-
|BCM4318 || || || + || '''14e4:4318'''<br>'''14e4:4319'''
|-
|BCM4321 || + || +  || || 14e4:4328<br>14e4:4329<br>14e4:432a
|-
|BCM4322 || + || +  || + || ''14e4:432b''<br>''14e4:432c''<br>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
|}
</center>
 
==Доступные драйверы==
===ALT-драйвера===
Данный способ меняет драйвер по умолчанию на модуль <code>wl</code> из пакета {{pkg|kernel-modules-bcmwl-std-def (un-def)}}
{{Note|Данный вариант поддерживает следующие модели - BCM4311-, BCM4312-, BCM4313-, BCM4321-,
BCM4322-, BCM43224-, and BCM43225-, BCM43227-, BCM4360- и BCM43228-based оборудование.}}
{{attention|Не забудьте обновить ядро перед установкой, иначе может не загрузится система после установки. Если в репозитории ядро новее, чем в вашей системе, при установке запрошенного модуля может установиться новое ядро с одним-единственным модулем.}}
 
Для обновления ядра выполните команды:
 
$ 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
 
После перезагрузки может понадобиться заново соединиться с беспроводной сетью.
 
{| class="mw-collapsible mw-collapsed wikitable" style="float:center; margin-left:2em"
![Содержимое пакета]
|-
|
<pre>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</pre>
|}


Делаем .sh-файл:
====Проверяем====
  #!/bin/sh
  # inxi -N | grep Broadcom
FIRMWARE_INSTALL_DIR="/lib/firmware"
  Device-2: Broadcom BCM43142 802.11b/g/n driver: wl  
wget http://www.lwfinger.com/b43-firmware/broadcom-wl-5.100.138.tar.bz2
tar xjf broadcom-wl-5.100.138.tar.bz2
b43-fwcutter -w "$FIRMWARE_INSTALL_DIR" broadcom-wl-5.100.138/linux/wl_apsta.o
Если что, ссыль на архив есть в источнике.


Делаем
  # modinfo wl | head -n1
  chmod file.sh
  filename:      /lib/modules/5.10.198-std-def-alt1/updates/dkms/wl.ko
  ./file.sh
Где file - имя Вашего .sh-файла.


Так же при этом нужно удалить модули ядра bcm wl (пакеты '''kernel-modules-bcmwl-std-def'''/'''kernel-modules-bcmwl-un-def''').
===Установка закрытых Deb-драйверов===
<div style='padding:6px;border:1px solid red;'>Предварительно ознакомьтесь со статьёй [[Где и как искать программы]]: установку deb-пакетов Вы делаете на свой страх и риск.</div>
{{Note|Данный вариант поддерживает следующие модели  BCM4311, BCM4312, BCM4313, BCM4321, BCM4322, BCM43142, BCM43224, BCM43225, BCM43227, BCM43228, BCM4331, BCM4360, и BCM4352}}


+[http://solvpro.ru/247-linux-%d0%b8-wifi-broadcom-bcm43xx/ Источник 1], [https://forum.altlinux.org/index.php/topic,6638 Источник 2]
В Debian есть пакет с несвободными драйверами для wifi карт broadcom для [https://ru.wikipedia.org/wiki/Dynamic_Kernel_Module_Support фрамеворка DKMS], который поддерживает большее количество Wi-fi карт.
==Вариант от Петра А.==
Стал я смотреть, как борятся с этой проблемой в других дистрибутивах. В том же Debian есть пакет с несвободными драйверами для wifi карт broadcom для [https://ru.wikipedia.org/wiki/Dynamic_Kernel_Module_Support фрамеворка DKMS].


И вот, я поставил пакет dkms:
Ставим dkms:
  # apt-get install dkms
  # apt-get install dkms
установил [https://pkgs.org/download/broadcom-sta-dkms debian-овский пакет] с dkms-модулями BCM через epm:
Ставим исходники ядра:
# 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:
  # 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
Удалил все альтовские broadcom драйвера:
# apt-get remove b43-fwcutter kernel-modules-bcmwl-std-def (un-def)
'''И уже где-то с два часа сижу в Альте на Wi-fi Broadcom без вылетов.'''


Но потом все упало заново...
Пакет содержит модули для dkms.
{| class="mw-collapsible mw-collapsed wikitable" style="float:center; margin-left:2em"
![Содержимое пакета]
|-
|
<pre>
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
</pre>
|}
<!--
Если ваше устройство отсутствует в пакете с модулями от ALT, то лучше их удалить:
# 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
1. Поставил ALT Starterkit / Cinnamon /
filename:      /lib/modules/5.10.198-std-def-alt1/updates/dkms/wl.ko


2. Установленно ядро Kernel-std-def / 5.4.104 /
===О NDIS-wrapper===
NDISwrapper — программная прослойка, позволяющая использовать драйверы WiFi, предназначенные для Windows в Linux.  


3. Установлены модули kernel-modules-bcmwl-std-def / 6.30.223.248 /
НО!
#NDISwrapper реализует '''NDISv5''' и драйвера структуры '''WDM (XP)''', в то время как современные драйвера имеют структуру '''WDF (NT6+)''' и '''NDISv6'''.
#Видимо по этой причине модуль ядра в ALT Linux больше не собирается (но исходники есть и можно собирать вручную)


'''Все, пока, работает нормально.'''
===B43===
B43 - проект по написанию методом реверс-инжениринга драйверов для wi-fi устройств Broadcom.[https://wiki.archlinux.org/title/broadcom_wireless#b43 [i]]


Наверное, просто не нужно без причины обновлять ядро.
Для использования B43 нужно установить сам драйвер и прошивку.


---------
Установка драйвера:
# apt-get install b43-fwcutter


*Для установки проприетарных драйверов Nvidia обновил ядро до 5.4.115.
Установка прошивки:
*Создал точку восстановления
# export FIRMWARE_INSTALL_DIR="/lib/firmware"
*После установки драйверов Wi-fi вообще отвалился
# 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
*Нужно в /etc/net/ifaces/* создать настройки интерфесов и включить их (в файле options)
# b43-fwcutter -w "$FIRMWARE_INSTALL_DIR" broadcom-wl-5.10.56.27.3/driver/wl_apsta/wl_prebuilt.o
<pre>
# modprobe b43
TYPE=eth
 
DISABLED=no
==Решение проблем==
NM_CONTROLLED=yes
===Проблемы с драйверами ALT===
BOOTPROTO=dhcp
В случае, если модель вашего адаптера поддерживается драйверами ALT, драйверы установлены, но Wi-Fi не работает, или работает нестабильно, возможно, нужный модуль Wi-Fi не загружается, и была нарушена последовательность установки пакетов. Можно попробовать следующее решение:
</pre>
 
*Заработал Ethernet
Определим версию и тип вашего ядра:
*Установил [[wicd]]
 
*Заработал интерфейс wicd-gtk, подключился к wi-fi
$ uname -r
*Пробую перезагрузиться.
5.10.185-std-def-alt1
-------
 
*Сеть подключилась. (Припоминаю, сидел так с NetworkManager+Wicd. Падал интерфейс то одного, то другого, но подключение к wi-fi было доступно.)
Проверим, какой драйвер Wi-Fi загружен:
*Но периодически так же отваливается.
$ inxi -N
*Пробую настроить wicd. Wicd>Параметры>Wpa Supplicant> Драйвер> nl80211
Network:  Device-1: Broadcom BCM4313 802.11bgn Wireless Network Adapter driver: bcma-pci-bridge
*'''Вроде работает нормально...'''
            Device-2: Realtek RTL810xE PCI Express Fast Ethernet driver: r8169
*Но, нет периодически падает [помогает отключение-подключение wifi]
 
--------
Мы видим, что загружен неверный драйвер <code>bcma-pci-bridge</code> вместо нужного драйвера <code>wl</code>
Пробую отключить энергосбережение:
Проверяем наличие установленного пакета драйвера из репозитория ALT:
  # ip a
 
# iw dev eth1 set power_save off
$ 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
 
В системе не установлен пакет {{pkg|bcmwl-kernel-conf}} с параметрами настройки ядра, поэтому нужный нам модуль ядра не загружается.
Для того, чтобы это исправить, выполните команды:
 
$ su -
# apt-get update
# apt-get install bcmwl-kernel-conf
# reboot
 
После перезагрузки нужный нам модуль Wi-Fi должен заработать, может понадобиться заново соединиться с беспроводной сетью.
 
Другим способом является запрет загрузки ненужного драйвера вручную, без установки пакета {{pkg|bcmwl-kernel-conf}}:
 
$ su -
# echo "blacklist bcma" >> /etc/modprobe.d/blacklist-bcma.conf
  # reboot
 
==Ссылки==
*Источник: [http://linuxwireless.sipsolutions.net/en/users/Drivers/b43/#firmware linuxwireless.sipsolutions.net]
*[https://bugzilla.altlinux.org/46812 Ошибка 46812 - Не загружается нужный модуль Wi-Fi Broadcom (wl)]
{{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 адаптера по умолчанию.

Примечание: в большинстве случаев достаточно установить пакет 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

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

Ниже приведена таблица соответствия между моделью 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)

Примечание: Данный вариант поддерживает следующие модели - BCM4311-, BCM4312-, BCM4313-, BCM4321-, BCM4322-, BCM43224-, and BCM43225-, BCM43227-, BCM4360- и BCM43228-based оборудование.
Внимание! Не забудьте обновить ядро перед установкой, иначе может не загрузится система после установки. Если в репозитории ядро новее, чем в вашей системе, при установке запрошенного модуля может установиться новое ядро с одним-единственным модулем.


Для обновления ядра выполните команды:

$ 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-драйверов

Предварительно ознакомьтесь со статьёй Где и как искать программы: установку deb-пакетов Вы делаете на свой страх и риск.
Примечание: Данный вариант поддерживает следующие модели BCM4311, BCM4312, BCM4313, BCM4321, BCM4322, BCM43142, BCM43224, BCM43225, BCM43227, BCM43228, BCM4331, BCM4360, и BCM4352


В 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.

НО!

  1. NDISwrapper реализует NDISv5 и драйвера структуры WDM (XP), в то время как современные драйвера имеют структуру WDF (NT6+) и NDISv6.
  2. Видимо по этой причине модуль ядра в 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

Ссылки