Skip to content

01. 驱动加载失败:Secure Boot 冲突

现象描述

执行 modprobe 加载驱动时,系统提示:

modprobe: ERROR: could not insert 'kcan': Key was rejected by service

根本原因

系统启用了 UEFI Secure Boot。由于驱动未经过当前系统的受信任密钥签名,内核安全策略拒绝加载该驱动。

解决方案

方法一:禁用 Secure Boot(推荐)

  1. 重启电脑进入 BIOS/UEFI 设置界面
  2. 导航至 Security 或 Boot 选项卡
  3. 找到 Secure Boot 选项并将其设置为 Disabled
  4. 保存并退出,重新进入系统加载驱动

方法二:使用 DKMS 重新签名驱动

  1. 安装签名工具:
bash
sudo apt install mokutil
  1. 生成签名密钥:
bash
sudo openssl req -new -x509 -newkey rsa:2048 -nodes -out MOK.der -keyout MOK.key -days 36500
  1. 注册密钥到系统:
bash
sudo mokutil --import MOK.der
  1. 重启并按提示完成密钥注册
  2. 重新签名驱动模块

验证方法

驱动加载成功后,执行以下命令应该能看到 kcan 相关的驱动模块:

bash
lsmod | grep kcan

注意事项

  • 禁用 Secure Boot 会降低系统安全性,请根据实际环境选择合适方案
  • 生产环境建议使用方案二进行驱动签名
  • 某些企业系统可能需要管理员权限进行 BIOS 设置

驱动智能连接,赋能科技未来