How to install driver for broadcom 43142

secure boot has been disabled from very first

sudo mkdir -p /etc/kernel/cmdline.d

echo "module.sig_unenforce" | sudo tee /etc/kernel/cmdline.d/allow-unsigned-modules.conf

sudo clr-boot-manager update

android@clr~ $ cat /proc/cmdline |grep force
initrd=\EFI\org.clearlinux\freestanding-00-intel-ucode.cpio initrd=\EFI\org.clearlinux\freestanding-i915-firmware.cpio.xz root=PARTUUID=ce0d75d7-0e95-4bf6-86b1-45e16fd08850 quiet console=tty0 console=ttyS0,115200n8 cryptomgr.notests init=/usr/bin/initra-desktop initcall_debug intel_iommu=igfx_off kvm-intel.nested=1 no_timer_check noreplace-smp page_alloc.shuffle=1 rcu_nocbs=0-64 rcupdate.rcu_expedited=1 rootfstype=ext4,btrfs,xfs tsc=reliable rw module.sig_unenforce
android@clr~ $
android@clr~/broadcom-wl $ sudo make install
Password: 
install -D -m 755 wl.ko /lib/modules/`uname -r`/kernel/drivers/net/wireless
android@clr~/broadcom-wl $ sudo depmod -A
android@clr~/broadcom-wl $ sudo modprobe wl
android@clr~/broadcom-wl $ modinfo wl
filename:       /lib/modules/5.3.2-844.native/kernel/drivers/net/wireless/wl.ko
license:        MIXED/Proprietary
alias:          pci:v*d*sv*sd*bc02sc80i*
depends:        cfg80211
retpoline:      Y
name:           wl
vermagic:       5.3.2-844.native SMP mod_unload 
parm:           passivemode:int
parm:           wl_txq_thresh:int
parm:           oneonly:int
parm:           piomode:int
parm:           instance_base:int
parm:           nompc:int
parm:           intf_name:string
android@clr~/broadcom-wl $

now that all command line went without error

android@clr~/Downloads $ ifconfig
enp0s20u1 Link encap:Ethernet  HWaddr B6:E9:AB:BB:87:A2  
          inet addr:192.168.42.250  Bcast:192.168.42.255  Mask:255.255.255.0
          inet6 addr: fe80::83fe:574:9cd2:fbe5/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5697 errors:12 dropped:0 overruns:0 frame:1
          TX packets:5191 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:4886606 (4.6 Mb)  TX bytes:809335 (790.3 Kb)

enp9s0    Link encap:Ethernet  HWaddr E0:DB:55:A6:39:99  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:104 errors:0 dropped:0 overruns:0 frame:0
          TX packets:104 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:7688 (7.5 Kb)  TX bytes:7688 (7.5 Kb)
android@clr~/Downloads $ lspci -nnk | grep -iA3 net
06:00.0 Network controller [0280]: Broadcom Inc. and subsidiaries BCM43142 802.11b/g/n [14e4:4365] (rev 01)
	Subsystem: Dell Wireless 1704 802.11n + BT 4.0 [1028:0016]
	Kernel driver in use: bcma-pci-bridge
	Kernel modules: bcma, wl
09:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL810xE PCI Express Fast Ethernet controller [10ec:8136] (rev 05)
	Subsystem: Dell Device [1028:0591]
	Kernel driver in use: r8169
	Kernel modules: r8169
android@clr~/Downloads $

Check your files under /etc/modprobe.d to make sure one of the files contains an entry to blacklist bcma like you originally intended and reboot.

Also, make sure your wireless adapter isn’t being soft blocked with sudo rfkill unblock all . If your system has a hardware switch to block the wireless adapter, make sure that is unblocked too.

If still no luck, sudo dmesg and sudo journalctl -xe to see if there is indicating why,

android@clr~ $ sudo modprobe -r bcma
Password: 
android@clr~ $ sudo modprobe -r bcma
android@clr~ $ sudo -s
root@clr/home/android # echo "blacklist bcma" > /etc/modprobe.d/broadcom.conf
bash: /etc/modprobe.d/broadcom.conf: No such file or directory
root@clr/home/android # ls /etc/modprobe.d
ls: cannot access '/etc/modprobe.d': No such file or directory
root@clr/home/android # mkdir /etc/modprobe.d
root@clr/home/android # echo "blacklist bcma" > /etc/modprobe.d/broadcom.conf
root@clr/home/android # echo "wl" > /etc/modules-load.d/wl.conf
bash: /etc/modules-load.d/wl.conf: No such file or directory
root@clr/home/android # ls /etc/modules-load.d
ls: cannot access '/etc/modules-load.d': No such file or directory
root@clr/home/android # mkdir /etc/modules-load.d
root@clr/home/android # echo "wl" > /etc/modules-load.d/wl.conf
root@clr/home/android # depmod -a
root@clr/home/android # modprobe wl

root@clr/home/android # modprobe wl
root@clr/home/android # rfkill unblock all

then reboot

sudo swupd bundle-add linux-dev
git clone https://github.com/antoineco/broadcom-wl.git
cd broadcom-wl/
make
sudo make install
sudo depmod -A
sudo modprobe -r bcma
sudo -s
mkdir /etc/modprobe.d
echo "blacklist bcma" > /etc/modprobe.d/broadcom.conf
mkdir /etc/modules-load.d
echo "wl" > /etc/modules-load.d/wl.conf
depmod -a
modprobe wl
*[turn off the secure boot option in BIOS]*
sudo mkdir -p /etc/kernel/cmdline.d
echo "module.sig_unenforce" | sudo tee /etc/kernel/cmdline.d/allow-unsigned-modules.conf
sudo clr-boot-manager update
1 Like

@puneetse
thank you a lot , for guiding me almost step by step.
i use linux for fun. so if i manage to get this work out means clear linux forum teams are GREAT.

1 Like

i upgraded my system to 31230. and wifi is out again. going thru same process again. and wifi is back up again.

That is expected when the kernel updates. The module needs to be built against the running kernel version.

DKMS (which I showed how to add this module to in a previous post) automates it for you.

1 Like

Thanks but if I not connected to internet the line ‘swupd bundle-add linux-dev’ works ?

No. You’ll need to find an alternate way to temporarily connect that system to the Internet.

If you don’t have alternative way to connect to the Internet, you can do the following:

  1. The packages included in the bundle is available in clearlinux/clr-bundle repository.

  2. Most packages are available in clearlinux-pkgs repository, you can review them to decide what should be installed. Or you can just install all packages.

  3. You can download the RPMs from “https://download.clearlinux.org/releases/31540/clear/x86_64/os/Packages”. Just replace 31540 with the OS version you have.

  4. RPMs could be installed via rpm2cpio command. You can find some examples in this forum.

I do recommend that anyone who is using DKMS or any sort of out-of-tree kernel module, that you switch to using one of the LTS kernels. You will have to spend a lot less recompiling your kernel modules as those kernels update much less frequently.