对于此内核版本字符串(在引导时显示):
Linux版本3.12.18 (vagrant @ vagrant-ubuntu-trusty-64)(gcc版本4.8.2(Ubuntu 4.8.2-19ubuntu1))#1 SMP Thu May 1 18:56 :23 UTC 2014
如何在内核构建中删除或自定义粗体部分?
答案 0 :(得分:3)
您可以通过设置以下定义来自定义您要编辑的版本字符串的部分(在启动时看到或通过调用命令cat /proc/version
):
KBUILD_BUILD_USER
改变你的“流浪汉”价值。KBUILD_BUILD_HOST
改变你的“vagrant-ubuntu-trusty-64”值。您可能也对KBUILD_BUILD_TIMESTAMP
感兴趣(更改“Thu May 1 18:56:23 UTC 2014”)和KBUILD_BUILD_VERSION
(更改“#1”)。
完整的Linux流程标题已在init/version.c中完成。这些定义的值由scripts/mkcompile_h生成。您可以编辑这些文件中的任何一个以完全控制您的版本字符串,但您永远不知道这些附加信息何时可能有用;我建议只改变定义。另一个选项是make some changes your host system覆盖生成的值。通过这样做,您只需添加额外的构建维护来更改很少查询的值。
答案 1 :(得分:1)
内核通过uname调用仅向用户空间提供以下信息。您只能在自定义的uname二进制文件/内核中看到gcc版本 gcc版本4.8.2(Ubuntu 4.8.2-19ubuntu1)。
struct utsname {
char sysname[]; /* Operating system name (e.g., "Linux") */
char nodename[]; /* Name within "some implementation-defined
network" */
char release[]; /* Operating system release (e.g., "2.6.28") */
char version[]; /* Operating system version */
char machine[]; /* Hardware identifier */
#ifdef _GNU_SOURCE
char domainname[]; /* NIS or YP domain name */
#endif
};
Fedora / Redhat不显示编译器信息。
[root@Shash Sasi]# uname -a
Linux Shash 3.13.10-200.fc20.x86_64 #1 SMP Mon Apr 14 20:34:16 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
vagrant @ vagrant-ubuntu-trusty-64 看起来像EXTRAVERSION是内核主要的makefile。
VERSION = 3
PATCHLEVEL = 15
SUBLEVEL = 0
EXTRAVERSION = -rc3
在init / version.c中:
const char linux_banner[] =
"Linux version " UTS_RELEASE " (" LINUX_COMPILE_BY "@"
LINUX_COMPILE_HOST ") (" LINUX_COMPILER ") " UTS_VERSION "\n";
const char linux_proc_banner[] =
"%s version %s"
" (" LINUX_COMPILE_BY "@" LINUX_COMPILE_HOST ")"
" (" LINUX_COMPILER ") %s\n";
另请参阅fs / proc / version.c
答案 2 :(得分:0)
应该是:
make menuconfig -> General setup -> Local version - append to kernel release
CONFIG_LOCALVERSION
文件中的.config
。