Here was the problem. I just bought a new PCIe WiFi adapter for my PC, the TP-Link Archer T6E. After placing the card into my PCIe slot, I turned on my PC and I was not able to even select WiFi network. This happened both on my Win10 OS and Ubuntu 18.04 LTS.
On Win10, the fix was pretty quick. I found the driver on the vendor’s website, installed it, restarted the OS, then it was ready to go. On Ubuntu 18.04 LTS, it was a little bit involved because I didn’t know how to do it in the first place.
A quick trip to the Software & Updates on Ubuntu, specifically the Additional Drivers tab, I saw the option for a proprietary Broadcom driver but I was not able to activate it. A quick check on the internet revealed that in order to activate it, an internet connection is required so that the system can download the driver from the repository.
So, I needed internet to activate a device that could bring me back onto the internet. Neat. I guess the question now is why I had to buy this device. Well, long story short, I thought my previous WiFi card, Gigabyte GC-WB867D-I, was faulty because I had hard time connecting to my WiFi extender. It turned out that the problem was with my WiFi extender, but I bought a new WiFi card instead of a new WiFi extender. Smart.
phase 1: query info & finding package
Okay let’s install the driver (or, in linux’s parlance, kernel module).
The first thing I did was to query the information regarding the currently activated wireless driver with
lspci -vnn | grep -A 9 Network
From here, I learned two things. First was the currently active kernel module, which was the
bcma. Even after googling for information, all I learned was that the
bcma kernel module was introduced since kernel v3.31 and nothing more than that.
The second piece of information was the chip itself:
14e4:43a0. These identifiers were the key information that would dictate which driver I should be using to enable the PCIe adapter. After another round of googling and I forgot from where I got this information from, the
BCM4360 should use the
wl kernel module, which should be available through the
A quick check with
apt-cache revealed this information:
Pro-tip. If the
apt-cache returned information like I saw above, it means that the Ubuntu package archive actually has that package.
It seemed to me that this was the right target. All I had to do was to actually fetch its
.deb package. But, how did I do that without an internet connection? Well, I had a laptop that I could use to download the package.
I went to Ubuntu package archive website and navigated through several folders.
ubuntu > pool > restricted > b > bcmwl
Then I found the package
bcmwl-kernel-source_220.127.116.111+bdcom-0ubuntu4_amd64.deb, which I believed to be the latest available version.
Up until now, I checked two boxes: querying driver information and finding the driver file on Ubuntu archive website.
phase 2: installation & activation
Everything from here was more straightforward than the previous detective work. After downloading the package, I ran
dpkg -i to install it.
sudo dpkg -i bcmwl-kernel-source_18.104.22.1681+bdcom-0ubuntu4_amd64.deb
Then I went to edit the
/etc/modprobe.d/blacklist.conf to comment the line 32, which says
blacklist bcm43xx. I was not sure if this step was strictly required, but I did it anyway.
After that, I rebooted my operating system and when I logged back in, I was able to choose wireless network.
end phase: verification
Before I called it a success, I decided to do a quick verification with the
The terminal returned
Kernel driver in use: wl. All’s good now. All’s good.
I would like to say thank you to a number of threads on Stack Overflow. Too bad, I did not get the chance to bookmark them all for future reference here. They all lost during a system reboot. Noob.