0

linux内核启动时,会打印内核版本和构建器,以及工具链信息。就像下面这样:

Booting Linux on physical CPU 0
Linux version 3.4.24 (whobuilderthis@cl-builder23) 

那么如何获取构建器whobuilderthis字符串(使用shell)?它存储在哪里?提前致谢。

4

3 回答 3

2

您可以查询/proc/version哪个应该包含构建器字符串。

shell@android:/ $ cat /proc/version                                            
Linux version 3.0.31-g9f818de (android-build@vpbs1.mtv.corp.google.com) (gcc version 4.6.x-google 20120106 (prerelease) (GCC) ) #1 SMP PREEMPT Wed Nov 28 11:20:29 PST 2012
于 2013-06-28T13:08:01.223 回答
1

dmesg给出内核日志,所以你应该能够从那里grep/sed它:

dmesg | grep 'Linux version ' | sed 's/[^(]*(\([^)]*\)).*/\1/'

(有更聪明的方法可以做到这一点。)

于 2013-06-28T10:31:18.547 回答
0

根据文档/kbuild/kbuild.rst:

KBUILD_BUILD_USER、KBUILD_BUILD_HOST

这两个变量允许覆盖在引导期间和 /proc/version 中显示的 user@host 字符串。默认值分别是 whoami 和 host 命令的输出。

所以“/proc/version”会输出当前运行内核的结果。如果要更改内容,则需要在内核构建机器上覆盖上述 2 个变量。

于 2020-07-27T04:24:18.107 回答