-1

当我跑

uname -r

我在我的 Debian7 上得到 3.2.0-4-686-pae,在我的 Gentoo 上得到 4.4.26-gentoo。

但是我在任何地方都找不到这些发行版使用的 Linux 内核源代码版本。如果我理解正确,所有发行版都从这里https://www.kernel.org获取内核源代码。那么,例如,我如何从该站点找出哪些 Linux 内核版本使用 4.4.26-gentoo 或 3.2.0-4-686-pae?

4

4 回答 4

1

尝试man uname为使用的内核版本查找 -v。;)

因此,uname -v或者uname -a如果您只是不关心细节并希望看到这一切。:p

$ uname -v
#1 SMP Debian 3.16.36-1+deb8u2 (2016-10-19)

$ uname -a
Linux Phobos 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1+deb8u2 (2016-10-19) x86_64 GNU/Linux

uname -r查看part和uname -vpart中的区别uname -a(-a中的第一个版本号)

$ uname -r
3.16.0-4-amd64
于 2016-12-01T16:52:33.080 回答
0

uname -r 是最简单的方法。

尽管有像 screenfetch 或 neofetch 这样的实用程序可以以清晰漂亮的方式为您提供更多信息。

只需运行screenfetch它就会显示详细信息。(如今,大多数发行版通常都预装了 screenfetch)。

如果未安装,只需运行sudo apt install screenfetch (在基于 debian 的发行版上,如 ubuntu)或sudo pacman -S screenfetch(在基于 Arch 的发行版上。

于 2020-11-16T12:06:57.530 回答
0

如果您正在寻找匹配可浏览的原始 Linux 内核版本

https://elixir.bootlin.com/linux/vx.y.z/

或者你在开发内核代码时检查的LINUX_KERNEL_CODE,“uname”不是正确的答案!

有两种方法(我以我的 Ubuntu 16.04 为例):

  1. dmesg

    dmesg | grep "Linux\ 版本"

    [0.000000]Linux 版本 4.4.0-210-generic (buildd@lgw01-amd64-009) (gcc 版本 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12))#242-Ubuntu SMP Fri Apr 16 09 :57:56 UTC 2021 (Ubuntu 4.4.0-210.242-generic 4.4.262 )

原来的内核版本是4.4.262!而 4.4.0-210-generic 是 Ubuntu 的内核编号。

  1. 安装内核源代码使用命令,如

    sudo apt-get install linux-source

查看新安装的文件('uname -r' => 4.4.0-210-generic)

/lib/modules/4.4.0-210-generic/build/include/generated/uapi/linux/version.h    

#define LINUX_VERSION_CODE 263423
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))

该版本代码是 0x0404FF,表示 4.4.[>=255](其中 FF 表示补丁超过 255)。

--------下面有趣的阅读--------

看文件很有趣

/lib/modules/4.4.0-210-generic/build/include/generated/utsrelease.h
#define UTS_RELEASE "4.4.0-210-generic"
#define UTS_UBUNTU_RELEASE_ABI 210

现在我们知道 uname 和 /proc/version 从哪里得到它们的编号。

在我的 Ubuntu 20.04 5.4.0-80-generic

dmesg | grep "Linux\ versin"

[    0.000000] Linux version 5.4.0-80-generic (buildd@lcy01-
amd64-030) (gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04))
#90-Ubuntu SMP Fri Jul 9 22:49:44 UTC 2021 
(Ubuntu 5.4.0-80.90-generic **5.4.124**)

和 LINUX_KERNEL_CODE 是

$ cat /lib/modules/5.4.0-80-generic/build/include/generated/uapi/linux/version.h 

#define LINUX_VERSION_CODE 328828

其中 328828 = 0x05047C,表示5.4.124

于 2021-08-02T20:13:00.970 回答
0

您有一些方法可以了解 linux 内核版本:

  1. 好办法

    uname -r

  2. 查看内核版本的坏方法(如果它们具有内核版本号,您应该看到 vmlinu* initrd 文件的版本)

    ls /boot | grep "vmlinu*"; ls /boot | grep "initrd*"

  3. 您可以尝试这种方式来了解您机器上的所有内核版本:

    ls /lib/modules/

于 2017-02-06T12:28:53.643 回答