在哪里可以找到 Linux 内核源代码树的版本?

问题描述 投票:0回答:6

我从硬件供应商那里下载了他们的 Linux 源代码树的 tarball(没有 Git 存储库元数据),有没有办法找到内核的版本号?

版本号通常存储在源树中某处的文件中吗?

我希望能够在不编译和运行内核的情况下完成此操作。

linux
6个回答
132
投票

运行即可找到版本

make kernelversion

在源代码树中


127
投票

检查顶层

Makefile
,其中的一个示例是 here。在最上面,您应该看到类似的内容:

VERSION = 3
PATCHLEVEL = 1
SUBLEVEL = 0
EXTRAVERSION = -pax
NAME = Custom Pax Version

此方法的优点是您只需要能够查看文件本身,而不必运行构建过程。


5
投票

另一个解决方案:在较早的时代

include/linux/version.h
,目前
include/generated/uapi/linux/version.h
,但只有在至少部分成功编译之后。


2
投票

在Linux源码树的根文件中,检查Makefile内容。 在开头部分:

# SPDX-License-Identifier: GPL-2.0
VERSION = 4
PATCHLEVEL = 14
SUBLEVEL = 67

那么你的linux源码树的版本是:4.14.67


2
投票

如果有人需要编写脚本:使用

awk
,可以从
Makefile
打印版本,如下所示:

awk '/^VERSION =/{a=$3};/^PATCHLEVEL =/{b=$3};/^SUBLEVEL =/{c=$3};/^EXTRAVERSION =/{d=$3};END{print a"."b"."c d}' Makefile

如果应跳过

EXTRAVERSION
附录:

awk '/^VERSION =/{a=$3};/^PATCHLEVEL =/{b=$3};/^SUBLEVEL =/{c=$3};END{print a"."b"."c}' Makefile

如果有人知道如何使

awk
在当前模式已匹配一次的情况下继续下一个模式,那么在多行分别以
VERSION =
开头的情况下,这将使其故障安全。但我在任何Linux源代码版本中都没有看到过这个。


0
投票
In the kernel source tree, check the root directory Makefile to get the kernel version as below.

Example as below:

 $ head Makefile
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 18
 SUBLEVEL = 0
 EXTRAVERSION = -rc3
 NAME = Superb Owl
 # *DOCUMENTATION*
 # To see a list of typical targets execute "make help"
 # More info can be located in ./README

From the above we get the source code version is 5.18.0-rc3
© www.soinside.com 2019 - 2024. All rights reserved.