在我的 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 的内核版本不固定的吗?
https://ubuntu.com/kernel
ubuntu kernel说明,最新的LTS镜像会安装-hwe
内核,这个是高版本的内核,通常应该是下个LTS版本使用的内核,每个版本的内核支持时间可以在上述链接找到图文说明。https://ubuntu.com/kernel/lifecycle
此外,ubuntu还有其他可用备选内核,参考: https://ubuntu.com/kernel/variants#current-variant-kernels
如果你安装的包是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
的说明,也可以参考以下补充参考链接:
简单来说,就是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