Un petit mémo sur le wifi avec une carte Broadcom
- Identifier une carte Broadcom
lspci -nnk | grep 14e4
Exemple:
lspci -nnk | grep 14e4
03:00.0 Network controller [0280]: Broadcom Inc. and subsidiaries BCM4313 802.11bgn Wireless Network Adapter [14e4:4727] (rev 01)
brcmsmac/brcmfmac | Open-source kernel drivers | |
b43, b43legacy and b44 | Reverse-engineered kernel drivers | |
broadcom-wl | Proprietary Broadcom STA driver | Causes kernel drivers to be blacklisted |
brcm80211 | Open-source kernel driver | |
Various | Proprietary Windows drivers | Require Ndiswrapper |
https://github.com/torvalds/linux/tree/master/drivers/net/wireless/broadcom
Détails
On les trouve dans /usr/lib/modules/id-de-votre-noyau/kernel/drivers/net/wireless/broadcom/
Exemple
ls /usr/lib/modules/5.9.0-2-amd64/kernel/drivers/net/wireless/broadcom/
b43 b43legacy brcm80211
NB: b44
est un driver pour Broadcom en Ethernet (filaire)
Pour fonctionner il faut le firmware que l’on trouve dans le paquet firmware-brcm80211
apt list firmware-brcm80211
En train de lister... Fait
firmware-brcm80211/testing,testing,unstable,unstable,now 20200918-1 all [installé]
On les trouve dans les paquets
apt list | grep broadcom
broadcom-sta-common/testing,testing,unstable,unstable 6.30.223.271-15 all
broadcom-sta-dkms/testing,testing,unstable,unstable 6.30.223.271-15 all
broadcom-sta-source/testing,testing,unstable,unstable 6.30.223.271-15 all
NB: si vous voulez utiliser sta-dkms, il y aura compilation à l'installation donc il faut installer aussi le linux-header de votre noyau ainsi que le paquet dkms.
Plus d’infos wl
Les modules sont incompatibles entre eux il vaut donc mieux blacklister ceux qu’on n’utilise pas.
Exemple j’utilise bcma je crée un fichier;
/etc/modprobe.d/broadcom.conf
avec le contenu
# pour fonctionner avec bcma
blacklist b43
blacklist b43legacy
blacklist b44
lspci -nnk | grep 14e4 -A4
Exemple
lspci -nnk | grep 14e4 -A4
03:00.0 Network controller [0280]: Broadcom Inc. and subsidiaries BCM4313 802.11bgn Wireless Network Adapter [14e4:4727] (rev 01)
DeviceName: Broadcom 802.11n+BT combo module
Subsystem: Hewlett-Packard Company BCM4313 802.11bgn Wireless Network Adapter [103c:1483]
Kernel driver in use: bcma-pci-bridge
Kernel modules: bcma
root@debian:~# lsmod | grep bcma
bcma 69632 1 brcmsmac
root@debian:~# modinfo brcmsmac
filename: /lib/modules/5.9.0-2-amd64/kernel/drivers/net/wireless/broadcom/brcm80211/brcmsmac/brcmsmac.ko
firmware: brcm/bcm43xx_hdr-0.fw
firmware: brcm/bcm43xx-0.fw
license: Dual BSD/GPL
description: Broadcom 802.11n wireless LAN driver.
author: Broadcom Corporation
alias: bcma:m04BFid0812rev18cl*
alias: bcma:m04BFid0812rev17cl*
alias: bcma:m04BFid0812rev11cl*
depends: mac80211,bcma,brcmutil,cfg80211,cordic
retpoline: Y
intree: Y
name: brcmsmac
vermagic: 5.9.0-2-amd64 SMP mod_unload modversions
sig_id: PKCS#7
signer: Debian Secure Boot CA
sig_key: B5:5E:B3:B9
sig_hashalgo: sha256
signature: 60:2D:FF:4A:DB:B6:1E:3E:CB:A5:1D:DE:4E:E9:9B:0A:CF:A8:B9:E3:
B9:68:B0:E0:02:20:6D:39:33:75:57:2A:65:18:FA:07:CB:CC:B4:DC:
90:94:C5:9F:5A:40:92:10:81:B6:FB:02:70:FE:31:02:97:2E:F1:36:
A2:32:25:38:FA:A3:44:42:11:B0:C7:15:39:7C:ED:1B:27:7D:C2:05:
11:93:E6:17:9B:8A:C2:1B:4B:43:70:64:84:79:E4:C5:38:BF:A1:0E:
95:75:15:B1:48:54:AF:EB:72:A8:81:77:2E:05:E5:3C:DE:D2:15:36:
51:37:A1:09:90:9B:E0:C2:DC:04:4C:92:51:81:3F:C0:52:F8:FA:73:
35:0D:BD:65:80:77:A7:C1:61:E8:FF:F2:0D:56:FC:6B:20:6A:A5:3A:
7E:2D:29:EC:D8:D0:7D:62:CD:BA:AE:5F:07:00:16:BE:27:0B:E1:7A:
9F:57:01:CB:D9:5F:EF:F9:F7:5F:B0:07:0B:CE:E1:AB:46:67:6A:6E:
4D:E4:1C:58:48:92:63:A1:CF:2B:B8:7D:D5:31:72:01:E2:CB:83:E7:
1F:26:01:99:41:0F:D9:8C:8A:55:ED:31:91:13:E5:A6:9C:8E:85:B2:
FA:72:E9:52:43:7D:B8:E8:DB:C6:5D:89:F6:8B:DB:EF
root@debian:~#
journalctl | grep bcm
nov. 10 10:18:41 debian kernel: bcma-pci-bridge 0000:03:00.0: bus0: Found chip with id 0x4313, rev 0x01 and package 0x08
nov. 10 10:18:41 debian kernel: bcma-pci-bridge 0000:03:00.0: bus0: Core 0 found: ChipCommon (manuf 0x4BF, id 0x800, rev 0x24, class 0x0)
nov. 10 10:18:41 debian kernel: bcma-pci-bridge 0000:03:00.0: bus0: Core 1 found: IEEE 802.11 (manuf 0x4BF, id 0x812, rev 0x18, class 0x0)
nov. 10 10:18:41 debian kernel: bcma-pci-bridge 0000:03:00.0: bus0: Core 2 found: PCIe (manuf 0x4BF, id 0x820, rev 0x11, class 0x0)
nov. 10 10:18:41 debian kernel: bcma-pci-bridge 0000:03:00.0: bus0: Bus registered
nov. 10 10:18:44 debian kernel: brcmsmac bcma0:1: mfg 4bf core 812 rev 24 class 0 irq 17
nov. 10 10:18:44 debian kernel: brcmsmac bcma0:1 wlp3s0b1: renamed from wlan0
nov. 10 10:18:56 debian NetworkManager[2781]: <info> [1604999936.5108] rfkill2: found Wi-Fi radio killswitch (at /sys/devices/pci0000:00/0000:00:05.0/0000:03:00.0/bcma0:1/ieee80211/phy0/rfkill2) (driver brcmsmac)
nov. 10 10:19:00 debian kernel: brcmsmac bcma0:1: firmware: direct-loading firmware brcm/bcm43xx-0.fw
nov. 10 10:19:00 debian kernel: brcmsmac bcma0:1: firmware: direct-loading firmware brcm/bcm43xx_hdr-0.fw
nov. 10 10:19:00 debian kernel: brcmsmac bcma0:1: brcms_ops_bss_info_changed: qos enabled: false (implement)
nov. 10 10:19:00 debian kernel: brcmsmac bcma0:1: brcms_ops_config: change power-save mode: false (implement)
nov. 10 10:19:00 debian kernel: brcmsmac bcma0:1: brcms_ops_bss_info_changed: qos enabled: false (implement)
nov. 10 10:19:00 debian kernel: brcmsmac bcma0:1: brcms_ops_config: change power-save mode: false (implement)
nov. 10 10:19:03 debian kernel: brcmsmac bcma0:1: brcms_ops_bss_info_changed: qos enabled: false (implement)
nov. 10 10:19:03 debian kernel: brcmsmac bcma0:1: brcms_ops_config: change power-save mode: false (implement)
nov. 10 10:19:03 debian kernel: brcmsmac bcma0:1: brcmsmac: brcms_ops_bss_info_changed: associated
nov. 10 10:19:03 debian kernel: brcmsmac bcma0:1: brcms_ops_bss_info_changed: qos enabled: true (implement)
nov. 10 10:19:03 debian kernel: brcmsmac bcma0:1: wl0: brcms_c_d11hdrs_mac80211: txop exceeded phylen 159/256 dur 1778/1504
nov. 10 10:19:03 debian kernel: brcmsmac bcma0:1: wl0: brcms_c_d11hdrs_mac80211: txop exceeded phylen 137/256 dur 1602/1504
nov. 10 10:19:05 debian kernel: brcmsmac bcma0:1: brcms_ops_bss_info_changed: arp filtering: 1 addresses (implement)