You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用独立构建目录时make modules_install因depmod路径错误失败

内核模块安装depmod路径错误问题解决

问题场景

操作流程:

  • 将Linux内核源码复制到~/linux
  • 执行make mrproper并拉取kernel.org的master分支
  • 创建空build目录
  • 复制旧配置到build/.config,执行make O=build oldconfig更新配置
  • 执行make O=build编译内核,成功生成产物
  • 创建空install目录并设置环境变量:
~/linux> mkdir install
~/linux> export INSTALL_PATH=../install
~/linux> export INSTALL_MOD_PATH=../install/modules
  • 执行make O=build install成功将System.map和vmlinuz放入install目录
  • 执行make O=build modules_install时触发错误:
depmod: ERROR: could not open directory /home/gabe/linux/build/../install/modules/usr/lib/modules/6.6.0-1-default+: No such file or directory
depmod: FATAL: could not search modules: No such file or directory

核心问题:模块实际安装在${INSTALL_MOD_PATH}/lib/modules/...,但depmod错误地查找${INSTALL_MOD_PATH}/usr/lib/modules/...,使用绝对路径操作后问题依然存在。

原因分析

这既不是操作失误,也不是内核构建系统的bug,而是INSTALL_MOD_PATH的设计逻辑导致的:
INSTALL_MOD_PATH的作用是指定模块安装的根目录前缀,而非直接指向模块存放的子目录。当你将其设为../install/modules时,构建系统会按照标准路径结构,把模块安装到${INSTALL_MOD_PATH}/lib/modules/...;但depmod会默认以${INSTALL_MOD_PATH}作为系统根目录,去搜索标准路径/usr/lib/modules/...,最终拼接出错误的路径。

解决办法

方法一(推荐,符合官方使用规范)

调整INSTALL_MOD_PATH为install目录的根路径,而非modules子目录:

export INSTALL_MOD_PATH=../install

执行此修改后,模块会被安装到../install/lib/modules/...,depmod也会正确在../install/lib/modules/...下搜索处理模块,不会再出现路径错误。

方法二(自定义模块子目录场景)

如果必须将模块放到单独的modules子目录,可以手动调用depmod指定搜索路径,跳过构建系统自动调用的depmod:

  1. 先执行模块安装,跳过depmod:
make O=build modules_install INSTALL_MOD_PATH=../install/modules DEPMOD=/bin/true
  1. 手动执行depmod指定正确路径:
depmod -a -b ../install/modules 6.6.0-1-default+

内容的提问来源于stack exchange,提问作者der_gabe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 14:02:53