When booting a fresh install of Debian 12 Bookworm I'm met with a message saying I need to go to https://wireless.wiki.kernel.org/en/users/Drivers/b43#devicefirmware and
download the correct firmware for this driver version and to
carefully read all instructions. Very well, here's the introduction on that page:
b43 and b43legacy are wireless drivers for Broadcom SoftMAC chipsets. Kernel will automatically pick a proper module for you:
- b43 for any new (supported) hardware
- b43legacy for BCM4301 and early BCM4306 versions
You need to have firmware files (usually in /lib/firmware/) so b43(legacy) can upload them to the card and run properly. For FullMAC devices support see brcmfmac and rndis_wlan
That's good to know I guess. The other sections of that page are: Known problems & limitations, Solved problems, List of Hardware, Contact. What instructions am I supposed to follow here, though? I don't see any.
On the top of the page there's a link to the page's "old content", so I then take a look at the Device firmware installation section in that old content:
In recent versions of Ubuntu and Debian, installing the firmware-b43-installer package will handle everything for you:
1 sudo apt-get install firmware-b43-installer
You will be asked to automatically fetch and install the firmware into the right location. Again, you will need an internet connection.
My reaction here was more or less "haha, very funny". I then went and searched for some more promising instructions. I found https://wiki.debian.org/wl#Installation which lists my chip in the title (BCM43228). Finally, this looks promising!
Add a "non-free" component to /etc/apt/sources.list for your Debian version, for example:
Debian 9 "Stretch"
deb http://deb.debian.org/debian stretch-backports main contrib non-free
Debian 10 "Buster"
deb http://deb.debian.org/debian buster-backports main contrib non-free
Debian 11 "Bullseye"
deb http://deb.debian.org/debian bullseye contrib non-free
...really? The solution again seems to be to have internet access. Also, Debian 12 is not mentioned. Regardless, the instructions continue with the critical section:
Update the list of available packages. Install the relevant/latest linux-image, linux-headers and broadcom-sta-dkms packages:
# apt-get update # apt-get install linux-image-$(uname -r|sed 's,[^-]*-[^-]*-,,') linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,') broadcom-sta-dkms
This will also install the recommended wireless-tools package. DKMS will build the wl module for your system.
I've read in more than one place that Debian 12 includes firmware on the install medium (I used the i386 DVD image) — including in their own news feed, about them voting on this — but I certainly did not end up with working WiFi after the installation, nor was I prompted to install anything during the OS install process (or did I miss it?), so I don't know what to make of it exactly.
Now, assuming I misunderstood something, what was I supposed to have done differently in this process?
The only thing that comes to mind as a solution at this point is to manually do dependency resolution of
broadcom-sta-dkms and the other packages, download all those packages from debian.org, put them on a USB stick and install them manually. Surely that's not how it's designed to be done?