24.04 upgrade from 6.9 to 6.11 breaks all networking - ThinkPad P14s Gen 4 (AMD)

In Ubuntu 24.04.2, upgrading from kernel 6.9 to 6.11 caused both the Realtek ethernet and Qualcomm wireless interfaces to stop working. It’s odd that both interfaces don’t load. Maybe a problem with Network Manager? Are there any known issues with this kernel?

The laptop is a Lenovo ThinkPad P14S Gen 4 (AMD).

apt upgraded the kernel to linux-image-6.11.0-21-generic probably because linux-virtual-hwe-24.04 is installed. Networking stopped working upon reboot.

Networking worked in previous kernels, including 6.9.0-060900rc4daily20240420-generic.

$ lspci
..
01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet Controller (rev 0e)
02:00.0 Network controller: Qualcomm Technologies, Inc QCNFA765 Wireless Network Adapter (rev 01)

During 6.9 boot, journalctl shows messages regarding r8169 (Realtek ethernet driver) and ath11k_pci (Qualcomm wireless driver).

There are no messages containing r8169 or ath11k_pci when 6.11 boots. Why?

NetworkManager.service eventually deactivates:

Apr 08 00:56:22 louie systemd[1]: NetworkManager.service: Deactivated successfully.
Apr 08 00:56:22 louie systemd[1]: Stopped NetworkManager.service - Network Manager.

It’s likely to be unrelated but apt upgrade shows that ubuntu-drivers-common has been “deferred due to phasing”.

What would make sense to try next?

This is definitely not a supported Ubuntu kernel, where did you get it (also, drivers usually live in either the -modules or -modules-extra packages, not in the -image- one which is why you should always only use the linux-generic package itself to make sure all dependencies are installed, never update -image- alone)

1 Like

This kernel update happened as a consequence of apt upgrade not by installing specific kernel packages. I have the following official hwe(?) 6.11 packages which break networking. There is a -modules package:

$ dpkg-query -l | grep linux\- | grep 6.11
ii  linux-headers-6.11.0-21-generic                           6.11.0-21.21~24.04.1                          amd64        Linux kernel headers for version 6.11.0 on 64 bit x86 SMP
ii  linux-headers-generic-hwe-24.04                           6.11.0-21.21~24.04.1                          amd64        Generic Linux kernel headers
ii  linux-headers-virtual-hwe-24.04                           6.11.0-21.21~24.04.1                          amd64        Virtual Linux kernel headers
ii  linux-hwe-6.11-headers-6.11.0-21                          6.11.0-21.21~24.04.1                          all          Header files related to Linux kernel version 6.11.0
ii  linux-hwe-6.11-tools-6.11.0-21                            6.11.0-21.21~24.04.1                          amd64        Linux kernel version specific tools for version 6.11.0-21
ii  linux-image-6.11.0-21-generic                             6.11.0-21.21~24.04.1+1                        amd64        Signed kernel image generic
ii  linux-image-virtual-hwe-24.04                             6.11.0-21.21~24.04.1                          amd64        Virtual Linux kernel image
ii  linux-modules-6.11.0-21-generic                           6.11.0-21.21~24.04.1                          amd64        Linux kernel extra modules for version 6.11.0 on 64 bit x86 SMP
ii  linux-tools-6.11.0-21-generic                             6.11.0-21.21~24.04.1                          amd64        Linux kernel version specific tools for version 6.11.0-21
ii  linux-virtual-hwe-24.04                                   6.11.0-21.21~24.04.1                          amd64        Minimal Generic Linux kernel and headers

I used the mainline app from ppa:cappelikan/ppa to install a 6.9 mainline kernel to solve a microphone bug which I opened a year ago: Bug #2062412 “No input through internal microphone (Ryzen 6000)” : Bugs : linux package : Ubuntu

I think networking works in all the official 6.8 Ubuntu kernels so disregard the information about the 6.9 mainline kernel. I will boot into 6.8.0-57 to confirm.

Update: Networking works in 6.8.0-57-generic, both ethernet and wifi.

Don’t ! These kernels lack proper defconfig, miss about 400 (security) patches and do not get any security maintenance. They are solely created for verifying bugfixes when someone from the kernel team asks you to test a fix in a bug conversation they should never be used beyond this (in fact we just started a discussion with the app maintainer of the mainline app to make this more clear in the app). Running such kernels means you are running with potentially wide open security vulnerabilities, do not connect to the internet with them …

Your list does not show any linux-modules-extra-* packages at all, the ath11k_pci and r8169 modules are both in that package …

1 Like

I see. Why would modules-extra not be installed automatically?

Edit: And why would linux-modules-extra-6.11 not be installed during apt upgrade when the previous linux-modules-extra-6.8.0-57-generic was present and installed non-manually?

linux-modules-extra-6.8.0-57-generic/noble-updates,noble-security,now 6.8.0-57.59 amd64 [installed,automatic]

You seem to have removed the linux-generic metapackage which is the top-level of the dependency chain to make sure you get all the others (and to make sure upgrades work properly as expected) …

The dependency chain works like:

linux-generic  
 -> linux-image-generic
    linux-headers-generic 
      -> linux-image-$version
         linux-modules-extra-$version
         linux-firmware

Only if all meta packages are there the upgrade will actually update the versioned ones (as the meta package switches the versions in its dependency info appropriately)

1 Like

I have the meta package:

$ apt list --installed |  grep ^linux

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

linux-base/noble,noble,now 4.5ubuntu9 all [installed,automatic]
linux-firmware/noble-updates,noble-security,now 20240318.git3b128b60-0ubuntu2.10 amd64 [installed,automatic]
linux-generic-hwe-22.04/now 6.5.0.27.27 amd64 [installed,local]
linux-generic/noble-updates,noble-security,now 6.8.0-57.59 amd64 [installed]
linux-headers-6.11.0-21-generic/noble-updates,noble-security,now 6.11.0-21.21~24.04.1 amd64 [installed,automatic]
linux-headers-6.5.0-27-generic/now 6.5.0-27.28 amd64 [installed,local]
linux-headers-6.5.0-27/now 6.5.0-27.28 all [installed,local]
linux-headers-6.8.0-57-generic/noble-updates,noble-security,now 6.8.0-57.59 amd64 [installed,automatic]
linux-headers-6.8.0-57/noble-updates,noble-updates,noble-security,noble-security,now 6.8.0-57.59 all [installed,automatic]
linux-headers-6.9.0-060900rc4daily20240420-generic/now 6.9.0-060900rc4daily20240420.202404200203 amd64 [installed,local]
linux-headers-6.9.0-060900rc4daily20240420/now 6.9.0-060900rc4daily20240420.202404200203 all [installed,local]
linux-headers-generic-hwe-22.04/now 6.5.0.27.27 amd64 [installed,local]
linux-headers-generic-hwe-24.04/noble-updates,noble-security,now 6.11.0-21.21~24.04.1 amd64 [installed,automatic]
linux-headers-generic/noble-updates,noble-security,now 6.8.0-57.59 amd64 [installed,automatic]
linux-headers-virtual-hwe-24.04/noble-updates,noble-security,now 6.11.0-21.21~24.04.1 amd64 [installed,automatic]
linux-hwe-6.11-headers-6.11.0-21/noble-updates,noble-updates,noble-security,noble-security,now 6.11.0-21.21~24.04.1 all [installed,automatic]
linux-hwe-6.11-tools-6.11.0-21/noble-updates,noble-security,now 6.11.0-21.21~24.04.1 amd64 [installed,automatic]
linux-image-6.11.0-21-generic/noble-updates,noble-security,now 6.11.0-21.21~24.04.1+1 amd64 [installed,automatic]
linux-image-6.5.0-27-generic/now 6.5.0-27.28 amd64 [installed,local]
linux-image-6.8.0-57-generic/noble-updates,noble-security,now 6.8.0-57.59 amd64 [installed,automatic]
linux-image-generic-hwe-22.04/now 6.5.0.27.27 amd64 [installed,local]
linux-image-generic/noble-updates,noble-security,now 6.8.0-57.59 amd64 [installed,automatic]
linux-image-unsigned-6.9.0-060900rc4daily20240420-generic/now 6.9.0-060900rc4daily20240420.202404200203 amd64 [installed,local]
linux-image-virtual-hwe-24.04/noble-updates,noble-security,now 6.11.0-21.21~24.04.1 amd64 [installed,automatic]
linux-libc-dev/noble-updates,noble-security,now 6.8.0-57.59 amd64 [installed,automatic]
linux-modules-6.11.0-21-generic/noble-updates,noble-security,now 6.11.0-21.21~24.04.1 amd64 [installed,automatic]
linux-modules-6.5.0-27-generic/now 6.5.0-27.28 amd64 [installed,local]
linux-modules-6.8.0-57-generic/noble-updates,noble-security,now 6.8.0-57.59 amd64 [installed,automatic]
linux-modules-6.9.0-060900rc4daily20240420-generic/now 6.9.0-060900rc4daily20240420.202404200203 amd64 [installed,local]
linux-modules-extra-6.5.0-27-generic/now 6.5.0-27.28 amd64 [installed,local]
linux-modules-extra-6.8.0-57-generic/noble-updates,noble-security,now 6.8.0-57.59 amd64 [installed,automatic]
linux-sound-base/noble,noble,now 1.0.25+dfsg-0ubuntu7 all [installed,automatic]
linux-tools-6.11.0-21-generic/noble-updates,noble-security,now 6.11.0-21.21~24.04.1 amd64 [installed,automatic]
linux-tools-6.8.0-57-generic/noble-updates,noble-security,now 6.8.0-57.59 amd64 [installed,automatic]
linux-tools-6.8.0-57/noble-updates,noble-security,now 6.8.0-57.59 amd64 [installed,automatic]
linux-tools-common/noble-updates,noble-updates,noble-security,noble-security,now 6.8.0-57.59 all [installed,automatic]
linux-virtual-hwe-24.04/noble-updates,noble-security,now 6.11.0-21.21~24.04.1 amd64 [installed]

Well, you do, but the hwe one points to a release you are not running (you’d want hwe-24.04 there) and the original -generic one is fixed to 6.8, try to install linux-generic-hwe-24.04

Thanks, this will likely solve the problem until 26.04 comes out. Does a new linux-generic-hwe-xx.04 package always have to be installed manually after a major upgrade? Or is there a way to make this package upgrade automatic?

Depends what image you used for install, the original LTS release (i.e. 24.04.0) always comes with linux-generic, the second point release of the image (24.04.2) defaults to hwe … (though the kernel team recently changed its policies, it might be slightly different from 26.04 onwards)

Would it be possible to force dist-upgrade to keep the system on hwe by marking some packages with sudo apt-mark auto?

Once you have hwe it will stay there, you don’t need to mark anything, hwe-24.04 will roll forward as new kernels come in as backports from newer ubuntu releases …

Sounds good. Is that the change in the kernel team’s policy? linux-generic-hwe-xx.04 will be upgraded during dist-upgrade regardless of how it was installed or how the package is marked?

I don’t think the meta package handling in apt will change but the versions you get through it… If you install off a .2 release image you get the respective hwe-xx.yy and that will always be upgraded through the meta package chain as currently, but you get newer versions as dependencies

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.