内核升级到 4.15 或 4.16 后没有 wifi

内核升级到 4.15 或 4.16 后没有 wifi

我在 Ubuntu 16.04 上,我有这个网卡:https://www.tp-link.com/uk/products/details/cat-11_Archer-T6E.html

使用内核 4.14.x 时,一切都运行正常。但升级到 4.15.x 或 4.16 时,我看不到任何 wifi 连接。但我可以通过手机的 USB 获得临时连接。

lspci -knn | grep Net -A2返回

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

当我尝试做modprobe wl

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

我尝试过重新安装bcmwl-kernel-source

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

但这导致

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

下面是输出/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/make.log

https://pastebin.com/UP4Gm1Td

答案1

答案很明显。Broadcom 专有驱动程序不适用于最新内核。

此外,Ubuntu 不正式支持 4.15 和 4.16 内核。

您可以尝试使用 18.04 Ubuntu 版本中的驱动程序 http://mirrors.kernel.org/ubuntu/pool/restricted/b/bcmwl/bcmwl-kernel-source_6.30.223.271+bdcom-0ubuntu4_amd64.deb

它可能针对 4.15 内核进行构建。

答案2

Ubuntu Xenial 16.04,已测试飞行员6答案。我没有用 Bionic 版本替换我的 deb 包,而是只提取所需的文件(确切地说是 3 个文件):

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

然后重建 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 

相关内容