【问题标题】:Where do I find the version of a Linux kernel source tree?我在哪里可以找到 Linux 内核源代码树的版本?
【发布时间】:2012-08-22 12:20:47
【问题描述】:

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

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

我希望能够在不编译和运行内核的情况下做到这一点。

【问题讨论】:

    标签: linux


    【解决方案1】:

    你可以通过运行找到版本

    make kernelversion
    

    在源代码树中

    【讨论】:

    • 我应该澄清一下,我希望能够通过检查源代码树来做到这一点,而不是在可能的情况下尝试编译运行内核。我已经相应地更新了我的问题。
    • @downvoters 我没有反对投票的问题,但如果你能解释一下为什么会很好:-)
    • 阿德里安,我怀疑你有uname解决方案需要安装内核。无论如何,既然您现在有一个不需要 需要构建和安装的工具,这里有一个赞成票,可以让您抵消开车投票的反对票 - 我恨他们报复 :-)跨度>
    • @paxdiablo 谢谢,可能是真的 - 因为 OP 还编辑了他的问题,所以 unname 的东西变成了 wrong 答案。我只是希望人们会说-哦,好吧:-)
    • 查看问题编辑历史,uname 总是错误的答案(问题暗示运行内核的硬件甚至可能不可用)。但从最初的问题来看,我认为检查构建输出的东西是可以接受的。
    【解决方案2】:

    检查顶级Makefile,例如here。在顶部,您应该会看到如下内容:

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

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

    【讨论】:

    • 这两种方法都非常好(我的意思是 make kernelversion 以及 vi Makefile),因为在根据内核正在运行,重要的是验证命令 uname -r 是否匹配 make kernelversion 的输出,如果不匹配则使用 vi Makefile跨度>
    • 这种方法的主要优点是你不需要克隆一个大的存储库来检查版本,当从 git 标签中无法猜测到版本时。谢谢。
    【解决方案3】:

    另一种解决方案:在较早的时期include/linux/version.h,现在是include/generated/uapi/linux/version.h,但只有在至少部分成功编译之后。

    【讨论】:

    • include/linux/version.h 已弃用,它现在在 include/generated/uapi/linux/version.h 的构建过程中生成
    猜你喜欢
    • 1970-01-01
    • 2011-08-31
    • 1970-01-01
    • 2015-08-30
    • 2019-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-20
    相关资源
    最近更新 更多