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

编译自定义内核时nvidia-current外部模块致构建失败求助

问题解答

1. 当前存在的配置/适配问题

  • NVIDIA驱动与新内核不兼容:你用的nvidia-current/535.216.03版本较老,而6.13.0-rc7是预发布内核,该驱动未适配这个新内核的Kbuild结构变化,导致DKMS构建时找不到Kbuild文件。
  • 手动编译模块后未完成完整安装流程:手动编译仅完成了编译环节,未执行模块安装命令将编译后的.ko文件复制到新内核的模块目录(/lib/modules/6.13.0-rc7/),也未更新模块依赖(depmod),因此DKMS状态不会更新。
  • 内核配置大概率无问题:若新内核未启用CONFIG_MODULES、CONFIG_MODULE_UNLOAD或CONFIG_MODVERSIONS会导致DKMS异常,但你手动编译模块无报错,说明核心问题还是驱动与新内核的适配性。

2. 避免DKMS触发/禁用外部模块的方法

临时禁用DKMS服务

直接停止并禁用DKMS服务,阻止其在新内核安装时自动触发构建:

sudo systemctl stop dkms
sudo systemctl disable dkms

后续需要恢复DKMS的话,执行:

sudo systemctl enable --now dkms

彻底移除NVIDIA的DKMS模块

删除nvidia-current的DKMS模块,从根源上消除干扰:

sudo dkms remove nvidia-current/535.216.03 --all

之后可根据需求安装适配6.13.0-rc7的NVIDIA驱动版本(需选择支持该预发布内核的驱动,或等待官方更新)。

安装内核时跳过DKMS触发

执行make install时,通过环境变量阻止DKMS自动运行:

sudo DKMS_INSTALL=no make install

也可修改全局配置,编辑/etc/dkms/framework.conf并添加AUTOINSTALL=no,全局禁用DKMS自动安装模块。

正确切换到nouveau/核显

你之前切换驱动仍触发DKMS失败,是因为nvidia-current的DKMS模块仍存在于系统中,正确步骤如下:

  1. 先移除nvidia-current的DKMS模块(使用上述移除命令)
  2. 安装nouveau驱动并配置NVIDIA黑名单:
sudo apt install xserver-xorg-video-nouveau
echo "blacklist nvidia-current" | sudo tee -a /etc/modprobe.d/blacklist-nvidia.conf
sudo update-initramfs -u
  1. 重启系统后即可使用nouveau或核显驱动,此时DKMS不会再触发NVIDIA模块的构建。

注意:menuconfig无法禁用nvidia-current或DKMS,因为它们是系统级外部模块/服务,不属于内核内置组件,内核配置仅能管理nouveau这类原生支持的模块。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 22:33:31