You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Ubuntu 18.04安装PCAN驱动时出现modprobe错误求助

解决Ubuntu 18.04中PCAN驱动modprobe "Operation not permitted"错误

首先先明确你遇到的错误信息:

modprobe: ERROR: could not insert 'pcan': Operation not permitted
modprobe: ERROR: ../libkmod/libkmod-module.c:979 command_do() Error running install command for pcan
modprobe: ERROR: could not insert 'pcan': Operation not permitted

我在帮用户排查PCAN驱动问题时,这个错误在Ubuntu 18.04里出现得相当频繁,主要和Secure Boot签名限制或者模块安装不完整有关,下面给你几个可行的解决步骤,按顺序试试:

1. 关闭Secure Boot(最快速的解决方案)

Ubuntu 18.04默认开启Secure Boot,它会阻止未经过官方签名的内核模块加载,这是最常见的原因:

  • 重启你的电脑,在开机时按对应按键进入BIOS/UEFI设置(不同品牌按键不同,一般是F2、Del、Esc或者F10)
  • 在BIOS菜单里找到Secure Boot选项,将其设置为Disabled
  • 保存设置并重启系统,之后再执行sudo modprobe pcan,应该就能正常加载模块了

2. 给PCAN模块签名(保留Secure Boot的情况下)

如果不想关闭Secure Boot,你可以给pcan模块添加自签名,让系统认可它:

  • 首先生成一个自签名密钥对:
    openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=My Module Signing Key/"
    
  • 把这个密钥注册到系统的MOK(Machine Owner Key)数据库:
    sudo mokutil --import MOK.der
    
    执行后系统会要求你设置一个密码,一定要记牢,之后重启电脑
  • 重启后会进入MOK管理界面,选择Enroll MOK,然后按提示输入之前设置的密码,确认完成密钥注册
  • 再次重启后,用生成的密钥给pcan模块签名:
    sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der /lib/modules/$(uname -r)/extra/pcan.ko
    
    注意:如果你的pcan模块不在/lib/modules/$(uname -r)/extra/路径下,要替换成实际的模块路径
  • 最后执行sudo modprobe pcan测试加载

3. 重新编译安装PCAN驱动

如果上面的方法都不行,可能是驱动编译不完整或者安装过程出错了:

  • 进入你下载的PCAN驱动源码目录,先清理旧的编译文件:
    make clean
    
  • 重新编译驱动:
    make
    
  • 安装编译好的模块:
    sudo make install
    
  • 更新系统模块依赖:
    sudo depmod -a
    
  • 再尝试加载模块:
    sudo modprobe pcan
    

内容的提问来源于stack exchange,提问作者Michael Jacob Mathew

火山引擎 最新活动