ubuntu22.04识别CH340的问题汇总

一、目的

自己的电脑装的是双系统,ubuntu22.04安装了很久好久没有(WSL2确实解决了频繁依赖linux的问题)。昨天尝试搞一下STM32MP135的系统搭建,开始启用ubuntu22.04。但是遇到了很多问题,其中一个问题就是CH340的驱动。
在折腾的过程中遇到了多个问题,这里一并汇总。为了尊重原创者的成果,我这里将两篇博文的原始文章连接粘贴如下:
小言W的:串口驱动签名问题解决方案
鱼香ROS的:驱动被占用问题解决方案

二、发现问题

使用lsusb命令,发现发现了WCH的设备觉得应该没什么问题了。

Bus 001 Device 013: ID 1a86:7523 QinHeng Electronics CH340 serial converter

实际上查看用ls /dev/tty*却看不到新增的设备。
所以我判断是没有CH340的驱动,就去官网下载驱动:CH341SER_LINUX.ZIP .然后按照readme的教程make,然后make install.但是最后还是没有成功。

所以就尝试用sudo dmesg查看新插入的设备。(故意插拔了一次,所以生成的信息在最后。)结果提示:

[  820.295049] usb 1-6.2: USB disconnect, device number 9
[  822.334672] usb 1-6.3: new full-speed USB device number 10 using xhci_hcd
[  822.460652] usb 1-6.3: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.64
[  822.460664] usb 1-6.3: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[  822.460668] usb 1-6.3: Product: USB Serial
[  822.480251] Loading of unsigned module is rejected
[  823.034128] input: BRLTTY 6.4 Linux Screen Driver Keyboard as /devices/virtual/input/input45

提示未签名的模块被拒绝(Loading of unsigned module is rejected)。

三、解决驱动签名问题

@小言W的文章提供了很详尽的问题怎么解决的描述。归纳如下:

3.1 安装依赖

sudo apt install mokutil
sudo apt install shim-signed

3.2 生成签名证书

# 生成新签名,参考https://wiki-ubuntu-com.translate.goog/UEFI/SecureBoot?_x_tr_sl=auto&_x_tr_tl=zh-CN&_x_tr_hl=en-US&_x_tr_pto=wapp
sudo update-secureboot-policy --new-key# 生成密钥,参考https://wiki-ubuntu-com.translate.goog/UEFI/SecureBoot/KeyManagement/KeyGeneration?_x_tr_sl=auto&_x_tr_tl=zh-CN&_x_tr_hl=en-US&_x_tr_pto=wapp
openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=Descriptive name/"#导入签名
sudo mokutil --import /var/lib/shim-signed/mok/MOK.der

3.3 重启,启用签名

在这里插入图片描述
Enroll MOK > Continue > 输入密码 > Reboot
第二篇文章中引用的为内核模块签名说明的更详细。

3.4 给驱动签名

sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 /var/lib/shim-signed/mok/MOK.priv /var/lib/shim-signed/mok/MOK.der ch341.ko# 检查以下驱动十分签名成功
hexdump -C ch341.ko | tail# 若成功会有Module signature appended字样

3.5 载入模块

sudo make load
sudo make install# 检查模块load情况
lsmod | grep ch34

但是我的/dev/tty*中还是没有新设备。非常困惑。第二篇文章给了指引。

4. 移除占用的驱动

继续使用dmesg命令查看如果出现类似问题:

interface 0 claimed by ch341 while 'brltty' sets config #1

说明驱动被britty占用.那么直接移除就成了。

sudo apt remove brltty

brltty的描述如下:

With one exception, this document applies to using BRLTTY with any braille device. The exception is that, when key bindings are given, it assumes that the braille device has a braille keyboard. If it doesn't, then, as mentioned above, you can look up your device's corresponding key bindings online.

说是一个盲文设备的驱动。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/186813.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux安全配置

进入ssh配置文件 vim /etc/ssh/sshd_config将port 22中的端口号改为5001 重启ssh服务 systemctl restart sshd拓展 sh与bash iptable与firewall ssh与sshd vps与ssh 参考: 【安全-SSH】SSH安全设置 - CSDN AppLinux VPS服务器SSH端口一键修改脚本​Linux脚本…

golang 集成logrus日志框架

1、安装 go get github.com/sirupsen/logrus 实现日志滚动 go get gopkg.in/natefinch/lumberjack.v2 2、初始化logrus参数 var Logger logrus.New()func SetLogrus(logConf conf.LogConfig) {Logger.SetLevel(GetLevel(logConf.Level))Logger.SetReportCaller(true)Logge…

vue2使用npm依赖包导出xlsx文件

1.下载依赖npm i xlsx 2.在根目录utils新建mergeXlxs.js /****/ import { utils, writeFile } from "xlsx";export default function mergeHeader(headers, data, datamerges, defaultTitle) {const ws utils.book_new();utils.sheet_add_aoa(ws, headers);//这里…

【课设大报告】 基于matlab gui设计的三极管学习系统

目录 设计背景 1.1设计目的 2.设计方法 2.1使用软件工具 2.2设计流程 3.模块界面设计及代码分析 3.1登录 3.2注册 3.3主菜单 3.4三极管介绍 3.5进制转换 3.6单位换算 3.7绘图 4.不足和改善 5.总结 设计背景 1.1设计目的 本程序旨在帮助为了帮助学生了解三极管…

C语言——有一个3*4的矩阵,要求求出其中值最大的那个元素的值,以及其所在的行号和列号

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h> int main() {int i,j,row0,colum0,a[3][4]{{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};int maxa[0][0];for ( i 0; i < 3; i)//行&#xff08;row&#xff09;{for ( j 0; j < 4; j)//列&#xff08;colum&#xf…

阿里云Mysql5.7 数据库恢复 qp.xb文件恢复数据

1、宕下来的文件,一定是qp.xb的文件,如果不是qp.xb文件,该恢复文档不适合 2、准备linux系统,centos最好,如果官方的下载不到可以选择rockylinux,如果感觉下载速度慢可以选择此工具。 3、centos 基础环境准备完之后安装必须要的恢复软件【基本按照官方文档即可】 官网:RDS…

【Python】基础练习题_组合数据类型_2

dictMenu f’卡布奇洛’:32,‘摩卡’:30,‘抹茶蛋糕’:28,‘布朗尼’:26}&#xff0c; dictMenu 中存放了你的双人下午套餐&#xff08;包括咖啡2份和点心2份)的价格,请编写程序,让Python帮忙计算并输出消费总额。 dictMenu {卡布奇洛: 32, 摩卡: 30, 抹茶蛋糕: 28, 布朗尼: 2…

【云平台】STM32微信小程序阿里云平台学习板

【云平台】STM32微信小程序阿里云平台学习板 文章目录 前言一、立创EDA&#xff08;硬件设计&#xff09;1.主控STM32F103C8T62.ESP8266模块3.温湿度模块4.光照强度模块5.OLED显示模块6.PCB正面7.PCB反面8.3D视角正面9.3D视角反面 二、【云平台】STM32微信小程序阿里云平台学习…

CentOS7 网络配置

前言&#xff1a; 安装虚拟机后&#xff0c;在虚拟机ping www.baidu.com ping不通。 一、centos7配置IP地址有两种方法&#xff1a; 动态获取IP&#xff08;不推荐使用&#xff09;设置静态ip&#xff08;推荐&#xff09; 二、centos7配置静态IP&#xff1a; 第一步&#xff…

使用npm发布typescript包

使用npm发布typescript包 什么是NPM NPM&#xff08;节点包管理器&#xff09;是 JavaScript 编程语言的默认包管理器。NPM 注册表是一个公共存储库&#xff0c;充当存储和分发 JavaScript 包的中心枢纽。它允许开发人员轻松安装、管理和共享可重用的 JavaScript 代码包&…

2023年11月个人工作生活总结

本文为 2023 年 11 月工作生活总结。 研发编码 GIS 模仿了一些有名的地图服务商的网站&#xff0c;将离线地图页面做成全屏&#xff0c;对于大屏幕更加好友。再美化一下全区的边界和区内地域的边界。不过主要工作量还是绘制路线&#xff0c;而绘线作为内部工作&#xff0c;还…

lodash常见的方法

debounce 防抖 延迟 wait 毫秒后调用 func 方法。 提供 cancel 方法取消延迟的函数调用和 flush 方法立即调用。 可以提供一个 options&#xff08;选项&#xff09;{leading &#xff0c;trailing} 决定延迟前后如何触发&#xff08;注&#xff1a;是 先调用后等待 还是 先等待…

python实现two way ANOVA

文章目录 目的&#xff1a;用python实现two way ANOVA 双因素方差分析1. python代码实现1 加载python库2 加载数据3 统计样本重复次数&#xff0c;均值和方差&#xff0c;绘制箱线图4 查看people和group是否存在交互效应5 模型拟合与Two Way ANOVA&#xff1a;双因素方差分析6 …

LeetCode(34)有效的数独【矩阵】【中等】

目录 1.题目2.答案3.提交结果截图 链接&#xff1a; 36. 有效的数独 1.题目 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 &#xff0c;验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗…

np.random.uniform() 用法

用法&#xff1a; np.random.uniform是NumPy库中用来生成在一个指定范围内均匀分布的随机数的函数。它的使用方法如下&#xff1a; numpy.random.uniform(low0.0, high1.0, sizeNone) low&#xff1a;浮点数或类似数组的对象&#xff0c;随机数生成的下界&#xff0c;默认为…

[原创][3]探究C#多线程开发细节-“用ConcurrentQueue<T>解决多线程的无顺序性的问题“

[简介] 常用网名: 猪头三 出生日期: 1981.XX.XXQQ: 643439947 个人网站: 80x86汇编小站 https://www.x86asm.org 编程生涯: 2001年~至今[共22年] 职业生涯: 20年 开发语言: C/C、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python 开发工具: Visual Studio、Delphi…

Unity随笔1 - 安卓打包JDK not found

今天遇到一个很奇怪的事情&#xff0c;之前可以正常打安卓包&#xff0c;但是突然报错如下&#xff1a; 提示很明显&#xff0c;找不到JDK了。可是我在下载Unity的时候明明安装了所有需要的组件&#xff0c;为什么今天突然不行。 看了眼Unity hub里面&#xff0c;没问题。 那就…

MySQL表的查询、更新、删除

查询 全列查询 指定列查询 查询字段并添加自定义表达式 自定义表达式重命名 查询指定列并去重 select distinct 列名 from 表名 where条件 查询列数据为null的 null与 (空串)是不同的&#xff01; 附&#xff1a;一般null不参与查询。 查询列数据不为null的 查询某列数据指定…

概念理论类-k8s :架构篇

转载&#xff1a;新手通俗易懂 k8s &#xff1a;架构篇 Kubernetes&#xff0c;读音是[kubə’netis]&#xff0c;翻译成中文就是“库伯奈踢死”。当然了&#xff0c;也可以直接读它的简称&#xff1a;k8s。为什么把Kubernetes读作k8s&#xff0c;因为Kubernetes中间有8个字母…

力扣112. 路径总和

递归 思路&#xff1a; 终止条件是递归到根节点 root&#xff0c;剩余 target 与根节点值相等则路径存在&#xff0c;否则不存在&#xff1b;递归查找左子树或者右子树存在 target target - root->val 的路径&#xff1b; /*** Definition for a binary tree node.* stru…