为什么`make modules_install`在编译Linux内核时没有在我的/ lib / modules中安装一个正确命名的文件夹?

时间:2018-08-22 06:13:27

标签: linux compilation linux-kernel archlinux

我正在尝试根据Arch linux wiki编译我自己的内核,并且遇到一个问题,该问题导致mkinitcpio失败。

作为一些背景知识,我已经采取了这些步骤

  1. 从github下载了linux源代码
  2. make clean && make mrproper
  3. 运行make localmodconfig来生成.config文件
  4. CONFIG_LOCALVERSION="" in.config文件编辑为CONFIG_LOCALVERSION="gabe"
  5. 运行make

此时,所有内容都会按预期编译。现在,我的理解是,内核将被命名为4.18.0-gabe,因为命名方案为<kernel-version>-<local-version>,但在这里似乎并非如此。在接下来的步骤中,运行make modules_install时,据我所知应该到一个目录,其中包含编译的内核模块,这些内核模块将由/lib/modules中的内核用于initalram磁盘。创建的文件的名称应与内核的名称相对应,因此在我的情况下,该文件应为4.18.0-gabe,但是在运行make modules_install之后,我发现:

[gabe@arch linux]$ make modules_install
  ...
  INSTALL sound/soundcore.ko
  DEPMOD  4.18.0-11133-gc1fecabecc35
[gabe@arch linux]$ ls /lib/modules
4.14.65-1-lts               4.18.3-arch1-1-ARCH    extramodules-ARCH
4.18.0-11133-gc1fecabecc35  extramodules-4.14-lts

因此,尽管我的localversion设置为make modules_install,但您仍可以看到4.18.0-11133-gc1fecabecc35制作了一个名为gabe.的文件夹,这最终导致mkinitcpio失败,并显示“不是有效的内核目录”错误,因为它依赖于目录名称来指定可接受的版本号。

为什么会发生这种情况,如何更改它以便make modules_install添加一个名为4.18.0-gabe的正确命名的文件夹?

编辑:这是在Virtualbox上运行的Arch的干净版本上

0 个答案:

没有答案