bcmwl-kernel-source broken on kernel: 5.8.0-34-generic

The reason is obvious. Almost every time Canonical rolls out a HWE kernel, they forget to upgrade bcmwl-kernel-source in the repos.

You have two solutions (use one or the other, it makes no sense to use both):

  1. Install bcmwl-kernel-source from groovy repos. You can find it e.g. here. http://mirrors.kernel.org/ubuntu/pool/restricted/b/bcmwl/bcmwl-kernel-source_6.30.223.271+bdcom-0ubuntu7_amd64.deb It will compile with the 5.8 kernel.

Download the deb and install it by

sudo dpkg -i bcmwl-kernel-source_6.30.223.271+bdcom-0ubuntu7_amd64.deb
  1. Remove all 5.8 kernel packages using these commands:

     sudo apt remove linux-{image,modules,modules-extra,headers}-5.8.0-36-generic linux-hwe-5.8-headers-5.8.0-36
     sudo apt install linux-generic
    

Make sure that the linux-generic meta package is installed.

It is recommended to boot with the 5.4 kernel before you remove the 5.8.

The second solution will keep the 5.4 major kernel version with normal security upgrades.


I managed to restore WiFi with kernel 5.4.0-59-generic as follows:

  1. Purge all packages related to kernel 5.8.0-34-generic: sudo apt purge linux-image-5.8.0-34-generic linux-image-unsigned-5.8.0-34-generic linux-modules-5.8.0-34-generic linux-headers-5.8.0-34-generic
  2. Purge the Broadcom WiFi driver: sudo apt purge bcmwl-kernel-source
  3. Remove redundant packages: sudo apt autoremove
  4. Put the 5.4.0-59-generic kernel on hold: sudo apt-mark hold 5.4.0-59-generic
  5. Update package metadata: sudo apt update
  6. Re-install the driver: sudo apt install bcmwl-kernel-source

Since the 5.8.0-34-generic kernel is gone, the driver is compiled only for the 5.4.0-59-generic kernel which succeeds as expected. Reboot, and WiFi is restored.

Hopefully I can unhold the kernel and receive kernel updates as usual once this is sorted out.


Turns out, you can use the ubuntu 20.10 version of the package and it works just fine, at its origin repo


Broadcom Wifi crashed after Ubuntu 20.04 LTS kernel update 8.15.34 ~ 36

How to know kernel version?

uname -r

How to know your crashed adapter?

sudo lshw -C network 

You will see the crashed adapter with the following title:

*-network UNCLAIMED

How to fix:

SOLUTION 1

Install the following device driver:

http://archive.ubuntu.com/ubuntu/pool/restricted/b/bcmwl/bcmwl-kernel-source_6.30.223.271+bdcom-0ubuntu7_amd64.deb

ALTERNATIVE

If not worked, try the following:

sudo apt-get purge bcmwl-kernel-source
sudo apt-get install bcmwl-kernel-source

ALTERNATIVE Reinstall the kernel

sudo apt install --reinstall linux-image-$(uname -r)
sudo apt install --reinstall linux-modules-$(uname -r)
sudo apt install --reinstall linux-modules-extra-$(uname -r)

After that try the above solutions again.


Found an alternative solution while tracing errors in bcmwl-kernel-source.

See this question on Unix & Linux SE

I tried the solution listed in the thread, which involves purging the bcmwl-kernel-source and installing broadcom-sta and it works for me in Ubuntu 20.04 LTS with the Linux 5.8.0-36 headers installed.

sudo apt-get purge bcmwl-kernel-source
sudo apt-get install broadcom-sta-source broadcom-sta-dkms broadcom-sta-common