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

iam*_*aza 9 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但它没有提交任何内容.

ask*_*skb 12

如果在版本字符串的末尾使用"-dirty"构建Linux内核映像,则这仅表示尚未提交源目录中的修改.使用git status检查未提交的文件.

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

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

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

 $ git add .
 $ git commit -s -a -m "getting rid of -dirty"
Run Code Online (Sandbox Code Playgroud)

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

  • 但即使在"git status"表示"没有提交,工作目录清理"之后,我仍然附加了"-dirty"!任何建议? (3认同)

小智 7

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