ubuntu20.04安装 ch343 驱动的问题及解决

ubuntu20.04.ko驱动文件签名

1. ch343ubuntu驱动安装出现 Operation not permitted

具体的报错信息为

insmod: ERROR: could not insert module ch343.ko: Operation not permitted

查阅发现该问题是由ubuntusecure boot 功能导致的, **即在安全启动模式下,是不能加载未签名或由未注册的密钥签名的内核模块的。**因此可选择关闭系统的该功能来完成安装,但这显然不符合ubuntu的安全检验。

本文参考issue回答中的设置驱动的系统签名一方案来解决该问题。

2. 设置 .ko 文件的签名

2.1 生成公钥与私钥

通过ubuntu内置的openssl协议生成公钥your_driver.der与私钥your_driver.key文件

openssl req -new -x509 -newkey rsa:2048 -keyout your_driver.key -outform DER -out your_driver.der -nodes -days 36500 -subj "/CN=your_driver_name drivers"

2.2 将公钥导入MOK证书列表

通过 ubuntu内置的 mokutil将公钥文件导入MOK列表

sudo mokutil --import ./your_driver.der
  • 执行后会提示输入两次密码,无报错信息后重启系统,一定要是重启,注销操作是无用的。

  • 重启系统之后会进入蓝屏出现

在这里插入图片描述

  • 按照提示注册 MOK 证书

  • 选中 CN=your_driver_name drivers 的公钥进行注册

  • 输入密码

  • 完成后 选择reboot重启进入grep界面

  • 进入ubuntu系统

  • 验证公钥是否注册成功,执行

    mokutil --list-enrolled
    

    查看信息中是否存在 CN=your_driver_name driverskey,存在则注册成功,反之可重复2.2操作(大概也许)。

2.3 给.ko文件签名

通过 ubuntu系统内核的 sign-file来注册签名

需要在.ko文件目录下,或指定相应的 .key.der.ko文件路径

/usr/src/linux-headers-5.x.x-xx-generic/scripts/sign-file sha256 your_driver.key your_driver.der your_driver.ko

其中linux-headers-5.x.x-xx-generic是自己ubuntu系统的内核版本,可通过该指令查看

uname -r

检查是否签名成功

hexdump -C your_driver.ko | tail

此时打印一些16进制数,发现有 module signature app ended~ 则表示签名成功。

在这里插入图片描述

2.4 加载与安装 .ko文件

.ko文件目录下

通过

sudo make load

加载驱动

通过

sudo make install

安装驱动

参考

[1]. https://github.com/WCHSoftGroup/ch343ser_linux/issues/9

[2]. linux内核签名认证机制,Linux内核模块在安全启动模式下的签名和安装

[3]. linux内核模块签名,如何签名内核模块Ubuntu 18.04

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值