如何将我的内核更新到最新版本?

我想将我的内核更新到最新的稳定版本,即v5.16.1。
我按照一个指南来安装内核5.16。一切都进行得很顺利,直到我遇到了这个错误:
dpkg: dependency problems prevent configuration of linux-headers-5.16.1-051601-generic:
 linux-headers-5.16.1-851601-generic depends on libc6 (>= 2.34); however:
  Version of libc6:amd64 on system is 2.31-8ubuntu9.2. 
 linux-headers-5.16.1-851601-generic depends on libssl3 (>= 3.8.0--alphal); however:
  Package libssl3 is not installed. 
  
dpkg: error processing package linux-headers-5.16.1-051601-generic (--install):
 dependency problems - leaving unconfigured Setting up linux-image-unsigned-5.16.1-051601-generic (5.16.1-051601.282201160933) ... 
I: /boot/vmlinuz.old is now a symlink to vmlinuz-5.13.0-27-generic 
I: /boot/initrd.img.old is now a symlink to initrd.img-5.13.0-27-generic 
I: /boot/vmlinuz is now a symlink to vmlinuz-5.16.1-051601-generic 
I: /boot/initrd.img is now a symlink to initrd.img-5.16.1-051601-generic
Setting up linux-modules-5.16.1-051601-generic (5.16.1-051601.202201160933) 
Processing triggers for linux-image-unsigned-5.16.1-051601-generic (5.16.1-051601.202201160933) 
/etc/kernel/postinst.d/initramfs-tools: 
update-initramfs: Generating /boot/initrd.img-5.16.1-851681-generic 
I: The initramfs will attempt to resume from /dev/sda2 
I: (UUID=91b5f7d6-87fe-498a-a823-88828fa8256a) 
I: Set the RESUME variable to override this. 
/etc/kernel/postinst.d/zz-update-grub: 
Sourcing file 7etc/default/grub. 
Sourcing file 7etc/default/grub.d/99_breeze-grub.cfg. 
Sourcing file 7etc/default/grub.d/init-select.cfg. Generating grub configuration file ... 
Found theme: /boot/grub/themes/breeze/theme.txt 
Found linux image: /boot/vmlinuz-5.16.1-851681-generic 
Found initrd image: /boot/initrd.img-5.16.1-051601-generic 
Found linux image: /boot/vmlinuz-5.15.15-051515-generic 
Found initrd image: /boot/initrd.img-5.15.15-851515-generic 
Found linux image: /boot/vmlinuz-5.13.8-27-generic 
Found initrd image: /boot/initrd.img-5.13.8-27-generic 
Found linux image: /boot/vmlinuz-5.11.0-46-generic 
Found initrd image: /boot/initrd.img-5.11.0-46-generic 
Found linux image: /boot/vmlinuz-5.4.0-96-generic 
Found initrd image: /boot/initrd.img-5.4.0-96-generic 
Found memtest86+ image: /boot/memtest86+.elf 
Found memtest86+ image: /boot/memtest86+.bin 
done 
Errors were encountered while processing:
 linux-headers-5.16.1-051681-generic 

什么是依赖关系,为什么在更新内核时它们不会自动安装?我需要一份逐步指南来将内核更新到最新版本。请帮忙。我看了很多YouTube视频,即使按照完全相同的步骤操作,也没有出现这个错误。
对于这个问题,我没有得到任何令人满意的答案,请帮助我。我的操作系统已经完全更新。我是Linux的新手,因为这个问题无法使用Linux,而我想要最新的内核。
硬件信息:
- 操作系统:Kubuntu 21.10(当前运行的内核版本为5.13) - CPU:i3-8100 - 存储:250GB NVMe M.2 SSD - GPU:Nvidia GeForce GTX 1650 - RAM:8GB 2400 MHz

4嗨。请注意,运行主线内核是为了测试目的而设计的。您还没有解释为什么您想要最新的内核。所有的Ubuntu内核都会更新相关的安全补丁,所以仅仅因为它是最新的并不是一个真正的解释。 - Artur Meinild
3请不要包含文本的截图;它们无法被搜索,并且对于某些有限制的人来说也无法阅读。请将文本从终端复制/粘贴到您的问题中。 - marcelm
5个回答

请注意:在继续之前,请确保从BIOS设置中禁用安全启动。如果您不想禁用安全启动,您需要手动签名内核。这个答案可能会有所帮助。
请注意以下几点:
你想要安装的内核版本是5.16.1,而你正在跟随的教程展示的是安装5.16的方法。
5.16是一个主线内核。
Ubuntu使用最新的稳定LTS内核而不是最新的稳定内核。
除非你需要特定的驱动支持,否则不应该手动升级内核。
截至2022年1月20日,除了从源代码编译之外,没有简单的方法来安装5.16.1。你可以从官方网站获取Tarball(直接链接)。编译很容易,但安装依赖和配置安装比较困难。你很可能会遇到错误。
手动安装的内核不会自动升级,你需要每次手动升级它们,或者使用下面答案中提到的脚本。

修复安装问题

这是由于依赖关系问题,运行强制安装将解决它:

sudo apt -f install

最好的情况是,你可以使用aptitude来获得更好的结果。
sudo aptitude -f install

安装内核 5.16 的另一种方法

或者,运行以下命令也可以安装内核 v5.16

cd ~/Downloads 

wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.16/amd64/linux-headers-5.16.0-051600_5.16.0-051600.202201092355_all.deb
wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.16/amd64/linux-headers-5.16.0-051600-generic_5.16.0-051600.202201092355_amd64.deb
wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.16/amd64/linux-image-unsigned-5.16.0-051600-generic_5.16.0-051600.202201092355_amd64.deb
wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.16/amd64/linux-modules-5.16.0-051600-generic_5.16.0-051600.202201092355_amd64.deb

sudo dpkg -i *.deb
sudo apt -f install

安装最新的内核。

标题表示您想要安装最新的内核,您可以使用自动化脚本来安装最新的内核:

  1. 安装自动检查和安装最新内核的shell脚本:

    wget https://raw.githubusercontent.com/pimlie/ubuntu-mainline-kernel.sh/master/ubuntu-mainline-kernel.sh
    sudo install ubuntu-mainline-kernel.sh /usr/local/bin/
    
  2. 运行shell脚本:

    sudo ubuntu-mainline-kernel.sh -c     
    
  3. 安装最新稳定版内核:

    sudo ubuntu-mainline-kernel.sh -i
    
  4. 按下 Y 键接受安装。

  5. 重新启动以进入最新的内核:

    sudo reboot      
    
未来,如果您想重新检查和安装最新的稳定内核,只需运行以下命令即可:
sudo ubuntu-mainline-kernel.sh -i

请注意:您可以使用以下命令检查您正在使用的内核:
uname -r

1谢谢,这解决了我的问题。你给了我一个准确的逐步指南。谢谢。 - Sifat Ullah
嘿,有没有办法删除旧内核?因为现在我的 grub 菜单里安装了很多内核。@某人 - Sifat Ullah
2@sifatullah sudo apt autoremove应该会将它们移除。你也可以使用sudo apt remove手动移除它们。 - Error404
我尝试了来自kernel.ubuntu.com的方法,但在启动过程中出现了一个错误,提示它没有签名。 - GorillaApe
@GorillaApe请看已编辑部分,即答案上方的注释。 - Error404
有没有适用于更新内核的PPA?我猜这个脚本的新内核会在下一个官方Ubuntu更新中被替换掉吧? - Joseph Garvin
1@JosephGarvin 有很多用于更新内核的PPA,但大部分都会在下载软件包时失败或引发某种错误(根据我的经验)。它们可能会对软件包管理器造成损害。因此,从脚本安装更加安全。此外,通过该脚本安装的内核不会被自动删除,因此任何更新都不会对其产生影响。但是,在官方更新之前更新内核仍然相当危险。另外,如果您按照我的答案操作,请确保备份数据并至少了解APT和Ubuntu的一些知识。 - Error404
脚本运行得非常顺利!干杯 :) - Michel Rummens
1一行代码:wget -c -- $(curl -s https://kernel.ubuntu.com/\~kernel-ppa/mainline/v${VER}/amd64/ | sed 's/"\|>\|</\n/g' | grep deb | uniq | while read line; do echo "https://kernel.ubuntu.com/~kernel-ppa/mainline/v${VER}/amd64/${line}";done); dpkg -i linux*${VER}*.deb。记得设置 VER=6.3 - Tejas Kale

安装主线内核软件包,它是一个很棒的图形界面。对我来说完美无缺。节省了我手动操作的时间和精力。更新到6.3版本修复了我的Wi-Fi驱动程序和网络共享功能!干得好,伙计们!

sudo add-apt-repository ppa:cappelikan/ppa
sudo apt update
sudo apt install mainline

实用方法 = 安装Ubuntu 22.10 Ubuntu 22.10 使用内核 = 5.19 https://cdimage.ubuntu.com/daily-live/pending/ 或者 将Linux内核5.19安装到Ubuntu 22.04 LTS 内核5.19比内核5.15更好、更快 下载内核5.19 =
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.19/amd64/linux-headers-5.19.0-051900_5.19.0-051900.202207312230_all.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.19/amd64/linux-headers-5.19.0-051900-generic_5.19.0-051900.202207312230_amd64.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.19/amd64/linux-image-unsigned-5.19.0-051900-generic_5.19.0-051900.202207312230_amd64.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.19/amd64/linux-modules-5.19.0-051900-generic_5.19.0-051900.202207312230_amd64.deb

源 = https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.19/
现在,全部安装 =

sudo apt install ./linux-headers-5.19.0*.deb ./linux-image-unsigned-5.19.0*.deb ./linux-modules-5.19.0*.deb

检查内核版本 =
uname -r

输出新内核5.19 =
5.19.0-051900-generic
现在,请重新启动您的计算机

从Ubuntu 22.04 LTS中删除内核5.15 =
sudo apt purge linux-headers-5.15.0* linux-modules-5.15.0* linux-image-unsigned-5.15.0*

sudo apt autoremove

这个解决方案对我没有起作用。 - alper
@ISRAEL linux-generic-hwe-22.04元包现在安装的内核版本为v5.19:$ dpkg -s linux-generic-hwe-22.04 | grep 5.19 Source: linux-meta-hwe-5.19 Version: 5.19.0.46.47~22.04.21 Provides: kernel-testing--linux-hwe-5.19--full--generic, kernel-testing--linux-hwe-5.19--full--preferred Depends: linux-image-generic-hwe-22.04 (= 5.19.0.46.47~22.04.21), linux-headers-generic-hwe-22.04 (= 5.19.0.46.47~22.04.21) - SebMa
除了在我的机器上,由于某种原因,5.19内核更新导致无法启动。我实际上尝试了两次。回滚到5.15系列,这是我需要的,直到下一个*buntu LTS稳定版本发布:22.04.3应该可以正常工作。(或者等待24.04.1,我想!) - fixitmanarizona

我找到了一个自动化内核安装的脚本。
wget https://raw.githubusercontent.com/pimlie/ubuntu-mainline-kernel.sh/master/ubuntu-mainline-kernel.sh
sudo chmod a+x ubuntu-mainline-kernel.sh
sudo install ubuntu-mainline-kernel.sh /usr/local/bin
sudo ubuntu-mainline-kernel.sh -i

@ArturMeinild:已完成 - undefined

你也可以通过命令行更新,运行以下命令:sudo apt update && sudo apt full-upgrade 或者 sudo apt dist-upgrade。
如果你不想安装所有待处理的更新,运行以下命令:sudo apt install linux-image-generic-hwe-22.04 来安装它。