Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[solved] BCM4352 wifi not working
View unanswered posts
View posts from last 24 hours

Goto page 1, 2  Next  
Reply to topic    Gentoo Forums Forum Index Kernel & Hardware
View previous topic :: View next topic  
Author Message
brendlefly62
Apprentice
Apprentice


Joined: 19 Dec 2009
Posts: 156

PostPosted: Mon Oct 30, 2023 3:06 pm    Post subject: [solved] BCM4352 wifi not working Reply with quote

Edit - jump to my attempt to summarize, at the "bottom" of this thread -- https://forums.gentoo.org/viewtopic-p-8807393.html#8807393
Note however that there are many very useful resources suggested in posts below, by those who helped, particularly pietinger and pingtoo. Thanks again. :D

Original post 30 October 2023: I'm struggling with the bcm4352 wifi adapter built into an ASUS P97 Pro (WiFi ac) motherboard that I am currently converting from its former role as a Windows desktop to a new role as a gentoo box. I think this subject was covered (and evidently addressed successfully) by pranavpalliyil in this post a couple years ago, but I don't fully understand what the solution was...
Quote:
Broadcom BCM4352 not working. [Solved] (https://forums.gentoo.org/viewtopic-t-1143777-start-0-postdays-0-postorder-asc-highlight-.html?sid=6cb4300cc98661a5d2e95f9b6eff64aa)

Can someone give me a little more detail on what to turn on and off in the kernel for wifi, what other packages (like broadcom-sta?) I need to emerge, and what was meant by "Edit: I just had to disable B4xxx drivers that were conflicting" ?? (I've PM'd pranavpalliyil, but haven't received a response yet)

I'm following the gentoo wiki -- https://wiki.gentoo.org/wiki/Wi-Fi ... I've also reviewed https://wireless.wiki.kernel.org/en/users/drivers/b43#Supported_devices which indicates that for my device --
Code:
# lspci -nn -d 14e4:
05:00.0 Network controller [0280]: Broadcom Inc. and subsidiaries BCM4352 802.11ac Wireless Network Adapter [14e4:43b1] (rev 03)
that "14e4:431b" is not supported, no driver listed in right hand column.
Quote:
...
14e4:4331 yes (3.2-rc3+) BCM4331 a/b/g/n HT (r1) wl
...
14e4:43b1 no BCM4352 a/b/g/n/ac AC (r3)
...
-.- But again, pranavpalliyil got the 4352 working...

My situation is very similar to pranavpalliyil's start-point - ASUS P97 Pro (WiFi ac) motherboard includes a built-in Broadcom 4352 wifi that I am struggling to get working. I see my wifi adapter in "lspci -k" output:
Code:

05:00.0 Network controller: Broadcom Inc. and subsidiaries BCM4352 802.11ac Wireless Network Adapter (rev 03)
        Subsystem: ASUSTeK Computer Inc. BCM4352 802.11ac Wireless Network Adapter
        Kernel driver in use: bcma-pci-bridge
        Kernel modules: bcma
but it/driver does not show up in "modprobe/lsmod" nor "ifconfig -a" nor "cat /proc/net/dev" nor "tree /sys/class/net/"
I also get the same dmesg output that pranavpalliyil did about bcma-pci-bridge, culminating in "No SPROM available" --
Code:
[   24.226614] bcma-pci-bridge 0000:05:00.0: enabling device (0000 -> 0002)
[   24.226701] bcma-pci-bridge 0000:05:00.0: bus0: Found chip with id 0x4352, rev 0x03 and package 0x00
[   24.226737] bcma-pci-bridge 0000:05:00.0: bus0: Core 0 found: ChipCommon (manuf 0x4BF, id 0x800, rev 0x2B, class 0x0)
[   24.226757] bcma-pci-bridge 0000:05:00.0: bus0: Core 1 found: IEEE 802.11 (manuf 0x4BF, id 0x812, rev 0x2A, class 0x0)
[   24.226794] bcma-pci-bridge 0000:05:00.0: bus0: Core 2 found: ARM CR4 (manuf 0x4BF, id 0x83E, rev 0x02, class 0x0)
[   24.226833] bcma-pci-bridge 0000:05:00.0: bus0: Core 3 found: PCIe Gen2 (manuf 0x4BF, id 0x83C, rev 0x01, class 0x0)
[   24.226853] bcma-pci-bridge 0000:05:00.0: bus0: Core 4 found: USB 2.0 Device (manuf 0x4BF, id 0x81A, rev 0x11, class 0x0)
[   24.259486] bcma-pci-bridge 0000:05:00.0: bus0: Invalid SPROM read from the PCIe card, trying to use fallback SPROM
[   24.259488] bcma-pci-bridge 0000:05:00.0: bus0: Using fallback SPROM failed (err -2)
[   24.259489] bcma-pci-bridge 0000:05:00.0: bus0: No SPROM available
[   24.262041] bcma-pci-bridge 0000:05:00.0: bus0: Bus registered


I tried emerging the broadcom-sta package and a variety of kernel module settings., and at one point I think the "wl" module showed up in lsmod output, and "eth3" showed up as a new device (surprisingly not wlan0) ... but the interface wasn't coming up... Most recently, I've tried the b43 driver without success... I also think I may be getting confused between "firmware" "kernel module" and "driver" and which of these comes from kernel settings vs emerging external packages...

Can someone give me a little more detail on what I need to turn on and off in the kernel for wifi, what other packages (like broadcom-sta?) I might need to emerge, and what was meant by "Edit: I just had to disable B4xxx drivers that were conflicting" ?? Does that mean disable by blacklisting? or turn them off in the kernel config?...

Thank you


Last edited by brendlefly62 on Tue Nov 14, 2023 11:09 pm; edited 2 times in total
Back to top
View user's profile Send private message
usr99
n00b
n00b


Joined: 19 Aug 2021
Posts: 38
Location: on the ethernet

PostPosted: Mon Oct 30, 2023 6:42 pm    Post subject: Reply with quote

EDITED

do you have the proprietary firmware files installed in modules folder?
Back to top
View user's profile Send private message
brendlefly62
Apprentice
Apprentice


Joined: 19 Dec 2009
Posts: 156

PostPosted: Mon Oct 30, 2023 7:51 pm    Post subject: Reply with quote

Hi, usr99. Like I said, I'm somewhat confused about references to "firmware" "kernel module" and "driver" and which of these comes from kernel settings vs emerging external packages...

The answer is "Yes," if you are talking about wl.ko
Code:
# equery b /lib/modules/6.1.57-gentoo/extra/wl.ko
 * Searching for /lib/modules/6.1.57-gentoo/extra/wl.ko ...
net-wireless/broadcom-sta-6.30.223.271-r7 (/lib/modules/6.1.57-gentoo/extra/wl.ko)

dmesg includes notices to this tainting the kernel...
Code:
# dmesg | grep wl
[   24.176196] wl: loading out-of-tree module taints kernel.
[   24.176200] wl: module license 'MIXED/Proprietary' taints kernel.

If wl.ko from broadcom-sta was not what you are talking about, what was? (and where would I get it?)
Here's everything else I do have there...
Code:
# tree /lib/modules/6.1.57-gentoo
/lib/modules/6.1.57-gentoo
|-- build -> /usr/src/linux-6.1.57-gentoo
|-- extra
|   `-- wl.ko
|-- kernel
|   |-- drivers
|   |   |-- base
|   |   |   `-- regmap
|   |   |       `-- regmap-i2c.ko
|   |   |-- bcma
|   |   |   `-- bcma.ko
|   |   |-- block
|   |   |   `-- nbd.ko
|   |   |-- bluetooth
|   |   |   |-- bluecard_cs.ko
|   |   |   |-- bt3c_cs.ko
|   |   |   |-- dtl1_cs.ko
|   |   |   `-- virtio_bt.ko
|   |   |-- cpufreq
|   |   |   |-- p4-clockmod.ko
|   |   |   `-- speedstep-lib.ko
|   |   |-- firewire
|   |   |   |-- firewire-core.ko
|   |   |   `-- firewire-ohci.ko
|   |   |-- gpu
|   |   |   `-- drm
|   |   |       `-- i2c
|   |   |           |-- ch7006.ko
|   |   |           `-- sil164.ko
|   |   |-- mfd
|   |   |   `-- bcm590xx.ko
|   |   |-- net
|   |   |   |-- hyperv
|   |   |   |   `-- hv_netvsc.ko
|   |   |   `-- wireless
|   |   |       |-- intersil
|   |   |       |   `-- hostap
|   |   |       |       `-- hostap.ko
|   |   |       |-- ralink
|   |   |       |   `-- rt2x00
|   |   |       |       |-- rt2500usb.ko
|   |   |       |       |-- rt2800lib.ko
|   |   |       |       |-- rt2800usb.ko
|   |   |       |       |-- rt2x00lib.ko
|   |   |       |       |-- rt2x00usb.ko
|   |   |       |       `-- rt73usb.ko
|   |   |       `-- realtek
|   |   |           |-- rtl818x
|   |   |           |   |-- rtl8180
|   |   |           |   |   `-- rtl818x_pci.ko
|   |   |           |   `-- rtl8187
|   |   |           |       `-- rtl8187.ko
|   |   |           |-- rtl8xxxu
|   |   |           |   `-- rtl8xxxu.ko
|   |   |           `-- rtlwifi
|   |   |               |-- btcoexist
|   |   |               |   `-- btcoexist.ko
|   |   |               |-- rtl8188ee
|   |   |               |   `-- rtl8188ee.ko
|   |   |               |-- rtl8192c
|   |   |               |   `-- rtl8192c-common.ko
|   |   |               |-- rtl8192ce
|   |   |               |   `-- rtl8192ce.ko
|   |   |               |-- rtl8192cu
|   |   |               |   `-- rtl8192cu.ko
|   |   |               |-- rtl8192de
|   |   |               |   `-- rtl8192de.ko
|   |   |               |-- rtl8192ee
|   |   |               |   `-- rtl8192ee.ko
|   |   |               |-- rtl8192se
|   |   |               |   `-- rtl8192se.ko
|   |   |               |-- rtl8723ae
|   |   |               |   `-- rtl8723ae.ko
|   |   |               |-- rtl8723be
|   |   |               |   `-- rtl8723be.ko
|   |   |               |-- rtl8723com
|   |   |               |   `-- rtl8723-common.ko
|   |   |               |-- rtl8821ae
|   |   |               |   `-- rtl8821ae.ko
|   |   |               |-- rtl_pci.ko
|   |   |               |-- rtl_usb.ko
|   |   |               `-- rtlwifi.ko
|   |   |-- pcmcia
|   |   |   |-- pcmcia.ko
|   |   |   |-- pcmcia_core.ko
|   |   |   `-- pcmcia_rsrc.ko
|   |   |-- platform
|   |   |   `-- x86
|   |   |       |-- acer-wmi.ko
|   |   |       |-- asus-laptop.ko
|   |   |       |-- compal-laptop.ko
|   |   |       |-- dell
|   |   |       |   |-- alienware-wmi.ko
|   |   |       |   |-- dell-rbtn.ko
|   |   |       |   |-- dell-smbios.ko
|   |   |       |   |-- dell-smo8800.ko
|   |   |       |   |-- dell-wmi-aio.ko
|   |   |       |   |-- dell-wmi-descriptor.ko
|   |   |       |   |-- dell-wmi-led.ko
|   |   |       |   |-- dell-wmi-sysman
|   |   |       |   |   `-- dell-wmi-sysman.ko
|   |   |       |   |-- dell-wmi.ko
|   |   |       |   `-- dell_rbu.ko
|   |   |       |-- firmware_attributes_class.ko
|   |   |       |-- fujitsu-laptop.ko
|   |   |       |-- msi-laptop.ko
|   |   |       |-- msi-wmi.ko
|   |   |       |-- panasonic-laptop.ko
|   |   |       |-- samsung-laptop.ko
|   |   |       |-- sony-laptop.ko
|   |   |       |-- topstar-laptop.ko
|   |   |       `-- toshiba_bluetooth.ko
|   |   |-- ssb
|   |   |   `-- ssb.ko
|   |   |-- staging
|   |   |   |-- r8188eu
|   |   |   |   `-- r8188eu.ko
|   |   |   |-- rtl8192e
|   |   |   |   |-- rtl8192e
|   |   |   |   |   `-- r8192e_pci.ko
|   |   |   |   |-- rtllib.ko
|   |   |   |   |-- rtllib_crypt_ccmp.ko
|   |   |   |   |-- rtllib_crypt_tkip.ko
|   |   |   |   `-- rtllib_crypt_wep.ko
|   |   |   |-- rtl8192u
|   |   |   |   `-- r8192u_usb.ko
|   |   |   |-- rtl8712
|   |   |   |   `-- r8712u.ko
|   |   |   `-- rtl8723bs
|   |   |       `-- r8723bs.ko
|   |   `-- target
|   |       `-- target_core_mod.ko
|   |-- fs
|   |   |-- dlm
|   |   |   `-- dlm.ko
|   |   |-- jfs
|   |   |   `-- jfs.ko
|   |   `-- ocfs2
|   |       `-- ocfs2_stack_user.ko
|   |-- lib
|   |   |-- crc7.ko
|   |   `-- crc8.ko
|   `-- net
|       |-- kcm
|       |   `-- kcm.ko
|       |-- mac80211
|       |   `-- mac80211.ko
|       |-- netfilter
|       |   `-- nfnetlink_hook.ko
|       `-- wireless
|           |-- cfg80211.ko
|           |-- lib80211.ko
|           |-- lib80211_crypt_ccmp.ko
|           |-- lib80211_crypt_tkip.ko
|           `-- lib80211_crypt_wep.ko
|-- modules.alias
|-- modules.alias.bin
|-- modules.builtin
|-- modules.builtin.alias.bin
|-- modules.builtin.bin
|-- modules.builtin.modinfo
|-- modules.dep
|-- modules.dep.bin
|-- modules.devname
|-- modules.order
|-- modules.softdep
|-- modules.symbols
|-- modules.symbols.bin
`-- source -> /usr/src/linux-6.1.57-gentoo

66 directories, 103 files


Note also that the kernel's own bcma-pci-bridge bus0 finds the 4352 chip, but fails to set it up...
Code:
# dmesg | grep bcma
[   24.114889] bcma-pci-bridge 0000:05:00.0: enabling device (0000 -> 0002)
[   24.114971] bcma-pci-bridge 0000:05:00.0: bus0: Found chip with id 0x4352, rev 0x03 and package 0x00
[   24.115008] bcma-pci-bridge 0000:05:00.0: bus0: Core 0 found: ChipCommon (manuf 0x4BF, id 0x800, rev 0x2B, class 0x0)
[   24.115029] bcma-pci-bridge 0000:05:00.0: bus0: Core 1 found: IEEE 802.11 (manuf 0x4BF, id 0x812, rev 0x2A, class 0x0)
[   24.115066] bcma-pci-bridge 0000:05:00.0: bus0: Core 2 found: ARM CR4 (manuf 0x4BF, id 0x83E, rev 0x02, class 0x0)
[   24.115107] bcma-pci-bridge 0000:05:00.0: bus0: Core 3 found: PCIe Gen2 (manuf 0x4BF, id 0x83C, rev 0x01, class 0x0)
[   24.115127] bcma-pci-bridge 0000:05:00.0: bus0: Core 4 found: USB 2.0 Device (manuf 0x4BF, id 0x81A, rev 0x11, class 0x0)
[   24.147805] bcma: Unsupported SPROM revision: 11
[   24.147808] bcma-pci-bridge 0000:05:00.0: bus0: Invalid SPROM read from the PCIe card, trying to use fallback SPROM
[   24.147809] bcma-pci-bridge 0000:05:00.0: bus0: Using fallback SPROM failed (err -2)
[   24.147811] bcma-pci-bridge 0000:05:00.0: bus0: No SPROM available
[   24.150289] bcma-pci-bridge 0000:05:00.0: bus0: Bus registered
Back to top
View user's profile Send private message
usr99
n00b
n00b


Joined: 19 Aug 2021
Posts: 38
Location: on the ethernet

PostPosted: Mon Oct 30, 2023 8:01 pm    Post subject: Reply with quote

brendlefly62 wrote:
Hi, usr99. Like I said, I'm somewhat confused about references to "firmware" "kernel module" and "driver" and which of these comes from kernel settings vs emerging external packages...

The answer is "Yes," if you are talking about wl.ko
Code:
# equery b /lib/modules/6.1.57-gentoo/extra/wl.ko
 * Searching for /lib/modules/6.1.57-gentoo/extra/wl.ko ...
net-wireless/broadcom-sta-6.30.223.271-r7 (/lib/modules/6.1.57-gentoo/extra/wl.ko)

dmesg includes notices to this tainting the kernel...
Code:
# dmesg | grep wl
[   24.176196] wl: loading out-of-tree module taints kernel.
[   24.176200] wl: module license 'MIXED/Proprietary' taints kernel.

If wl.ko from broadcom-sta was not what you are talking about, what was? (and where would I get it?)
Here's everything else I do have there...
Code:
# tree /lib/modules/6.1.57-gentoo
/lib/modules/6.1.57-gentoo
|-- build -> /usr/src/linux-6.1.57-gentoo
|-- extra
|   `-- wl.ko
|-- kernel
|   |-- drivers
|   |   |-- base
|   |   |   `-- regmap
|   |   |       `-- regmap-i2c.ko
|   |   |-- bcma
|   |   |   `-- bcma.ko
|   |   |-- block
|   |   |   `-- nbd.ko
|   |   |-- bluetooth
|   |   |   |-- bluecard_cs.ko
|   |   |   |-- bt3c_cs.ko
|   |   |   |-- dtl1_cs.ko
|   |   |   `-- virtio_bt.ko
|   |   |-- cpufreq
|   |   |   |-- p4-clockmod.ko
|   |   |   `-- speedstep-lib.ko
|   |   |-- firewire
|   |   |   |-- firewire-core.ko
|   |   |   `-- firewire-ohci.ko
|   |   |-- gpu
|   |   |   `-- drm
|   |   |       `-- i2c
|   |   |           |-- ch7006.ko
|   |   |           `-- sil164.ko
|   |   |-- mfd
|   |   |   `-- bcm590xx.ko
|   |   |-- net
|   |   |   |-- hyperv
|   |   |   |   `-- hv_netvsc.ko
|   |   |   `-- wireless
|   |   |       |-- intersil
|   |   |       |   `-- hostap
|   |   |       |       `-- hostap.ko
|   |   |       |-- ralink
|   |   |       |   `-- rt2x00
|   |   |       |       |-- rt2500usb.ko
|   |   |       |       |-- rt2800lib.ko
|   |   |       |       |-- rt2800usb.ko
|   |   |       |       |-- rt2x00lib.ko
|   |   |       |       |-- rt2x00usb.ko
|   |   |       |       `-- rt73usb.ko
|   |   |       `-- realtek
|   |   |           |-- rtl818x
|   |   |           |   |-- rtl8180
|   |   |           |   |   `-- rtl818x_pci.ko
|   |   |           |   `-- rtl8187
|   |   |           |       `-- rtl8187.ko
|   |   |           |-- rtl8xxxu
|   |   |           |   `-- rtl8xxxu.ko
|   |   |           `-- rtlwifi
|   |   |               |-- btcoexist
|   |   |               |   `-- btcoexist.ko
|   |   |               |-- rtl8188ee
|   |   |               |   `-- rtl8188ee.ko
|   |   |               |-- rtl8192c
|   |   |               |   `-- rtl8192c-common.ko
|   |   |               |-- rtl8192ce
|   |   |               |   `-- rtl8192ce.ko
|   |   |               |-- rtl8192cu
|   |   |               |   `-- rtl8192cu.ko
|   |   |               |-- rtl8192de
|   |   |               |   `-- rtl8192de.ko
|   |   |               |-- rtl8192ee
|   |   |               |   `-- rtl8192ee.ko
|   |   |               |-- rtl8192se
|   |   |               |   `-- rtl8192se.ko
|   |   |               |-- rtl8723ae
|   |   |               |   `-- rtl8723ae.ko
|   |   |               |-- rtl8723be
|   |   |               |   `-- rtl8723be.ko
|   |   |               |-- rtl8723com
|   |   |               |   `-- rtl8723-common.ko
|   |   |               |-- rtl8821ae
|   |   |               |   `-- rtl8821ae.ko
|   |   |               |-- rtl_pci.ko
|   |   |               |-- rtl_usb.ko
|   |   |               `-- rtlwifi.ko
|   |   |-- pcmcia
|   |   |   |-- pcmcia.ko
|   |   |   |-- pcmcia_core.ko
|   |   |   `-- pcmcia_rsrc.ko
|   |   |-- platform
|   |   |   `-- x86
|   |   |       |-- acer-wmi.ko
|   |   |       |-- asus-laptop.ko
|   |   |       |-- compal-laptop.ko
|   |   |       |-- dell
|   |   |       |   |-- alienware-wmi.ko
|   |   |       |   |-- dell-rbtn.ko
|   |   |       |   |-- dell-smbios.ko
|   |   |       |   |-- dell-smo8800.ko
|   |   |       |   |-- dell-wmi-aio.ko
|   |   |       |   |-- dell-wmi-descriptor.ko
|   |   |       |   |-- dell-wmi-led.ko
|   |   |       |   |-- dell-wmi-sysman
|   |   |       |   |   `-- dell-wmi-sysman.ko
|   |   |       |   |-- dell-wmi.ko
|   |   |       |   `-- dell_rbu.ko
|   |   |       |-- firmware_attributes_class.ko
|   |   |       |-- fujitsu-laptop.ko
|   |   |       |-- msi-laptop.ko
|   |   |       |-- msi-wmi.ko
|   |   |       |-- panasonic-laptop.ko
|   |   |       |-- samsung-laptop.ko
|   |   |       |-- sony-laptop.ko
|   |   |       |-- topstar-laptop.ko
|   |   |       `-- toshiba_bluetooth.ko
|   |   |-- ssb
|   |   |   `-- ssb.ko
|   |   |-- staging
|   |   |   |-- r8188eu
|   |   |   |   `-- r8188eu.ko
|   |   |   |-- rtl8192e
|   |   |   |   |-- rtl8192e
|   |   |   |   |   `-- r8192e_pci.ko
|   |   |   |   |-- rtllib.ko
|   |   |   |   |-- rtllib_crypt_ccmp.ko
|   |   |   |   |-- rtllib_crypt_tkip.ko
|   |   |   |   `-- rtllib_crypt_wep.ko
|   |   |   |-- rtl8192u
|   |   |   |   `-- r8192u_usb.ko
|   |   |   |-- rtl8712
|   |   |   |   `-- r8712u.ko
|   |   |   `-- rtl8723bs
|   |   |       `-- r8723bs.ko
|   |   `-- target
|   |       `-- target_core_mod.ko
|   |-- fs
|   |   |-- dlm
|   |   |   `-- dlm.ko
|   |   |-- jfs
|   |   |   `-- jfs.ko
|   |   `-- ocfs2
|   |       `-- ocfs2_stack_user.ko
|   |-- lib
|   |   |-- crc7.ko
|   |   `-- crc8.ko
|   `-- net
|       |-- kcm
|       |   `-- kcm.ko
|       |-- mac80211
|       |   `-- mac80211.ko
|       |-- netfilter
|       |   `-- nfnetlink_hook.ko
|       `-- wireless
|           |-- cfg80211.ko
|           |-- lib80211.ko
|           |-- lib80211_crypt_ccmp.ko
|           |-- lib80211_crypt_tkip.ko
|           `-- lib80211_crypt_wep.ko
|-- modules.alias
|-- modules.alias.bin
|-- modules.builtin
|-- modules.builtin.alias.bin
|-- modules.builtin.bin
|-- modules.builtin.modinfo
|-- modules.dep
|-- modules.dep.bin
|-- modules.devname
|-- modules.order
|-- modules.softdep
|-- modules.symbols
|-- modules.symbols.bin
`-- source -> /usr/src/linux-6.1.57-gentoo

66 directories, 103 files


Note also that the kernel's own bcma-pci-bridge bus0 finds the 4352 chip, but fails to set it up...
Code:
# dmesg | grep bcma
[   24.114889] bcma-pci-bridge 0000:05:00.0: enabling device (0000 -> 0002)
[   24.114971] bcma-pci-bridge 0000:05:00.0: bus0: Found chip with id 0x4352, rev 0x03 and package 0x00
[   24.115008] bcma-pci-bridge 0000:05:00.0: bus0: Core 0 found: ChipCommon (manuf 0x4BF, id 0x800, rev 0x2B, class 0x0)
[   24.115029] bcma-pci-bridge 0000:05:00.0: bus0: Core 1 found: IEEE 802.11 (manuf 0x4BF, id 0x812, rev 0x2A, class 0x0)
[   24.115066] bcma-pci-bridge 0000:05:00.0: bus0: Core 2 found: ARM CR4 (manuf 0x4BF, id 0x83E, rev 0x02, class 0x0)
[   24.115107] bcma-pci-bridge 0000:05:00.0: bus0: Core 3 found: PCIe Gen2 (manuf 0x4BF, id 0x83C, rev 0x01, class 0x0)
[   24.115127] bcma-pci-bridge 0000:05:00.0: bus0: Core 4 found: USB 2.0 Device (manuf 0x4BF, id 0x81A, rev 0x11, class 0x0)
[   24.147805] bcma: Unsupported SPROM revision: 11
[   24.147808] bcma-pci-bridge 0000:05:00.0: bus0: Invalid SPROM read from the PCIe card, trying to use fallback SPROM
[   24.147809] bcma-pci-bridge 0000:05:00.0: bus0: Using fallback SPROM failed (err -2)
[   24.147811] bcma-pci-bridge 0000:05:00.0: bus0: No SPROM available
[   24.150289] bcma-pci-bridge 0000:05:00.0: bus0: Bus registered


edited,

You should have both linux driver and the Broadcom firmware files, or install the non-free driver containing these.
do you have firmware files named b43* or similiar in your modules folder?

last time I installed for BCM4321 on another linux distro, I had to extract (with bcm43fwcutter) the proprietary firmware files from the windows driver and manually place them in the modules folder, they're around 5-8 files so if you don't have them it won't work.


Last edited by usr99 on Mon Oct 30, 2023 8:19 pm; edited 1 time in total
Back to top
View user's profile Send private message
pietinger
Moderator
Moderator


Joined: 17 Oct 2006
Posts: 5371
Location: Bavaria

PostPosted: Mon Oct 30, 2023 8:16 pm    Post subject: Reply with quote

brendlefly62,

Have you emerged package "net-wireless/broadcom-sta" ?

If not please do.

Have a configured in your kernel the Broadcom driver as <M>odule ?

If not please do.


The difference between firmware and kernel module is:

A kernel module is part of the kernel ... and can be an external module (you will find in /lib/modules) ... or it can be included in the kernel (when you configure a kernel option with <*>). Some of these modules are just driver-modules for some hardware. Yes, every driver is a module.

Some drivers / modules need an additional software from the manufactor - the firmware (you will find in /lib/firmware). Yes, every kernel module which needs a firmware MUST have access to /lib/firmware ... please read this short chapter: https://wiki.gentoo.org/wiki/User:Pietinger/Tutorials/Manual_kernel_configuration#Driver_needs_Firmware


P.S.: This link is outdated - please dont use it: https://wireless.wiki.kernel.org/en/users/drivers/b43#Supported_devices
Back to top
View user's profile Send private message
pietinger
Moderator
Moderator


Joined: 17 Oct 2006
Posts: 5371
Location: Bavaria

PostPosted: Mon Oct 30, 2023 8:31 pm    Post subject: Reply with quote

P.S. Kernel config ...

If you have enabled this (maybe also as <M>odule):
Code:
[*] Networking support  --->
    [*]   Wireless  --->
        --- Wireless
        [*]   cfg80211 - wireless configuration API
        [*]     enable powersave by default
        [*]     support CRDA
        [*]   Generic IEEE 802.11 Networking Stack (mac80211)
        [*]   Minstrel

... then enable BOTH as Module and read the <Help> of both modules.
Code:
Device Drivers  --->
    [*] Network device support  --->
        [*]   Wireless LAN  --->
            [*]   Broadcom devices (NEW)
            [M]     Broadcom 43xx wireless support (mac80211 stack)
            [M]     Broadcom 43xx-legacy wireless support (mac80211 stack)
Back to top
View user's profile Send private message
brendlefly62
Apprentice
Apprentice


Joined: 19 Dec 2009
Posts: 156

PostPosted: Tue Oct 31, 2023 12:11 am    Post subject: Reply with quote

Thanks, usr99 and pietinger. To clarify my current status, I re-started the broadcom-sta approach that had worked for pranavpalliyil. I also emerged b43-firmware.

Thank you pietinger, for the tutorial on kernel modules and drivers - it is excellent, and I will definitely study it further.

usr99 asked
Quote:
do you have firmware files named b43* or similiar in your modules folder?
-- No. I have wl.ko (from net-wireless/broadcom-sta) in /lib/modules (see tree in previous post), and I have 117 files "*.fw" in /lib/firmware/b43/ (from sys-firmware/b43-firmware).

pietinger asked
Quote:
Have you emerged package "net-wireless/broadcom-sta" ?
Yes. You also asked
Quote:
Have a configured in your kernel the Broadcom driver as <M>odule ?
My kernel config is similar to your edit...Networking Options
Code:
 --- Wireless                                                                 
        <M>   cfg80211 - wireless configuration API
        [*]     enable powersave by default
        [*]     support CRDA
        -*-     cfg80211 wireless extensions compatibility 
        <M>   Generic IEEE 802.11 Networking Stack (mac80211)
        [*]   Minstrel
              Default rate control algorithm (Minstrel)  ---> 
        [*]   Enable mac80211 mesh networking support   
        [*]   Enable LED triggers

However, when I first emerged broadcom-sta, I observed this warning in build-log output
Code:
*  net-wireless:broadcom-sta-6.30.223.271-r7:20231030-185351.log
ERROR: setup
  BCMA: If you insist on building this, you must blacklist it!
  SSB: If you insist on building this, you must blacklist it!
  MAC80211: If you insist on building this, you must blacklist it!
WARN: setup
Please check to make sure these options are set correctly.
Failure to do so may cause unexpected problems.
So, I have the kernel configured as below --
Device Drivers --> Wireless LAN
Code:

       [*]   Broadcom devices
         < >     Broadcom 43xx wireless support (mac80211 stack)
         < >     Broadcom 43xx-legacy wireless support (mac80211 stack)
         < >     Broadcom IEEE802.11n PCIe SoftMAC WLAN driver


Current status - after boot, I can run
Code:
modprobe wl
lsmod
Module                  Size  Used by
wl                   6369280  0
cfg80211              892928  1 wl

ifconfig -a   ### and I notice a new interface "eth3" available, but not "up"

[Edit: I discovered the file /etc/modprobe.d/wl.conf installed by broadcom-sta and noticed it creates an alias "wl" for the name "wlan0" -- which isn't in use, so I edited as follows]
Code:
#  cat /etc/modprobe.d/wl.conf
# modprobe.d configuration file for WL

# Internal Aliases - Do not edit
# ------------------------------
#alias wlan0 wl  ### I commented this out
alias eth3 wl


# Configurable module parameters
# ------------------------------
# passivemode:   (int)
# wl_txq_thresh:         (int)
# oneonly:       (int)
# piomode:       (int)
# instance_base:         (int)
# nompc:         (int)
# intf_name:     (string)

Before I made that change, I could bring eth3 to "UP" status with the command "ifconfig eth3 up" ... Now, after boot, the interface eth0 shows up this way, as "UP" but has only an inet6 address...
Code:
    ### and I notice eth3 has acquired an inet6 address but no inet (ipv4) address (all rx/tx still 0)
eth3: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet6 fe80::5627:1eff:xxxx:nnnn  prefixlen 64  scopeid 0x20<link>
        ether 54:27:1e:ef:96:b5  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 16
However, I've discovered that if I execute the following, I can bring it up manually...
Code:
killall wpa_supplicant
killall dhcpcd
ifconfig eth3 down
rfkill unblock $(rfkill list | grep -i wireless | cut -d':' -f1)
ifconfig eth3 up
wpa_supplicant -Dwext -ieth3 -c /etc/wpa_supplicant/wpa_supplicant.conf -B > /dev/null

Where wpa_supplicant is
Code:
# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers
ctrl_interface_group=0
ctrl_interface=/run/wpa_supplicant
ap_scan=1
update_config=1
#...
network={
        ssid="XXXXXXX"
        psk=<hashofmypassphrase>
        priority=5
        disabled=0
}
Note: this doesnlt work if I try "wl" or "nl80211" as the drivername for wpa_supplicant...only wext works.
The result is
Code:
eth3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.xxx.nnn  netmask 255.255.255.0  broadcast 192.168.xxx.255
        inet6 fe80::5627:1eff:xxxx:nnnn  prefixlen 64  scopeid 0x20<link>
        ether 54:27:1e:ef:96:b5  txqueuelen 1000  (Ethernet)
        RX packets 8  bytes 1356 (1.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 205
        TX packets 21  bytes 2358 (2.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 16
And continutity and name service are working
Code:
$ ping yahoo.com
PING yahoo.com (98.137.11.164) 56(84) bytes of data.
64 bytes from media-router-fp73.prod.media.vip.gq1.yahoo.com (98.137.11.164): icmp_seq=1 ttl=54 time=70.7 ms
64 bytes from media-router-fp73.prod.media.vip.gq1.yahoo.com (98.137.11.164): icmp_seq=2 ttl=54 time=71.3 ms
64 bytes from media-router-fp73.prod.media.vip.gq1.yahoo.com (98.137.11.164): icmp_seq=3 ttl=53 time=68.3 ms
64 bytes from media-router-fp73.prod.media.vip.gq1.yahoo.com (98.137.11.164): icmp_seq=4 ttl=54 time=70.0 ms
64 bytes from media-router-fp73.prod.media.vip.gq1.yahoo.com (98.137.11.164): icmp_seq=5 ttl=53 time=79.6 ms
^C
--- yahoo.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 8090ms
rtt min/avg/max/mdev = 68.326/71.985/79.587/3.929 ms


One more data point - I reviewed this guide https://jimbob88.github.io/gentoo/broadcom_wifi_drivers.html and confirmed it matched the driver/firmware setup outlined above, and then I noted that it recommends using an OLD version of wpa_supplicant, because newer versions have a compaitibility problem with broadcom-sta ("Now for some bad news, the latest versions of wpa_supplicant (2.10 and 2.9 as of 2022) don't work well with broadcom-sta." And the author indicates the source of this insight is https://bugzilla.redhat.com/show_bug.cgi?id=1703745")... so I rebuilt un-installed wpa_supplicant-2.10-r3 and manually built wpa-supplicant-2.8 from scratch using upstream sources as described in this guide... it works. My system now boots up and cleanly connects to wifi using interface eth3 (netifrc, by the way).

Another note: I have yet to see if it will also work as an access point, using hostapd...

I still do not consider this a "solution" - more like when I get something working using coat hangers and duct tape... So, I still have questions --
I notice that "emerge broadcom-sta" automatically installs net-wireless/b43-fwcutter as a dependency -- but I've not had to use the binary executable /usr/bin/b43-fwcutter that it installed. Did I accomplish the equivalent by emerging sys-firmware/b43-firmware? (or do I need to search for a windows b4352 driver to extract with fwcutter and use that instead of b43-firmware??

Can the newer wpa_supplicant be fixed? why hasn't this been done already (in the four years since)? Can I submit a bug to (re)-energize that effort? (The one "jimbob" references was marked closed "not a bug" by red hat...)

Why the interface is named "eth3" instead of "wlan0" [I have net.ifnames=0 in kernel cli, and I do have three ethernet nics (eth0, 1, and 2; but normally wireless devices are assigned "wlanN"...]

And am I correct that as it stands, I am using (via net-wireless/broadcom-sta) a proprietary kernel module/driver called "wl.ko" in /lib/modules/... as well as some proprietary firmware (via sys-firmware/b43-firmware) in /lib/firmware/... AND an in-kernel driver called "wext" ??
Back to top
View user's profile Send private message
pietinger
Moderator
Moderator


Joined: 17 Oct 2006
Posts: 5371
Location: Bavaria

PostPosted: Tue Oct 31, 2023 9:42 am    Post subject: Reply with quote

brendlefly62,

maybe some informations you have read are outdated (please note that the thread of your first post: https://forums.gentoo.org/viewtopic-t-1143777.html is two years old). Also this article: https://jimbob88.github.io/gentoo/broadcom_wifi_drivers.html is one year old (Kernel 5.16). If you read the <Help> of "Broadcom 43xx wireless support (mac80211 stack)" it says today (kernel 6.1):
Quote:
[...]
It is safe to include both b43 and b43legacy as the underlying glue
layer will automatically load the correct version for your device.

This driver uses V4 firmware, which must be installed separately using
b43-fwcutter.
[...]

Maybe also the warning you get when you emerge broadcom-sta is outdated (for example today you will need LPSS if you have a notebook).

After enabling this kernel module you will get enabled automatically other necessary options:
Quote:
Selects: BCMA [=n] && SSB [=n] && FW_LOADER [=y] && CORDIC [=n]


I would try to enable both (as module) and install Firmware with b43-fwcutter.
Back to top
View user's profile Send private message
usr99
n00b
n00b


Joined: 19 Aug 2021
Posts: 38
Location: on the ethernet

PostPosted: Tue Oct 31, 2023 5:00 pm    Post subject: Reply with quote

so, b43fwcutter is just a command line file extraction tool, you can remove it afterwardsand don't need it for wireless function.
you need the BCM4352 windows driver, which contains the firmware files, and extract these with fwcutter, then place them in modules dir.
and see what the output of the linux driver shows.
the linux driver uses the firmware files to function, that's how it works.
you said it's an ASUS, so look into the asus provided cd or their website if you can't find an original copy of the driver. or look into other oem like DeLL or others.
Or kindly ask Broadcom to provide either the windows drivers or the files, give them the serial number of the chip or card
Back to top
View user's profile Send private message
brendlefly62
Apprentice
Apprentice


Joined: 19 Dec 2009
Posts: 156

PostPosted: Tue Oct 31, 2023 6:01 pm    Post subject: Reply with quote

Thanks, pietinger. OK - I have rebuilt my kernel according to your advice --
Code:
          [*]   Broadcom devices                                                             
            <M>     Broadcom 43xx wireless support (mac80211 stack)                             
                    Supported bus types (BCMA and SSB)  --->                                     
            [*]     Broadcom 43xx SDIO device support                                           
            [*]     Support for G-PHY (802.11g) devices (NEW)                                   
            [*]     Support for N-PHY (the main 802.11n series) devices (NEW)                   
            [*]     Support for LP-PHY (low-power 802.11g) devices (NEW)                         
            [*]     Support for HT-PHY (high throughput 802.11n) devices (NEW)                   
            [ ]     Broadcom 43xx debugging (NEW)                                               
            <M>     Broadcom 43xx-legacy wireless support (mac80211 stack)                       
            [ ]       Broadcom 43xx-legacy debugging                                             
                      Broadcom 43xx-legacy data transfer mode (DMA + PIO)  --->                 
            <M>     Broadcom IEEE802.11n PCIe SoftMAC WLAN driver                               
            <M>     Broadcom FullMAC WLAN driver                                                 
            [*]     SDIO bus interface support for FullMAC driver (NEW)                         
            [ ]     USB bus interface support for FullMAC driver (NEW)                           
            [*]     PCIE bus interface support for FullMAC driver                               
            [ ]     Broadcom device tracing (NEW)                                               
            [ ]     Broadcom driver debug functions (NEW)


I also retreived the proprietary firmware and used b43-fwcutter to install it --
Code:
$ wget http://www.lwfinger.com/b43-firmware/broadcom-wl-6.30.163.46.tar.bz2
$ tar -xvjpf broadcom-wl-6.30.163.46.tar.bz2
broadcom-wl-6.30.163.46.wl_apsta.o

# b43-fwcutter -w /lib/firmware broadcom-wl-6.30.163.46.wl_apsta.o
This file is recognised as:
  filename   :  wl_apsta.o
  version    :  784.2
  MD5        :  29c8a47094fbae342902d84881a465ff
Extracting b43/lcn1bsinitvals26.fw
Extracting b43/n0bsinitvals22.fw
Extracting b43/lcn0bsinitvals26.fw
Extracting b43/ac1bsinitvals42.fw
...
Extracting b43/ht0bsinitvals29.fw
Extracting b43/ucode21_sslpn.fw
  ucode time:     21:35:19
Extracting b43/sslpn1initvals20.fw
Extracting b43/sslpn0initvals16.fw
Extracting b43/lcn0initvals26.fw
Extracting b43/ucode27_sslpn.fw
Extracting b43/ucode29_mimo.fw
Extracting b43/ucode21_sslpn_nobt.fw
  ucode time:     21:35:19
Extracting b43/lp0initvals15.fw
Extracting b43/ucode19_sslpn.fw
Extracting b43/lcn1bsinitvals24.fw
Extracting b43/lcn401bsinitvals33.fw
Extracting b43/lp0bsinitvals14.fw
Extracting b43/ucode16_sslpn_nobt.fw
  ucode date:     2012-08-15
Extracting b43/n16bsinitvals30.fw
Extracting b43/a0g1bsinitvals13.fw
Extracting b43/lcn402bsinitvals33.fw
...
Extracting b43/ucode5.fw
Extracting b43/ucode22_mimo.fw


However, I find that no wireless interface exists unless I blacklist at least bcma in /etc/modprobe.d/blacklist.conf.

If I blacklist nothing, then in addition to wl and cfg80211, all four of the warning subjects show up in lsmod (loaded by kernel during boot), with bcma, mac80211, and ssb indicating they are there because they are used by b43 -- and no wifi interface is available.

If I blacklist only b43, then bcma still shows up -- and still no wifi interface is available.

If I blacklist bcma, then b43 which needs to use bcma) is not loaded, nor are ssb nor mac80211 (which b43 would need).
Code:
# lsmod
Module                  Size  Used by
wl                   6369280  0
cfg80211              892928  1 wl

I then find that with these evidently conflicting driver modules blacklisted, the "eth3" interface does show up, but it still is not automatically assigned an ipv4 address -- I can manually make that happen with the procedure described previously.

And - also still find that only if I revert to wpa_supplicant-2.8, will the system smoothly start networking using interface eth3, when it is activated by the default runlevel buring bootup -- /etc/init.d/net.eth3
Code:
 ifconfig
eth3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.xxx.nnn  netmask 255.255.255.0  broadcast 192.168.xxx.255
        inet6 fe80::5627:1eff:xxxx:nnnn  prefixlen 64  scopeid 0x20<link>
        ether 54:27:1e:ef:xx:nn  txqueuelen 1000  (Ethernet)
        RX packets 157  bytes 35091 (34.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 817
        TX packets 88  bytes 13819 (13.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 16

Here is what shows up in dmesg for broadcom-sta (wl) --
Code:
[   24.151388] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[   24.152564] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[   24.152572] Loading firmware: regulatory.db
[   24.153376] Loading firmware: regulatory.db.p7s
[   24.162859] wl: loading out-of-tree module taints kernel.
[   24.162864] wl: module license 'MIXED/Proprietary' taints kernel.
[   24.162864] Disabling lock debugging due to kernel taint
[   24.165984] wl 0000:05:00.0: enabling device (0000 -> 0002)
[   24.182784] eth3: Broadcom BCM43b1 802.11 Hybrid Wireless Controller 6.30.223.271 (r587334)
This looks to me like wl is only using the regdb firmware, and none of the files I installed with fwcutter... Note that I tried blacklisting wl and loading b43 instead, and that doesn't even activate an interface -- here's what dmesg looked like for b43 --
Code:
[   24.185987] bcma-pci-bridge 0000:05:00.0: enabling device (0000 -> 0002)
[   24.186069] bcma-pci-bridge 0000:05:00.0: bus0: Found chip with id 0x4352, rev 0x03 and package 0x00
[   24.186105] bcma-pci-bridge 0000:05:00.0: bus0: Core 0 found: ChipCommon (manuf 0x4BF, id 0x800, rev 0x2B, class 0x0)
[   24.186124] bcma-pci-bridge 0000:05:00.0: bus0: Core 1 found: IEEE 802.11 (manuf 0x4BF, id 0x812, rev 0x2A, class 0x0)
[   24.186159] bcma-pci-bridge 0000:05:00.0: bus0: Core 2 found: ARM CR4 (manuf 0x4BF, id 0x83E, rev 0x02, class 0x0)
[   24.186196] bcma-pci-bridge 0000:05:00.0: bus0: Core 3 found: PCIe Gen2 (manuf 0x4BF, id 0x83C, rev 0x01, class 0x0)
[   24.186216] bcma-pci-bridge 0000:05:00.0: bus0: Core 4 found: USB 2.0 Device (manuf 0x4BF, id 0x81A, rev 0x11, class 0x0)
[   24.218901] bcma: Unsupported SPROM revision: 11
[   24.218904] bcma-pci-bridge 0000:05:00.0: bus0: Invalid SPROM read from the PCIe card, trying to use fallback SPROM
[   24.218906] bcma-pci-bridge 0000:05:00.0: bus0: Using fallback SPROM failed (err -2)
[   24.218907] bcma-pci-bridge 0000:05:00.0: bus0: No SPROM available
[   24.221323] bcma-pci-bridge 0000:05:00.0: bus0: Bus registered
[   24.233732] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[   24.234983] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[   24.234991] Loading firmware: regulatory.db
[   24.235906] Loading firmware: regulatory.db.p7s
[   24.251082] b43-phy0: Broadcom 4352 WLAN found (core revision 42)
[   24.251259] b43-phy0 ERROR: FOUND UNSUPPORTED PHY (Analog 12, Type 11 (AC), Revision 1)
[   24.251262] b43: probe of bcma0:1 failed with error -95
[   24.251272] Broadcom 43xx driver loaded [ Features: PNLS ]
Note the Invalid SPROM stuff...

So, despite these changes to the kernel and the use of fwcutter to install proprietary firmwares, I have the same residual status as before, and the same residual questions regarding what to do about it. :?

One additional point/question for usr99 -- you mentioned needing a **windows** driver, but the b43-fwcutter seems to have been looking specifically for the file apsta.o ... in my searching, I did first go to ASUS' website, and I did find drivers for Windows --
Code:
$ wget 'https://dlcdnets.asus.com/pub/ASUS/misc/wireless/WIFI_Win7-8-81-10_V6342235_7353171.zip?model=Z97-PRO(Wi-Fi%20ac)' -O WIFI_Win7-8-81-10_V6342235_7353171.zip
$ unzip WIFI_Win7-8-81-10_V6342235_7353171.zip
Archive:  WIFI_Win7-8-81-10_V6342235_7353171.zip
   creating: WIFI_Win7-8-81-10_V6342235_7353171/
  inflating: WIFI_Win7-8-81-10_V6342235_7353171/AsusSetup.exe 
  inflating: WIFI_Win7-8-81-10_V6342235_7353171/AsusSetup.exe.manifest
  inflating: WIFI_Win7-8-81-10_V6342235_7353171/AsusSetup.ini 
   creating: WIFI_Win7-8-81-10_V6342235_7353171/Win10/
   creating: WIFI_Win7-8-81-10_V6342235_7353171/Win10/32bit/
...
   creating: WIFI_Win7-8-81-10_V6342235_7353171/Win10/64bit/
...
   creating: WIFI_Win7-8-81-10_V6342235_7353171/Win10/64bit/Driver/
  inflating: WIFI_Win7-8-81-10_V6342235_7353171/Win10/64bit/Driver/bcm43xx.cat
  inflating: WIFI_Win7-8-81-10_V6342235_7353171/Win10/64bit/Driver/bcm43xx64.cat
  inflating: WIFI_Win7-8-81-10_V6342235_7353171/Win10/64bit/Driver/bcmihvsrv.dll
  inflating: WIFI_Win7-8-81-10_V6342235_7353171/Win10/64bit/Driver/bcmihvsrv64.dll
  inflating: WIFI_Win7-8-81-10_V6342235_7353171/Win10/64bit/Driver/bcmihvui.dll
  inflating: WIFI_Win7-8-81-10_V6342235_7353171/Win10/64bit/Driver/bcmihvui64.dll
  inflating: WIFI_Win7-8-81-10_V6342235_7353171/Win10/64bit/Driver/bcmwl63.inf
  inflating: WIFI_Win7-8-81-10_V6342235_7353171/Win10/64bit/Driver/bcmwl63.sys
  inflating: WIFI_Win7-8-81-10_V6342235_7353171/Win10/64bit/Driver/bcmwl63a.sys
... 
  inflating: WIFI_Win7-8-81-10_V6342235_7353171/Win81/TChinese.ini
Is this the "windows drivers" you were referring to? and if so, how does one wrap the .inf, .dll, .sys files for use in the linux environment - is that done with NDISwrapper or something? (is there a tutorial/howto I could study?)

Last edited by brendlefly62 on Tue Nov 14, 2023 11:27 pm; edited 1 time in total
Back to top
View user's profile Send private message
pietinger
Moderator
Moderator


Joined: 17 Oct 2006
Posts: 5371
Location: Bavaria

PostPosted: Thu Nov 02, 2023 12:42 pm    Post subject: Reply with quote

brendlefly62,

I would like to ask if you have extracted the files into /lib/firmware ? (*)

I ask because
Code:
[   24.218906] bcma-pci-bridge 0000:05:00.0: bus0: Using fallback SPROM failed (err -2)

RC -2 means: "ENOENT, No such file or directory"

*) It looks like it was extracted to your PWD (current working directory)
Code:
# b43-fwcutter -w /lib/firmware broadcom-wl-6.30.163.46.wl_apsta.o
This file is recognised as:
  filename   :  wl_apsta.o
  version    :  784.2
  MD5        :  29c8a47094fbae342902d84881a465ff
Extracting b43/lcn1bsinitvals26.fw
Extracting b43/n0bsinitvals22.fw
[...]



(By the way I would like to say that I am not a broadcom expert)
Back to top
View user's profile Send private message
brendlefly62
Apprentice
Apprentice


Joined: 19 Dec 2009
Posts: 156

PostPosted: Fri Nov 03, 2023 1:12 am    Post subject: Reply with quote

Hi, pietinger. Yes. According to b43-fwcutter, "-w" identifies the target directory. I checked in /lib/firmware/b43 -- and I found many files freshly extracted there. I also re-ran the procedure to verify these files came from fwcutter and not from net-wireless/b43-firmware...
Code:
 # date
Thu Nov  2 08:04:43 PM EDT 2023

 # b43-fwcutter -w /lib/firmware broadcom-wl-6.30.163.46.wl_apsta.o
This file is recognised as:
  filename   :  wl_apsta.o
  version    :  784.2
  MD5        :  29c8a47094fbae342902d84881a465ff
Extracting b43/lcn1bsinitvals26.fw
Extracting b43/n0bsinitvals22.fw
Extracting b43/lcn0bsinitvals26.fw
...
Extracting b43/a0g0bsinitvals5.fw
Extracting b43/ucode9.fw
Extracting b43/ucode5.fw
Extracting b43/ucode22_mimo.fw

# cd /lib/firmware/b43/
# ls -alrt
total 1300
drwxr-xr-x 82 root root 20480 Oct 31 12:02 ..
drwxr-x---  2 root root 12288 Oct 31 13:04 .
-rw-r--r--  1 root root 39976 Nov  2 20:09 ucode24_mimo.fw
-rw-r--r--  1 root root 35106 Nov  2 20:09 ucode24_lcn.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 n20initvals36.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 n0bsinitvals22.fw
-rw-r--r--  1 root root   178 Nov  2 20:09 lcn1bsinitvals26.fw
-rw-r--r--  1 root root   178 Nov  2 20:09 lcn0bsinitvals26.fw
-rw-r--r--  1 root root   178 Nov  2 20:09 ht0bsinitvals26.fw
-rw-r--r--  1 root root   368 Nov  2 20:09 ac1bsinitvals42.fw
-rw-r--r--  1 root root    12 Nov  2 20:09 ucode43.fw
-rw-r--r--  1 root root 43224 Nov  2 20:09 ucode29_mimo.fw
-rw-r--r--  1 root root     9 Nov  2 20:09 ucode27_sslpn.fw
-rw-r--r--  1 root root 34399 Nov  2 20:09 ucode25_lcn.fw
-rw-r--r--  1 root root     9 Nov  2 20:09 ucode22_sslpn.fw
-rw-r--r--  1 root root 29709 Nov  2 20:09 ucode21_sslpn_nobt.fw
-rw-r--r--  1 root root 29709 Nov  2 20:09 ucode21_sslpn.fw
-rw-r--r--  1 root root     9 Nov  2 20:09 ucode20_sslpn.fw
-rw-r--r--  1 root root     9 Nov  2 20:09 ucode19_sslpn.fw
-rw-r--r--  1 root root 29080 Nov  2 20:09 ucode15.fw
-rw-r--r--  1 root root   178 Nov  2 20:09 sslpn3bsinitvals21.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 sslpn1initvals20.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 sslpn1bsinitvals27.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 sslpn1bsinitvals20.fw
-rw-r--r--  1 root root  2830 Nov  2 20:09 sslpn0initvals16.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 n2bsinitvals19.fw
-rw-r--r--  1 root root  2500 Nov  2 20:09 n0initvals17.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 lp1bsinitvals20.fw
-rw-r--r--  1 root root  2830 Nov  2 20:09 lp0initvals16.fw
-rw-r--r--  1 root root  2642 Nov  2 20:09 lp0initvals15.fw
-rw-r--r--  1 root root   178 Nov  2 20:09 lp0bsinitvals13.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 lcn406initvals37.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 lcn405initvals35.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 lcn404initvals33.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 lcn404bsinitvals33.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 lcn403bsinitvals33.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 lcn402initvals33.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 lcn401bsinitvals33.fw
-rw-r--r--  1 root root  2770 Nov  2 20:09 lcn2initvals26.fw
-rw-r--r--  1 root root  3074 Nov  2 20:09 lcn1initvals25.fw
-rw-r--r--  1 root root   178 Nov  2 20:09 lcn1bsinitvals25.fw
-rw-r--r--  1 root root   178 Nov  2 20:09 lcn1bsinitvals24.fw
-rw-r--r--  1 root root  2770 Nov  2 20:09 lcn0initvals26.fw
-rw-r--r--  1 root root  3080 Nov  2 20:09 lcn0initvals24.fw
-rw-r--r--  1 root root  2830 Nov  2 20:09 ht0initvals29.fw
-rw-r--r--  1 root root   178 Nov  2 20:09 ht0bsinitvals29.fw
-rw-r--r--  1 root root  2170 Nov  2 20:09 b0g0initvals13.fw
-rw-r--r--  1 root root   178 Nov  2 20:09 b0g0bsinitvals9.fw
-rw-r--r--  1 root root   178 Nov  2 20:09 b0g0bsinitvals5.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 ac3initvals43.fw
-rw-r--r--  1 root root  3442 Nov  2 20:09 ac1initvals42.fw
-rw-r--r--  1 root root   178 Nov  2 20:09 a0g0bsinitvals9.fw
-rw-r--r--  1 root root    12 Nov  2 20:09 ucode41.fw
-rw-r--r--  1 root root 40584 Nov  2 20:09 ucode40.fw
-rw-r--r--  1 root root     9 Nov  2 20:09 ucode37_lcn40.fw
-rw-r--r--  1 root root    12 Nov  2 20:09 ucode34_mimo.fw
-rw-r--r--  1 root root     9 Nov  2 20:09 ucode19_sslpn_nobt.fw
-rw-r--r--  1 root root 28708 Nov  2 20:09 ucode16_sslpn_nobt.fw
-rw-r--r--  1 root root 33776 Nov  2 20:09 ucode16_lp.fw
-rw-r--r--  1 root root 27880 Nov  2 20:09 ucode13.fw
-rw-r--r--  1 root root 30752 Nov  2 20:09 ucode11.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 sslpn4bsinitvals22.fw
-rw-r--r--  1 root root  2644 Nov  2 20:09 sslpn3initvals21.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 sslpn2initvals19.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 sslpn1initvals27.fw
-rw-r--r--  1 root root    12 Nov  2 20:09 pcm4.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 n2initvals19.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 n1initvals20.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 n1bsinitvals20.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 n18initvals32.fw
-rw-r--r--  1 root root  2672 Nov  2 20:09 n16initvals30.fw
-rw-r--r--  1 root root   178 Nov  2 20:09 n16bsinitvals30.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 n0initvals22.fw
-rw-r--r--  1 root root  2830 Nov  2 20:09 n0initvals16.fw
-rw-r--r--  1 root root   178 Nov  2 20:09 n0bsinitvals24.fw
-rw-r--r--  1 root root   178 Nov  2 20:09 n0bsinitvals11.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 lp1initvals22.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 lp1bsinitvals22.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 lp0initvals14.fw
-rw-r--r--  1 root root   178 Nov  2 20:09 lp0bsinitvals15.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 lp0bsinitvals14.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 lcn405bsinitvals35.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 lcn402bsinitvals33.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 lcn400initvals33.fw
-rw-r--r--  1 root root  3074 Nov  2 20:09 lcn2initvals25.fw
-rw-r--r--  1 root root   178 Nov  2 20:09 lcn2bsinitvals26.fw
-rw-r--r--  1 root root   178 Nov  2 20:09 lcn2bsinitvals25.fw
-rw-r--r--  1 root root  3080 Nov  2 20:09 lcn1initvals24.fw
-rw-r--r--  1 root root  3074 Nov  2 20:09 lcn0initvals25.fw
-rw-r--r--  1 root root   178 Nov  2 20:09 lcn0bsinitvals24.fw
-rw-r--r--  1 root root  1992 Nov  2 20:09 b0g0initvals9.fw
-rw-r--r--  1 root root  1836 Nov  2 20:09 b0g0initvals5.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 ac2initvals41.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 ac2bsinitvals41.fw
-rw-r--r--  1 root root   178 Nov  2 20:09 a0g1bsinitvals9.fw
-rw-r--r--  1 root root   178 Nov  2 20:09 a0g1bsinitvals5.fw
-rw-r--r--  1 root root   178 Nov  2 20:09 a0g1bsinitvals13.fw
-rw-r--r--  1 root root 40024 Nov  2 20:09 ucode42.fw
-rw-r--r--  1 root root    12 Nov  2 20:09 ucode36_mimo.fw
-rw-r--r--  1 root root     9 Nov  2 20:09 ucode35_lcn40.fw
-rw-r--r--  1 root root     9 Nov  2 20:09 ucode33_lcn40.fw
-rw-r--r--  1 root root    12 Nov  2 20:09 ucode32_mimo.fw
-rw-r--r--  1 root root 40080 Nov  2 20:09 ucode30_mimo.fw
-rw-r--r--  1 root root 39704 Nov  2 20:09 ucode26_mimo.fw
-rw-r--r--  1 root root 32048 Nov  2 20:09 ucode25_mimo.fw
-rw-r--r--  1 root root     9 Nov  2 20:09 ucode20_sslpn_nobt.fw
-rw-r--r--  1 root root 36072 Nov  2 20:09 ucode17_mimo.fw
-rw-r--r--  1 root root    12 Nov  2 20:09 ucode14.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 sslpn4initvals22.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 sslpn2bsinitvals19.fw
-rw-r--r--  1 root root   178 Nov  2 20:09 sslpn0bsinitvals16.fw
-rw-r--r--  1 root root  1320 Nov  2 20:09 pcm5.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 n20bsinitvals36.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 n19initvals34.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 n19bsinitvals34.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 n18bsinitvals32.fw
-rw-r--r--  1 root root  3074 Nov  2 20:09 n0initvals25.fw
-rw-r--r--  1 root root  2196 Nov  2 20:09 n0initvals11.fw
-rw-r--r--  1 root root   178 Nov  2 20:09 n0bsinitvals25.fw
-rw-r--r--  1 root root   178 Nov  2 20:09 n0bsinitvals16.fw
-rw-r--r--  1 root root   178 Nov  2 20:09 n0absinitvals11.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 lp2initvals19.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 lp2bsinitvals19.fw
-rw-r--r--  1 root root  3708 Nov  2 20:09 lp0initvals13.fw
-rw-r--r--  1 root root   178 Nov  2 20:09 lp0bsinitvals16.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 lcn407initvals38.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 lcn406bsinitvals37.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 lcn404initvals35.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 lcn404bsinitvals35.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 lcn401initvals33.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 lcn400bsinitvals33.fw
-rw-r--r--  1 root root  3080 Nov  2 20:09 lcn2initvals24.fw
-rw-r--r--  1 root root   178 Nov  2 20:09 lcn2bsinitvals24.fw
-rw-r--r--  1 root root  2770 Nov  2 20:09 lcn1initvals26.fw
-rw-r--r--  1 root root   178 Nov  2 20:09 lcn0bsinitvals25.fw
-rw-r--r--  1 root root   178 Nov  2 20:09 b0g0bsinitvals13.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 ac3bsinitvals43.fw
-rw-r--r--  1 root root  3452 Nov  2 20:09 ac0initvals40.fw
-rw-r--r--  1 root root   368 Nov  2 20:09 ac0bsinitvals40.fw
-rw-r--r--  1 root root  1992 Nov  2 20:09 a0g1initvals9.fw
-rw-r--r--  1 root root  2170 Nov  2 20:09 a0g1initvals13.fw
-rw-r--r--  1 root root  1992 Nov  2 20:09 a0g0initvals9.fw
-rw-r--r--  1 root root  1836 Nov  2 20:09 a0g0initvals5.fw
-rw-r--r--  1 root root 24072 Nov  2 20:09 ucode9.fw
-rw-r--r--  1 root root 21048 Nov  2 20:09 ucode5.fw
-rw-r--r--  1 root root     9 Nov  2 20:09 ucode38_lcn40.fw
-rw-r--r--  1 root root    12 Nov  2 20:09 ucode22_mimo.fw
-rw-r--r--  1 root root 34651 Nov  2 20:09 ucode16_sslpn.fw
-rw-r--r--  1 root root 39368 Nov  2 20:09 ucode16_mimo.fw
-rw-r--r--  1 root root  3080 Nov  2 20:09 n0initvals24.fw
-rw-r--r--  1 root root   178 Nov  2 20:09 n0bsinitvals17.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 lp1initvals20.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 lcn407bsinitvals38.fw
-rw-r--r--  1 root root     8 Nov  2 20:09 lcn403initvals33.fw
-rw-r--r--  1 root root  2770 Nov  2 20:09 ht0initvals26.fw
-rw-r--r--  1 root root  1836 Nov  2 20:09 a0g1initvals5.fw
-rw-r--r--  1 root root   178 Nov  2 20:09 a0g0bsinitvals5.fw
These files were clearly produced just now, from the extraction just executed.

However - I also notice that this (version: 784.2 // MD5: 29c8a47094fbae342902d84881a465ff) is only one of the archives from which fwcutter can extract firmwares...
Code:


# b43-fwcutter --help
b43-fwcutter version 019

A tool to extract firmware for a Broadcom 43xx device
from a proprietary Broadcom 43xx device driver file.

Usage: b43-fwcutter [OPTION] [proprietary-driver-file]
  --unsupported         Allow working on extractable but unsupported drivers
  -l|--list             List supported driver versions
  -b|--brcmsmac         create firmware for brcmsmac
  -i|--identify         Only identify the driver file (don't extract)
  -w|--target-dir DIR   Extract and write firmware to DIR
  -v|--version          Print b43-fwcutter version
  -h|--help             Print this help

Example: b43-fwcutter -w /lib/firmware wl_apsta.o
         to extract the firmware blobs from wl_apsta.o and store
         the resulting firmware in /lib/firmware

# b43-fwcutter -l
b43-fwcutter version 019

Extracting firmware is possible from these binary driver files.
Please read http://linuxwireless.org/en/users/Drivers/b43#devicefirmware

<driver>        <filename>              <microcode>     <MD5 checksum>

b43legacy       wl_apsta.o              295.14          e08665c5c5b66beb9c3b2dd54aa80cb3
b43             wl_apsta.o              351.126         9207bc565c2fc9fa1591f6c7911d3fc0
b43             wl_apsta_mimo.o         351.126         722e2e0d8cc04b8f118bb5afe6829ff9
b43             wl_apsta_mimo.o         410.2160        cb8d70972b885b1f8883b943c0261a3c
b43             wl_apsta.o              478.104         bb8537e3204a1ea5903fe3e66b5e2763
b43             wl_prebuilt.o           508.1084        490d4e149ecc45eb1a91f06aa75be071
b43             wl_apsta.o              508.1107        f06c8aa30ea549ce21872d10ee9a7d48
b43             wl_apsta.o              508.10872       e413c0017b99195f3231201c53f314d1
b43             wl_apsta.o              508.154         023fafbe4918e384dd531a046dbc03e8
b43             wl_apsta.o              644.1001        68f38d139b1f69f3ea12393fb645c6f9
b43             wl_apsta.o              666.2           e1b05e268bcdbfef3560c28fc161f30e
b43             wl_apsta.o              784.2           29c8a47094fbae342902d84881a465ff
Although net-wireless/b43-firmware also claims them...
Code:
# equery b /lib/firmware/b43/ucode9.fw
 * Searching for /lib/firmware/b43/ucode9.fw ...
sys-firmware/b43-firmware-5.100.138 (/lib/firmware/b43/ucode9.fw)

I also note that there are several other archives available at the site from which I got version 784.2 -- Browser:
Quote:
https://www.lwfinger.com/b43-firmware/

Index of /b43-firmware
Name Last modified Size Description
Parent Directory -
b43fw_508.tar.gz 2014-03-23 10:57 500K
broadcom-wl-5.10.56...> 2011-08-13 12:12 12M
broadcom-wl-5.10.56...> 2011-08-13 12:13 10M
broadcom-wl-5.10.144..> 2011-08-13 12:15 11M
broadcom-wl-5.100.10..> 2011-08-13 12:17 12M
broadcom-wl-5.100.13..> 2011-08-13 12:19 13M
broadcom-wl-6.30.163..> 2013-07-29 10:22 7.3M
favicon.ico 2018-05-18 00:19 43
install_bcm43xx_firm..> 2013-03-27 09:13 1.8K
no_net_install_bcm43..> 2013-03-28 21:26 13M

I assumed that most of these others were earlier versions, but I notice that install_bcm43xx_firmware_5.100.108 is a script that will download an archive and run b43-fwcutter for you...
Code:
#!/bin/sh
#
# install_bcm43xx_firmware
#
# This script tries to download and install the firmware needed to run
# WLAN cards using Broadcom's bcm43xx chips.

# firmware for b43
URL1=http://www.lwfinger.com/b43-firmware
FILE1=broadcom-wl-5.100.138.tar.bz2
FIRMWARE1=broadcom-wl-5.100.138/linux/wl_apsta.o

# firmware for b43legacy
URL2=http://downloads.openwrt.org/sources
FILE2=wl_apsta-3.130.20.0.o

test -z "$( type -p curl)" && { echo "'curl' is not installed, aborting. Please install 'curl' and try again."; exit 1; }
test -z "$( type -p b43-fwcutter)" && { echo "'b43-fwcutter' is not installed, aborting. Please install 'b43-fwcutter' and try again."; exit 1; }
test -d /lib/firmware || mkdir -p /lib/firmware

TMPDIR=$(mktemp -d /var/tmp/bcm.XXXXXX) || exit 1

pushd $TMPDIR >/dev/null

echo "Downloading b43 firmware"
curl -# -f -o $FILE1 $URL1/$FILE1
if [ $? -eq 0 ];then
   echo "Extracting b43 firmware"
   tar xjf $FILE1
   b43-fwcutter -w /lib/firmware $FIRMWARE1
else
   echo "Could not download b43 firmware. Please look at /usr/share/doc/packages/b43-fwcutter/README."
fi

echo
echo "Downloading b43legacy firmware"
curl -# -f -o $FILE2 $URL2/$FILE2
if [ $? -eq 0 ];then
   echo "Extracting b43legacy firmware"
   b43-fwcutter -w /lib/firmware $FILE2
else
   echo "Could not download b43legacy firmware. Please look at /usr/share/doc/packages/b43-fwcutter/README."
fi

echo
if [ -d /lib/firmware/b43 ] ; then
   echo "b43 firmware successfully installed."
   sync && sync
   /sbin/modprobe -r b43
   /sbin/modprobe b43
else
   echo "b43 firmware installation failed."
fi
if [ -d /lib/firmware/b43legacy ] ; then
   echo "b43legacy firmware successfully installed."
   sync && sync
   /sbin/modprobe -r b43legacy
   /sbin/modprobe b43legacy
else
   echo "b43legacy firmware installation failed."
fi

popd >/dev/null
rm -rf $TMPDIR

exit 0
...and I notice it is set to pick a different version of the firmware (5.100.138), and it also tries to get b43-legacy firmwares from openwrt.org. That part didn't work for me when I tried to run the script -- I got the "b43legacy firmware installation failed" error. So, I manually downloaded and extracted the files in that version
Code:
# wget https://www.lwfinger.com/b43-firmware/broadcom-wl-5.100.138.tar.bz2
# tar -xvjpf broadcom-wl-5.100.138.tar.bz2
#  b43-fwcutter -i broadcom-wl-5.100.138/linux/wl_apsta.o
This file is recognised as:
  filename   :  wl_apsta.o
  version    :  666.2
  MD5        :  e1b05e268bcdbfef3560c28fc161f30e
Contains b43/lp0initvals14.fw
Contains b43/lcn0bsinitvals25.fw
Contains b43/n0bsinitvals25.fw
Contains b43/n0bsinitvals17.fw
Contains b43/ucode17_mimo.fw
...
I then extracted these to a different target directory, to compare ...
Code:

# b43-fwcutter -w /home/xxx/temp/ broadcom-wl-5.100.138/linux/wl_apsta.o
...
# # ls -al /lib/firmware/b43/ucode9.fw  ### this one is from version 784.2
-rw-r--r-- 1 root root 24072 Nov  2 20:09 /lib/firmware/b43/ucode9.fw

 # ls -al /home/xxx/temp/b43/ucode9.fw    ### this is from version 666.2 (they are not the same)
-rw-r--r-- 1 root root 23256 Nov  2 20:38 /home/joe/temp/b43/ucode9.fw

# b43-fwcutter -w /home/joe/temp/ wl_apsta-3.130.20.0.o
Sorry, the input file is either wrong or not supported by b43-fwcutter.
This file has an unknown MD5sum 4c555068310076e85908835c721911f5.
So, the b43-legacy firmwares are not recognized by b43-fwcutter... I browsed the openwrt.org site myself, and I could not find any b43 firmware... (so I'm not sure if it would make a difference to get these1 potentially missing b43-legacy firmware files...

(previous dmesg was with ver 784.2 b43 fw. Now, with ver 666.2 b43 fw; Rebooting (with nothing blacklisted) --
Code:
# dmesg | grep bcma
[   24.142437] bcma-pci-bridge 0000:05:00.0: enabling device (0000 -> 0002)
[   24.142515] bcma-pci-bridge 0000:05:00.0: bus0: Found chip with id 0x4352, rev 0x03 and package 0x00
[   24.142551] bcma-pci-bridge 0000:05:00.0: bus0: Core 0 found: ChipCommon (manuf 0x4BF, id 0x800, rev 0x2B, class 0x0)
[   24.142571] bcma-pci-bridge 0000:05:00.0: bus0: Core 1 found: IEEE 802.11 (manuf 0x4BF, id 0x812, rev 0x2A, class 0x0)
[   24.142607] bcma-pci-bridge 0000:05:00.0: bus0: Core 2 found: ARM CR4 (manuf 0x4BF, id 0x83E, rev 0x02, class 0x0)
[   24.142646] bcma-pci-bridge 0000:05:00.0: bus0: Core 3 found: PCIe Gen2 (manuf 0x4BF, id 0x83C, rev 0x01, class 0x0)
[   24.142666] bcma-pci-bridge 0000:05:00.0: bus0: Core 4 found: USB 2.0 Device (manuf 0x4BF, id 0x81A, rev 0x11, class 0x0)
[   24.175223] bcma: Unsupported SPROM revision: 11
[   24.175229] bcma-pci-bridge 0000:05:00.0: bus0: Invalid SPROM read from the PCIe card, trying to use fallback SPROM
[   24.175232] bcma-pci-bridge 0000:05:00.0: bus0: Using fallback SPROM failed (err -2)
[   24.175235] bcma-pci-bridge 0000:05:00.0: bus0: No SPROM available
[   24.177795] bcma-pci-bridge 0000:05:00.0: bus0: Bus registered
[   24.213532] b43: probe of bcma0:1 failed with error -95

Rebooting again (with wl blacklisted) --
Code:
# dmesg | grep bcma
[   24.132088] bcma-pci-bridge 0000:05:00.0: enabling device (0000 -> 0002)
[   24.132173] bcma-pci-bridge 0000:05:00.0: bus0: Found chip with id 0x4352, rev 0x03 and package 0x00
[   24.132210] bcma-pci-bridge 0000:05:00.0: bus0: Core 0 found: ChipCommon (manuf 0x4BF, id 0x800, rev 0x2B, class 0x0)
[   24.132248] bcma-pci-bridge 0000:05:00.0: bus0: Core 1 found: IEEE 802.11 (manuf 0x4BF, id 0x812, rev 0x2A, class 0x0)
[   24.132287] bcma-pci-bridge 0000:05:00.0: bus0: Core 2 found: ARM CR4 (manuf 0x4BF, id 0x83E, rev 0x02, class 0x0)
[   24.132327] bcma-pci-bridge 0000:05:00.0: bus0: Core 3 found: PCIe Gen2 (manuf 0x4BF, id 0x83C, rev 0x01, class 0x0)
[   24.132348] bcma-pci-bridge 0000:05:00.0: bus0: Core 4 found: USB 2.0 Device (manuf 0x4BF, id 0x81A, rev 0x11, class 0x0)
[   24.164960] bcma: Unsupported SPROM revision: 11
[   24.164967] bcma-pci-bridge 0000:05:00.0: bus0: Invalid SPROM read from the PCIe card, trying to use fallback SPROM
[   24.164970] bcma-pci-bridge 0000:05:00.0: bus0: Using fallback SPROM failed (err -2)
[   24.164972] bcma-pci-bridge 0000:05:00.0: bus0: No SPROM available
[   24.167275] bcma-pci-bridge 0000:05:00.0: bus0: Bus registered
[   24.185259] b43: probe of bcma0:1 failed with error -95

Rebooting (with b43 and bcma blacklisted) --
Code:
# dmesg | grep -i 'eth3\|wl:\|bcma\|cfg80211'
[   24.137901] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[   24.139484] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[   24.150569] wl: loading out-of-tree module taints kernel.
[   24.150573] wl: module license 'MIXED/Proprietary' taints kernel.
[   24.171149] eth3: Broadcom BCM43b1 802.11 Hybrid Wireless Controller 6.30.223.271 (r587334)
Looks the same to me...
Back to top
View user's profile Send private message
pietinger
Moderator
Moderator


Joined: 17 Oct 2006
Posts: 5371
Location: Bavaria

PostPosted: Fri Nov 03, 2023 3:12 am    Post subject: Reply with quote

It could be possible that the information for Broadcom in our https://wiki.gentoo.org/wiki/Wi-Fi is incomplete. You have done a lot of research and probably know more than I do by now, so unfortunately I can only refer you to the Broadcom experts. I have found this information:
Quote:
For instant contact you can try #bcm-users channel in IRC freenode network. Please note the limited activity and that you may need to wait for an answer.
As a more reliable way you can use b43-dev mailing list.

(from https://wireless.wiki.kernel.org/en/users/drivers/b43#Comparison_of_recent_drivers )

(Maybe you dont know: You can get a deep link to a post of a thread by clicking to the first icon at the top of the post ... if you want give the experts a link to your last post:
https://forums.gentoo.org/viewtopic-p-8806249.html#8806249 )

I am sorry, but I must give up. :oops:

In every case I thank you very much for your detailed report and I hope this thread will be solved by Broadcam experts (so you are happy AND we can link to it from our Wiki).
Back to top
View user's profile Send private message
logrusx
Advocate
Advocate


Joined: 22 Feb 2018
Posts: 2683

PostPosted: Fri Nov 03, 2023 8:01 am    Post subject: Reply with quote

Strange. Only a couple of years ago I was able to setup a very old bcm43xx adapter with b43legacy driver and b43-firmware. I don't remember any issues. This wl driver is listed as proprietary, doesn't provide AP or monitor modes and frankly there's no reason it should be used.

I'd suggest drop it altogether with any manually extracted firmware files and start from scratch with b43.

On another note, Arch Wiki suggests BRCMSMAC be enabled as well.

Best Regards,
Georgi
Back to top
View user's profile Send private message
brendlefly62
Apprentice
Apprentice


Joined: 19 Dec 2009
Posts: 156

PostPosted: Fri Nov 03, 2023 3:11 pm    Post subject: Reply with quote

Thanks for your help, pietinger; I learned a lot following your leads.

Thanks also, logrusx. I have just finished dropping the wl driver (net-wireless/broadcom-sta) and completely cleaned out /lib/firmware/b43 - then started from scratch with b43 as you suggest--
Code:
# emerge --depclean sys-firmware/b43-firmware
#  rm -r /lib/firmware/b43/*
# emerge --depclean b43-fwcutter
#  emerge --depclean broadcom-sta
#  ls -al /lib/firmware/b43/      ### it is empty

#  emerge -av b43-firmware b43legacy-firmware

These are the packages that would be merged, in order:

Calculating dependencies... done!
Dependency resolution took 0.57 s.

[ebuild  N     ] net-wireless/b43-fwcutter-019::gentoo  0 KiB
[ebuild  N     ] sys-firmware/b43-firmware-5.100.138:b43::gentoo  0 KiB
[ebuild  N     ] sys-firmware/b43legacy-firmware-3.130.20.0::gentoo  0 KiB

Total: 3 packages (3 new), Size of downloads: 0 KiB

Would you like to merge these packages? [Yes/No] y

>>> Verifying ebuild manifests

>>> Emerging (1 of 3) net-wireless/b43-fwcutter-019::gentoo
 * Fetching files in the background.
 * To view fetch progress, run in another terminal:
 * tail -f /var/log/emerge-fetch.log
 * b43-fwcutter-019.tar.bz2 BLAKE2B SHA512 size ;-) ...                                      [ ok ]
>>> Unpacking source...
>>> Unpacking b43-fwcutter-019.tar.bz2 to /var/tmp/portage/net-wireless/b43-fwcutter-019/work
>>> Source unpacked in /var/tmp/portage/net-wireless/b43-fwcutter-019/work
>>> Preparing source in /var/tmp/portage/net-wireless/b43-fwcutter-019/work/b43-fwcutter-019 ...
>>> Source prepared.
>>> Configuring source in /var/tmp/portage/net-wireless/b43-fwcutter-019/work/b43-fwcutter-019 ...
>>> Source configured.
>>> Compiling source in /var/tmp/portage/net-wireless/b43-fwcutter-019/work/b43-fwcutter-019 ...
make -j9 -l4 CC=x86_64-pc-linux-gnu-gcc V=1
x86_64-pc-linux-gnu-gcc -o dep/fwcutter.d.tmp -MM -MT "dep/fwcutter.d obj/fwcutter.o" -march=haswell -mabm -O2 -pipe -std=c99 -Wall -pedantic -D_BSD_SOURCE -DFWCUTTER_VERSION_=019 fwcutter.c && mv -f dep/fwcutter.d.tmp dep/fwcutter.d
x86_64-pc-linux-gnu-gcc -o dep/md5.d.tmp -MM -MT "dep/md5.d obj/md5.o" -march=haswell -mabm -O2 -pipe -std=c99 -Wall -pedantic -D_BSD_SOURCE -DFWCUTTER_VERSION_=019 md5.c && mv -f dep/md5.d.tmp dep/md5.d
x86_64-pc-linux-gnu-gcc -o obj/md5.o -c -march=haswell -mabm -O2 -pipe -std=c99 -Wall -pedantic -D_BSD_SOURCE -DFWCUTTER_VERSION_=019 md5.c
x86_64-pc-linux-gnu-gcc -o obj/fwcutter.o -c -march=haswell -mabm -O2 -pipe -std=c99 -Wall -pedantic -D_BSD_SOURCE -DFWCUTTER_VERSION_=019 fwcutter.c
In file included from /usr/include/memory.h:25,
                 from md5.c:24:
/usr/include/features.h:195:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp]
  195 | # warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
      |   ^~~~~~~
In file included from /usr/include/bits/libc-header-start.h:33,
                 from /usr/include/stdlib.h:26,
                 from fwcutter.c:33:
/usr/include/features.h:195:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp]
  195 | # warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
      |   ^~~~~~~
fwcutter.c: In function 'print_file':
fwcutter.c:655:57: warning: '..' directive output may be truncated writing 2 bytes into a region of size between 1 and 30 [-Wformat-truncation=]
  655 |                 snprintf(filename, sizeof(filename), "%s..", shortname);
      |                                                         ^~
In file included from /usr/include/stdio.h:906,
                 from fwcutter.c:36:
In function 'snprintf',
    inlined from 'print_file' at fwcutter.c:655:3:
/usr/include/bits/stdio2.h:54:10: note: '__builtin___snprintf_chk' output between 3 and 32 bytes into a destination of size 30
   54 |   return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   55 |                                    __glibc_objsize (__s), __fmt,
      |                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   56 |                                    __va_arg_pack ());
      |                                    ~~~~~~~~~~~~~~~~~
x86_64-pc-linux-gnu-gcc -march=haswell -mabm -O2 -pipe -std=c99 -Wall -pedantic -D_BSD_SOURCE -DFWCUTTER_VERSION_=019 -o b43-fwcutter obj/fwcutter.o obj/md5.o -Wl,-O1 -Wl,--as-needed
>>> Source compiled.
>>> Test phase [not enabled]: net-wireless/b43-fwcutter-019

>>> Install net-wireless/b43-fwcutter-019 into /var/tmp/portage/net-wireless/b43-fwcutter-019/image
>>> Completed installing net-wireless/b43-fwcutter-019 into /var/tmp/portage/net-wireless/b43-fwcutter-019/image

 * Final size of build directory: 656 KiB
 * Final size of installed tree:  108 KiB

strip: x86_64-pc-linux-gnu-strip --strip-unneeded -N __gentoo_check_ldflags__ -R .comment -R .GCC.command.line -R .note.gnu.gold-version
   /usr/bin/b43-fwcutter
./
./usr/
./usr/bin/
./usr/bin/b43-fwcutter
./usr/share/
./usr/share/doc/
./usr/share/doc/b43-fwcutter-019/
./usr/share/doc/b43-fwcutter-019/README.bz2
./usr/share/man/
./usr/share/man/man1/
./usr/share/man/man1/b43-fwcutter.1.bz2
>>> Done.

>>> Installing (1 of 3) net-wireless/b43-fwcutter-019::gentoo
 * checking 3 files for package collisions
>>> Merging net-wireless/b43-fwcutter-019 to /
--- /usr/
--- /usr/share/
--- /usr/share/man/
--- /usr/share/man/man1/
>>> /usr/share/man/man1/b43-fwcutter.1.bz2
--- /usr/share/doc/
>>> /usr/share/doc/b43-fwcutter-019/
>>> /usr/share/doc/b43-fwcutter-019/README.bz2
--- /usr/bin/
>>> /usr/bin/b43-fwcutter
 * Firmware may be downloaded from http://linuxwireless.org.
 * This version of fwcutter works with all b43 driver versions.
>>> net-wireless/b43-fwcutter-019 merged.

>>> Completed (1 of 3) net-wireless/b43-fwcutter-019::gentoo

>>> Emerging (2 of 3) sys-firmware/b43-firmware-5.100.138::gentoo
 * broadcom-wl-5.100.138.tar.bz2 BLAKE2B SHA512 size ;-) ...                                 [ ok ]
>>> Unpacking source...
>>> Unpacking broadcom-wl-5.100.138.tar.bz2 to /var/tmp/portage/sys-firmware/b43-firmware-5.100.138/work
>>> Source unpacked in /var/tmp/portage/sys-firmware/b43-firmware-5.100.138/work
>>> Preparing source in /var/tmp/portage/sys-firmware/b43-firmware-5.100.138/work/broadcom-wl-5.100.138 ...
>>> Source prepared.
>>> Configuring source in /var/tmp/portage/sys-firmware/b43-firmware-5.100.138/work/broadcom-wl-5.100.138 ...
>>> Source configured.
>>> Compiling source in /var/tmp/portage/sys-firmware/b43-firmware-5.100.138/work/broadcom-wl-5.100.138 ...
This file is recognised as:
  filename   :  wl_apsta.o
  version    :  666.2
  MD5        :  e1b05e268bcdbfef3560c28fc161f30e
Extracting b43/lp0initvals14.fw
Extracting b43/lcn0bsinitvals25.fw
Extracting b43/n0bsinitvals25.fw
Extracting b43/n0bsinitvals17.fw
Extracting b43/ucode17_mimo.fw
Extracting b43/ucode16_lp.fw
Extracting b43/sslpn1initvals27.fw
Extracting b43/lp2bsinitvals19.fw
Extracting b43/sslpn3bsinitvals21.fw
Extracting b43/ucode16_sslpn.fw
  ucode time:     01:15:07
Extracting b43/ucode25_lcn.fw
Extracting b43/ucode21_sslpn.fw
Extracting b43/lp0bsinitvals14.fw
Extracting b43/b0g0initvals9.fw
Extracting b43/ucode20_sslpn.fw
Extracting b43/a0g1bsinitvals9.fw
Extracting b43/lp1initvals20.fw
Extracting b43/b0g0bsinitvals13.fw
Extracting b43/lp2initvals19.fw
Extracting b43/n2bsinitvals19.fw
Extracting b43/sslpn4bsinitvals22.fw
Extracting b43/ucode16_sslpn_nobt.fw
  ucode date:     2011-02-23
Extracting b43/n1bsinitvals20.fw
Extracting b43/n1initvals20.fw
Extracting b43/b0g0bsinitvals5.fw
Extracting b43/ucode22_sslpn.fw
Extracting b43/b0g0initvals13.fw
Extracting b43/ht0initvals26.fw
Extracting b43/ucode33_lcn40.fw
Extracting b43/sslpn1bsinitvals20.fw
Extracting b43/lcn400bsinitvals33.fw
Extracting b43/ucode14.fw
Extracting b43/a0g0initvals5.fw
Extracting b43/lp1bsinitvals22.fw
Extracting b43/n16initvals30.fw
Extracting b43/lp0bsinitvals16.fw
Extracting b43/lcn1bsinitvals25.fw
Extracting b43/lcn400initvals33.fw
Extracting b43/n0bsinitvals24.fw
Extracting b43/lcn2bsinitvals26.fw
Extracting b43/lcn1initvals26.fw
Extracting b43/n0bsinitvals22.fw
Extracting b43/n18initvals32.fw
Extracting b43/lcn2initvals26.fw
Extracting b43/a0g1bsinitvals5.fw
Extracting b43/n0bsinitvals11.fw
Extracting b43/lcn2initvals24.fw
Extracting b43/lcn0initvals26.fw
Extracting b43/n0absinitvals11.fw
Extracting b43/ucode21_sslpn_nobt.fw
  ucode time:     01:15:07
Extracting b43/ucode26_mimo.fw
Extracting b43/n2initvals19.fw
Extracting b43/sslpn3initvals21.fw
Extracting b43/a0g1bsinitvals13.fw
Extracting b43/sslpn4initvals22.fw
Extracting b43/pcm5.fw
Extracting b43/ucode22_mimo.fw
Extracting b43/ucode9.fw
Extracting b43/lcn2initvals25.fw
Extracting b43/lp1initvals22.fw
Extracting b43/sslpn1bsinitvals27.fw
Extracting b43/lcn0initvals24.fw
Extracting b43/ucode32_mimo.fw
Extracting b43/a0g0bsinitvals9.fw
Extracting b43/n18bsinitvals32.fw
Extracting b43/n0initvals24.fw
Extracting b43/n0initvals25.fw
Extracting b43/a0g1initvals5.fw
Extracting b43/ucode24_lcn.fw
Extracting b43/n0initvals17.fw
Extracting b43/n0bsinitvals16.fw
Extracting b43/lp0initvals15.fw
Extracting b43/b0g0initvals5.fw
Extracting b43/ucode20_sslpn_nobt.fw
Extracting b43/lcn1initvals24.fw
Extracting b43/sslpn0initvals16.fw
Extracting b43/a0g1initvals13.fw
Extracting b43/lp1bsinitvals20.fw
Extracting b43/sslpn2initvals19.fw
Extracting b43/a0g1initvals9.fw
Extracting b43/lcn1bsinitvals24.fw
Extracting b43/ucode5.fw
Extracting b43/lcn2bsinitvals24.fw
Extracting b43/lp0bsinitvals13.fw
Extracting b43/n0initvals16.fw
Extracting b43/ucode19_sslpn_nobt.fw
Extracting b43/b0g0bsinitvals9.fw
Extracting b43/ucode11.fw
Extracting b43/lp0initvals16.fw
Extracting b43/ucode16_mimo.fw
Extracting b43/lcn0bsinitvals26.fw
Extracting b43/ht0initvals29.fw
Extracting b43/lcn2bsinitvals25.fw
Extracting b43/a0g0initvals9.fw
Extracting b43/ucode29_mimo.fw
Extracting b43/lcn0bsinitvals24.fw
Extracting b43/ucode19_sslpn.fw
Extracting b43/lcn1initvals25.fw
Extracting b43/ucode30_mimo.fw
Extracting b43/n16bsinitvals30.fw
Extracting b43/ucode25_mimo.fw
Extracting b43/ucode24_mimo.fw
Extracting b43/ucode27_sslpn.fw
Extracting b43/lp0initvals13.fw
Extracting b43/a0g0bsinitvals5.fw
Extracting b43/ht0bsinitvals26.fw
Extracting b43/ucode13.fw
Extracting b43/sslpn2bsinitvals19.fw
Extracting b43/ucode15.fw
Extracting b43/lp0bsinitvals15.fw
Extracting b43/n0initvals11.fw
Extracting b43/lcn0initvals25.fw
Extracting b43/sslpn0bsinitvals16.fw
Extracting b43/sslpn1initvals20.fw
Extracting b43/lcn1bsinitvals26.fw
Extracting b43/n0initvals22.fw
Extracting b43/ht0bsinitvals29.fw
>>> Source compiled.
>>> Test phase [not enabled]: sys-firmware/b43-firmware-5.100.138

>>> Install sys-firmware/b43-firmware-5.100.138 into /var/tmp/portage/sys-firmware/b43-firmware-5.100.138/image
>>> Completed installing sys-firmware/b43-firmware-5.100.138 into /var/tmp/portage/sys-firmware/b43-firmware-5.100.138/image

 * Final size of build directory: 37544 KiB (36.6 MiB)
 * Final size of installed tree:   1068 KiB ( 1.0 MiB)

./
./lib/
./lib/firmware/
./lib/firmware/b43/
./lib/firmware/b43/lcn2initvals25.fw
./lib/firmware/b43/b0g0initvals13.fw
./lib/firmware/b43/n0bsinitvals24.fw
./lib/firmware/b43/ucode25_lcn.fw
./lib/firmware/b43/lp0initvals15.fw
./lib/firmware/b43/lcn0initvals25.fw
./lib/firmware/b43/ht0bsinitvals29.fw
./lib/firmware/b43/ucode11.fw
./lib/firmware/b43/ht0bsinitvals26.fw
./lib/firmware/b43/b0g0initvals5.fw
./lib/firmware/b43/n0initvals24.fw
./lib/firmware/b43/ucode29_mimo.fw
./lib/firmware/b43/n0absinitvals11.fw
./lib/firmware/b43/lp0initvals16.fw
./lib/firmware/b43/b0g0bsinitvals9.fw
./lib/firmware/b43/n0bsinitvals16.fw
./lib/firmware/b43/ucode16_sslpn.fw
./lib/firmware/b43/n0bsinitvals25.fw
./lib/firmware/b43/n0bsinitvals22.fw
./lib/firmware/b43/sslpn1bsinitvals27.fw
./lib/firmware/b43/n0bsinitvals17.fw
./lib/firmware/b43/lp0bsinitvals16.fw
./lib/firmware/b43/lcn0bsinitvals26.fw
./lib/firmware/b43/ucode14.fw
./lib/firmware/b43/sslpn3initvals21.fw
./lib/firmware/b43/ucode15.fw
./lib/firmware/b43/b0g0bsinitvals5.fw
./lib/firmware/b43/sslpn2bsinitvals19.fw
./lib/firmware/b43/lcn0initvals24.fw
./lib/firmware/b43/lcn1initvals26.fw
./lib/firmware/b43/ucode27_sslpn.fw
./lib/firmware/b43/lcn1bsinitvals26.fw
./lib/firmware/b43/pcm5.fw
./lib/firmware/b43/lp1bsinitvals22.fw
./lib/firmware/b43/lcn2bsinitvals24.fw
./lib/firmware/b43/lp2bsinitvals19.fw
./lib/firmware/b43/a0g1bsinitvals5.fw
./lib/firmware/b43/ucode17_mimo.fw
./lib/firmware/b43/lp0initvals13.fw
./lib/firmware/b43/n2bsinitvals19.fw
./lib/firmware/b43/n1bsinitvals20.fw
./lib/firmware/b43/lcn400initvals33.fw
./lib/firmware/b43/ucode21_sslpn_nobt.fw
./lib/firmware/b43/a0g0bsinitvals5.fw
./lib/firmware/b43/n0bsinitvals11.fw
./lib/firmware/b43/lcn2initvals24.fw
./lib/firmware/b43/ucode20_sslpn.fw
./lib/firmware/b43/n1initvals20.fw
./lib/firmware/b43/a0g1initvals9.fw
./lib/firmware/b43/ucode19_sslpn.fw
./lib/firmware/b43/lcn2bsinitvals25.fw
./lib/firmware/b43/ucode16_sslpn_nobt.fw
./lib/firmware/b43/n0initvals11.fw
./lib/firmware/b43/a0g1initvals13.fw
./lib/firmware/b43/lp1initvals20.fw
./lib/firmware/b43/ucode16_lp.fw
./lib/firmware/b43/lcn1bsinitvals24.fw
./lib/firmware/b43/ucode33_lcn40.fw
./lib/firmware/b43/sslpn1bsinitvals20.fw
./lib/firmware/b43/ucode24_mimo.fw
./lib/firmware/b43/lp0bsinitvals14.fw
./lib/firmware/b43/n18initvals32.fw
./lib/firmware/b43/lp1bsinitvals20.fw
./lib/firmware/b43/ucode9.fw
./lib/firmware/b43/sslpn0initvals16.fw
./lib/firmware/b43/lcn0bsinitvals25.fw
./lib/firmware/b43/n18bsinitvals32.fw
./lib/firmware/b43/lcn2initvals26.fw
./lib/firmware/b43/b0g0initvals9.fw
./lib/firmware/b43/n0initvals22.fw
./lib/firmware/b43/a0g0initvals5.fw
./lib/firmware/b43/n16bsinitvals30.fw
./lib/firmware/b43/ucode25_mimo.fw
./lib/firmware/b43/ucode30_mimo.fw
./lib/firmware/b43/a0g1bsinitvals9.fw
./lib/firmware/b43/lp0bsinitvals15.fw
./lib/firmware/b43/lcn1initvals25.fw
./lib/firmware/b43/ucode16_mimo.fw
./lib/firmware/b43/n0initvals25.fw
./lib/firmware/b43/a0g0initvals9.fw
./lib/firmware/b43/n16initvals30.fw
./lib/firmware/b43/ucode22_mimo.fw
./lib/firmware/b43/ucode5.fw
./lib/firmware/b43/sslpn4bsinitvals22.fw
./lib/firmware/b43/n2initvals19.fw
./lib/firmware/b43/sslpn1initvals27.fw
./lib/firmware/b43/lcn0bsinitvals24.fw
./lib/firmware/b43/ucode32_mimo.fw
./lib/firmware/b43/ucode21_sslpn.fw
./lib/firmware/b43/sslpn1initvals20.fw
./lib/firmware/b43/lp0initvals14.fw
./lib/firmware/b43/lp2initvals19.fw
./lib/firmware/b43/lcn400bsinitvals33.fw
./lib/firmware/b43/n0initvals16.fw
./lib/firmware/b43/sslpn3bsinitvals21.fw
./lib/firmware/b43/ucode20_sslpn_nobt.fw
./lib/firmware/b43/ucode13.fw
./lib/firmware/b43/sslpn4initvals22.fw
./lib/firmware/b43/ht0initvals29.fw
./lib/firmware/b43/ucode24_lcn.fw
./lib/firmware/b43/a0g0bsinitvals9.fw
./lib/firmware/b43/lcn2bsinitvals26.fw
./lib/firmware/b43/n0initvals17.fw
./lib/firmware/b43/a0g1bsinitvals13.fw
./lib/firmware/b43/lcn1bsinitvals25.fw
./lib/firmware/b43/lcn0initvals26.fw
./lib/firmware/b43/ucode22_sslpn.fw
./lib/firmware/b43/lp1initvals22.fw
./lib/firmware/b43/b0g0bsinitvals13.fw
./lib/firmware/b43/ucode19_sslpn_nobt.fw
./lib/firmware/b43/a0g1initvals5.fw
./lib/firmware/b43/lp0bsinitvals13.fw
./lib/firmware/b43/ht0initvals26.fw
./lib/firmware/b43/sslpn2initvals19.fw
./lib/firmware/b43/lcn1initvals24.fw
./lib/firmware/b43/ucode26_mimo.fw
./lib/firmware/b43/sslpn0bsinitvals16.fw
>>> Done.

>>> Installing (2 of 3) sys-firmware/b43-firmware-5.100.138::gentoo
 * checking 117 files for package collisions
>>> Merging sys-firmware/b43-firmware-5.100.138 to /
--- /lib/
--- /lib/firmware/
>>> /lib/firmware/b43/
>>> /lib/firmware/b43/sslpn0bsinitvals16.fw
>>> /lib/firmware/b43/ucode26_mimo.fw
>>> /lib/firmware/b43/lcn1initvals24.fw
>>> /lib/firmware/b43/sslpn2initvals19.fw
>>> /lib/firmware/b43/ht0initvals26.fw
>>> /lib/firmware/b43/lp0bsinitvals13.fw
>>> /lib/firmware/b43/a0g1initvals5.fw
>>> /lib/firmware/b43/ucode19_sslpn_nobt.fw
>>> /lib/firmware/b43/b0g0bsinitvals13.fw
>>> /lib/firmware/b43/lp1initvals22.fw
>>> /lib/firmware/b43/ucode22_sslpn.fw
>>> /lib/firmware/b43/lcn0initvals26.fw
>>> /lib/firmware/b43/lcn1bsinitvals25.fw
>>> /lib/firmware/b43/a0g1bsinitvals13.fw
>>> /lib/firmware/b43/n0initvals17.fw
>>> /lib/firmware/b43/lcn2bsinitvals26.fw
>>> /lib/firmware/b43/a0g0bsinitvals9.fw
>>> /lib/firmware/b43/ucode24_lcn.fw
>>> /lib/firmware/b43/ht0initvals29.fw
>>> /lib/firmware/b43/sslpn4initvals22.fw
>>> /lib/firmware/b43/ucode13.fw
>>> /lib/firmware/b43/ucode20_sslpn_nobt.fw
>>> /lib/firmware/b43/sslpn3bsinitvals21.fw
>>> /lib/firmware/b43/n0initvals16.fw
>>> /lib/firmware/b43/lcn400bsinitvals33.fw
>>> /lib/firmware/b43/lp2initvals19.fw
>>> /lib/firmware/b43/lp0initvals14.fw
>>> /lib/firmware/b43/sslpn1initvals20.fw
>>> /lib/firmware/b43/ucode21_sslpn.fw
>>> /lib/firmware/b43/ucode32_mimo.fw
>>> /lib/firmware/b43/lcn0bsinitvals24.fw
>>> /lib/firmware/b43/sslpn1initvals27.fw
>>> /lib/firmware/b43/n2initvals19.fw
>>> /lib/firmware/b43/sslpn4bsinitvals22.fw
>>> /lib/firmware/b43/ucode5.fw
>>> /lib/firmware/b43/ucode22_mimo.fw
>>> /lib/firmware/b43/n16initvals30.fw
>>> /lib/firmware/b43/a0g0initvals9.fw
>>> /lib/firmware/b43/n0initvals25.fw
>>> /lib/firmware/b43/ucode16_mimo.fw
>>> /lib/firmware/b43/lcn1initvals25.fw
>>> /lib/firmware/b43/lp0bsinitvals15.fw
>>> /lib/firmware/b43/a0g1bsinitvals9.fw
>>> /lib/firmware/b43/ucode30_mimo.fw
>>> /lib/firmware/b43/ucode25_mimo.fw
>>> /lib/firmware/b43/n16bsinitvals30.fw
>>> /lib/firmware/b43/a0g0initvals5.fw
>>> /lib/firmware/b43/n0initvals22.fw
>>> /lib/firmware/b43/b0g0initvals9.fw
>>> /lib/firmware/b43/lcn2initvals26.fw
>>> /lib/firmware/b43/n18bsinitvals32.fw
>>> /lib/firmware/b43/lcn0bsinitvals25.fw
>>> /lib/firmware/b43/sslpn0initvals16.fw
>>> /lib/firmware/b43/ucode9.fw
>>> /lib/firmware/b43/lp1bsinitvals20.fw
>>> /lib/firmware/b43/n18initvals32.fw
>>> /lib/firmware/b43/lp0bsinitvals14.fw
>>> /lib/firmware/b43/ucode24_mimo.fw
>>> /lib/firmware/b43/sslpn1bsinitvals20.fw
>>> /lib/firmware/b43/ucode33_lcn40.fw
>>> /lib/firmware/b43/lcn1bsinitvals24.fw
>>> /lib/firmware/b43/ucode16_lp.fw
>>> /lib/firmware/b43/lp1initvals20.fw
>>> /lib/firmware/b43/a0g1initvals13.fw
>>> /lib/firmware/b43/n0initvals11.fw
>>> /lib/firmware/b43/ucode16_sslpn_nobt.fw
>>> /lib/firmware/b43/lcn2bsinitvals25.fw
>>> /lib/firmware/b43/ucode19_sslpn.fw
>>> /lib/firmware/b43/a0g1initvals9.fw
>>> /lib/firmware/b43/n1initvals20.fw
>>> /lib/firmware/b43/ucode20_sslpn.fw
>>> /lib/firmware/b43/lcn2initvals24.fw
>>> /lib/firmware/b43/n0bsinitvals11.fw
>>> /lib/firmware/b43/a0g0bsinitvals5.fw
>>> /lib/firmware/b43/ucode21_sslpn_nobt.fw
>>> /lib/firmware/b43/lcn400initvals33.fw
>>> /lib/firmware/b43/n1bsinitvals20.fw
>>> /lib/firmware/b43/n2bsinitvals19.fw
>>> /lib/firmware/b43/lp0initvals13.fw
>>> /lib/firmware/b43/ucode17_mimo.fw
>>> /lib/firmware/b43/a0g1bsinitvals5.fw
>>> /lib/firmware/b43/lp2bsinitvals19.fw
>>> /lib/firmware/b43/lcn2bsinitvals24.fw
>>> /lib/firmware/b43/lp1bsinitvals22.fw
>>> /lib/firmware/b43/pcm5.fw
>>> /lib/firmware/b43/lcn1bsinitvals26.fw
>>> /lib/firmware/b43/ucode27_sslpn.fw
>>> /lib/firmware/b43/lcn1initvals26.fw
>>> /lib/firmware/b43/lcn0initvals24.fw
>>> /lib/firmware/b43/sslpn2bsinitvals19.fw
>>> /lib/firmware/b43/b0g0bsinitvals5.fw
>>> /lib/firmware/b43/ucode15.fw
>>> /lib/firmware/b43/sslpn3initvals21.fw
>>> /lib/firmware/b43/ucode14.fw
>>> /lib/firmware/b43/lcn0bsinitvals26.fw
>>> /lib/firmware/b43/lp0bsinitvals16.fw
>>> /lib/firmware/b43/n0bsinitvals17.fw
>>> /lib/firmware/b43/sslpn1bsinitvals27.fw
>>> /lib/firmware/b43/n0bsinitvals22.fw
>>> /lib/firmware/b43/n0bsinitvals25.fw
>>> /lib/firmware/b43/ucode16_sslpn.fw
>>> /lib/firmware/b43/n0bsinitvals16.fw
>>> /lib/firmware/b43/b0g0bsinitvals9.fw
>>> /lib/firmware/b43/lp0initvals16.fw
>>> /lib/firmware/b43/n0absinitvals11.fw
>>> /lib/firmware/b43/ucode29_mimo.fw
>>> /lib/firmware/b43/n0initvals24.fw
>>> /lib/firmware/b43/b0g0initvals5.fw
>>> /lib/firmware/b43/ht0bsinitvals26.fw
>>> /lib/firmware/b43/ucode11.fw
>>> /lib/firmware/b43/ht0bsinitvals29.fw
>>> /lib/firmware/b43/lcn0initvals25.fw
>>> /lib/firmware/b43/lp0initvals15.fw
>>> /lib/firmware/b43/ucode25_lcn.fw
>>> /lib/firmware/b43/n0bsinitvals24.fw
>>> /lib/firmware/b43/b0g0initvals13.fw
>>> /lib/firmware/b43/lcn2initvals25.fw
>>> sys-firmware/b43-firmware-5.100.138 merged.

>>> Recording sys-firmware/b43-firmware in "world" favorites file...

>>> Completed (2 of 3) sys-firmware/b43-firmware-5.100.138::gentoo

>>> Emerging (3 of 3) sys-firmware/b43legacy-firmware-3.130.20.0::gentoo
 * wl_apsta-3.130.20.0.o BLAKE2B SHA512 size ;-) ...                                         [ ok ]
>>> Unpacking source...
>>> Source unpacked in /var/tmp/portage/sys-firmware/b43legacy-firmware-3.130.20.0/work
>>> Preparing source in /var/tmp/portage/sys-firmware/b43legacy-firmware-3.130.20.0/work ...
>>> Source prepared.
>>> Configuring source in /var/tmp/portage/sys-firmware/b43legacy-firmware-3.130.20.0/work ...
>>> Source configured.
>>> Compiling source in /var/tmp/portage/sys-firmware/b43legacy-firmware-3.130.20.0/work ...
This file is recognised as:
  filename   :  wl_apsta.o
  version    :  295.14
  MD5        :  e08665c5c5b66beb9c3b2dd54aa80cb3
Extracting b43legacy/ucode2.fw
Extracting b43legacy/ucode4.fw
Extracting b43legacy/ucode5.fw
Extracting b43legacy/ucode11.fw
Extracting b43legacy/pcm4.fw
Extracting b43legacy/pcm5.fw
Extracting b43legacy/a0g0bsinitvals2.fw
Extracting b43legacy/b0g0bsinitvals5.fw
Extracting b43legacy/a0g0initvals5.fw
Extracting b43legacy/a0g1bsinitvals5.fw
Extracting b43legacy/a0g0initvals2.fw
Extracting b43legacy/a0g1initvals5.fw
Extracting b43legacy/b0g0bsinitvals2.fw
Extracting b43legacy/b0g0initvals5.fw
Extracting b43legacy/b0g0initvals2.fw
Extracting b43legacy/a0g0bsinitvals5.fw
>>> Source compiled.
>>> Test phase [not enabled]: sys-firmware/b43legacy-firmware-3.130.20.0

>>> Install sys-firmware/b43legacy-firmware-3.130.20.0 into /var/tmp/portage/sys-firmware/b43legacy-firmware-3.130.20.0/image
>>> Completed installing sys-firmware/b43legacy-firmware-3.130.20.0 into /var/tmp/portage/sys-firmware/b43legacy-firmware-3.130.20.0/image

 * Final size of build directory: 784 KiB
 * Final size of installed tree:  148 KiB

./
./lib/
./lib/firmware/
./lib/firmware/b43legacy/
./lib/firmware/b43legacy/ucode11.fw
./lib/firmware/b43legacy/b0g0initvals5.fw
./lib/firmware/b43legacy/ucode2.fw
./lib/firmware/b43legacy/b0g0bsinitvals5.fw
./lib/firmware/b43legacy/pcm5.fw
./lib/firmware/b43legacy/a0g1bsinitvals5.fw
./lib/firmware/b43legacy/pcm4.fw
./lib/firmware/b43legacy/a0g0bsinitvals5.fw
./lib/firmware/b43legacy/a0g0bsinitvals2.fw
./lib/firmware/b43legacy/b0g0initvals2.fw
./lib/firmware/b43legacy/a0g0initvals5.fw
./lib/firmware/b43legacy/b0g0bsinitvals2.fw
./lib/firmware/b43legacy/ucode5.fw
./lib/firmware/b43legacy/a0g0initvals2.fw
./lib/firmware/b43legacy/ucode4.fw
./lib/firmware/b43legacy/a0g1initvals5.fw
>>> Done.

>>> Installing (3 of 3) sys-firmware/b43legacy-firmware-3.130.20.0::gentoo
 * checking 16 files for package collisions
>>> Merging sys-firmware/b43legacy-firmware-3.130.20.0 to /
--- /lib/
--- /lib/firmware/
>>> /lib/firmware/b43legacy/
>>> /lib/firmware/b43legacy/a0g1initvals5.fw
>>> /lib/firmware/b43legacy/ucode4.fw
>>> /lib/firmware/b43legacy/a0g0initvals2.fw
>>> /lib/firmware/b43legacy/ucode5.fw
>>> /lib/firmware/b43legacy/b0g0bsinitvals2.fw
>>> /lib/firmware/b43legacy/a0g0initvals5.fw
>>> /lib/firmware/b43legacy/b0g0initvals2.fw
>>> /lib/firmware/b43legacy/a0g0bsinitvals2.fw
>>> /lib/firmware/b43legacy/a0g0bsinitvals5.fw
>>> /lib/firmware/b43legacy/pcm4.fw
>>> /lib/firmware/b43legacy/a0g1bsinitvals5.fw
>>> /lib/firmware/b43legacy/pcm5.fw
>>> /lib/firmware/b43legacy/b0g0bsinitvals5.fw
>>> /lib/firmware/b43legacy/ucode2.fw
>>> /lib/firmware/b43legacy/b0g0initvals5.fw
>>> /lib/firmware/b43legacy/ucode11.fw
>>> sys-firmware/b43legacy-firmware-3.130.20.0 merged.

>>> Recording sys-firmware/b43legacy-firmware in "world" favorites file...

>>> Completed (3 of 3) sys-firmware/b43legacy-firmware-3.130.20.0::gentoo

 * GNU info directory index is up-to-date.
Note that both b43-firmware and b43legacy-firmware have a gentoo ebuild dependendency on b43-fwcutter
Code:
# equery d b43-fwcutter
 * These packages depend on b43-fwcutter:
sys-firmware/b43-firmware-5.100.138 (>=net-wireless/b43-fwcutter-015)
sys-firmware/b43legacy-firmware-3.130.20.0 (>=net-wireless/b43-fwcutter-012)
and you can see above that it is installed. It appears b43-firmware and b43legacy-firmware packages actually use it to extract the fw files from wl-apsta.o You can also see above that the b43-firmware is the same version (b43-firmware-5.100.138) as that which I had most recently extracted with b43-fwcutter from wl-apsta.o manually.

I also verified that I have brcmsmac enabled in the kernel --
Code:
    [*]   Broadcom devices
         <M>     Broadcom 43xx wireless support (mac80211 stack)
                 Supported bus types (BCMA and SSB)  --->
         [*]     Broadcom 43xx SDIO device support
         [*]     Support for G-PHY (802.11g) devices
         [*]     Support for N-PHY (the main 802.11n series) devices
         [*]     Support for LP-PHY (low-power 802.11g) devices
         [*]     Support for HT-PHY (high throughput 802.11n) devices
         [ ]     Broadcom 43xx debugging
         <M>     Broadcom 43xx-legacy wireless support (mac80211 stack)
         [ ]       Broadcom 43xx-legacy debugging
                   Broadcom 43xx-legacy data transfer mode (DMA + PIO)  --->
         <M>     Broadcom IEEE802.11n PCIe SoftMAC WLAN driver
         <M>     Broadcom FullMAC WLAN driver
         [*]     SDIO bus interface support for FullMAC driver
         [ ]     USB bus interface support for FullMAC driver
         [*]     PCIE bus interface support for FullMAC driver
         [ ]     Broadcom device tracing
         [ ]     Broadcom driver debug functions

# nano /etc/modules-load.d/network.conf
Code:
b43
brcmsmac

# nano /etc/modprobe.d/blacklist.conf
Code:
#blacklist wl
#blacklist cfg80211
#blacklist b43
#blacklist bcma
#blacklist ssb
#blacklist mac80211
#blacklist brcmsmac
i.e. nothing blacklisted at the moment. Rebooting --
Code:
/sys/class/net/
|-- bond0 -> ../../devices/virtual/net/bond0
|-- bonding_masters
|-- br0 -> ../../devices/virtual/net/br0
|-- eth0 -> ../../devices/pci0000:00/0000:00:19.0/net/eth0
|-- eth1 -> ../../devices/pci0000:00/0000:00:1c.3/0000:03:00.0/0000:04:03.0/0000:06:00.0/net/eth1
|-- eth2 -> ../../devices/pci0000:00/0000:00:1c.5/0000:09:00.0/net/eth2
|-- lo -> ../../devices/virtual/net/lo
|-- teql0 -> ../../devices/virtual/net/teql0
|-- tunl0 -> ../../devices/virtual/net/tunl0
(eth3 is no longer showing up).

Looking at what modules are loaded...
Code:
# lsmod
Module                  Size  Used by
brcmsmac              565248  0
brcmutil               16384  1 brcmsmac
b43                   438272  0
iwlmvm                348160  0
ssb                    69632  1 b43
mac80211              950272  3 b43,iwlmvm,brcmsmac
wl                   6369280  0
iwlwifi               307200  1 iwlmvm
cfg80211              892928  6 wl,b43,iwlmvm,iwlwifi,mac80211,brcmsmac
bcma                   53248  2 b43,brcmsmac
I'm curious about wl because I thought it came from net-wireless/broadcom-sta, which is no longer installed.
Code:
# eix broadcom
* net-wireless/broadcom-sta
     Available versions:  (~)6.30.223.271-r7^m{xpak:6} {dist-kernel modules-sign +strip}
     Homepage:            https://www.broadcom.com/support/802.11
     Description:         Broadcom's IEEE 802.11a/b/g/n hybrid Linux device driver

[I] sys-firmware/broadcom-bt-firmware
     Available versions:  12.0.1.1105_p3{xpak} ~12.0.1.1105_p4-r1 {compress-xz compress-zstd}
     Installed versions:  12.0.1.1105_p3{xpak}(12:58:55 PM 10/31/2023)
     Homepage:            https://github.com/winterheart/broadcom-bt-firmware
     Description:         Broadcom Bluetooth firmware

Found 2 matches
Maybe sys-firmware/broadcom-bt-firmware installed it ? Not according to equery f sys-firmware/broadcom-bt-firmware, but I de-installed sys-firmware/broadcom-bt-firmware anyway.
Code:
# emerge --depclean sys-firmware/broadcom-bt-firmware
Rebooting... same results - no wireless interface associated with the bcm4352 device in output to "ifconfig -a" "tree /sys/class/net" nor "cat /proc/net/dev" -- and same modules in "lsmod" as shown above.
Here's the dmesg result - same SPROM error as before...
Code:
# dmesg | grep -i 'bcma\|b43\|cfg80211'
[   24.118670] bcma-pci-bridge 0000:05:00.0: enabling device (0000 -> 0002)
[   24.118751] bcma-pci-bridge 0000:05:00.0: bus0: Found chip with id 0x4352, rev 0x03 and package 0x00
[   24.118787] bcma-pci-bridge 0000:05:00.0: bus0: Core 0 found: ChipCommon (manuf 0x4BF, id 0x800, rev 0x2B, class 0x0)
[   24.118808] bcma-pci-bridge 0000:05:00.0: bus0: Core 1 found: IEEE 802.11 (manuf 0x4BF, id 0x812, rev 0x2A, class 0x0)
[   24.118845] bcma-pci-bridge 0000:05:00.0: bus0: Core 2 found: ARM CR4 (manuf 0x4BF, id 0x83E, rev 0x02, class 0x0)
[   24.118885] bcma-pci-bridge 0000:05:00.0: bus0: Core 3 found: PCIe Gen2 (manuf 0x4BF, id 0x83C, rev 0x01, class 0x0)
[   24.118904] bcma-pci-bridge 0000:05:00.0: bus0: Core 4 found: USB 2.0 Device (manuf 0x4BF, id 0x81A, rev 0x11, class 0x0)
[   24.151566] bcma: Unsupported SPROM revision: 11
[   24.151573] bcma-pci-bridge 0000:05:00.0: bus0: Invalid SPROM read from the PCIe card, trying to use fallback SPROM
[   24.151575] bcma-pci-bridge 0000:05:00.0: bus0: Using fallback SPROM failed (err -2)
[   24.151578] bcma-pci-bridge 0000:05:00.0: bus0: No SPROM available
[   24.152779] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[   24.153831] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[   24.154122] bcma-pci-bridge 0000:05:00.0: bus0: Bus registered
[   24.179770] b43-phy0: Broadcom 4352 WLAN found (core revision 42)
[   24.180115] b43-phy0 ERROR: FOUND UNSUPPORTED PHY (Analog 12, Type 11 (AC), Revision 1)
[   24.180119] b43: probe of bcma0:1 failed with error -95


Digging a little harder - I found that although net-wireless/broadcom-sta was de-installed, the driver was still in /lib/modules...
Code:
# find / -iname wl.ko 2>/dev/null
/lib/modules/6.1.57-gentoo/extra/wl.ko

# ls -al  /lib/modules/6.1.57-gentoo/extra/  ## make sure there's nothing else there
/lib/modules/6.1.57-gentoo/extra/wl.ko

# rm -r /lib/modules/6.1.57-gentoo/extra
Rebooting... OK, now the wl driver isn't showing up any more
Code:
# lsmod
Module                  Size  Used by
brcmsmac              565248  0
brcmutil               16384  1 brcmsmac
iwlmvm                348160  0
b43                   438272  0
ssb                    69632  1 b43
mac80211              950272  3 b43,iwlmvm,brcmsmac
iwlwifi               307200  1 iwlmvm
cfg80211              892928  5 b43,iwlmvm,iwlwifi,mac80211,brcmsmac
bcma                   53248  2 b43,brcmsmac

But this didn't fix the problem that is causing the b43 and associated drivers from not properly setting up the wireless interface for the bcm4352...
Code:
 # dmesg | grep -i 'bcma\|b43\|cfg80211'
[   24.135858] bcma-pci-bridge 0000:05:00.0: enabling device (0000 -> 0002)
[   24.135961] bcma-pci-bridge 0000:05:00.0: bus0: Found chip with id 0x4352, rev 0x03 and package 0x00
[   24.135997] bcma-pci-bridge 0000:05:00.0: bus0: Core 0 found: ChipCommon (manuf 0x4BF, id 0x800, rev 0x2B, class 0x0)
[   24.136017] bcma-pci-bridge 0000:05:00.0: bus0: Core 1 found: IEEE 802.11 (manuf 0x4BF, id 0x812, rev 0x2A, class 0x0)
[   24.136055] bcma-pci-bridge 0000:05:00.0: bus0: Core 2 found: ARM CR4 (manuf 0x4BF, id 0x83E, rev 0x02, class 0x0)
[   24.136095] bcma-pci-bridge 0000:05:00.0: bus0: Core 3 found: PCIe Gen2 (manuf 0x4BF, id 0x83C, rev 0x01, class 0x0)
[   24.136115] bcma-pci-bridge 0000:05:00.0: bus0: Core 4 found: USB 2.0 Device (manuf 0x4BF, id 0x81A, rev 0x11, class 0x0)
[   24.168729] bcma: Unsupported SPROM revision: 11
[   24.168735] bcma-pci-bridge 0000:05:00.0: bus0: Invalid SPROM read from the PCIe card, trying to use fallback SPROM
[   24.168738] bcma-pci-bridge 0000:05:00.0: bus0: Using fallback SPROM failed (err -2)
[   24.168741] bcma-pci-bridge 0000:05:00.0: bus0: No SPROM available
[   24.170102] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[   24.171275] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[   24.171442] bcma-pci-bridge 0000:05:00.0: bus0: Bus registered
[   24.188888] b43-phy0: Broadcom 4352 WLAN found (core revision 42)
[   24.189235] b43-phy0 ERROR: FOUND UNSUPPORTED PHY (Analog 12, Type 11 (AC), Revision 1)
[   24.189238] b43: probe of bcma0:1 failed with error -95
Back to top
View user's profile Send private message
logrusx
Advocate
Advocate


Joined: 22 Feb 2018
Posts: 2683

PostPosted: Fri Nov 03, 2023 9:22 pm    Post subject: Reply with quote

brendlefly62 wrote:
Code:

[   24.189235] b43-phy0 ERROR: FOUND UNSUPPORTED PHY (Analog 12, Type 11 (AC), Revision 1)
[   24.189238] b43: probe of bcma0:1 failed with error -95


I'm sorry, I have mislead you. This particular chip is not supported by b43. It's only supported by the broadcom proprietary driver.

https://wireless.wiki.kernel.org/en/users/drivers/b43:

Code:
PCI-ID   Supported?   Chip ID   Modes   PHY version   Alternative
14e4:43a0   no         BCM4352   a/b/g/n/ac   ?      wl


However I don't have experience with it.

Regarding wl being loaded despite you unmerged it, it won't unmerge the kernel modules it installed. It will only unmerge libraries and other files. The same holds true for any other out of tree kernel driver.

Best Regards,
Georgi
Back to top
View user's profile Send private message
pingtoo
Veteran
Veteran


Joined: 10 Sep 2021
Posts: 1481
Location: Richmond Hill, Canada

PostPosted: Fri Nov 03, 2023 10:14 pm    Post subject: Reply with quote

brendlefly62,

You work intrinsic me, So I did some research on the topic of BCM4352.

First of all my compliment to your detail posts in this thread, they make research much easier.
And It seems to me there are too much noises that muddy this topic make it a bit of confusion.
Finally I believe your post is the right answer based on my research.

disclaimer, I am no expert in wireless setting and myself don't use wireless on my desktop computer.

My search start from "b43-phy0 ERROR: FOUND UNSUPPORTED PHY" which lead me to https://askubuntu.com/questions/592191/error-during-startup-b43-phy0-unsupported-phy (please see the last answer)

IMHO it match your situation very well, so follow up and look into all the details where the reference to "broadcpm-wl" external kernel module. Which in turn lead to gentoo's net-wireless/broadcom-sta from there I look into what is difference between using "wext" vs "nl80211" so I think the reason your use of wpa_supplicant need -Dwext is because you miss enable "CONFIG_NL80211_TESTMODE=y", I am not sure if both CONFIG_NL80211_TESTMODE=y and CFG80211_WEXT can coexist, but my guess is they can, From the linux/net/wireless/Kconfig point of view.

I think the broadcom-sta by default not need any firmware so I suggest you remove all the firmware that you installed because the testing of b43 module

I suggest the approach for doing this,
1. clean up everything, so can start from scratch (I mean the portion about wireless, not rebuild entire gentoo)
2. configure kernel to only support broadcom-wl (more specific net-wireless/boradcom-sta)
3. keep the /etc/modprobe.d/wl.conf as is without comment out the wlan0 alias setting. The wlan0 name should be rename by udev rule to something more modern name

In summary your kernel configure should be at least,
CONFIG_B43=n
CONFIG_CFG80211=m
CONFIG_NL80211_TESTMODE=y
CONFIG_CFG80211_WEXT=y (I am not sure if you need this if NL80211 enable lead to wpa_supplicant working without -Dwext)
CONFIG_LIB80211=m
CONFIG_LUB80211_CRYPT_*=m
CONFIG_MAC80211=m

See more detail in Gentoo wiki Wi-Fi
: broadcom-wl github source code here
Back to top
View user's profile Send private message
brendlefly62
Apprentice
Apprentice


Joined: 19 Dec 2009
Posts: 156

PostPosted: Mon Nov 06, 2023 4:14 am    Post subject: Reply with quote

Hi, pingtoo. Because the b43 driver will not work with the bcm4352 and the broadcom-sta driver will not support access point (AP) mode, I have already moved on and completed my project after I installed a TP-Link PCIe wifi adapter that does support AP mode. That project is running smoothly. However, I still have the (unused) bcm4352 chip on the motherboard... So, I'm still interested, too - but my interest is now purely academic.

I agree - that post matches my situation quite closely. I have followed your direction and made a clean start with the broadcom-sta driver. I un-merged b43-firmware, b43legacy-firmware, b43-fwcutter, and inspected to verify that there is no /lib/firmware/b43 directory anymore.
Code:
emerge --depclean sys-firmware/b43-firmware sys-firmware/b43legacy-firmware net-wireless/b43-fwcutter


I noticed however, that there is a /lib/firmware/brcm directory, and it contains b43xx firmware --
Code:
# ls -al /lib/firmware/brcm/bcm43*
-rw-r--r-- 1 root root 269595 Nov  4 13:23 /lib/firmware/brcm/bcm4329-fullmac-4.bin
-rw-r--r-- 1 root root  96224 Nov  4 13:23 /lib/firmware/brcm/bcm43xx-0.fw
-rw-r--r-- 1 root root    180 Nov  4 13:23 /lib/firmware/brcm/bcm43xx_hdr-0.fw

I decided to leave that alone for now, in case that is part of what may make broadcom-sta work even without b43-firmware...

Code:
# tree /etc/modprobe.d/
/etc/modprobe.d/
|-- blacklist.conf
`-- wl.conf

# cat /etc/modprobe.d/blacklist.conf
#blacklist wl
#blacklist cfg80211
#blacklist mac80211
blacklist b43
blacklist bcma
blacklist ssb
blacklist brcmsmac
# cat /etc/modprobe.d/wl.conf
# modprobe.d configuration file for WL

# Internal Aliases - Do not edit
# ------------------------------
#alias wlan0 wl
###alias eth3 wl

# Configurable module parameters
# ------------------------------
# passivemode:   (int)
# wl_txq_thresh:         (int)
# oneonly:       (int)
# piomode:       (int)
# instance_base:         (int)
# nompc:         (int)
# intf_name:     (string)

# tree /etc/modules-load.d/
/etc/modules-load.d/
|-- lib80211_crypt_tkip
`-- network.conf
# cat /etc/modules-load.d/lib80211_crypt_tkip
### needed for wpa
lib80211_crypt_tkip
# cat /etc/modules-load.d/network.conf
#b43
#brcmsmac

Thus - blacklisting is as per the arch Linux article you referred to, wl.conf is commented out for now, and the only thing auto-loading is tkip, for wpa.

Then, I configured the kernel per your direction --
Code:

### turn off distcc
# make menuconfig
# make && make modules_install install
# reboot ## then examine running kernel
# for x in b43 cfg80211 ... ; zgrep -i config_$x /proc/config.gz; done

# CONFIG_B43 is not set
# CONFIG_B43LEGACY is not set
CONFIG_CFG80211=m
CONFIG_NL80211_TESTMODE=y
CONFIG_CFG80211_WEXT=y
CONFIG_LIB80211=m
CONFIG_LIB80211_CRYPT_WEP=m
CONFIG_LIB80211_CRYPT_CCMP=m
CONFIG_LIB80211_CRYPT_TKIP=m
CONFIG_MAC80211=m


I notice the following in menuconfig help --
Quote:

CONFIG_NL80211_TESTMODE:

The nl80211 testmode command helps implementing things like
factory calibration or validation tools for wireless chips.

Select this option ONLY for kernels that are specifically
built for such purposes.


Debugging tools that are supposed to end up in the hands of
users should better be implemented with debugfs.

Say N.

This looks like a security problem to me, and I tested with it, but I'm not leaving it in the kernel

Then, I installed the wl driver --

I considered manually making "broadcom-wl" from the sources identified in the last line of your post, but I checked, and that github site points to an outdated link on the broadcom support website. A current link is https://www.broadcom.com/products/wireless/wireless-lan-infrastructure

I followed it's parent stucture until I found the search form and managed to get pointed to a driver for the bcm4356 chip - there is none specifically for bcm4352. Here is the link --
https://docs.broadcom.com/docs/12358410

The link says --
Quote:

Linux? STA 64-bit driver 10/01/2015 GZ
These packages contain Broadcom's IEEE 802.11a/b/g/n hybrid Linux.. device driver for use with Broadcom's BCM4311-, BCM4312-, BCM4313-, BCM4321-, BCM4322-, BCM43224-, and BCM43225-, BCM43227- and BCM43228-based hardware. There are different tars for 32-bit and 64-bit x86 CPU architectures. Make sure that you download the appropriate tar because ...


The file downloaded is "hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz"
I downloaded it using above link, on my workstation, and then I inspected it.

I also examined the ebuild for Gentoo's latest version of net-wireless/broadcom-sta, used wget to retrieve that source, and compared it...
Code:

### (on workstation)
# cd /home/xxx/Downloads
# ls -alrt
...
-rw-r--r--  1 xxx xxx    2928541 Nov  5 21:55  hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz

# tar -tzvpf hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz
-rw-rw-rw- hwnbuild/users 5154 2015-09-18 18:47 Makefile
drwxrwxrwx hwnbuild/users    0 2015-09-18 18:47 lib/
-rw-rw-rw- hwnbuild/users 7350128 2015-09-18 18:47 lib/wlc_hybrid.o_shipped
-rwxrwxrwx hwnbuild/users   12381 2015-09-18 18:47 lib/LICENSE.txt
drwxrwxrwx hwnbuild/users       0 2015-09-18 18:47 src/
drwxrwxrwx hwnbuild/users       0 2015-09-18 18:47 src/include/
-rw-rw-rw- hwnbuild/users    3955 2015-09-18 18:47 src/include/typedefs.h
-rw-rw-rw- hwnbuild/users   15007 2015-09-18 18:47 src/include/linuxver.h
-rw-rw-rw- hwnbuild/users   20860 2015-09-18 18:47 src/include/bcmutils.h
...
drwxrwxrwx hwnbuild/users       0 2015-09-18 18:47 src/wl/
drwxrwxrwx hwnbuild/users       0 2015-09-18 18:47 src/wl/sys/
-rw-rw-rw- hwnbuild/users    2431 2015-09-18 18:47 src/wl/sys/wl_dbg.h
-rw-rw-rw- hwnbuild/users    1957 2015-09-18 18:47 src/wl/sys/wlc_key.h
-rw-rw-rw- hwnbuild/users    4641 2015-09-18 18:47 src/wl/sys/wl_linux.h
-rw-rw-rw- hwnbuild/users   77478 2015-09-18 18:47 src/wl/sys/wl_linux.c
...
drwxrwxrwx hwnbuild/users       0 2015-09-18 18:47 src/common/
drwxrwxrwx hwnbuild/users       0 2015-09-18 18:47 src/common/include/
drwxrwxrwx hwnbuild/users       0 2015-09-18 18:47 src/common/include/proto/
-rw-rw-rw- hwnbuild/users    1799 2015-09-18 18:47 src/common/include/proto/bcmeth.h
-rw-rw-rw- hwnbuild/users    5943 2015-09-18 18:47 src/common/include/proto/ieee80211_radiotap.h
-rw-rw-rw- hwnbuild/users    4928 2015-09-18 18:47 src/common/include/proto/ethernet.h
-rw-rw-rw- hwnbuild/users    1353 2015-09-18 18:47 src/common/include/proto/802.1d.h
-rw-rw-rw- hwnbuild/users    5578 2015-09-18 18:47 src/common/include/proto/bcmip.h
-rw-rw-rw- hwnbuild/users    9729 2015-09-18 18:47 src/common/include/proto/bcmevent.h
-rw-rw-rw- hwnbuild/users   88473 2015-09-18 18:47 src/common/include/proto/802.11.h
-rw-rw-rw- hwnbuild/users    4299 2015-09-18 18:47 src/common/include/proto/wpa.h


Code:

### (on Asus P97 system with bcm4352...)
# find / -iname "*broadcom-sta*.ebuild" -type f -print 2>/dev/null
/var/db/repos/gentoo/net-wireless/broadcom-sta/broadcom-sta-6.30.223.271-r7.ebuild

# nano /var/db/repos/gentoo/net-wireless/broadcom-sta/broadcom-sta-6.30.223.271-r7.ebuild
...
SRC_BASE="https://docs.broadcom.com/docs-and-downloads/docs/linux_sta/hybrid-v35"
SRC_URI="x86? ( ${SRC_BASE}-nodebug-pcoem-${PV//\./_}.tar.gz )
        amd64? ( ${SRC_BASE}_64-nodebug-pcoem-${PV//\./_}.tar.gz )
...

wget https://docs.broadcom.com/docs-and-downloads/docs/linux_sta/hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz
--2023-11-05 22:06:01--  https://docs.broadcom.com/docs-and-downloads/docs/linux_sta/hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz
Resolving docs.broadcom.com... 104.18.32.150, 172.64.155.106, 2606:4700:4400::6812:2096, ...
Connecting to docs.broadcom.com|104.18.32.150|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2928541 (2.8M) [application/octet-stream]
Saving to: 'hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz'

hybrid-v35_64-nodebug-pc 100%[===============================>]   2.79M  7.44MB/s    in 0.4s   

2023-11-05 22:06:02 (7.44 MB/s) - 'hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz' saved [2928541/2928541]

# tar -tzvpf hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz
-rw-rw-rw- hwnbuild/users 5154 2015-09-18 18:47 Makefile
drwxrwxrwx hwnbuild/users    0 2015-09-18 18:47 lib/
-rw-rw-rw- hwnbuild/users 7350128 2015-09-18 18:47 lib/wlc_hybrid.o_shipped
-rwxrwxrwx hwnbuild/users   12381 2015-09-18 18:47 lib/LICENSE.txt
drwxrwxrwx hwnbuild/users       0 2015-09-18 18:47 src/
drwxrwxrwx hwnbuild/users       0 2015-09-18 18:47 src/include/
-rw-rw-rw- hwnbuild/users    3955 2015-09-18 18:47 src/include/typedefs.h
-rw-rw-rw- hwnbuild/users   15007 2015-09-18 18:47 src/include/linuxver.h
-rw-rw-rw- hwnbuild/users   20860 2015-09-18 18:47 src/include/bcmutils.h
...
drwxrwxrwx hwnbuild/users       0 2015-09-18 18:47 src/wl/
drwxrwxrwx hwnbuild/users       0 2015-09-18 18:47 src/wl/sys/
-rw-rw-rw- hwnbuild/users    2431 2015-09-18 18:47 src/wl/sys/wl_dbg.h
-rw-rw-rw- hwnbuild/users    1957 2015-09-18 18:47 src/wl/sys/wlc_key.h
-rw-rw-rw- hwnbuild/users    4641 2015-09-18 18:47 src/wl/sys/wl_linux.h
-rw-rw-rw- hwnbuild/users   77478 2015-09-18 18:47 src/wl/sys/wl_linux.c
...
drwxrwxrwx hwnbuild/users       0 2015-09-18 18:47 src/common/
drwxrwxrwx hwnbuild/users       0 2015-09-18 18:47 src/common/include/
drwxrwxrwx hwnbuild/users       0 2015-09-18 18:47 src/common/include/proto/
-rw-rw-rw- hwnbuild/users    1799 2015-09-18 18:47 src/common/include/proto/bcmeth.h
-rw-rw-rw- hwnbuild/users    5943 2015-09-18 18:47 src/common/include/proto/ieee80211_radiotap.h
-rw-rw-rw- hwnbuild/users    4928 2015-09-18 18:47 src/common/include/proto/ethernet.h
-rw-rw-rw- hwnbuild/users    1353 2015-09-18 18:47 src/common/include/proto/802.1d.h
-rw-rw-rw- hwnbuild/users    5578 2015-09-18 18:47 src/common/include/proto/bcmip.h
-rw-rw-rw- hwnbuild/users    9729 2015-09-18 18:47 src/common/include/proto/bcmevent.h
-rw-rw-rw- hwnbuild/users   88473 2015-09-18 18:47 src/common/include/proto/802.11.h
-rw-rw-rw- hwnbuild/users    4299 2015-09-18 18:47 src/common/include/proto/wpa.h

Driver files are from 2015.
However, this is the same version. Same tarball. Same content - filenames, same file sizes. So, instead of using the github link from the arch linux article, I've (re)installed net-wireless/broadcom-sta using Gentoo's ebuild -- noting that the ebuild does apply 16 patches

Code:

# ls -al /var/db/repos/gentoo/net-wireless/broadcom-sta/files/
total 88
drwxr-xr-x 2 root root 4096 Oct 25 19:37 .
drwxr-xr-x 3 root root 4096 Oct 25 19:37 ..
-rw-r--r-- 1 root root 1270 Jun 24 12:40 001-null-pointer-fix.patch
-rw-r--r-- 1 root root  786 Jun 24 12:40 002-rdtscl.patch
-rw-r--r-- 1 root root 3897 Jun 24 12:40 003-linux47.patch
-rw-r--r-- 1 root root 1835 Jun 24 12:40 004-linux48.patch
-rw-r--r-- 1 root root 5013 Jun 24 12:40 005-debian-fix-kernel-warnings.patch
-rw-r--r-- 1 root root  800 Jun 24 12:40 006-linux411.patch
-rw-r--r-- 1 root root 2776 Jun 24 12:40 007-linux412.patch
-rw-r--r-- 1 root root 1063 Jun 24 12:40 008-linux415.patch
-rw-r--r-- 1 root root  492 Jun 24 12:40 009-fix_mac_profile_discrepancy.patch
-rw-r--r-- 1 root root 1866 Jun 24 12:40 010-linux56.patch
-rw-r--r-- 1 root root 5933 Jun 24 12:40 011-linux59.patch
-rw-r--r-- 1 root root 2790 Jun 24 12:40 012-linux517.patch
-rw-r--r-- 1 root root 2337 Jun 24 12:40 013-linux518.patch
-rw-r--r-- 1 root root  936 Jun 24 12:40 014-linux414.patch
-rw-r--r-- 1 root root 1267 Jun 24 12:40 015-linux600.patch
-rw-r--r-- 1 root root 4316 Jun 24 12:40 016-linux601.patch
-rw-r--r-- 1 root root  335 Jun 24 12:40 broadcom-sta-modules.conf

### (it also installs the wl.conf file discussed earlier)
# cat /var/db/repos/gentoo/net-wireless/broadcom-sta/files/broadcom-sta-modules.conf
# modprobe.d configuration file for WL

# Internal Aliases - Do not edit
# ------------------------------
alias wlan0 wl


# Configurable module parameters
# ------------------------------
# passivemode:   (int)
# wl_txq_thresh:         (int)
# oneonly:       (int)
# piomode:       (int)
# instance_base:         (int)
# nompc:         (int)
# intf_name:     (string)


Now, installing net-wireless/broadcom-sta --
Code:

# emerge -av net-wireless/broadcom-sta

These are the packages that would be merged, in order:

Calculating dependencies... done!
Dependency resolution took 0.48 s.

[ebuild  N     ] virtual/linux-sources-3-r7::gentoo  USE="firmware" 0 KiB
[ebuild  N    ~] net-wireless/broadcom-sta-6.30.223.271-r7::gentoo  USE="strip -dist-kernel -modules-sign" 2,877 KiB

Total: 2 packages (2 new), Size of downloads: 2,877 KiB

Would you like to merge these packages? [Yes/No] y

>>> Verifying ebuild manifests

>>> Running pre-merge checks for net-wireless/broadcom-sta-6.30.223.271-r7
 *
 * If you are stuck using this unmaintained driver (likely in a MacBook),
 * you may be interested to know that a newer compatible wireless card
 * is supported by the in-tree brcmfmac driver. It has a model number
 * BCM943602CS and is for sale on the second hand market for less than
 * 20 USD.
 *
 * See https://wikidevi.com/wiki/Broadcom_Wireless_Adapters and
 *     https://wikidevi.com/wiki/Broadcom_BCM943602CS
 * for more information.
 *

>>> Emerging (1 of 2) virtual/linux-sources-3-r7::gentoo
>>> Unpacking source...
>>> Source unpacked in /var/tmp/portage/virtual/linux-sources-3-r7/work
>>> Preparing source in /var/tmp/portage/virtual/linux-sources-3-r7/work ...
>>> Source prepared.
>>> Configuring source in /var/tmp/portage/virtual/linux-sources-3-r7/work ...
>>> Source configured.
>>> Compiling source in /var/tmp/portage/virtual/linux-sources-3-r7/work ...
>>> Source compiled.
>>> Test phase [not enabled]: virtual/linux-sources-3-r7

>>> Install virtual/linux-sources-3-r7 into /var/tmp/portage/virtual/linux-sources-3-r7/image
>>> Completed installing virtual/linux-sources-3-r7 into /var/tmp/portage/virtual/linux-sources-3-r7/image

 * Final size of build directory: 4 KiB
 * Final size of installed tree:  4 KiB

./
>>> Done.

>>> Installing (1 of 2) virtual/linux-sources-3-r7::gentoo
 * checking 0 files for package collisions
>>> Merging virtual/linux-sources-3-r7 to /
>>> virtual/linux-sources-3-r7 merged.

>>> Completed (1 of 2) virtual/linux-sources-3-r7::gentoo

>>> Emerging (2 of 2) net-wireless/broadcom-sta-6.30.223.271-r7::gentoo
 * hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz BLAKE2B SHA512 size ;-) ...            [ ok ]
 * README-broadcom-sta-6.30.223.271.txt BLAKE2B SHA512 size ;-) ...                       [ ok ]
 * Determining the location of the kernel source code
 * Found kernel source directory:
 *     /usr/src/linux
 * Found sources for kernel version:
 *     6.1.57-gentoo
 * Checking for suitable kernel configuration options ...
 *   BCMA: If you insist on building this, you must blacklist it!
 *   SSB: If you insist on building this, you must blacklist it!
 *   MAC80211: If you insist on building this, you must blacklist it!                     [ !! ]
 * Please check to make sure these options are set correctly.
 * Failure to do so may cause unexpected problems.
 * Preparing x86_64-pc-linux-gnu toolchain for kernel modules (override with KERNEL_CHOST) ...
 * Toolchain picked for kernel modules (override with KERNEL_CC, _LD, ...): '/usr/lib/distcc/bin/x86_64-pc-linux-gnu-gcc-13' '/usr/lib/distcc/bin/x86_64-pc-linux-gnu-g++-13' '/usr/bin/x86_64-pc-linux-gnu-ld.bfd' '/usr/bin/x86_64-pc-linux-gnu-gcc-ar' '/usr/bin/x86_64-pc-linux-gnu-gcc-nm' '/usr/bin/x86_64-pc-linux-gnu-objcopy' '/usr/bin/x86_64-pc-linux-gnu-objdump' '/usr/bin/x86_64-pc-linux-gnu-readelf' '/usr/bin/x86_64-pc-linux-gnu-strip'
>>> Unpacking source...
>>> Unpacking hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz to /var/tmp/portage/net-wireless/broadcom-sta-6.30.223.271-r7/work
>>> Unpacking README-broadcom-sta-6.30.223.271.txt to /var/tmp/portage/net-wireless/broadcom-sta-6.30.223.271-r7/work
unpack README-broadcom-sta-6.30.223.271.txt: file format not recognized. Ignoring.
>>> Source unpacked in /var/tmp/portage/net-wireless/broadcom-sta-6.30.223.271-r7/work
>>> Preparing source in /var/tmp/portage/net-wireless/broadcom-sta-6.30.223.271-r7/work ...
 * Applying 001-null-pointer-fix.patch ...                                                [ ok ]
 * Applying 002-rdtscl.patch ...                                                          [ ok ]
 * Applying 003-linux47.patch ...                                                         [ ok ]
 * Applying 004-linux48.patch ...                                                         [ ok ]
 * Applying 005-debian-fix-kernel-warnings.patch ...                                      [ ok ]
 * Applying 006-linux411.patch ...                                                        [ ok ]
 * Applying 007-linux412.patch ...                                                        [ ok ]
 * Applying 008-linux415.patch ...                                                        [ ok ]
 * Applying 009-fix_mac_profile_discrepancy.patch ...                                     [ ok ]
 * Applying 010-linux56.patch ...                                                         [ ok ]
 * Applying 011-linux59.patch ...
patching file src/wl/sys/wl_cfg80211_hybrid.c
Hunk #1 succeeded at 38 with fuzz 2.
Hunk #2 succeeded at 444 (offset 8 lines).
patching file src/wl/sys/wl_iw.c
patching file src/wl/sys/wl_linux.c
Hunk #1 succeeded at 1644 (offset 1 line).
Hunk #2 succeeded at 1665 (offset 1 line).
Hunk #3 succeeded at 1678 (offset 1 line).
patching file src/wl/sys/wl_linux.h
patching file src/wl/sys/wlc_pub.h                                                        [ ok ]
 * Applying 012-linux517.patch ...                                                        [ ok ]
 * Applying 013-linux518.patch ...                                                        [ ok ]
 * Applying 014-linux414.patch ...                                                        [ ok ]
 * Applying 015-linux600.patch ...                                                        [ ok ]
 * Applying 016-linux601.patch ...                                                        [ ok ]
>>> Source prepared.
>>> Configuring source in /var/tmp/portage/net-wireless/broadcom-sta-6.30.223.271-r7/work ...
>>> Source configured.
>>> Compiling source in /var/tmp/portage/net-wireless/broadcom-sta-6.30.223.271-r7/work ...
...
>>> Merging net-wireless/broadcom-sta-6.30.223.271-r7 to /
--- /lib/
--- /lib/modules/
--- /lib/modules/6.1.57-gentoo/
>>> /lib/modules/6.1.57-gentoo/extra/
>>> /lib/modules/6.1.57-gentoo/extra/wl.ko
--- /usr/
--- /usr/share/
--- /usr/share/doc/
>>> /usr/share/doc/broadcom-sta-6.30.223.271-r7/
>>> /usr/share/doc/broadcom-sta-6.30.223.271-r7/README-broadcom-sta-6.30.223.271.txt.bz2
--- /etc/
--- /etc/modprobe.d/
>>> /etc/modprobe.d/._cfg0000_wl.conf
 * Updating module dependencies for kernel 6.1.57-gentoo ...
 * Running depmod -ae -F /lib/modules/6.1.57-gentoo/build/System.map 6.1.57-gentoo ...    [ ok ]
>>> net-wireless/broadcom-sta-6.30.223.271-r7 merged.


Note the warning above, extracted here --
Quote:

* Checking for suitable kernel configuration options ...
* BCMA: If you insist on building this, you must blacklist it!
* SSB: If you insist on building this, you must blacklist it!
* MAC80211: If you insist on building this, you must blacklist it! [ !! ]
* Please check to make sure these options are set correctly.
* Failure to do so may cause unexpected problems.

I zapped the new /etc/modprobe.d/wl.conf and left that commented out. Then I started wl manually --
Code:

# modprobe wl
# ifconfig -a
...
eth3: flags=4098<BROADCAST,MULTICAST>  mtu 1500  ### showing up as "eth3" again...
...

# tree /sys/class/net
/sys/class/net
...
|-- br0 -> ../../devices/pci...
|-- eth0 ->
...
|-- eth3 -> ../../devices/pci0000:00/0000:00:1c.3/0000:03:00.0/0000:04:01.0/0000:05:00.0/net/eth3
...
`-- wlan0  ### this is my actual currently-running AP


Oops - just realized I still have the downgraded wpa_supplicant...
Code:

# eix -c wpa_supplicant
[I] net-wireless/wpa_supplicant (2.8{xpak:4}[1]@10/31/2023): IEEE 802.1X/WPA supplicant for secure wireless transfers
[1] "joetoo" /var/db/repos/joetoo

So - before starting up net.eth3, I replaced that with the current wpa_supplicant
Code:

# eix -c wpa_supplicant
[I] net-wireless/wpa_supplicant (2.8{xpak:4}[1]@10/31/2023): IEEE 802.1X/WPA supplicant for secure wireless transfers
[1] "joetoo" /var/db/repos/joetoo

# nano /etc/portage/package.mask/wpa_supplicant   ### comment it out

# emerge -av1 wpa_supplicant

These are the packages that would be merged, in order:

Calculating dependencies... done!
Dependency resolution took 1.23 s.

[ebuild     U  ] net-wireless/wpa_supplicant-2.10-r3::gentoo [2.8::joetoo] USE="ap broadcom-sta dbus hs2-0 readline tkip -eap-sim -eapol-test -fasteap -fils -macsec -mbo -mesh -p2p -privsep (-ps3) -qt5 (-selinux) -smartcard -tdls -uncommon-eap-types -wep (-wimax) -wps (-crda%*)" 3,430 KiB

Total: 1 package (1 upgrade), Size of downloads: 3,430 KiB

Would you like to merge these packages? [Yes/No] y
...

Now, brining up net.eth3 -- same as before, it gets an inet6 address, but no inet (ipv4) address...
Manual start proceedure described above does not work. Rebooting...


Result - same as before. "ifconfig -a" shows the interface is there but down. /etc/init.d/net.eth3 start brings it "up"-ish -- it gets an inet6 address but no inet (ipv4) address. Using the manual procedure previously described does work --
Code:
eth3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.xxx.nnn  netmask 255.255.255.0  broadcast 192.168.xxx.255

So - reverting to wpa_supplicant-2.8 and rebooting... works!

I tried modifying the content of /etc/modprobe.d/wl.conf to a variety of alternatives... they dont seem to have any impact.
Code:

#alias wlan0 wl
#alias eth3 wl
alias wlan1 wl

So - I removed the CONFIG_NL80211_TESTMODE setting from the kernel, as well as the brcmsmac and fmac settings that do not appear to be used...
Code:
# CONFIG_NL80211_TESTMODE is not set
# CONFIG_BRCMSMAC is not set
# CONFIG_BRCMFMAC is not set


Rebooted - did not work. Module wl not loaded. modprobe wl returned error. dmesg output contains error referring to "wl disagrees on version of wiphy..."

Tried adding brcmfmac back into kernel as a module. Same result

Reinstalled broadcom-sta and rebooted. Works again - sort of
Current status --> same status as before: eth3 interface is available, but /etc/init.d/net.eth3 does not bring it up properly; manual procedure works around this.
Back to top
View user's profile Send private message
logrusx
Advocate
Advocate


Joined: 22 Feb 2018
Posts: 2683

PostPosted: Mon Nov 06, 2023 9:13 am    Post subject: Reply with quote

brendlefly62 wrote:


I noticed however, that there is a /lib/firmware/brcm directory, and it contains b43xx firmware --
Code:
# ls -al /lib/firmware/brcm/bcm43*
-rw-r--r-- 1 root root 269595 Nov  4 13:23 /lib/firmware/brcm/bcm4329-fullmac-4.bin
-rw-r--r-- 1 root root  96224 Nov  4 13:23 /lib/firmware/brcm/bcm43xx-0.fw
-rw-r--r-- 1 root root    180 Nov  4 13:23 /lib/firmware/brcm/bcm43xx_hdr-0.fw

I decided to leave that alone for now, in case that is part of what may make broadcom-sta work even without b43-firmware...


Use `equery belongs` to determine if any of those files belong to a package. If they don't you can clean them safely.

BTW those crappy chips are notorious for working/not working for no apparent reason.

Best Regards,
Georgi
Back to top
View user's profile Send private message
brendlefly62
Apprentice
Apprentice


Joined: 19 Dec 2009
Posts: 156

PostPosted: Mon Nov 06, 2023 4:10 pm    Post subject: Reply with quote

Hi, logrusx. On this system, there are [51] files in /lib/firmware/brcm/ (no subdirectories). The files are all claimed by sys-kernel/linux-firmware...
Code:

# while read x; do echo -n "[$x] belongs to: "; equery -C b "$x"; done <<< $(find /lib/firmware/brcm/ -type f) > /home/xxx/temp
# nano /home/joe/temp nuoromis /lib/firmware/brcm # grep -i b43xx /home/joe/temp
[/lib/firmware/brcm/brcmfmac43455-sdio.MINIX-NEO Z83-4.txt] belongs to: sys-kernel/linux-firmwar>
[/lib/firmware/brcm/brcmfmac4373.bin] belongs to: sys-kernel/linux-firmware-20231030
[/lib/firmware/brcm/brcmfmac4334-sdio.bin] belongs to: sys-kernel/linux-firmware-20231030
[/lib/firmware/brcm/brcmfmac4329-sdio.bin] belongs to: sys-kernel/linux-firmware-20231030
...
# grep -i bcm43xx /home/xxx/temp
[/lib/firmware/brcm/bcm43xx_hdr-0.fw] belongs to: sys-kernel/linux-firmware-20231030
[/lib/firmware/brcm/bcm43xx-0.fw] belongs to: sys-kernel/linux-firmware-20231030

# grep -v sys-kernel/linux-firmware-20231030 /home/xxx/temp
(no output)
Back to top
View user's profile Send private message
pingtoo
Veteran
Veteran


Joined: 10 Sep 2021
Posts: 1481
Location: Richmond Hill, Canada

PostPosted: Mon Nov 06, 2023 8:22 pm    Post subject: Reply with quote

brendlefly62,

Thank you for taking time to test out my suggestion.
Because I don't have the equipment I really don't have way to test my idea.
But I will share my research on this topic.

my objective are to figure out automate bcm4352 device boot sequence so it can work out of box.
There is no obligation to do anything because my post, this is just as you said, academic, just try to learn for fun

The NL80211_TESTMODE is something I too have some doubt. but from this article it seems to indicate NL80211 is necessary extension to support wifi configuration and NL80211_TESTMODE is the only CONFIG that reference to NL80211 so I assume that is the one that need to enable. So if the nl80211_testmode config is off and it is still working than leave it off.

I am not sure why eth3 name, according to the source code the name should be "wlan%d".

list of know facts:
  • wl is the correct module for BCM435
  • using wl can get IPv4 address but currently require manual work.
  • wpa_supplicant-2.8 work
  • no automatically load wl module after reboot


Confusing point
brendlefly62 wrote:
Rebooted - did not work. Module wl not loaded. modprobe wl returned error. dmesg output contains error referring to "wl disagrees on version of wiphy..."

Tried adding brcmfmac back into kernel as a module. Same result

Reinstalled broadcom-sta and rebooted. Works again
My guess is you rebooted into a different kernel image (I think it is different version of kernel but may be same version just not the one you build broadcom-sta with the first time.)

So I think there are two different issues here,
  • bcm4352 device configuration.
  • wifi ipv4 for bcm4352

I believe they are two separated issues because to get ip address is function of dhcpcd, but in order dhcpcd to work a link level connection must establish, to establish link level connection is function of kernel module + wpa_supplicant.

Before reboot. clear out current configuration in wpa_supplicant for bcm4352. so wpa_supplicant will not try to setup eth3 right after reboot.
I am assume you have some other thing need wpa_supplicant also, so I use "clear out". You could just comment out configurations relevant to bcm4352 device. Will need to reconfigure them back later.

(Note: command used in below list may not be correct, they are just my guess. I am sure the concept is correct but command argument may need change in order to get the right answer)
process step
  1. reboot
  2. check module loaded. Expecting wl cfg80211, lib80211 and may be lib80211_crypt_tkip too. if not loaded, please use modprobe wl to load them (see appendix A also)
  3. check kernel driver usage
    Code:
    lspci -k
    . Expecting "kernel driver in use: " is "wl" and "kernel modules: " also "wl". If driver or module is not "wl" please remove wrong module(s) first then reload "wl" module before proceed.
  4. check current wifi device
    Code:
    wpa_cli interface
    , so we know how wpa_supplicant know about current configured devices.
  5. if wpa_supplicant not include the bcm4352 (i.e eth3), put the configuration back in to wpa_supplicant configuration
  6. reconfigure wpa_supplicant
    Code:
    wpa_cli reconfigure

  7. check current wifi device again
    Code:
    wpa_cli interface
    Expecting bcm4352 correctly configured at this point.
  8. ifconfig -a and expect having eth3 up, may not get ipv4, this is ok.
  9. Ask dhcpcd get address for eth3
    Code:
    dhcpcd --rebind eth3

if all of the about proven worked, than we can try to make it automatically. according to README_6.30.223.271 It may take few seconds before establish connection so we may have to change startup sequence to ensure either dhcpcd start after eth3 setup or add a local rc script that will re-trigger dhcpcd for eth3.
As how to ensure startup sequence is correct at this point I am not sure, will need to examine what did you have currently in order to figure out what need to change.

Appendix:
A: /etc/modprobe.d/wl.conf:
# wl module conf for modprobe
blacklist ssb
blacklist bcma
blacklist b43
blacklist brcmsmac
blacklist brcmfmac

# cfg80211 + mac80211
softdep wl pre: lib80211 lib80211_crypt_tkip
Back to top
View user's profile Send private message
brendlefly62
Apprentice
Apprentice


Joined: 19 Dec 2009
Posts: 156

PostPosted: Mon Nov 06, 2023 9:43 pm    Post subject: Reply with quote

Thanks pingtoo. Here are the results of further checks you requested ---

Quote:
Before reboot. clear out current configuration in wpa_supplicant for bcm4352.

Code:

# nano /etc/conf.d/net
...
#config_eth3="dhcp"
...

1. Reboot
2. check module loaded. Expecting wl cfg80211, lib80211 and may be lib80211_crypt_tkip too. if not loaded, please use modprobe wl to load them (see appendix A also)
Code:

# lsmod
Module                  Size  Used by
iwlmvm                348160  0
mac80211              950272  1 iwlmvm
wl                   6369280  0
iwlwifi               307200  1 iwlmvm
cfg80211              892928  4 wl,iwlmvm,iwlwifi,mac80211

Checking against expectation: cfg80211: yes; lib80211: NO, lib80211_crypt_tkip: NO
Verifying these "NO" in running kernel...
Code:

# zgrep -i lib80211 /proc/config.gz
CONFIG_LIB80211=m
CONFIG_LIB80211_CRYPT_WEP=m
CONFIG_LIB80211_CRYPT_CCMP=m
CONFIG_LIB80211_CRYPT_TKIP=m
# CONFIG_LIB80211_DEBUG is not set

Perhaps I will need to manually load these via modprobe.d...?

Note: iwlwifi is used by the TP-Link wifi adapter I am using as an AP.
Also, because I have "net.ifnames=0" in kernel command line, that device is wlan0.
Altnames shown in "netstat -iaw" are --
eth0: eno1 enp0s25
eth1: enp6s0
eth2: enp9s0
eth3: wlp5s0 ### eth3 is available, but not UP
wlan0: wlp7s0

Quote:
3. check kernel driver usage

Code:

# lspci -k
...
05:00.0 Network controller: Broadcom Inc. and subsidiaries BCM4352 802.11ac Wireless Network Adapter (rev 03)
        Subsystem: ASUSTeK Computer Inc. BCM4352 802.11ac Wireless Network Adapter
        Kernel driver in use: wl
        Kernel modules: bcma, wl

Checking against expectation: driver in use is "wl" - yes

Quote:
4. check current wifi device

Code:

# wpa_cli interface
Failed to connect to non-global ctrl_ifname: (nil)  error: No such file or directory

# wpa_cli status
Failed to connect to non-global ctrl_ifname: (nil)  error: No such file or directory

# man wpa_cli
# wpa_cli -i eth3 status
Failed to connect to non-global ctrl_ifname: eth3  error: No such file or directory

# ps -aef | grep wpa
### no (processes) -- wpa_supplicant is not currently running (wlan0 uses hostapd)

# wpa_cli -i eth3       
wpa_cli v2.8
Copyright (c) 2004-2019, Jouni Malinen <j@w1.fi> and contributors
This software may be distributed under the terms of the BSD license.
See README for more details.
Interactive mode

Could not connect to wpa_supplicant: eth3 - re-trying
### hangs - terminated with <CTRL>-C

# wpa_cli interface_list   
Failed to connect to non-global ctrl_ifname: (nil)  error: No such file or directory

# wpa_cli interface_add eth3
Failed to connect to non-global ctrl_ifname: (nil)  error: No such file or directory

# rfkill
ID TYPE      DEVICE        SOFT      HARD
 0 bluetooth hci0     unblocked unblocked
 1 bluetooth hci1     unblocked unblocked
 2 wlan      phy0     unblocked unblocked
 3 wlan      brcmwl-0 unblocked unblocked
 4 wlan      phy1     unblocked unblocked

# ifconfig eth3 up
### as before - inet6 address not inet

# wpa_cli interface_add eth3
Failed to connect to non-global ctrl_ifname: (nil)  error: No such file or directory

# DRIVER=nl80211
# INTERFACE=eth3
# wpa_supplicant -D${DRIVER} -i${INTERFACE} -c /etc/wpa_supplicant/wpa_supplicant.conf
Successfully initialized wpa_supplicant
eth3: CTRL-EVENT-SCAN-FAILED ret=-22 retry=1
eth3: CTRL-EVENT-SCAN-FAILED ret=-22 retry=1
eth3: CTRL-EVENT-SCAN-FAILED ret=-22 retry=1
...

### terminated with <CTRL>-C

# DRIVER=wext   
# wpa_supplicant -D${DRIVER} -i${INTERFACE} -c /etc/wpa_supplicant/wpa_supplicant.conf
Successfully initialized wpa_supplicant
ioctl[SIOCSIWENCODEEXT]: Invalid argument
ioctl[SIOCSIWENCODEEXT]: Invalid argument
eth3: Trying to associate with c4:41:1e:7e:f2:35 (SSID='Cayenne' freq=5765 MHz)
eth3: Associated with c4:41:1e:7e:f2:35
eth3: WPA: Key negotiation completed with c4:41:1e:7e:f2:35 [PTK=CCMP GTK=CCMP]
eth3: CTRL-EVENT-CONNECTED - Connection to c4:41:1e:7e:f2:35 completed [id=0 id_str=]
^C

# wpa_supplicant -D${DRIVER} -i${INTERFACE} -c /etc/wpa_supplicant/wpa_supplicant.conf -B

# wpa_cli -i eth3 status
bssid=aa:bb:cc:dd:ee:ff
freq=0
ssid=<ssidname>
id=0
mode=station
wifi_generation=5
pairwise_cipher=CCMP
group_cipher=CCMP
key_mgmt=WPA2-PSK
wpa_state=COMPLETED
address=xx:xx:xx:aa:bb:cc

# killall wpa_supplicant

Manual method, using wpa_supplicant, not just wpa_cli, will work...

Quote:
5. if wpa_supplicant not include the bcm4352 (i.e eth3), put the configuration back in to wpa_supplicant configuration

Code:

# nano /etc/conf.d/net
...
config_eth3="dhcp"
...

Quote:
6. reconfigure wpa_supplicant

Code:

# wpa_cli reconfigure
Failed to connect to non-global ctrl_ifname: (nil)  error: No such file or directory

# wpa_cli -i eth3 reconfigure
Failed to connect to non-global ctrl_ifname: eth3  error: No such file or directory

# wpa_cli interface         
Failed to connect to non-global ctrl_ifname: (nil)  error: No such file or directory

# wpa_cli interface_add eth3
Failed to connect to non-global ctrl_ifname: (nil)  error: No such file or directory

# wpa_cli -ieth3 status
Failed to connect to non-global ctrl_ifname: eth3  error: No such file or directory

Evidently, I'm not doing this right -- read # man wpa_cli and tried alternatives above - nothing allows wpa_cli to

I tried manually loading lib80211...
Code:

# modprobe lib80211
# modprobe lib80211_crypt_tkip

# lsmod
Module                  Size  Used by
lib80211_crypt_tkip    16384  0
lib80211               16384  1 lib80211_crypt_tkip
iwlmvm                348160  0
mac80211              950272  1 iwlmvm
wl                   6369280  0
iwlwifi               307200  1 iwlmvm
cfg80211              892928  4 wl,iwlmvm,iwlwifi,mac80211

# wpa_cli interface
Failed to connect to non-global ctrl_ifname: (nil)  error: No such file or directory


One more piece of data for you --
Code:

# dmesg | grep 'wl:\|eth3\|cfg80211\|lib80211' | grep -v iwlwifi
[   28.514939] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[   28.516315] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[   28.527726] wl: loading out-of-tree module taints kernel.
[   28.527730] wl: module license 'MIXED/Proprietary' taints kernel.
[   28.547990] eth3: Broadcom BCM43b1 802.11 Hybrid Wireless Controller 6.30.223.271 (r587334)
[ 2531.338766] WARNING: CPU: 4 PID: 155 at net/wireless/sme.c:839 __cfg80211_connect_result+0x6b4/0x6e0 [cfg80211]
[ 2531.338795] Workqueue: cfg80211 cfg80211_event_work [cfg80211]
[ 2531.338805] RIP: 0010:__cfg80211_connect_result+0x6b4/0x6e0 [cfg80211]
[ 2531.338830]  ? __cfg80211_connect_result+0x6b4/0x6e0 [cfg80211]
[ 2531.338845]  ? __cfg80211_connect_result+0x6b4/0x6e0 [cfg80211]
[ 2531.338869]  ? __cfg80211_connect_result+0x6b4/0x6e0 [cfg80211]
[ 2531.338882]  ? cfg80211_process_wdev_events+0x85/0x190 [cfg80211]
[ 2531.338892]  cfg80211_process_wdev_events+0x85/0x190 [cfg80211]
[ 2531.338902]  cfg80211_process_rdev_events+0x21/0x40 [cfg80211]
[ 2531.338912]  cfg80211_event_work+0x20/0x30 [cfg80211]
[ 2722.009708] WARNING: CPU: 5 PID: 4788 at net/wireless/sme.c:839 __cfg80211_connect_result+0x6b4/0x6e0 [cfg80211]
[ 2722.009736] Workqueue: cfg80211 cfg80211_event_work [cfg80211]
[ 2722.009745] RIP: 0010:__cfg80211_connect_result+0x6b4/0x6e0 [cfg80211]
[ 2722.009768]  ? __cfg80211_connect_result+0x6b4/0x6e0 [cfg80211]
[ 2722.009782]  ? __cfg80211_connect_result+0x6b4/0x6e0 [cfg80211]
[ 2722.009802]  ? __cfg80211_connect_result+0x6b4/0x6e0 [cfg80211]
[ 2722.009813]  ? cfg80211_process_wdev_events+0x85/0x190 [cfg80211]
[ 2722.009822]  cfg80211_process_wdev_events+0x85/0x190 [cfg80211]
[ 2722.009832]  cfg80211_process_rdev_events+0x21/0x40 [cfg80211]
[ 2722.009841]  cfg80211_event_work+0x20/0x30 [cfg80211]
[ 3612.264907] lib80211: common routines for IEEE802.11 drivers
[ 3612.264908] lib80211_crypt: registered algorithm 'NULL'
[ 3645.079354] lib80211_crypt: registered algorithm 'TKIP'

Note the 2722. and 3612. timestamps are messages injected long after boot - probably when I was trying to start wpa...

Cannot proceed to steps 7,8,9 unless using the "manual wpa_supplicant" command above...
Back to top
View user's profile Send private message
pingtoo
Veteran
Veteran


Joined: 10 Sep 2021
Posts: 1481
Location: Richmond Hill, Canada

PostPosted: Mon Nov 06, 2023 10:18 pm    Post subject: Reply with quote

brendlefly62,

Thanks for testing.

I am sorry I did not made it clear, I am assuming wpa_supplicant always running from your rc setup. my assumption is because you have AP setup so I assume you need wpa_supplicant in order to setup AP.

wpa_cli work with wpa_supplicant. The -B option put wpa_supplicant in to daemon mode, so it will stay in the background establish link level connection.

Can you share following files so we can get in sync with how your system configuration,
  • /etc/conf.d/net
  • /etc/conf.d/wpa_supplicant
  • /etc/wpa_supplicant/wpa_supplicant.conf (please mask out sensitive data)


Did you place my post's appendix A:/etc/modprobe.d/wl.conf? If you did I expoect lib80211 and lib80211_crypt_tkip also will be loaded.
Back to top
View user's profile Send private message
brendlefly62
Apprentice
Apprentice


Joined: 19 Dec 2009
Posts: 156

PostPosted: Mon Nov 06, 2023 11:30 pm    Post subject: Reply with quote

Hi, pingtoo. I have gone back to implement your Appendix A, with some success. More detail to follow. Meanwhile, on my system wpa_supplicant runs only after it is invoked by a wifi interface in sta mode, started by the rc system in default run level. That is not the case now because I have not added eth3 to rc-update (yet)

AP mode does not use wpa_supplicant; it uses hostapd

More to follow...


Last edited by brendlefly62 on Tue Nov 07, 2023 1:27 pm; edited 1 time in total
Back to top
View user's profile Send private message
brendlefly62
Apprentice
Apprentice


Joined: 19 Dec 2009
Posts: 156

PostPosted: Tue Nov 07, 2023 3:35 am    Post subject: Reply with quote

pingtoo -- As mentioned, I went back, to implement your Appendix A
Code:

# nano /etc/modprobe.d/blacklist.conf
#blacklist wl
#blacklist cfg80211
#blacklist mac80211
blacklist b43
blacklist bcma
blacklist ssb
blacklist brcmsmac
blacklist brcmfmac

# nano /etc/modprobe.d/wl.conf
# cfg80211 + mac80211
softdep wl pre: lib80211 lib80211_crypt_tkip


# OLD modprobe.d configuration file for WL
# Internal Aliases - Do not edit
# ------------------------------
#alias wlan0 wl
#...


After rebooting...
Code:

# lsmod
Module                  Size  Used by
iwlmvm                348160  0
mac80211              950272  1 iwlmvm
wl                   6369280  0
iwlwifi               307200  1 iwlmvm
lib80211_crypt_tkip    16384  0
lib80211               16384  1 lib80211_crypt_tkip
cfg80211              892928  4 wl,iwlmvm,iwlwifi,mac80211

# lspci -k
...
05:00.0 Network controller: Broadcom Inc. and subsidiaries BCM4352 802.11ac Wireless Network Adapter (rev 03)
        Subsystem: ASUSTeK Computer Inc. BCM4352 802.11ac Wireless Network Adapter
        Kernel driver in use: wl
        Kernel modules: bcma, wl
...

# wpa_cli interface
Failed to connect to non-global ctrl_ifname: (nil)  error: No such file or directory
# wpa_cli status   
Failed to connect to non-global ctrl_ifname: (nil)  error: No such file or directory
# wpa_cli interface_list
Failed to connect to non-global ctrl_ifname: (nil)  error: No such file or directory
# wpa_cli interface_add eth3
Failed to connect to non-global ctrl_ifname: (nil)  error: No such file or directory
### hmmm...

# DRIVER=nl80211
# INTERFACE=eth3
# wpa_supplicant -D${DRIVER} -i${INTERFACE} -c /etc/wpa_supplicant/wpa_supplicant.conf -B
Successfully initialized wpa_supplicant

# wpa_cli status
Selected interface 'eth3'
wpa_state=DISCONNECTED
address=54:27:1e:ef:96:b5

Note: that worked with nl80211 driver...

Quote:
7. check current wifi device again

Code:

# wpa_cli interface
Selected interface 'eth3'
Available interfaces:
eth3

Quote:
8. ifconfig -a and expect having eth3 up, may not get ipv4, this is ok.

Code:

eth3: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet6 fe80::5627:1eff:xxxx:nnnn  prefixlen 64  scopeid 0x20<link>

Check expectation: yes, OK (Not fully "UP" - it's active, inet6, but no inet/ipv4)

Quote:
9. Ask dhcpcd get address for eth3

Code:

# dhcpcd --rebind eth3
dhcpcd-10.0.3 starting
DUID 00:01:00:01:2c:cd:73:cd:10:c3:7b:95:23:90
eth3: waiting for carrier
timed out
dhcpcd exited
dhcpcd_fork_cb: truncated read 0 (expected 4)

Not what was expected - desired

Code:

# killall wpa_supplicant
# /etc/init.d/net.eth3 restart
 * Bringing down interface eth3
 * Bringing up interface eth3
 *   Starting wpa_supplicant on eth3 ...
Successfully initialized wpa_supplicant                                                      [ ok ]
 *   Starting wpa_cli on eth3 ...                                                            [ ok ]
 *   Backgrounding ... ...
 * WARNING: net.eth3 has started, but is inactive

# ifconfig eth3
eth3: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 54:27:1e:ef:96:b5  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 16

Not what was desired - now it doesn't have either inet6 nor inet...

Code:

# rc-update add net.eth3 default
 * service net.eth3 added to runlevel default

# reboot

Rebooted, to try again, but this time, the rc- system got confused and failed to properly start important services, including dnsmasq. Found that /etc/resolf.conf had been over-written (by eth0.dhcp? )

For now, I've reverted -
Code:

# cp xx/resolv.conf.good /etc/resolv.conf
# rc update del net.eth3 default
# reboot


As requested --
Code:

# cat /etc/conf.d/wpa_supplicant
# conf.d file for wpa_supplicant
# ... comments
wpa_supplicant_args=""
Code:

# cat /etc/wpa_supplicant/wpa_supplicant.conf
# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers
update_config=1
ctrl_interface_group=0
ctrl_interface=/run/wpa_supplicant
eapol_version=1
ap_scan=1
fast_reauth=1

network={
        ssid="ssid"
        psk=longpsk
        priority=5
        disabled=0
}
Code:

# cat /etc/conf.d/net

dns_domain="xxxxxx"

# WAN address for wan Ethernet port -- motherboard adapter)
config_eth0="dhcp"

# LAN address
config_eth1="192.168.xx.nn netmask 255.255.255.0 brd 192.168.xx.255"

# DMZ bridge address (we ignore wifi here, it'll be added by hostapd)
config_br0="192.168.yy.nn.17 netmask 255.255.255.0 brd 192.168.yy.255"
# no default route set for DMZ br0, leave forwarding etc. to shorewall

# null setup for DMZ Ethernet port # (this will be owned by the bridge, br0)
config_eth2="null"

# null setup for WiFi adaptor # (this will be owned by hostapd)
config_wlan0="null"

# add the DMZ Ethernet port (eth2) only to br0
# hostapd will add the WiFi adaptor
bridge_forward_delay_br0=0
bridge_hello_time_br0=1000
bridge_stp_state_br0=0
bridge_br0="eth2"

# Extra wifi via on-board bcm4352 (wl.ko)
config_eth3="dhcp"

c_net_wlan0_provide="net"
rc_net_br0_provide="net"
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Kernel & Hardware All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum