Linux内核:内核版本字符串附加'' +"或" -dirty"

时间:2014-08-02 01:30:03

标签: linux git linux-kernel

我正在尝试从Linus Torvalds的git安装最新的内核,即版本3.16-rc7。我按照以下命令创建了一个新分支: git checkout -b v_3_16 v3.16-rc7 然后我在分支机构v_3_16上结帐并触发以下命令 make menuconfig并检查选项CONFIG_LOCALVERSION_AUTO,因为我需要更新版本字符串。 但我无法理解为什么这会将“+”或“-dirty”(当禁用CONFIG_LOCALVERSION_AUTO时)附加到版本字符串。 我已经使用git commit -a检查了未经修改的更改,但它没有提交任何内容。

2 个答案:

答案 0 :(得分:12)

如果正在使用" -dirty"构建Linux内核映像。在版本字符串的末尾,这只是意味着尚未提交源目录中的修改。使用git status检查未提交的文件。

当您看到脏字符串时,它会将内核版本字符串与最后abbreviated commit id + dirty附加到内核版本。

您可以使用上面的Git命令报告已修改,已删除或已添加的文件。您应该将这些更改提交到树,无论它们是否将被保存,导出或使用。提交更改后,您需要重建内核。

要强制提取并提交所有此类待处理更改,请输入以下内容:

 $ git add .
 $ git commit -s -a -m "getting rid of -dirty"

或者,使用make -j2 LOCALVERSION="-customstring"获取自定义字符串

答案 1 :(得分:6)

“在内核源代码的根目录中创建一个空的.scmversion文件。”