[sf-lug] Installing Void and other systemd-free distroS onto BCM/b43 device

Rick Moen rick at linuxmafia.com
Thu Nov 9 18:14:08 PST 2017

Quoting acohen36 (acohen36 at SDF.ORG):

> Thanks for the suggestion at the end.
> Getting right to the first point keeping in mind reference [3];
> -- current snippet of 'dmesg | grep b43' in Slackware --
> [**] b43-phy0: Broadcom 4312 WLAN found (core revision 15)
> [**] b43-phy0: Found PHY: Analog 6, Type 5 (LP), Revision 1
> [**] b43-phy0: Found Radio: Manuf 0x17F, ID 0x2062, Revision 2, Version 0
> [**] b43 ssb0:0: Direct firmware load for b43/ucode15.fw failed with error -2
> [**] b43 ssb0:0: Direct firmware load for b43/ucode15.fw failed with error -2
> [**] b43 ssb0:0: Direct firmware load for b43-open/ucode15.fw failed with error -2
> [**] b43 ssb0:0: Direct firmware load for b43-open/ucode15.fw failed with error -2

It might not seem that way, but _now_ you're getting somewhere.

It's almost certainly not a driver problem as such that you're having.
It's merely lack of the firmware BLOB (Binary Large OBject) in the
directory under /lib/firmware[1] where the kernel's hotplug manager
expects to find it.

I'm going to snip a lot of what you wrote in hopes of cutting to the
chase.  You were talking about driver broadcom-sta as if it were the
logical and right driver (I guess, because some Slackware pages talk
about it).  I'm not so sure.  Please see:

    b43legacy, b43, STA, brcm80211, ... the full story

   Many different drivers are or have been in use to support Broadcom
   chipsets, so the terminology is very confusing.

Seems that there was a mostly-proprietary driver called STA aka
wbroadcom-sta aka 'wl' (which appears to be the actual module name),
broadcom-sta is NOT in the mainline kernel.  It was produced by Broadcom
Corporation.  (If you've been around the block with Linux a few times,
as you have, I'm sure you get the point that proprietary Linux drivers
from hardware manufacturers should be your very last resort for a number
of reasons.)

There's also an old driver that _is_ part of the kernel called brcmsmac,
that supports a few b43 variants, a slightly newer one called b43legacy
that supports two old card types, and b43.

> I still find it awfully confusing -- even in Slackware -- which of
> the various b43 drivers I should use.

We feel your pain, but:  D00d, you want b43.

Towards that end, you should actively ensure that the rest are _not_

modprobe -r b43 bcma
modprobe -r brcmsmac bcma
modprobe -r wl
modprobe -r b43legacy

(This makes sure those drivers aren't in the current runtime state.)

See what the above-cited page says about 'blacklisting' drivers you want
to ensure do _not_ get loaded by kernel autoprobing.

> Since my exact WiFi card BCM4312 (PCI ID 14e4:4315) is specifically
> mentioned in the latter, it seems to me that this latter
> broadcom-sta method should be tried first _before_ using Ken's (and
> possibly others') b43-fwcutter method to extract the fitting driver.

Personally, I think you ought to eschew any page concerned with
broadcom-sta aka 'wl', and heed only pages purporting to tell you how
to get and put in place the correct firmware BLOB for the b43 driver.

> That's a good point, and is eerily similarly to problems myself and
> _many_ other people had in the late 1990's with getting ppp to run
> on certain desktop PCI modem-cards called "Winmodems", in Linux.
> IIRC, although most of those Winmodems were super-cheap, they were
> invraiably DSP software-optimized to work on Windows _only_ grrrrrrr

D00d!  Yrs. truly was plagued for years with a reputation for being the
nemesis of winmodems for the entire Internet because of a personal
'rants' item I posted the moment the silly things started showing up at
LUG installfests.

People would want me to spend hours with them working to get
almost-semi-OK results getting special, brittle, proprietary drivers for
their winmodems working.  I said no, and they'd say 'What do you mean,
no?'  The rant/FAQ was intended as 'Here, read this'.

[1] On normal systems.  I noticed a claim upthread that Void Linux
wanted to use /usr/lib/firmware/ or something like that, but have no
experience with that and make no further comment except it's possible
that some distro does mutant things with its kernels.

More information about the sf-lug mailing list