Leap 15.1 to 15.2 upgrade has borked Broadcom BCM43142 WiFi

In performing an upgrade from from Leap 15.1 to Leap 15.2 my WiFi communications have been borked. Some system information:

[addanc@brokkr]$ uname -a
Linux brokkr.mere 5.3.18-lp152.66-default #1 SMP Tue Mar 2 13:18:19 UTC 2021 (73933a3) x86_64 x86_64 x86_64 GNU/Linux

[addanc@brokkr]$ sudo lspci -v
08:00.0 Network controller: Broadcom Inc. and subsidiaries BCM43142 802.11b/g/n (rev 01)
        Subsystem: Hewlett-Packard Company Device 2230
        Flags: fast devsel
        Memory at b2500000 (64-bit, non-prefetchable) [size=32]
        Capabilities: [40] Power Management version 3
        Capabilities: [58] Vendor Specific Information: Len=78 <?>
        Capabilities: [48] MSI: Enable- Count=1/1 Maskable- 64bit+
        Capabilities: [d0] Express Endpoint, MSI 00
        Capabilities: [100] Advanced Error Reporting
        Capabilities: [13c] Virtual Channel
        Capabilities: [160] Device Serial Number 00-00-db-ff-ff-eb-38-b1
        Capabilities: [16c] Power Budgeting <?>

First observation, there does not appear to be any BCM43142 firmware with Leap 15.2; viz:

[addanc@brokkr]$ dmesg | grep -i "broadcom"
    5.337235] usb 1-1.7: Manufacturer: Broadcom Corp

[addanc@brokkr]$ dmesg | grep -i "bcm43"
    5.337223] usb 1-1.7: Product: BCM43142A0
   27.869537] Bluetooth: hci0: BCM43142A
   27.870535] Bluetooth: hci0: BCM43142A0 (001.001.011) build 0000
   27.988790] bluetooth hci0: Direct firmware load for brcm/BCM43142A0-0a5c-216c.hcd failed with error -2
   27.988795] Bluetooth: hci0: BCM: Patch brcm/BCM43142A0-0a5c-216c.hcd not found

[addanc@brokkr]$ dmesg | grep -i "error"
    0.575325] acpi PNP0A08:00: _OSC failed (AE_ERROR); disabling ASPM
    2.615342] RAS: Correctable Errors collector initialized.
   27.988790] bluetooth hci0: Direct firmware load for brcm/BCM43142A0-0a5c-216c.hcd failed with error -2

I found a Git repository of Broadcom firmware with the file BCM43142A0-0a5c-216c.hcd (unknown provenance); I installed this to lib/firmware/brcm with the following result:

[addanc@brokkr]$ dmesg | grep -i "bcm43"
    5.365047] usb 1-1.7: Product: BCM43142A0
   27.124963] Bluetooth: hci0: BCM43142A
   27.125936] Bluetooth: hci0: BCM43142A0 (001.001.011) build 0000
   28.171928] Bluetooth: hci0: BCM43142A0 (001.001.011) build 0328
   28.187959] Bluetooth: hci0: BCM43142A0 Generic USB Class 2 NonUHE @ 20 MHz

[addanc@brokkr]$ dmesg | grep -i "error"
    0.574370] acpi PNP0A08:00: _OSC failed (AE_ERROR); disabling ASPM
    2.611347] RAS: Correctable Errors collector initialized.

I would be interested in finding out how I can identify and extract the firmware from the Windows 10 environment.

Still no WiFi:

[addanc@brokkr]$ sudo iwconfig
lo        no wireless extensions.

eth0      no wireless extensions.

No driver appears to be installed:

[addanc@brokkr]$ lsmod
Module                  Size  Used by
fuse                  139264  3
rfcomm                 90112  16
af_packet              53248  2
nf_log_ipv6            16384  5
nf_log_ipv4            16384  5
nf_log_common          16384  2 nf_log_ipv4,nf_log_ipv6
xt_LOG                 20480  10
xt_limit               16384  10
xt_comment             16384  2
bnep                   28672  2
dmi_sysfs              20480  0
xt_pkttype             16384  6
xt_tcpudp              20480  5
ip6t_REJECT            16384  3
nf_reject_ipv6         20480  1 ip6t_REJECT
ipt_REJECT             16384  3
nf_reject_ipv4         16384  1 ipt_REJECT
iptable_filter         16384  1
bpfilter               28672  0
ip6table_mangle        16384  0
nf_conntrack_netbios_ns    16384  0
nf_conntrack_broadcast    16384  1 nf_conntrack_netbios_ns
ip_tables              32768  3 iptable_filter
xt_conntrack           16384  6
nf_conntrack          172032  3 xt_conntrack,nf_conntrack_netbios_ns,nf_conntrack_broadcast
nf_defrag_ipv6         24576  1 nf_conntrack
nf_defrag_ipv4         16384  1 nf_conntrack
libcrc32c              16384  1 nf_conntrack
ip6table_filter        16384  1
ip6_tables             36864  9 ip6table_filter,ip6table_mangle
x_tables               49152  13 ip6table_filter,xt_conntrack,iptable_filter,xt_LOG,xt_tcpudp,xt_comment,ip6_tables,ipt_REJECT,xt_pkttype,ip_tables,xt_limit,ip6table_mangle,ip6t_REJECT
nls_iso8859_1          16384  1
nls_cp437              20480  1
vfat                   24576  1
fat                    86016  1 vfat
uvcvideo              110592  0
v4l2_common            16384  1 uvcvideo
videobuf2_vmalloc      20480  1 uvcvideo
videobuf2_memops       20480  1 videobuf2_vmalloc
videobuf2_v4l2         28672  1 uvcvideo
btusb                  65536  0
videobuf2_common       57344  2 videobuf2_v4l2,uvcvideo
btrtl                  24576  1 btusb
videodev              245760  4 v4l2_common,videobuf2_v4l2,uvcvideo,videobuf2_common
btbcm                  16384  1 btusb
btintel                32768  1 btusb
mc                     57344  4 videodev,videobuf2_v4l2,uvcvideo,videobuf2_common
bluetooth             626688  43 btrtl,btintel,btbcm,bnep,btusb,rfcomm
ecdh_generic           16384  1 bluetooth
ecc                    36864  1 ecdh_generic
intel_rapl_msr         20480  0
intel_rapl_common      28672  1 intel_rapl_msr
x86_pkg_temp_thermal    20480  0
intel_powerclamp       20480  0
coretemp               20480  0
kvm_intel             270336  0
snd_hda_codec_realtek   143360  1
snd_hda_codec_generic    94208  1 snd_hda_codec_realtek
snd_hda_codec_hdmi     73728  1
kvm                   786432  1 kvm_intel
ledtrig_audio          16384  2 snd_hda_codec_generic,snd_hda_codec_realtek
msr                    16384  0
irqbypass              16384  1 kvm
snd_hda_intel          57344  3
snd_hda_codec         163840  4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek
snd_hda_core          110592  5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek
snd_hwdep              16384  1 snd_hda_codec
crct10dif_pclmul       16384  1
snd_pcm               159744  4 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core
crc32_pclmul           16384  0
ghash_clmulni_intel    16384  0
snd_timer              40960  1 snd_pcm
aesni_intel           372736  0
aes_x86_64             20480  1 aesni_intel
iTCO_wdt               16384  0
snd                   106496  14 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek,snd_timer,snd_pcm
iTCO_vendor_support    16384  1 iTCO_wdt
r8169                  94208  0
crypto_simd            16384  1 aesni_intel
cryptd                 24576  2 crypto_simd,ghash_clmulni_intel
hp_wmi                 16384  0
mei_hdcp               24576  0
glue_helper            16384  1 aesni_intel
sparse_keymap          16384  1 hp_wmi
rfkill                 28672  7 hp_wmi,bluetooth
soundcore              16384  1 snd
joydev                 28672  0
pcspkr                 16384  0
i2c_i801               36864  0
efi_pstore             16384  0
lpc_ich                28672  0
hp_accel               28672  0
mei_me                 45056  1
lis3lv02d              28672  1 hp_accel
wmi_bmof               16384  0
realtek                20480  1
input_polldev          20480  1 lis3lv02d
mei                   122880  3 mei_hdcp,mei_me
libphy                106496  2 r8169,realtek
thermal                28672  0
intel_smartconnect     16384  0
hp_wireless            16384  0
button                 24576  0
battery                24576  0
acpi_tad               16384  0
ac                     16384  0
hid_logitech_hidpp     49152  0
hid_logitech_dj        28672  0
hid_generic            16384  0
usbhid                 61440  1 hid_logitech_dj
i915                 2379776  17
crc32c_intel           24576  3
xhci_pci               20480  0
xhci_hcd              278528  1 xhci_pci
i2c_algo_bit           16384  1 i915
drm_kms_helper        229376  1 i915
ehci_pci               20480  0
ehci_hcd               98304  1 ehci_pci
syscopyarea            16384  1 drm_kms_helper
sysfillrect            16384  1 drm_kms_helper
sysimgblt              16384  1 drm_kms_helper
fb_sys_fops            16384  1 drm_kms_helper
serio_raw              20480  0
drm                   544768  14 drm_kms_helper,i915
usbcore               311296  7 xhci_hcd,ehci_pci,usbhid,uvcvideo,ehci_hcd,btusb,xhci_pci
sr_mod                 28672  0
cdrom                  73728  1 sr_mod
wmi                    32768  2 hp_wmi,wmi_bmof
video                  53248  1 i915
sg                     40960  0
dm_multipath           36864  0
dm_mod                155648  1 dm_multipath
scsi_dh_rdac           16384  0
scsi_dh_emc            16384  0
scsi_dh_alua           20480  0
efivarfs               16384  1

I have installed the b43 driver with the following result:

[addanc@brokkr]$ sudo modprobe b43

[addanc@brokkr]$ lsmod | grep -i "b43"
b43                   458752  0
cordic                 16384  1 b43
bcma                   69632  1 b43
mac80211              974848  1 b43
cfg80211              827392  2 b43,mac80211
ssb                    94208  1 b43
mmc_core              180224  2 b43,ssb

Again still no WiFi:

[addanc@brokkr]$ sudo iwconfig
lo        no wireless extensions.

eth0      no wireless extensions.

Is b43 the correct driver for WiFi communications?

The Bluetooth is working at this point, since I successfully paired a Bluetooth keyboard with the laptop; does the Bluetooth also operate through the same Broadcom device?

At this point I need some new ideas for progressing the lack of WiFi communications.[/size]

[QUOTE=Addanc;3011705]

[addanc@brokkr]$ sudo lspci -v

Is b43 the correct driver for WiFi communications?

Always use “lspci -nn” (in addition to an other options) which shows numerical PCI IDs; this is the only way to know what device you have.

Two things to try –

  • In the openSUSE repositories, there’s a package named “bcm43xx-firmware” –

Firmware for the Broadcom/Cypress BCM43xx chipset family
This package provides the firmware files needed for the Broadcom (now Cypress) BCM43430 Wifi+Bluetooth chipset as well as NVRAM config files for BCM43362, BCM43430 and further related chipsets.

  • In the Packman Essentials repository, there’s the “broadcom-wl” and “broadcom-wl-kmp-default” packages –

Wireless driver for Broadcom 43xx series of chips
These packages contain Broadcom’s IEEE 802.11a/b/g/n hybrid Linux® device driver for use with Broadcom’s BCM4311-, BCM4312-, BCM4321-, and BCM4322-based hardware.

The Packman package used to be OK for BCM43142 devices.

I found a Git repository of Broadcom firmware with the file BCM43142A0-0a5c-216c.hcd (unknown provenance); I installed this to lib/firmware/brcm with the following result:

This is only the Bluetooth part and has nothing to do with the WLAN.
This firmware must be installed when Bluetooth should be working.
There are some firmware-rpms in the OBS that support this Chip.

It does not matter if brcm (or similar) or broadcom-wl for WLAN is installed.

[addanc@brokkr]$ sudo lspci -nn
00:00.0 Host bridge [0600]: Intel Corporation Haswell-ULT DRAM Controller [8086:0a04] (rev 0b)
00:02.0 VGA compatible controller [0300]: Intel Corporation Haswell-ULT Integrated Graphics Controller [8086:0a16] (rev 0b)
00:03.0 Audio device [0403]: Intel Corporation Haswell-ULT HD Audio Controller [8086:0a0c] (rev 0b)
00:14.0 USB controller [0c03]: Intel Corporation 8 Series USB xHCI HC [8086:9c31] (rev 04)
00:16.0 Communication controller [0780]: Intel Corporation 8 Series HECI #0 [8086:9c3a] (rev 04)
00:1b.0 Audio device [0403]: Intel Corporation 8 Series HD Audio Controller [8086:9c20] (rev 04)
00:1c.0 PCI bridge [0604]: Intel Corporation 8 Series PCI Express Root Port 1 [8086:9c10] (rev e4)
00:1c.1 PCI bridge [0604]: Intel Corporation 8 Series PCI Express Root Port 2 [8086:9c12] (rev e4)
00:1c.2 PCI bridge [0604]: Intel Corporation 8 Series PCI Express Root Port 3 [8086:9c14] (rev e4)
00:1c.3 PCI bridge [0604]: Intel Corporation 8 Series PCI Express Root Port 4 [8086:9c16] (rev e4)
00:1d.0 USB controller [0c03]: Intel Corporation 8 Series USB EHCI #1 [8086:9c26] (rev 04)
00:1f.0 ISA bridge [0601]: Intel Corporation 8 Series LPC Controller [8086:9c43] (rev 04)
00:1f.2 SATA controller [0106]: Intel Corporation 8 Series SATA Controller 1 [AHCI mode] [8086:9c03] (rev 04)
00:1f.3 SMBus [0c05]: Intel Corporation 8 Series SMBus Controller [8086:9c22] (rev 04)
08:00.0 Network controller [0280]: Broadcom Inc. and subsidiaries BCM43142 802.11b/g/n [14e4:4365] (rev 01)
09:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL810xE PCI Express Fast Ethernet controller [10ec:8136] (rev 08)

The vid:did does give a whole new set of hits on Google to have a browse through.

“DuckDuckGo” is often a reliable alternative to the Alphabet offering …

Had the following installed:
bcm43xx-firmware-20180314-lp152.10.3.1.noarch
broadcom-wl-6.30.223.271-11.14.x86_64 (from Packman)
broadcom-wl-kmp-default-6.30.223.271_k4.12.14_lp151.28.91-pm151.14.14.x86_64 (from Packman)

Not installed (available for installation):
broadcom-wl-kmp-default-6.30.223.271_k5.3.18_lp152.66-pm152.14.16-x86_64 (from Packman, looks newer)

With respect to the BCM43xx firmware I only had one error message in the kernel messages; is there a specific command that can be used to list all firmware device loads?

broadcom-wl will prevent the bcma Kernel Module from loading, so use broadcom-wl.

But Leap 15.2 has kernel 5.3 , so you need to install:

Not installed (available for installation):
broadcom-wl-kmp-default-6.30.223.271_k5.3.18_lp152.66-pm152.14.16-x86_64 (from Packman, looks newer)

broadcom-wl-kmp-default-6.30.223.271_k4.12.14_lp151.28.91-pm151.14.14.x86_64 (from Packman)

k4.12.14 = Kernel 4.12.14
lp151 = Leap 15.1

broadcom-wl-kmp-default-6.30.223.271_k5.3.18_lp152.66-pm152.14.16-x86_64

k5.3.18 = Kernel 5.3.18
lp152 = Leap 15.2

@Addanc:

You need to read the README.SUSE included with the Packman broadcom-wl package – which installs a Blacklist in /etc/modprobe.d/ …

To overcome these conflicts this package installs the file
/etc/modprobe.d/broadcom-wl-blacklist which blacklists the following kernel
modules to prevent them from loading:

b43
bcm43xx
ssb
ndiswrapper

You may also wish to take note of this SuperUser thread – <linux - Trouble Installing Broadcom BCM43142 in debian 8.6 - Super User;

 # modprobe -r b44 b43 b43legacy ssb brcmsmac bcma

You need to “modprobe wl” to get the Packman Broadcom driver loaded …

Had the following installed:
bcm43xx-firmware-20180314-lp152.10.3.1.noarch
broadcom-wl-6.30.223.271-11.14.x86_64 (from Packman)
broadcom-wl-kmp-default-6.30.223.271_k4.12.14_lp151.28.91-pm151.14.14.x86_64 (from Packman)

Is installed, you can see it:

grep -i 'blacklist brcm' /etc/modprobe.d/*
/etc/modprobe.d/50-broadcom-wl-blacklist.conf:blacklist brcm80211
/etc/modprobe.d/50-broadcom-wl-blacklist.conf:blacklist brcmsmac

Only broadcom-wl-kmp-desktop is in the wrong kernel version installed, see my last thread.

I prefer a reboot to get all fresh because nobody knows what the user has also made.

I had the wrong version of broadcom-wl-kmp-default-* installed; probably resulted from the upgrade, where I had to revert a number of packages from vendor packman to vendor opensuse to resolve conflicts and allow the upgrade to go forward; having restored repo packman that package has not been updated.

Having corrected that:

[addanc@brokkr]$ sudo modprobe wl
modprobe: ERROR: could not insert 'wl': Operation not permitted

Inspection of kernel messages reveals:

addanc@brokkr]$ dmesg | tail -n 10
   85.128918] Lockdown: systemd-logind: hibernation is restricted; see man kernel_lockdown.7
   85.132559] Lockdown: systemd-logind: hibernation is restricted; see man kernel_lockdown.7
   85.132575] Lockdown: systemd-logind: hibernation is restricted; see man kernel_lockdown.7
   85.139733] Lockdown: systemd-logind: hibernation is restricted; see man kernel_lockdown.7
   85.139750] Lockdown: systemd-logind: hibernation is restricted; see man kernel_lockdown.7
   87.982420] Bluetooth: RFCOMM TTY layer initialized
   87.982451] Bluetooth: RFCOMM socket layer initialized
   87.982475] Bluetooth: RFCOMM ver 1.11
  181.061475] Lockdown: modprobe: unsigned module loading is restricted; see man kernel_lockdown.7
  274.680090] Lockdown: modprobe: unsigned module loading is restricted; see man kernel_lockdown.7

One instances of last line added for each attempted modprobe.

What is the prescribed method of installing the wl module before this kernel lock down feature is activated?

Question:
secure boot is disabled in the UEFI/Bios?
If no, you should do it.

Also please post:

zypper se -si kernel broadcom
uname -a
[addanc@brokkr]$ sudo zypper se -si kernel broadcom
Loading repository data...
Reading installed packages...

S  | Name                    | Type    | Version                                   | Arch   | Repository
---+-------------------------+---------+-------------------------------------------+--------+-----------------------
i+ | broadcom-wl             | package | 6.30.223.271-11.14                        | x86_64 | (System Packages)
i+ | broadcom-wl-kmp-default | package | 6.30.223.271_k5.3.18_lp152.66-pm152.14.16 | x86_64 | Packman Repository
i+ | kernel-default          | package | 4.12.14-lp151.28.91.1                     | x86_64 | (System Packages)
i+ | kernel-default          | package | 5.3.18-lp152.66.2                         | x86_64 | Main Update Repository
i+ | kernel-firmware         | package | 20200107-lp152.2.3.1                      | noarch | Main Update Repository
i  | purge-kernels-service   | package | 0-lp152.4.1                               | noarch | Main Repository

[addanc@brokkr]$ uname -a
Linux brokkr.mere 5.3.18-lp152.66-default #1 SMP Tue Mar 2 13:18:19 UTC 2021 (73933a3) x86_64 x86_64 x86_64 GNU/Linux

Do you disable secure boot?

Thanks, all up and running again.

Just took a while getting into the BIOS to disable secure boot.

All I would do is to delete:

i+ | kernel-default          | package | 4.12.14-lp151.28.91.1                     | x86_64 | (System Packages)

String

Lockdown: systemd-logind: hibernation is restricted; see man kernel_lockdown.7

means that secure boot is on.