DroidCam在Ubuntu 22.04下Secure Boot问题的解决方案

DroidCam在Ubuntu 22.04下Secure Boot问题的解决方案

droidcam GNU/Linux/nix client for DroidCam droidcam 项目地址: https://gitcode.com/gh_mirrors/dr/droidcam

在Ubuntu 22.04系统中使用6.5内核版本并开启Secure Boot功能时,安装DroidCam视频驱动模块可能会遇到"Key was rejected by service"错误。这个问题主要与Secure Boot的安全机制有关,需要正确配置系统密钥才能解决。

问题现象分析

当尝试通过install-video脚本安装DroidCam的v4l2loopback-dc内核模块时,系统会显示以下关键错误信息:

  1. 模块签名阶段出现SSL错误,提示找不到相关文件
  2. 最终insmod命令失败,显示"Key was rejected by service"
  3. 详细日志显示签名过程使用了/var/lib/shim-signed/mok/目录下的MOK密钥

根本原因

这个问题源于Ubuntu系统新安装后,其Machine Owner Key(MOK)尚未被UEFI固件的Secure Boot信任列表所接受。虽然系统生成了密钥对,但如果没有在UEFI层面完成密钥注册,Secure Boot机制会拒绝加载这些模块。

详细解决方案

  1. 重启系统并进入UEFI/BIOS设置界面

    • 在系统启动过程中,通常需要按特定键(如F2、F12或Del)进入设置
  2. 找到Secure Boot相关设置

    • 导航至Secure Boot配置部分
    • 选择"Enroll MOK"或类似选项
  3. 注册Ubuntu MOK密钥

    • 系统会显示待注册的Ubuntu密钥
    • 输入之前设置的MOK密码(通常在系统安装时设置)
    • 确认并接受密钥注册
  4. 完成系统启动

    • 保存设置并继续正常启动过程
  5. 重新安装DroidCam驱动

    • 回到Ubuntu系统后再次运行安装脚本
    • 此时模块签名和加载应该能够顺利完成

技术背景

Secure Boot是UEFI规范的一项重要安全功能,它确保只有经过可信方签名的代码才能在系统启动过程中执行。Ubuntu使用shim引导加载程序和MOK机制来平衡安全性和灵活性:

  • shim:一个经过Microsoft签名的精简引导加载程序
  • MOK:Machine Owner Key,允许用户自行管理第三方内核模块的信任
  • sign-file:内核提供的工具,用于使用密钥对模块进行签名

当这些组件没有正确配置时,就会出现模块加载被拒绝的情况。通过上述步骤完成密钥注册后,系统就能识别并信任Ubuntu签名的内核模块了。

注意事项

  1. 不同主板厂商的UEFI界面可能略有不同,但基本流程相似
  2. 如果忘记MOK密码,可能需要重置Secure Boot设置
  3. 对于企业环境,可能需要使用统一的企业证书而非个人MOK
  4. 此解决方案同样适用于其他需要加载自定义内核模块的情况

通过正确理解Secure Boot的工作原理和Ubuntu的密钥管理机制,可以有效解决这类模块加载问题,同时保持系统的安全性。

droidcam GNU/Linux/nix client for DroidCam droidcam 项目地址: https://gitcode.com/gh_mirrors/dr/droidcam

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邓瀚君Valerie

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值