当前位置: 首页 > 知识库问答 >
问题:

linux - ubuntu22.04 的内核版本为什么有多个?

东郭阳德
2023-08-28

在我的 amd5700g 上安装了一个 ubuntu22.04 Desktop

发现 linux 内核版本是 6.2.0

╭─pon@amd5700g ~/Downloads                                                                                                                                                                                                        ╰─➤                                                                                                                                                                                                                                *  History restored                                                                                                                                                                                                                          .-/+oossssoo+/-.               pon@amd5700g                                                                                                                                                                                   `:+ssssssssssssssssss+:`           ------------                                                                                                                                                                                 -+ssssssssssssssssssyyssss+-         OS: Ubuntu 22.04.3 LTS x86_64                                                                                                                                                              .ossssssssssssssssssdMMMNysssso.       Host: MS-7B89 1.0                                                                                                                                                                         /ssssssssssshdmmNNmmyNMMMMhssssss/      Kernel: 6.2.0-26-generic                                                                                                                                                                 +ssssssssshmydMMMMMMMNddddyssssssss+     Uptime: 48 secs                                                                                                                                                                         /sssssssshNMMMyhhyyyyhmNMMMNhssssssss/    Packages: 2345 (dpkg), 31 (snap)                                                                                                                                                       .ssssssssdMMMNhsssssssssshNMMMdssssssss.   Shell: zsh 5.8.1                                                                                                                                                                       +sssshhhyNMMNyssssssssssssyNMMMysssssss+   Resolution: 3840x2160                                                                                                                                                                  ossyNMMMNyMMhsssssssssssssshmmmhssssssso   DE: Unity                                                                                                                                                                              ossyNMMMNyMMhsssssssssssssshmmmhssssssso   WM: Mutter                                                                                                                                                                             +sssshhhyNMMNyssssssssssssyNMMMysssssss+   WM Theme: Adwaita                                                                                                                                                                      .ssssssssdMMMNhsssssssssshNMMMdssssssss.   Theme: Yaru [GTK2/3]                                                                                                                                                                    /sssssssshNMMMyhhyyyyhdNMMMNhssssssss/    Icons: Yaru [GTK2/3]                                                                                                                                                                     +sssssssssdmydMMMMMMMMddddyssssssss+     Terminal: Tabby                                                                                                                                                                           /ssssssssssshdmNNNNmyNMMMMhssssss/      CPU: AMD Ryzen 7 5700G with Radeon Graphics (16) @ 3.800GHz                                                                                                                                .ossssssssssssssssssdMMMNysssso.       GPU: AMD ATI 30:00.0 Cezanne                                                                                                                                                                 -+sssssssssssssssssyyyssss+-         Memory: 4981MiB / 27939MiB                                                                                                                                                                     `:+ssssssssssssssssss+:`                                                                                                                                                                                                              .-/+oossssoo+/-.

但是安装的 ubuntu22.04 Server 版本的 linux 内核是 5.15.0 版本

            .-/+oossssoo+/-.               vobile@M60GPU         `:+ssssssssssssssssss+:`           -------------       -+ssssssssssssssssssyyssss+-         OS: Ubuntu 22.04.3 LTS x86_64     .ossssssssssssssssssdMMMNysssso.       Host: SYS-1028GR-TRT 123456789    /ssssssssssshdmmNNmmyNMMMMhssssss/      Kernel: 5.15.0-76-generic   +ssssssssshmydMMMMMMMNddddyssssssss+     Uptime: 59 days, 20 hours, 16 mins  /sssssssshNMMMyhhyyyyhmNMMMNhssssssss/    Packages: 1414 (dpkg), 4 (snap) .ssssssssdMMMNhsssssssssshNMMMdssssssss.   Shell: zsh 5.8.1 +sssshhhyNMMNyssssssssssssyNMMMysssssss+   Resolution: 1024x768 ossyNMMMNyMMhsssssssssssssshmmmhssssssso   Terminal: node ossyNMMMNyMMhsssssssssssssshmmmhssssssso   CPU: Intel Xeon E5-2690 v4 (56) @ 3.500GHz +sssshhhyNMMNyssssssssssssyNMMMysssssss+   GPU: NVIDIA Tesla M60 .ssssssssdMMMNhsssssssssshNMMMdssssssss.   GPU: NVIDIA Tesla M60  /sssssssshNMMMyhhyyyyhdNMMMNhssssssss/    Memory: 2212MiB / 32016MiB   +sssssssssdmydMMMMMMMMddddyssssssss+   /ssssssssssshdmNNNNmyNMMMMhssssss/                                  .ossssssssssssssssssdMMMNysssso.                                     -+sssssssssssssssssyyyssss+-        `:+ssssssssssssssssss+:`            .-/+oossssoo+/-.

这个差异是因为 desktop 和 server 版本引起的吗?

但是从我之前的观察发现,好像即便在同一个 ubuntu 版本下(比如 18、20、22)都是 desktop 或者 server 都可能有不同的 linux 内核版本

ubuntu 的内核版本不固定的吗?

共有1个答案

慕逸仙
2023-08-28

https://ubuntu.com/kernel

ubuntu kernel说明,最新的LTS镜像会安装-hwe内核,这个是高版本的内核,通常应该是下个LTS版本使用的内核,每个版本的内核支持时间可以在上述链接找到图文说明。https://ubuntu.com/kernel/lifecycle

此外,ubuntu还有其他可用备选内核,参考: https://ubuntu.com/kernel/variants#current-variant-kernels

image.png

如果你安装的包是linux-generic,就是5.15内核,如果安装的是linux-generic-hwe,那么当前就是6.2版本内核,以此类推。

同理,如果你想对已经运行中的ubuntu实例也用上6.2内核,那么可以安装linux-generic-hwe包,卸载掉linux-generic包就OK了。

sudo apt install -y linux-generic-hwesudo apt purge linux-generic# 由于 linux-generic 只是虚包,会实际依赖于一个内核安装包,因此需要 autoremove 删除这个依赖才能彻底卸载掉低版本内核sudo apt autoremove --purge

此外,对于arm架构还有类似于 linux-generic-64k[-hwe-22.04] 这种内核,启用了arm64 64K 页大小。

简而言之,如果你从ubuntu官方安装镜像安装,那么对于x.04这种原始LTS版本,那么安装的kernel包为linux-generic,如果安装的是x.04.2之后的LTS版本,那么通常会安装linux-generic-hwe kernel.

关于HWE的说明,也可以参考以下补充参考链接:

  • https://askubuntu.com/questions/248914/what-is-hardware-enabl...
  • https://wiki.ubuntu.com/Kernel/LTSEnablementStack

简单来说,就是Ubuntu认为硬件更新迭代可能比较快,而LTS版本支持时间比较长(已经从20.04版本之前的5年延长到目前的10年支持),所以旧的LTS版本可能无法跟上新硬件的适配,因此Ubuntu搞了个HWE包,让旧的LTS版本用上新的LTS版本的内核以便可以在不升级整个OS版本(do-release-upgrade)的情况下使用新版本的内核,以支持新的硬件

 类似资料:
  • 使用 ubuntu22.04 发现使用 sudo apt update && sudo apt upgrade -y 更新软件包的时候,也会更新 Kernel 机器上有好多个 Kernel 了,ubuntu 给我下载这么多 Kernel 干嘛呢?

  • 由于Linux系统的特殊性,G01对于Linux系统的支持主要以内核版本为主,即"uname -a"所显示的版本信息;而不以系统的版本信息为支持标准。 以下表格中为当前G01支持的Linux系统内核版本,安装时请进行参考。 CentOS/RedHat Linux 内核版本 CentOS 7/RedHat Linux 7 CentOS 6/RedHat Linux 6 CentOS 5/RedHat

  • 我正在使用约克托项目来构建 linux os 映像。我使用SUMO版本,所以我有4.14.73内核版本。 问题是我有预编译的linux驱动,版本是4.14.88。 我认为我必须升级我的linux内核,使其成为相同版本的驱动程序。 知道怎么做吗?

  • 问题内容: 我有一个可加载的内核模块,其初始化如下 我还启用了正在使用的内核版本上启用的动态调试-ie 。 在模块的Makefile中,我在其中添加了一行,即文件名。 现在,我在执行此模块的insmod后检查了一下,在其中发现了以下几行 即使做了所有这些,令我失望的是,在dmesg的输出中找不到上述两个pr_debug语句。那我想念什么或做错什么呢? 问题答案: 假设是模块源文件,请将以下内容添加

  • 问题内容: 我想构建一个将与所有内核发行版兼容的内核模块。例如,如果我在内核3.2.0-29上构建内核模块并尝试在3.2.0-86上加载它,则会出现以下错误: modprobe my_driver 致命:插入my_driver(/lib/modules/3.2.0-86-generic/kernel/fs/my_drv/my_drv.ko)时出错:无效的模块格式 [在日志消息中:my_drv:对符

  • 问题内容: Linux内核代码中的EXPORT_SYMBOL_GPL是什么? 下面是一段代码,其中包含EXPORT_SYMBOL_GPL 该宏在内核代码中多次出现。 问题答案: 将某些符号(例如函数)定义为可导出(从内核可加载模块中看到)是宏。如果该符号没有“ EXPORT_SYMBOL”,则将无法从模块访问该符号。 将仅在GPL许可的模块中显示该符号,并且-在具有任何许可的模块中显示该符号。 h