Linux系统安装驱动过程中ko文件加载错误(Required key not available)的解决办法

问题描述

在Ubuntu上使用CP210x USB转UART设备时需要安装驱动程序(CP210x USB to UART Bridge VCP Drivers),安装驱动过程中cp210x.ko文件已经编译成功,但使用命令

 insmod /lib/modules/4.15.0-43-generic/kernel/drivers/usb/serial/usbserial.ko

加载usbserial模块时报错:

Required key not available

开发环境

操作系统:Ubuntu 18.04
Linux内核版本:4.15.0-43-generic
使用命令 $uname -a查看系统环境,得到如下结果:

另附:CP210x驱动下载地址:https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers
关于该驱动的详细安装教程,请参考上述官网说明.

解决步骤

1.首先,对于Ubuntu系统,可以使用如下命令安装 mokutil工具:

 $sudo apt-get install mokutil

2.然后任意目录下,创建一个生成证书的参数配置文件 x509-configuration.ini,配置文件内容如下:

[ req ]
default_bits = 4096
distinguished_name = req_distinguished_name
prompt = no
string_mask = utf8only
x509_extensions = myexts
[ req_distinguished_name ]
O = YOUR_USERNAME
CN = YOUR_USERNAME
emailAddress = YOUR_EMAIL_ADDRESS
[ myexts ]
basicConstraints=critical,CA:FALSE
keyUsage=digitalSignature
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid

3.在该目录下调用openssl命令, 生成public_key.der 和 private_key.priv文件。其中public_key.der是证书:

$sudo openssl req -x509 -new -nodes -utf8 -sha256 -days 36500 -batch -config x509-configuration.ini -outform DER -out public_key.der -keyout private_key.priv
  1. 用mokutil 命令把证书public_key.der放进数据库mokdb里:
$mokutil --import  public_key.der

当提示输入密码时,需要输入root用户的密码,若默认未创建root用户密码,则需要通过下面的命令设置新的root密码:

$sudo passwd

上述步骤执行完毕后,输入reboot命令重启计算机即可。

注意!重启过程中也需要输入上述root用户密码。 另外,mokutil具有保护机制,若root用户密码连续输错两次以上,则需要重启计算机重新输入。

5.给模块赋予签名
重启计算机后,使用形式如下的命令给加载错误的模块赋予签名,例如:

$/usr/src/4.15.0-43-generic/scripts/sign-file sha256 private_key.priv public_key.der  /lib/modules/4.15.0-43-generic/kernel/drivers/usb/serial/usbserial.ko

随后,重新加载该模块:

$insmod /lib/modules/4.15.0-43-generic/kernel/drivers/usb/serial/usbserial.ko

即可成功加载.大功告成!

Linux系统安装驱动过程中ko文件加载错误(Required key not available)的解决办法相关推荐

  1. linux中人脸识别不了,虹软人脸识别在 linux中so文件加载不到的问题

    其实是可以加载到的,不过是so文件放的位置不一对,最简单的方式是放在 /usr/lib64 目录下,也可自己设置. so文件加载不到会报这个错误: .lang.UnsatisfiedLinkError ...

  2. 代码中避免懒加载错误_网站设计中应避免的5大错误

    代码中避免懒加载错误 The design of a website plays an imperative role in creating an effective and impressive ...

  3. 动卡空间服务器显示正在加载,绝地求生进不去游戏一直卡在加载画面是什么原因?附解决办法...

    原标题:绝地求生进不去游戏一直卡在加载画面是什么原因?附解决办法 要说玩<绝地求生>的时候最恼人的事情是什么,非加载页面那个一直在转的圈圈莫属了.不知道有多少玩家体验过一直等着那个圈圈转完 ...

  4. VS2010未能加载 'VSTS for Database Professionals'包的解决办法

    VS2010未能加载 'VSTS for Database Professionals'包的解决办法: 开始菜单->Microsoft Visual Studio 2010->Visual ...

  5. “由于文件许可权错误,word无法完成保存操作”解决办法

    "由于文件许可权错误,word无法完成保存操作"解决办法 自身实践之后,该方法有效: 转载自:https://blog.csdn.net/qq_43679849/article/d ...

  6. 虹软人脸识别在 linux中so文件加载不到的问题

    其实是可以加载到的,不过是so文件放的位置不一对,最简单的方式是放在 /usr/lib64 目录下,也可自己设置. so文件加载不到会报这个错误:    .lang.UnsatisfiedLinkEr ...

  7. linux内核启动文件系统,Linux启动过程中文件系统的加载

    前言:我觉得我的文章相对来说都是比较浅显的.一些初学者可以看看,这也是我不在嵌入式那个版上发文的原因.对于高手来说,如果你们不吝啬时间的话,希望也能帮我看看,指点一下其中的错误.这也是我到这里来和大家 ...

  8. qt的项目中单个文件加载样式表

    引言 编写一个项目后,通过加载样式表来设置项目中的所有控件的样式,我之前习惯的是在main.cpp文件中加载一个样式表,该样式表含有程序中所有控件的样式,也就是整个程序只需要加载一遍样式文件.但是多人 ...

  9. java properties用法_java中Properties文件加载和使用方法

    一.Properties简介 Properties 类继承自HashTable,提供的方法很像Map的实现类HashMap.它在 Java 编程的早期就有了,并且几乎没有什么变化.J2SE 的 Tig ...

最新文章

  1. 为什么LeNet5网络倒数第二个全连接层维度为84?
  2. YUM库与YUM源的配置实例
  3. c语言设计一个自动报警的程序,C语言程序设计试题(B卷)..doc
  4. matlab均线程序化交易,【策略分享】Matlab量化交易策略源码分享
  5. 如何将计算机专业知识和水文结合,2016水文勘测理论知识及参考答案 B卷
  6. 河北软件职业技术学院计算机专业分数线,河北软件职业技术学院历年分数线 2021河北软件职业技术学院录取分数线...
  7. [设计模式] ------ 适配器模式
  8. mysql初级数据库_MYSQL初级数据库操作
  9. [转发] 老叶观点:MySQL开发规范之我见
  10. KVM 虚拟化原理探究(5)— 网络IO虚拟化
  11. linux设备驱动——字符设备驱动
  12. java程序员必须安装的软件
  13. 码农小汪-Java Condition
  14. 【数学建模】预测模型之BP网络预测
  15. 向日葵显示不能连接服务器,手机向日葵远程连接服务器
  16. 【平衡小车制作】(二)电机驱动(超详解)
  17. 阿里云服务器导出方案
  18. 华为手机隐藏指令的5个代码
  19. UV/PV 的共同点和区别
  20. 实验三 面向对象(二)

热门文章

  1. 2021年中国电子支付行业发展现状及未来发展趋势分析[图]
  2. 输出动物的声音JAVA_Java-动物声音
  3. python词云图代码示例 无jieba_Python爬虫入门-jieba库制作词云图
  4. 送书 | 《商品期货量化交易实战》
  5. c语言枚举法课程设计报告,枚举法的程序实现及优化
  6. 玩转达梦の 多表关联更新改写
  7. fat32 ntfs有什么不同
  8. Armadillo C++ Library
  9. ORACLE找出最大的数返回 GREATEST()函数
  10. java 同或_java语言中同或运算的实现