内核版本更改导致错误

Kernel version change causes error

我修改了Makefile中的内核版本

   VERSION = 3
   PATCHLEVEL = 12
   SUBLEVEL = 0
   EXTRAVERSION = -33-generic

虽然我希望有 3.12.0-33-generic。

但是在成功构建内核后,发现在启动过程中出现错误,

Could not open moddep file /lib/modules/3.x.x.x-22-dirty/modules.dep.bin

我想知道为什么它将 'dirty' 附加到预期的内核版本。

使用"grep"命令后,我发现有两个文件表明我自己构建的内核版本在内核版本之后附加了"dirty"。

/kernel-source/include/config/kernel.release
/kernel-source/generated/utsrelease.h
In the first file: 3.12.0-33-generic-dirty
In the second file: #define UTS_RELEASE "3.12.0-33-generic-dirty"

有办法解决这个问题吗?谢谢。

====已更新post====

我在没有“-dirty”或“+”的情况下获得预期内核版本的步骤

  1. 修改Makefile如下

    VERSION = 3
    
    PATCHLEVEL = 12
    
    SUBLEVEL = 0
    
    EXTRAVERSION =
    
  2. 使用git命令提交所有更改

  3. Make menuconfig

  4. Make -j8 LOCALVERSION="-33-generic"

  5. 输出内核版本为3.12.0-33-generic

就这些了。

如果您的 Linux 内核存储库中有未提交的更改,'-dirty' 将附加到内核版本。

要删除它,请提交所有未提交的更改。

或者,使用 LOCALVERSION 构建内核:

make LOCALVERSION="-33-generic"