Thursday, May 10, 2018

How to make bcmwl-kernel-source wireless driver work with kernel updates

This blog post may be useful for people having issues with the bcmwl-kernel-source wireless driver, particularly after recent kernel updates. I am specifically using a Broadcom Corporation BCM4352 802.11ac Wireless Network Adapter, however, I expect that the solution I offer may also work with other adapters using the bcmwl-kernel-source driver. I am running Linux Mint 18.3.

I have found that the bcmwl-kernel-source wireless driver is a bit spotty when it comes to kernel updates - often my computer will stop recognizing that I have wifi, and I cannot get a connection. Usually if I reinstall the bcmwl-kernel-source driver (sudo apt reinstall bcmwl-kernel-source, or use the Driver Manager from the menu) with the new kernel loaded, it works. However, with the most recent recent kernel update (to the 4.15 series), I found that this did not help.

After a lot of time trying different solutions that did not work, I have finally gotten my wifi working again. This was an exceptionally simple solution.

Essentially, the root of the problem is that the bcmwl-kernel-source driver in the repositories has not yet been updated to work with the 4.15 kernel series. One potential fix is to simply use a kernel series that works with the bcmwl-kernel-source driver (4.13, for example), which is a good, reliable solution. However, for people that need to use a newer kernel, a solution to the wifi issue may be important.

The following procedure will not keep the driver from breaking, but it may help you to get it working again when it does break. This will only work if an update has been applied to the latest version of the bcmwl package to work with your kernel.

As always, you are responsible for your data and your computer. While this is offered with the best intentions, I am not responsible for data loss or damage to your computer. Always back up your files.

Procedure
  1. From the Ubuntu launchpad website for the bcmwl package, download the most recent bcmwl package (6.30.223.271+bdcom-0ubuntu4 is working on my system with kernel 4.15.0-20). Make sure that you download the .deb package, assuming you have a Linux Mint system. If you do not have access to the internet on the computer you are trying to fix the wifi on, you have at least two options. First, you can transfer this .deb file via USB to your computer. Secondly, you can select a previous kernel version in the GRUB menu (the boot screen) that works with your wifi driver. Other options exist as well (external wifi adapters, or USB ethernet adapters, assuming you don't have an ethernet port on your computer).
  2. Uninstall the wireless driver. Assuming you are using bcmwl-kernel-source, run the following in the terminal: sudo apt remove --purge bcmwl-kernel-source
  3. Install the package using sudo dpkg -i /filepath/bcmwl-kernel-source_6.30.223.271+bdcom-0ubuntu4_amd64.deb
    1. Note: replace file path and file name with the path and name of the file that you downloaded
  4. If this is a solution to your problem, your wireless driver should be working at this point. If it is not, you can remove the new package by following step #1 and install the old package back again via your Driver Manager. In this case, either the update has not been published yet (which means you need to wait, or revert to a previous kernel) or your wifi problems stem from a different problem.