Broadcom chipsets (shitsets?) on Linux

Getting broadcom chipsets working on Linux (wifi/bluetooth, separate/combined) is a pain. Each time again as they are non-free as by default not included. You got it working once, but don’t remember how it went if you try a new distro. Tired of going on a google session everytime again, I decided to write it down. It would say once and for always, but things can change. As i write this, the steps i took seem to work (for now). At least I try to achieve less pain for my brothers in arms on this matter.

Phenomenon 1: you install a (debian) based distro, wifi functionality is missing. As of now this seems to be quickly fixed by installing the broadcom package after adding the non-free contrib in your apt sources.list. Just add ‘contrib non-free’ in sources.list (deb buster main contrib non-free) and apt update. This went smooth. ‘sudo apt install broadcom-sta-dkms‘ and reboot.

Phenomenon 2: most broadcom chipsets also include bluetooth, trying it however, search devices, nothing gets detected. Time to get a look at the kernel messages to reveal what’s going on (dmesg | grep -i blue): firmware brcm/BCM43142A0-0a5c-216c.hcd in my case could not be found. This is quite easy to fix:

Turns out that github has a project with those missing firmware:

Now it’s only a matter of finding the correct .hcd file there and putting it in /lib/firmware/brcm, the brcm directory is sometimes not even present, so you create it and mv the downloaded .hcd file in there and reboot. Done!

After this exercise i got both bluetooth and wifi working in debian buster. I have to admit that the .hcd file can be different but at least i could give you some pointers on how to fix it. In the meantime i got myself a more linux friendly wifi dongle with better range and 5Hz support also.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.