我怎么知道Linux内核版本可用于发行版



当我运行

uname -r

我在我的debian7上得到3.2.0-4-686-PAE,而我的Gentoo上有4.4.26-gentoo。

但是我在任何地方找不到的是Linux内核源版本所使用的。如果我理解正确的话,所有分布都从此处使用内核源代码https://www.kernel.org。那么,我该如何找到网站中的Linux内核版本,例如?

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

因此,如果您只是不关心细节并希望看到所有内容,则为uname -vuname -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零件与uname -a中的uname -v零件之间的差异(-a中的第一个版本号)

$ uname -r
3.16.0-4-amd64

您有一些方法知道Linux内核版本:

  1. 好方法

    uname -r

  2. 糟糕的方法查看内核版本(如果它们具有kernel的版本号,则应查看vmlinu* initrd文件的版本)

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

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

    ls /lib/modules/

uname -r 是最简单的方法。

尽管有一些公用事业,例如screenfetch或neofetch,它们以清晰,漂亮的方式为您提供更多信息。

只需运行screenfetch即可显示详细信息。(如今,通常在大多数发行版上都预装ScreenFetch)。

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

如果您正在寻找匹配浏览的原始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代(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总生成 4.4.262

原始内核版本是 4.4.262 !和4.4.0-210代是Ubuntu的内核编号。

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

    sudo apt-get安装linux-source

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

/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。[&gt; = 255](在patch超过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/PROC/版本从哪里获取其号码。

在我的ubuntu上20.04 5.4.0-80代代

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

相关内容

  • 没有找到相关文章

最新更新