Linux内核版本后缀+CONFIG_LOCALVERSION

Linux内核版本后缀+CONFIG_LOCALVERSION

在系统启动时,我当前从引导加载程序菜单中看到 Linux 4.0.0-rc6yy 和 4.0.0-rc6yy.old。我不确定他们来自哪里。我怀疑“yy”是任意的,但有人可以解释“.old”后缀吗?

另外有人可以解释一下 .config 中的 CONFIG_LOCALVERSION 和 CONFIG_LOCALVERSION_AUTO 是什么吗?我查过它们,但仍然不清楚它们的用途。非常感谢。

答案1

当您安装内核时,负责的脚本将复制kernel imageinitramfs您的/boot目录中。如果已存在同名的先前内核映像,则通过在其名称后附加 .old 对其进行重命名。

CONFIG_LOCALVERSION:

在内核版本的末尾附加一个额外的字符串。例如,当您键入 uname 时,就会显示该信息。您在此处设置的字符串将按顺序附加在对象和源树中文件名与 localversion* 匹配的任何文件的内容之后。您的总字符串最多可以包含 64 个字符。

这意味着如果您愿意,您可以为您的定制内核指定一个特殊的版本号或名称。如果您输入“-MyNewKernel”,您的内核应该看起来:Linux 4.0.0-MyNewKernel

CONFIG_LOCALVERSION_AUTO:

这将尝试通过查找属于当前树修订顶部的 git 标签来自动确定当前树是否是发布树。
-gxxxxxxxx 格式的字符串将添加到附加在任何匹配的 localversion 1文件之后以及 CONFIG_LOCALVERSION 中设置的值之后的 localversion 中。

1(此处使用的实际字符串是运行命令生成的前八个字符:

$ git rev-parse --verify HEAD

这是在脚本“scripts/setlocalversion”中完成的。)

这意味着,如果启用它,则 setlocalversion(或 .scmversion)报告的唯一 SCM(源代码控制管理)标记将附加到内核版本(如果存在)。例如,如果找到 git 树,则将附加修订号(如果存在)。结果可能看起来:Linux 4.0.0-MyNewKernel-ga2cfc42。有关更多信息,您可以检查源树 scipts/setlocalversion。

相关内容