Linux内核:附加了“+”或“-dirty”的内核版本string

我试图从Linus Torvalds的git安装最新的内核,即版本3.16-rc7。 我已经创build了一个新的分支,使用下面的命令: git checkout -b v_3_16 v3.16-rc7然后我检查分支v_3_16和火灾下面的命令make menuconfig并检查选项CONFIG_LOCALVERSION_AUTO因为我需要版本string更新。 但我不明白为什么这个追加“+”或“-dirty”(当CONFIG_LOCALVERSION_AUTO被禁用)的版本string。 我已经使用git commit -a检查了未被改动的更改,但没有提交任何内容。

如果在版本字符串的末尾使用“-dirty”构建Linux内核映像,则这意味着源目录中的修改没有被提交。 使用git status来检查未提交的文件。

当您看到脏字符串时,会将内核版本字符串与最后一个abbreviated commit id + dirty到内核​​版本中。

您可以使用上面的Git命令报告修改,删除或添加的文件。 您应该将这些更改提交给树,而不管它们是否被保存,导出或使用。 一旦提交了更改,就需要重建内核。

要强制拾取并提交所有此类未决更改,请输入以下内容:

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

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

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