我正在尝试从 Linus Torvalds 的 git 安装最新的内核,即版本 3.16-rc7。我使用以下命令创建了一个新分支:
git checkout -b v_3_16 v3.16-rc7
然后我在分支 v_3_16 上 checkout 并触发以下命令
make menuconfig
并检查选项 CONFIG_LOCALVERSION_AUTO
因为我需要更新版本字符串。
但我不明白为什么这会将“+”或“-dirty”(当禁用 CONFIG_LOCALVERSION_AUTO 时)附加到版本字符串。
我已经使用 git commit -a
检查了未提交的更改,但它没有说明要提交。
最佳答案
如果构建 Linux 内核镜像时在版本字符串末尾带有“-dirty”,这仅表示源目录中的修改尚未提交。使用 git status
检查未提交的文件。
当您看到脏字符串时,它会将带有最后一个abbreviated commit id + dirty
的内核版本字符串附加到内核版本。
您可以使用上述 Git 命令来报告修改、删除或添加的文件。您应该将这些更改提交给树,无论它们是否将被保存、导出或使用。提交更改后,您需要重建内核。
要强制拾取并提交所有此类待定更改,请输入以下内容:
$ git add .
$ git commit -s -a -m "getting rid of -dirty"
或者,使用 make -j2 LOCALVERSION="-customstring"
获取自定义字符串
关于Linux 内核 : Kernel version string appended with either '' +"or "-dirty",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25090803/