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

Ubuntu22.04安装CAENUSBdrvB库时modprobe提示密钥被服务拒绝

CAENUSBdrvB在Ubuntu 22.04安装失败的解决办法

问题拆解

1. make阶段的警告无需担忧

  • 编译器版本警告是误报:内核编译用的x86_64-linux-gnu-gcc和你当前使用的gcc版本完全一致,这个警告可以忽略;
  • BTF生成跳过是因为缺少内核调试文件vmlinux,不影响驱动的核心功能,只是无法生成内核调试用的BTF信息,可按需修复(见下文可选步骤)。

2. sudo make install的核心错误:Secure Boot阻止未签名模块加载

modprobe: ERROR: could not insert 'CAENUSBdrvB': Key was rejected by service 是Ubuntu 22.04默认开启Secure Boot导致的——Secure Boot会强制验证内核模块的签名,而CAENUSBdrvB的驱动未经过官方签名,因此被拒绝加载。

Ubuntu 20.04默认未强制开启Secure Boot,或者当时的模块签名验证规则更宽松,所以你之前能顺利安装。


解决方案

方案1:临时禁用Secure Boot(快速生效)

  1. 重启电脑,进入BIOS/UEFI设置界面(通常按F2、Del或Esc键进入,取决于电脑品牌);
  2. 找到Secure Boot选项,将其设置为Disabled;
  3. 保存设置并重启系统;
  4. 重新执行安装命令:
    sudo make install
    

方案2:给驱动签名(保持Secure Boot开启)

如果需要保留Secure Boot功能,可给驱动模块添加自定义签名:

  1. 生成自定义签名密钥:
    openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=Custom Kernel Module Signing/"
    
  2. 导入密钥到Secure Boot的MOK(Machine Owner Key)数据库:
    sudo mokutil --import MOK.der
    
    执行后设置一个验证密码,记住这个密码。
  3. 重启电脑,会进入MOK管理界面,按照屏幕提示完成密钥导入(需要输入之前设置的密码);
  4. 给CAENUSBdrvB驱动签名:
    sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der /home/human/Downloads/CAENUSBdrvB-1.5.4/CAENUSBdrvB.ko
    
  5. 再次执行安装:
    sudo make install
    

可选:消除BTF生成警告

如果想解决Skipping BTF generation的警告,安装对应内核的unsigned镜像包即可:

sudo apt install linux-image-unsigned-$(uname -r)

重新执行make就能生成BTF信息,不影响驱动功能。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 10:07:36