






















7.0.0-27-genericnvidia-driver-580 (580.159.03)驱动包正常装上(dpkg -l 能看到 nvidia-driver-580,modinfo nvidia 也能查到模块信息),但 nvidia-smi 报错:
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
先按常规思路排除了几个常见坑:
lsmod | grep nouveau 无输出,排除。uname -r 与 dkms 编译目标内核一致,排除。
modprobe: ERROR: could not insert 'nvidia': Key was rejected by service
这行报错才是关键。Key was rejected by service 是 Secure Boot 在拦截未注册签名的内核模块 —— 驱动本身没问题,是系统不信任这个 out-of-tree 模块的签名。
确认:
mokutil --sb-state # SecureBoot enabled
装驱动时(尤其是 dkms 方式)会生成一个本地签名密钥用于给内核模块签名,但如果安装过程中弹出的 MOK 注册蓝屏被跳过或没注意到,密钥就没有被系统信任,导致模块加载时被拒。
补救办法是手动重新注册 MOK:
sudo mokutil --import /var/lib/shim-signed/mok/MOK.der # 设置一个临时密码(输入两次) sudo reboot
重启后,在 GRUB 之后、系统正常启动前,会出现一个蓝色的 MOK Manager 界面(这一步很容易一闪而过被忽略,需要盯着屏幕):
Enroll MOKContinueYes完成后系统会继续正常启动。登录后验证:
sudo modprobe nvidia nvidia-smi
nvidia-smi 正常输出驱动版本、GPU 型号和显存信息即代表成功。
排查过程中在 dmesg 里看到一堆:
nvidia-gpu 0000:01:00.3: i2c timeout error e0000000 ucsi_ccg 6-0008: i2c_transfer failed -110 ucsi_ccg 6-0008: ucsi_ccg_init failed -110 ucsi_ccg 6-0008: probe with driver ucsi_ccg failed with error -110
这个是显卡 USB-C VirtualLink 接口上的 Cypress CCG 控制器 i2c 握手超时,和主驱动加载完全无关,不影响 GPU 计算功能,可以忽略。
nvidia-driver 包装好了但 nvidia-smi 找不到驱动,先别急着重装,用 sudo modprobe nvidia 看真实报错。Key was rejected by service,基本可以断定是 Secure Boot 没信任 dkms 签名密钥。ucsi_ccg / i2c timeout 报错可以无视,不影响驱动加载。分享:
本文作者:Casear
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。