Parrot 6.3 (lorikeet) - Kernel 6.11 - Broadcom based wifi devices, broadcom-sta issues

Hello.

As of the latest Parrot OS update, there seem to be a number of issues concerning broadcom-sta proprietary wl module.

In an attempt to shed some light into the matter, here’s what the kernel is logging upon attempting to load the compiled wl.ko module, built from broadcom-sta-dkms 6.30.223.271-23

[   26.024682] wl: loading out-of-tree module taints kernel.
[   26.024694] wl: module license 'MIXED/Proprietary' taints kernel.
[   26.024696] Disabling lock debugging due to kernel taint
[   26.024698] wl: module verification failed: signature and/or required key missing - tainting kernel
[   26.024700] wl: module license taints kernel.
[   26.037607] ------------[ cut here ]------------
[   26.037613] Unpatched return thunk in use. This should not happen!
[   26.037618] WARNING: CPU: 0 PID: 483 at arch/x86/kernel/cpu/bugs.c:3057 __warn_thunk+0x2a/0x40
[   26.037629] Modules linked in: wl(POE+) intel_rapl_common(+) binfmt_misc x86_pkg_temp_thermal intel_powerclamp coretemp snd_ctl_led kvm_intel snd_hda_codec_idt snd_hda_codec_generic snd_hda_intel kvm snd_intel_dspcfg snd_intel_sdw_acpi snd_hda_codec mei_hdcp snd_hda_core mei_pxp hp_wmi snd_hwdep rapl snd_pcm intel_cstate sparse_keymap platform_profile rfkill wmi_bmof snd_timer intel_uncore snd pcspkr mei_me iTCO_wdt intel_pmc_bxt iTCO_vendor_support watchdog mei soundcore hp_accel joydev ac sg lis3lv02d tpm_infineon serio_raw evdev squashfs firewire_sbp2 parport_pc ppdev lp parport loop efi_pstore configfs ip_tables x_tables autofs4 xts dm_crypt dm_mod efivarfs raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx raid1 raid0 md_mod btrfs blake2b_generic xor raid6_pq libcrc32c ext4 crc16 mbcache jbd2 crc32c_generic nls_ascii sd_mod i915 ahci libahci drm_buddy i2c_algo_bit drm_display_helper libata cec crct10dif_pclmul rc_core crc32_pclmul ttm crc32c_intel scsi_mod sdhci_pci ehci_pci ehci_hcd
[   26.037738]  drm_kms_helper ghash_clmulni_intel cqhci sdhci firewire_ohci sha512_ssse3 video sha256_ssse3 sha1_ssse3 psmouse scsi_common lpc_ich mmc_core usbcore firewire_core wmi crc_itu_t drm battery e1000e usb_common button gf128mul crypto_simd cryptd
[   26.037767] CPU: 0 UID: 0 PID: 483 Comm: (udev-worker) Tainted: P           OE      6.11+parrot-amd64 #1  Debian 6.11.5-1parrot1
[   26.037774] Tainted: [P]=PROPRIETARY_MODULE, [O]=OOT_MODULE, [E]=UNSIGNED_MODULE
[   26.037776] Hardware name: Hewlett-Packard HP ProBook 6460b/161D, BIOS 68SCE Ver. F.67 02/13/2018
[   26.037779] RIP: 0010:__warn_thunk+0x2a/0x40
[   26.037784] Code: 66 0f 1f 00 0f 1f 44 00 00 80 3d f7 97 db 01 00 74 05 c3 cc cc cc cc 48 c7 c7 30 f0 4d 97 c6 05 e2 97 db 01 01 e8 b6 4b 06 00 <0f> 0b c3 cc cc cc cc 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00
[   26.037788] RSP: 0018:ffffb2fa405a7998 EFLAGS: 00010286
[   26.037792] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000027
[   26.037794] RDX: ffff95cef9421788 RSI: 0000000000000001 RDI: ffff95cef9421780
[   26.037796] RBP: ffffb2fa405a79e8 R08: 0000000000000000 R09: 0000000000000003
[   26.037799] R10: ffffb2fa405a7828 R11: ffffffff97ccc228 R12: ffffffffc1bda921
[   26.037801] R13: ffffb2fa405a7a30 R14: 00007ff17f2ebefd R15: ffffb2fa405a7ac8
[   26.037804] FS:  00007ff17eecd8c0(0000) GS:ffff95cef9400000(0000) knlGS:0000000000000000
[   26.037807] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   26.037809] CR2: 00007fbfd552c000 CR3: 0000000108ad4003 CR4: 00000000000606f0
[   26.037813] Call Trace:
[   26.037817]  <TASK>
[   26.037820]  ? __warn+0x80/0x120
[   26.037827]  ? __warn_thunk+0x2a/0x40
[   26.037832]  ? report_bug+0x164/0x190
[   26.037838]  ? prb_read_valid+0x1b/0x30
[   26.037843]  ? handle_bug+0x41/0x70
[   26.037847]  ? exc_invalid_op+0x17/0x70
[   26.037851]  ? asm_exc_invalid_op+0x1a/0x20
[   26.037860]  ? __warn_thunk+0x2a/0x40
[   26.037865]  ? __warn_thunk+0x2a/0x40
[   26.037869]  warn_thunk_thunk+0x1a/0x30
[   26.037875]  getvar+0x20/0x70 [wl]
[   26.037979]  ? ____versions+0x4d057faecd90/0x4d057faecd90 [wl]
[   26.038033]  wl_module_init+0x17/0xa0 [wl]
[   26.038083]  ? do_one_initcall+0x5b/0x320
[   26.038091]  ? do_init_module+0x60/0x250
[   26.038098]  ? __do_sys_init_module+0x17f/0x1b0
[   26.038105]  ? do_syscall_64+0x82/0x190
[   26.038114]  ? __vm_munmap+0xb7/0x160
[   26.038121]  ? syscall_exit_to_user_mode+0x4d/0x210
[   26.038128]  ? do_syscall_64+0x8e/0x190
[   26.038135]  ? vfs_read+0x299/0x380
[   26.038141]  ? syscall_exit_to_user_mode+0x4d/0x210
[   26.038147]  ? do_syscall_64+0x8e/0x190
[   26.038152]  ? count_memcg_events.constprop.0+0x1a/0x30
[   26.038158]  ? handle_mm_fault+0xae/0x2d0
[   26.038164]  ? do_user_addr_fault+0x379/0x670
[   26.038171]  ? exc_page_fault+0x76/0x190
[   26.038177]  ? entry_SYSCALL_64_after_hwframe+0x76/0x7e
[   26.038183]  </TASK>
[   26.038185] ---[ end trace 0000000000000000 ]---

cat /etc/os-release

PRETTY_NAME="Parrot Security 6.3 (lorikeet)"
NAME="Parrot Security"
VERSION_ID="6.3"
VERSION="6.3 (lorikeet)"
VERSION_CODENAME=lory
ID=debian
HOME_URL="https://www.parrotsec.org/"
SUPPORT_URL="https://www.parrotsec.org/community/"
BUG_REPORT_URL="https://gitlab.com/parrotsec/"

uname -a

Linux <redacted> 6.11+parrot-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.11.5-1parrot1 (2024-12-13) x86_64 GNU/Linux

lspci -k

Network controller: Broadcom Inc. and subsidiaries BCM4313 802.11bgn Wireless Network Adapter (rev 01)
        DeviceName: WLAN
        Subsystem: Hewlett-Packard Company BCM4313 802.11bgn Wireless Network Adapter
        Kernel driver in use: bcma-pci-bridge
        Kernel modules: bcma, wl

Although the kernel seems to correctly call the wl_module_init routine, the system creates a non functioning interface (eno1).

wpa_supplicant, upon initializing, tries to trigger a scan but fails with the following

Feb 16 22:08:08 <redacted> wpa_supplicant[853]: ioctl[SIOCGIWSCAN]: Invalid argument
Feb 16 22:08:13 <redacted> wpa_supplicant[853]: eno1: Reject scan trigger since one is already pending

The Unpatched return thunk in use. This should not happen! message from dmesg indicates that this is probably related to the SRSO mitigation changes in linux, however, I don’t see how this could cause the whole module to crash or end up in a confused state

Thankfully, a workaround seems to be unloading the broadcom-sta driver, and replacing it with the less optimal, brcmsmac driver, available via the firmware-brcm80211 package.
This, however, in my case impacts my Wi-Fi performance and proves to be “less forgiving” regarding access points with poor signal quality, causing frequent disconnects or even random AP hopping across different access points available.

Would love to know if someone who’s also been affected by this has managed to solve the issue.

I am a newbie here, fresh install, BCM4360, wifi not functional, …
(there is another post on BCM4360) will comment with more info there as you at least have a funtional workaround (brcmsmac is not supporting BCM4360)

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