如何在 Ubuntu 21.10 上使用 5.16 内核?

如何在 Ubuntu 21.10 上使用 5.16 内核?

我想升级我的内核,以尝试解决间歇性冻结的持续问题。

我尝试过手动安装内核,但它在配置过程中抛出错误,然后sudo apt upgrade显示:

linux-headers-5.16.0-051600-generic : Depends: libssl3 (>= 3.0.0~~alpha1) but it is not installable

这是可以解决的事情吗?

就目前情况而言,我的 Linux 安装无法使用,在被迫回到 Windows 之前,我一直坚持使用这个内核作为我最后的尝试。

答案1

这是我如何让它工作的,它与@airium的答案类似,但使用了我使用的确切命令:

  • 找到正确的内核版本这里;我选择了2011年5月16日

  • 下载适用于您的 CPU 的通用版本驱动程序;我有一个 64 位 CPU,所以我得到了 amd64。

mkdir tmp
cd tmp
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.16.11/amd64/linux-headers-5.16.11-051611-generic_5.16.11-051611.202202230823_amd64.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.16.11/amd64/linux-headers-5.16.11-051611_5.16.11-051611.202202230823_all.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.16.11/amd64/linux-image-unsigned-5.16.11-051611-generic_5.16.11-051611.202202230823_amd64.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.16.11/amd64/linux-modules-5.16.11-051611-generic_5.16.11-051611.202202230823_amd64.deb
  • 安装它们:
sudo dpkg -i *.deb

..._all.deb由于版本已过时,libc6您在安装时会收到错误消息libssl3。您会发现这sudo apt install libssl3不起作用,让我们修复它。

  • 添加 Ubuntu 22.04 存储库:
sudo add-apt-repository "deb http://ca.archive.ubuntu.com/ubuntu jammy main"
  • 现在,如果您尝试安装,libssl3它会告诉您运行以下命令:
sudo apt --fix-broken install
  • 现在我认为您可以开始了,但我还再次运行 dpkg 命令以确保:
sudo dpkg -i *.deb

没有错误!

  • 最后,删除 22.04 存储库:
sudo add-apt-repository --remove "deb http://ca.archive.ubuntu.com/ubuntu jammy main"

编辑:如果你以后尝试安装libc-dev,它会抱怨它,除非你有 jelly 存储库。libc6-dev只需将其添加回来、安装并删除即可。

答案2

警告:以下方法可能会破坏您的系统。你被警告了。

Ubuntu 主线内核 5.15.7+ 和 5.16 将要求从libssl1.1 (>= 1.1.0)提高到libssl3 (>= 3.0.0~~alpha1).可以从头包中发现变化:

dpkg -I linux-headers-5.15.6-051506-generic_5.15.6-051506.202112010437_amd64.deb | grep Depends
# Depends: linux-headers-5.15.6-051506, libc6 (>= 2.34), libelf1 (>= 0.142), libssl1.1 (>= 1.1.0), zlib1g (>= 1:1.2.3.3)
dpkg -I linux-headers-5.15.7-051507-generic_5.15.7-051507.202112080459_amd64.deb | grep Depends
# Depends: linux-headers-5.15.7-051507, libc6 (>= 2.34), libelf1 (>= 0.142), libssl3 (>= 3.0.0~~alpha1), zlib1g (>= 1:1.2.3.3)

但是,该软件包libssl3仅适用于 Ubuntu 22.04:libssl3
与其父包相同libssl-dev,3.0+ 也仅适用于 Ubuntu 22.04:libssl 开发
因此,如果您运行的是 Ubuntu 21.10(或更低版本),apt 无法找到所需的 libssl3>3.0。


您可以尝试从 Ubuntu 22.04 手动下载并安装软件包: https://packages.ubuntu.com/jammy/amd64/libssl3/download

# wget http://mirrors.kernel.org/ubuntu/pool/main/o/openssl/libssl3_3.0.1-0ubuntu1_amd64.deb
# sudo dpkg -i libssl3_3.0.1-0ubuntu1_amd64.deb

不推荐这样做,因为 Ubuntu 21.10 或更低版本中不包含 libssl3,并且 Ubuntu 22.04 直到四月份才正式发布。但是,libssl3 具有与 libssl1.1 几乎相同的依赖性。那里应该在 Ubuntu 21.10 上使用它没有问题。


更新

如果您确实需要这些新内核ubuntu 20.04,从 ubuntu 22.04 下载以下 deb:

libc6_2.34-0ubuntu3_amd64.deb
libc6-dev_2.34-0ubuntu3_amd64.deb
libc-bin_2.34-0ubuntu3_amd64.deb
libc-dev-bin_2.34-0ubuntu3_amd64.deb
libnsl2_1.3.0-2build1_amd64.deb
libnsl-dev_1.3.0-2build1_amd64.deb
libssl3_3.0.1-0ubuntu1_amd64.deb
locales_2.34-0ubuntu3_all.deb
rpcsvc-proto_1.4.2-0ubuntu5_amd64.deb

如果您相信我,我已将其复制到 Google 云端硬盘:谷歌驱动器
将以上所有内容下载到一个文件夹后,运行:

# assume root and in this folder
dpkg --force-depends --install *.deb
apt --fix-broken install

您的 Ubuntu 20.04 现在适用于内核 5.16。在我的服务器上测试了一周,没有出现任何问题。 在此输入图像描述

然而,众所周知,这在某些系统上仍然不起作用,并且会破坏它们!使用风险自负!请等待即将到来的 4 月份的 Ubuntu 22.04。

答案3

如果您确实需要更新版本的内核并且不想安装 gcc-11 和 libssl3 的整个rat's tail,则另一种选择是尝试自己构建内核,使用当前的 gcc 和当前的 libssl。

这是如何完成的:
https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel

该文档看起来比实际情况更复杂。在实践中,这几乎是微不足道的,因为唯一困难的部分是配置内核(以不同的方式),而您在这里不需要它。

相关内容