Broadcom BCM43142 refuses to work

Hey peeps,
I am quite new to this community, but I have lurked over here when I needed to install Arch Linux, but that was long ago and now I had to find a stable, rolling distro which suits me and so I turned to Manjaro.
With some troubles during the installation, I had managed to run Arch Linux but without wifi. This time, however, doing the same process I had committed in Arch did not work. I’ll be posting some results for you guys to better understand my situation:

  1. lspci -k
00:00.0 Host bridge: Intel Corporation Haswell-ULT DRAM Controller (rev 09)
	Subsystem: Dell Haswell-ULT DRAM Controller
	Kernel driver in use: hsw_uncore
00:02.0 VGA compatible controller: Intel Corporation Haswell-ULT Integrated Graphics Controller (rev 09)
	Subsystem: Dell Haswell-ULT Integrated Graphics Controller
	Kernel driver in use: i915
	Kernel modules: i915
00:03.0 Audio device: Intel Corporation Haswell-ULT HD Audio Controller (rev 09)
	Subsystem: Dell Haswell-ULT HD Audio Controller
	Kernel driver in use: snd_hda_intel
	Kernel modules: snd_hda_intel
00:04.0 Signal processing controller: Intel Corporation Haswell-ULT Thermal Subsystem (rev 09)
	Subsystem: Dell Haswell-ULT Thermal Subsystem
	Kernel driver in use: proc_thermal
	Kernel modules: processor_thermal_device_pci_legacy
00:14.0 USB controller: Intel Corporation 8 Series USB xHCI HC (rev 04)
	Subsystem: Dell 8 Series USB xHCI HC
	Kernel driver in use: xhci_hcd
	Kernel modules: xhci_pci
00:16.0 Communication controller: Intel Corporation 8 Series HECI #0 (rev 04)
	Subsystem: Dell 8 Series HECI
	Kernel driver in use: mei_me
	Kernel modules: mei_me
00:1b.0 Audio device: Intel Corporation 8 Series HD Audio Controller (rev 04)
	Subsystem: Dell 8 Series HD Audio Controller
	Kernel driver in use: snd_hda_intel
	Kernel modules: snd_hda_intel
00:1c.0 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 3 (rev e4)
	Subsystem: Dell 8 Series PCI Express Root Port 3
	Kernel driver in use: pcieport
00:1d.0 USB controller: Intel Corporation 8 Series USB EHCI #1 (rev 04)
	Subsystem: Dell 8 Series USB EHCI
	Kernel driver in use: ehci-pci
00:1f.0 ISA bridge: Intel Corporation 8 Series LPC Controller (rev 04)
	Subsystem: Dell 8 Series LPC Controller
	Kernel driver in use: lpc_ich
	Kernel modules: lpc_ich
00:1f.2 SATA controller: Intel Corporation 8 Series SATA Controller 1 [AHCI mode] (rev 04)
	Subsystem: Dell 8 Series SATA Controller 1 [AHCI mode]
	Kernel driver in use: ahci
00:1f.3 SMBus: Intel Corporation 8 Series SMBus Controller (rev 04)
	Subsystem: Dell 8 Series SMBus Controller
	Kernel driver in use: i801_smbus
	Kernel modules: i2c_i801
00:1f.6 Signal processing controller: Intel Corporation 8 Series Thermal (rev 04)
	Subsystem: Dell 8 Series Thermal
	Kernel driver in use: intel_pch_thermal
	Kernel modules: intel_pch_thermal
01:00.0 Network controller: Broadcom Inc. and subsidiaries BCM43142 802.11b/g/n (rev 01)
	Subsystem: Dell BCM43142 802.11b/g/n
	Kernel modules: bcma
  1. ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
6: enp0s29u1u1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN mode DEFAULT group default qlen 1000
    link/ether 62:6e:e8:f6:3e:55 brd ff:ff:ff:ff:ff:ff

That’s the android tether btw

  1. inxi output:
CPU: dual core Intel Core i3-4010U (-MT MCP-) speed/min/max: 799/800/1700 MHz
Kernel: 6.5.13-1-MANJARO x86_64 Up: 22m Mem: 2.28/3.75 GiB (60.6%)
Storage: 465.76 GiB (14.0% used) Procs: 189 Shell: Bash inxi: 3.3.31

This was me back in the day trying to get Arch to work on this same goddamn machine:
https: //bbs .archlinux.org/viewtopic.php?id=274374 [Remove the spaces from the link if you have to see the webpage, links cannot be posted unfortunately]

That’s it, I guess, Please let me know if you guys need any other outputs, let’s get this done with. Thanks for reading this post.
Hope you have a good day.
Regards,
Sham.

sudo mhwd --install pci network-broadcom-wl

Reboot.

sudo mhwd --install pci network-broadcom-wl gives:

> Installing network-broadcom-wl...
Sourcing /etc/mhwd-x86_64.conf
Has lib32 support: true
Sourcing /var/lib/mhwd/db/pci/network_drivers/broadcom-wl/MHWDCONFIG
Processing classid: 0200
Processing classid: 0280
Processing classid: 0282
:: Synchronizing package databases...
 core downloading...
 extra downloading...
 multilib downloading...
resolving dependencies...
looking for conflicting packages...
:: linux65-broadcom-wl and broadcom-wl-dkms are in conflict (broadcom-wl). Remove broadcom-wl-dkms? [y/N] error: unresolvable package conflicts detected
error: failed to prepare transaction (conflicting dependencies)

:: linux65-broadcom-wl and broadcom-wl-dkms are in conflict
Error: pacman failed!
Error: script failed!

Trying to remove linux65-broadcom-wl using sudo mhwd -r pci linux65-broadcom-wl gives:

Error: config 'linux65-broadcom-wl' is not installed!

However, I have not restarted since it turned out to be an error, let me know if restarting is mandatory even if an error pops up. I’ll be shutting this computer down soon anyway, so hoping that helps.
Regards,
Sham.

yay -S bcm43142-firmware

you may have to install “yay”.

Is broadcom-wl-dkms installed? Removing that package could solve the conflict

Remove the dkms:

pamac remove broadcom-wl-dkms

Then again:

sudo mhwd --install pci network-broadcom-wl

It installs a pre-compiled module, plus all needed configs.

Let me make it clear: do I install it from yay or do I remove it? I currently have broadcom-wl-dkms installed because that is the only driver that has worked like a charm on all linux distros including arch ones. Hence the reason for the install.

Do what ever you wish, but the reason that it doesn’t work is simply that the bcma module is loaded and not the wl module. You need to blacklist every broadcom wifi driver except wl. The dkms packages doesn’t do it for you, mhwd does.

Here is what it does:

cat /var/lib/mhwd/db/pci/network_drivers/broadcom-wl/MHWDCONFIG

I have done that. I have used rmmod to unload all the modules and modprobe wl to top it off. It has worked on several distros. However, even with the installation of wl module, it refuses to come up in lspci -k output.
I’ll follow what you have to say @megavolt
Regards,
Sham.

Alright then ?!

Reboot.

Removed the dkms variant.

Running the second command gives:

> Installing network-broadcom-wl...
Sourcing /etc/mhwd-x86_64.conf
Has lib32 support: true
Sourcing /var/lib/mhwd/db/pci/network_drivers/broadcom-wl/MHWDCONFIG
Processing classid: 0200
Processing classid: 0280
Processing classid: 0282
:: Synchronizing package databases...
 core downloading...
 extra downloading...
 multilib downloading...
resolving dependencies...
looking for conflicting packages...

Packages (1) linux65-broadcom-wl-6.30.223.271-30

Total Download Size:   1.61 MiB
Total Installed Size:  1.60 MiB

:: Proceed with installation? [Y/n] 
:: Retrieving packages...
 linux65-broadcom-wl-6.30.223.271-30-x86_64 downloading...
checking keyring...
checking package integrity...
loading package files...
checking for file conflicts...
checking available disk space...
:: Processing package changes...
installing linux65-broadcom-wl...
:: Running post-transaction hooks...
(1/2) Arming ConditionNeedsUpdate...
(2/2) Updating module dependencies...
linux65-broadcom-wl: install reason has been set to 'explicitly installed'
modprobe: FATAL: Module bcm43xx not found.
modprobe: FATAL: Module brcm80211 not found.
> Successfully installed network-broadcom-wl

Rebooting now.

Reboot completed.
Network seems to work now.
Thanks for your help.
Is it an open-source driver that Broadcom has written for this model or am I wrong? The wl-dkms variant has worked on Arch Linux, Ubuntu, Kubuntu and all the other distros I have worked with.
Also, is this driver going to work for future upgrades of packages on the system or do I have to be ready to switch to another driver?

Regards,
Sham.

No, it is proprietary like nvidia.

Sure it works normally. DKMS, kernel headers and the blacklist is needed then, but mhwd is easier and faster.
Check this path for the written blacklist or loaded modules:

  • /etc/modules-load.d
  • /etc/modprobe.d

mhwd should have written it there.

No, the wl module is pre-compiled against the current provided kernel everytime, just like the nvidia driver. So no worry about that. The wl dkms compiles it against the kernel on your system, that’s the whole thing.

1 Like

That’s good to hear. Thanks for your help all this time.
Hope you have a wonderful day ahead.
Regards,
Sham.

2 Likes

This topic was automatically closed 36 hours after the last reply. New replies are no longer allowed.