3

I am on Ubuntu 16.04 and I have this network card: https://www.tp-link.com/uk/products/details/cat-11_Archer-T6E.html

With kernel 4.14.x everything is working just fine. But when upgrading to 4.15.x or 4.16, I can not see any wifi connections. But I can get a temporary connection through my phone's usb.

lspci -knn | grep Net -A2 returns

04:00.0 Network controller [0280]: Broadcom Corporation BCM4360 802.11ac Wireless Network Adapter [14e4:43a0] (rev 03)
Subsystem: Broadcom Corporation BCM4360 802.11ac Wireless Network Adapter [14e4:0619]
Kernel modules: bcma

When I try to do modprobe wl

modprobe: FATAL: Module wl not found in directory /lib/modules/4.16.0-041600-generic

I have tried reinstalling bcmwl-kernel-source

sudo apt purge bcmwl-kernel-source
sudo apt-get install --reinstall linux-headers-generic
sudo apt-get install bcmwl-kernel-source

But this leads to

The following NEW packages will be installed:


bcmwl-kernel-source
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,544 kB of archives.
After this operation, 8,064 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu xenial-updates/restricted amd64 bcmwl-kernel-source amd64 6.30.223.271+bdcom-0ubuntu1~1.2 [1,544 kB]
Fetched 1,544 kB in 0s (2,774 kB/s)           
Selecting previously unselected package bcmwl-kernel-source.
(Reading database ... 499695 files and directories currently installed.)
Preparing to unpack .../bcmwl-kernel-source_6.30.223.271+bdcom-0ubuntu1~1.2_amd64.deb ...
Unpacking bcmwl-kernel-source (6.30.223.271+bdcom-0ubuntu1~1.2) ...
Setting up bcmwl-kernel-source (6.30.223.271+bdcom-0ubuntu1~1.2) ...
Loading new bcmwl-6.30.223.271+bdcom DKMS files...
First Installation: checking all kernels...
Building only for 4.16.0-041600-generic
Building for architecture x86_64
Building initial module for 4.16.0-041600-generic
ERROR (dkms apport): kernel package linux-headers-4.16.0-041600-generic is not supported
Error! Bad return status for module build on kernel: 4.16.0-041600-generic (x86_64)
Consult /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/make.log for more information.
modprobe: FATAL: Module wl not found in directory /lib/modules/4.16.0-041600-generic
update-initramfs: deferring update (trigger activated)
Processing triggers for initramfs-tools (0.122ubuntu8.11) ...
update-initramfs: Generating /boot/initrd.img-4.16.0-041600-generic

And here is the output of /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/make.log

https://pastebin.com/UP4Gm1Td

7

The answer is quite obvious. The Broadcom proprietary drivers don't build for the latest kernels.

Also the 4.15 and 4.16 kernels are not officially supported by Ubuntu.

You can try the driver from the 18.04 Ubuntu release http://mirrors.kernel.org/ubuntu/pool/restricted/b/bcmwl/bcmwl-kernel-source_6.30.223.271+bdcom-0ubuntu4_amd64.deb

It may build for the 4.15 kernel.

  • So I just have to wait then? :) – Simon Sondrup Kristensen Apr 2 '18 at 9:44
  • Yes, wait and hope that Broadcom will update the drivers. Or some patch will be issued to the open-source part of the driver. – Pilot6 Apr 2 '18 at 9:46
  • @SimonSondrupKristensen I updated the answer. You can try the driver from bionic. – Pilot6 Apr 2 '18 at 9:49
  • Well, now I've drilled a hole in the wall, and using cable now :D – Simon Sondrup Kristensen Apr 2 '18 at 15:56
  • @SimonSondrupKristensen i think this is the best solution for now. – Ufos Jul 18 '18 at 15:59
0

Ubuntu Xenial 16.04, tested with Pilot6 answer. I do not replace my deb-package with Bionic version, instead I just extract files needed (3 files exactly):

T=$(mktemp -d)
dpkg-deb bcmwl-kernel-source_6.30.223.271+bdcom-0ubuntu4_amd64.deb $T
cd $T
cat << EOF | xargs -i echo sudo cp -avi {} /{}
usr/src/bcmwl-6.30.223.271+bdcom/patches/0026-add-support-for-Linux-4.15.patch
usr/src/bcmwl-6.30.223.271+bdcom/patches/0025-add-support-for-Linux-4.14.patch
usr/src/bcmwl-6.30.223.271+bdcom/dkms.conf
EOF
# I just echo the "sudo cp" cmds. Double check and exec manually
# Complete with: rm -Rfv $T

Then rebuild dkms

for k in $(ls /var/lib/initramfs-tools) ; do
for d in $(cd /usr/src; ls -d *-*) ; do
 [[ -f /usr/src/${d}/dkms.conf ]] || continue
 m=$(echo $d | sed -r -e 's/-([0-9]).+//')
 v=$(echo $d | sed -r -e 's/[^0-9]+-([0-9])/\1/')
 sudo /usr/sbin/dkms install -c /usr/src/$d/dkms.conf -m $m -v $v -k $k
done
done 

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.