I've had a Lenovo E330 Laptop where WiFi always worked, but it was sometimes flaky and only a handful of Bluetooth devices would work, but as it was not my daily driver, I never got around to doing anything with it, till now, and now that I have, I thought I'd share it with you.
This process is valid for either regular 802.xx WiFi and for Bluetooth, especially where Laptops are concerned because so many nowadays come with mini-pci combo cards that use the same base chip to control both WiFi and Bluetooth. This chip frequently needs 2 distinct firmware packages to work properly and often if one is missing, it can adversely affect the quality of the other.
Before we get started, it's important to start with the best support tools to assist with hardware detection. On this Laptop, our regular MX-19.3 ISO did not have enough support to correctly identify the needed firmware, I had to use our AHS version with a little tweak. The tweak was a simple upgrade to a few packages from our testing repo. Here's how I did it.
Opened MX Package Installer, --> click the MX Test Repo tab, --> change the search criteria button to from All Packages to Upgradable.
Type pci into the search box --> place a checkmark in the boxes for pci.ids and pciutils, clear the search box,
Type usb into the search box --> place a checkmark in the boxes for usb.ids and usbutils, --> click the Upgrade button.
This simple and safe step simply pulled in the latest databases for PCI and USB peripherals and the tools to use them. After a reboot, the hardware database was able to correctly identify the hardware and therefore, direct me to the missing firmware.
Lets get started.
When the machine is fully loaded, open a terminal and type in one of the following. Note, the upright line that looks like a lower case L or an I, is actually a Pipe, the character on US keyboards that is usually combined the the Backslash key and activated with the Shift + \ to get a |.
For WiFi
Code: Select all
dmesg | grep wlan
Code: Select all
dmesg | grep blue
Code: Select all
dmesg | grep blue
Bluetooth: hci0: BCM20702A1 (001.002.014) build 1761
bluetooth hci0: firmware: failed to load brcm/BCM20702A1-0a5c-21f3.hcd (-2)
firmware_class: See https://wiki.debian.org/Firmware for information about missing firmware
bluetooth hci0: Direct firmware load for brcm/BCM20702A1-0a5c-21f3.hcd failed with error -2
Bluetooth: hci0: BCM: Patch brcm/BCM20702A1-0a5c-21f3.hcd not found
The url within the text usually gives the exact location for the needed firmware. Follow the link or copy and paste it into your browser to download the firmware. Sometimes you may have to scroll a bit to find it. Make sure the firmware name you download matches exactly with the firmware identified as missing, then copy the downloaded firmware to the directory specified as above and reboot and your device should now be fully functional.
If you are fortunate enough to find missing firmware for your machine using this method, you'll have avoided the headache and heartache of the long hard slog so often travelled by people who desire to use Linux.