Broadcom wireless (Magyar)

Related articles
Wireless
This article details how to install and setup a Broadcom wireless network device.
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.
It is recommended you check if your device is supported by the builtin kernel driver brcm80211
brcm80211
first before resorting to other drivers.
$ lspci -vnn -d 14e4:
Telepítés
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.
Note
brcmfmac
supports newer chipsets, and supports AP mode, P2P mode, or hardware encryption.
brcmsmac
only supports old chipsets like BCM4313, BCM43224, BCM43225.
Chips supported by the brcm80211 driver can be found in
[1]
.
BCM43602 802.11ac Wireless LAN SoC
BCM43602 needs the
brcmfmac.feature_disable=0x82000
kernel parameter
as tested with PCI Device ID
14e4:43ba
(see
BBS#298025
).
b43
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 Wi-Fi 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.
Note
If unsure which firmware package you need, check the output of
dmesg
and search for "b43". If you see a message like
Loading firmware
b43
/ucode4.fw
, you need either
b43-firmware
AUR
or
b43-firmware-classic
AUR
. If you see a message like
Loading firmware
b43legacy
/ucode4.fw
, you need the
b43legacy-firmware
AUR
package.
BCM4306 rev.3, BCM4311, BCM4312 and BCM4318 rev.2 have been noticed to experience problems with
b43-firmware
. Use
b43-firmware-classic
AUR
or
b43legacy-firmware
AUR
for these cards instead.
BCM4331 noticed to have problems with
b43-firmware-classic
. Use
b43-firmware
AUR
for this card instead, or switch to the
broadcom-wl
mentioned below for a more stable experience.
The
b43
should be loaded automatically, but you may need to explicitly
load the module at boot
.
broadcom-wl
The factual accuracy of this article or section is disputed.
Reason:
Is it still necessary to mention the
blacklist override
? (Discuss in
Talk:Broadcom wireless (Magyar)#Installation: broadcom-wl is in the official repos now
)
Warning
May result in
Kernel Oops and system instability
on Linux 5.18 (or later) on systems
11th Gen and newer
due to an incompatibility with
Indirect Branch Tracking
. You can disable it by setting the
ibt=off
kernel parameter
from the
boot loader
. Be aware, this security feature is responsible for
mitigating a class of exploit techniques.
There are two variants of the restrictively licensed driver:
the regular variant:
broadcom-wl
the
DKMS
variant:
broadcom-wl-dkms
Tip
The DKMS variant
broadcom-wl-dkms
is kernel agnostic. This means it supports different kernels you may use (e.g.
linux-ck
AUR
[
Hibás hivatkozás
: package not found]
).
is kernel-release agnostic, too. It will be automatically rebuilt after every kernel upgrade or fresh installation. If you use
broadcom-wl
or another kernel release dependant variant, it may happen that kernel upgrades break wireless from time to time until the packages are in sync again.
will need the
linux-headers
package for the installed kernel(s) in order to build the module. Those packages are optional to the DKMS package and will need to be installed manually.
Offline telepítés
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
package 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
Warning
This method is not recommended. Drivers that are un-tracked can become problematic or nonfunctional on system updates.
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:
# rmmod b43
# rmmod ssb
# rmmod bcma
# modprobe wl
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:
# depmod -a
If the module was already loaded, you may need to unload it and load it again
# modprobe -r wl
# modprobe wl
If needed,
load the module at boot
. It is recommended that you
blacklist
conflicting modules.
Known issues
Ethernet card is not detected
Broadcom wireless module has a history of conflicting with Broadcom Ethernet module.
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
[2]
.  See also
FS#70476
.
This also affects
broadcom-wl
as it is built based on
broadcom-wl-dkms
.
Older Broadcom drivers not allowing connections
Broadcom chips BCM4360 or lower
do not
support modern security connection methods such as WPA3. WPA2 or alternative security methods are necessary for certain network connections to handshake.
Hibaelhárítás
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
:
# echo 1 > /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.
Interface is showing but not allowing connections
Append the following
kernel parameter
:
b43.allhwsupport=1
Suppressing console messages
You may continuously get some verbose and annoying messages during the boot, similar to
phy0: brcms_ops_bss_info_changed: arp filtering: enabled true, count 0 (implement)
phy0: brcms_ops_bss_info_changed: qos enabled: false (implement)
phy0: brcms_ops_bss_info_changed: arp filtering: enabled true, count 1 (implement)
enabled, active
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.
# dmesg | grep bcrm
...
Direct firmware load for bcrm/
your driver
.
your device
failed with error -2
Write the efi vars into the referenced location, e.g. on a thinkpad tablet:
$ cat /sys/firmware/efi/efivars/nvram-74b00bd9-805a-4d61-b51f-43268123d113 > /lib/firmware/brcm/brcmfmac43241b5-sdio.LENOVO-20C1002PUK.txt
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
), Wi-Fi 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.
BRCM43430 not found during installation
If you have a brcm43430 connected via SDIO, you are unable to see the device after booting the installation ISO, because in the delivered image is missing a default parameter file for the device:
brcmfmac43430-sdio.txt
.
To overcome the problem, you have to download
brcmfmac43430-sdio.txt
on another machine, and copy it on a different pendrive.
After booting the install ISO you need to copy the file to the
/lib/firmware/brcm/
directory. Then follow these steps in order to activate it:
stop
iwd.service
unload the kernel module
:
modprobe -r brcmfmac
load the kernel module
:
modprobe brcmfmac
start
iwd.service
After that you can start
iwctl
that now should find your device, and proceed with the installation as usual.
After completing the installation, do not forget to copy the file to the target disk to the same location.
Lassú (1Mbps vagy kevesebb) internetsebesség
If you are using the kernel driver along with certain Broadcom laptop Wi-Fi cards, you may experience extremely slow or even unusable internet speeds. This can be fixed by installing
#broadcom-wl
and rebooting