当前位置: 首页 > news >正文

河北省住房建设厅网站首页免费做网站怎么做网站链接

河北省住房建设厅网站首页,免费做网站怎么做网站链接,昆明网站建设织梦,做封面图的网站解决Ubuntu22.04.1上安装ch34x串口驱动报 Key was rejected by service 需要签名的问题问题官网下载解压驱动包编译安装给驱动签名再来载入模块(设备驱动程序)问题 Ubuntu22.04.1 Linux版本5.19.0-32-generic 运行Qt串口通信 m_serialPort->open(QIO…

解决Ubuntu22.04.1上安装ch34x串口驱动报 Key was rejected by service 需要签名的问题

  • 问题
  • 官网下载
  • 解压驱动包
  • 编译安装
  • 给驱动签名
  • 再来载入模块(设备驱动程序)

问题

Ubuntu22.04.1
Linux版本5.19.0-32-generic
运行Qt串口通信 m_serialPort->open(QIODevice::ReadWrite) 时,总是失败。
负责硬件的同事说可能是需要安装ch340驱动。

官网下载

WCH官网下载驱动 CH341SER_LINUX.ZIP

解压驱动包

ncyf@NCYF:~/Downloads$ unzip -O GBK CH341SER_LINUX.ZIP 
Archive:  CH341SER_LINUX.ZIPcreating: CH341SER_LINUX/inflating: CH341SER_LINUX/ch34x.c  inflating: CH341SER_LINUX/Makefile  inflating: CH341SER_LINUX/readme.txt  
ncyf@NCYF:~/Downloads$ 

编译安装

如果直接编译,会报错

ncyf@NCYF:~/Downloads$ cd CH341SER_LINUX/
ncyf@NCYF:~/Downloads/CH341SER_LINUX$ ls
ch34x.c  Makefile  readme.txt
ncyf@NCYF:~/Downloads/CH341SER_LINUX$ make
make -C /lib/modules/5.19.0-32-generic/build  M=/home/ncyf/Downloads/CH341SER_LINUX  
make[1]: 进入目录“/usr/src/linux-headers-5.19.0-32-generic”
warning: the compiler differs from the one used to build the kernelThe kernel was built by: x86_64-linux-gnu-gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0You are using:           gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0CC [M]  /home/ncyf/Downloads/CH341SER_LINUX/ch34x.o
/home/ncyf/Downloads/CH341SER_LINUX/ch34x.c: In function ‘ch34x_close’:
/home/ncyf/Downloads/CH341SER_LINUX/ch34x.c:591:9: error: unknown type name ‘wait_queue_t’; did you mean ‘wait_event’?591 |         wait_queue_t wait;|         ^~~~~~~~~~~~|         wait_event
/home/ncyf/Downloads/CH341SER_LINUX/ch34x.c:591:22: warning: unused variable ‘wait’ [-Wunused-variable]591 |         wait_queue_t wait;|                      ^~~~
/home/ncyf/Downloads/CH341SER_LINUX/ch34x.c:590:14: warning: unused variable ‘timeout’ [-Wunused-variable]590 |         long timeout;|              ^~~~~~~
/home/ncyf/Downloads/CH341SER_LINUX/ch34x.c:589:13: warning: unused variable ‘bps’ [-Wunused-variable]589 |         int bps;|             ^~~
/home/ncyf/Downloads/CH341SER_LINUX/ch34x.c: At top level:
/home/ncyf/Downloads/CH341SER_LINUX/ch34x.c:1297:27: error: initialization of ‘unsigned int (*)(struct tty_struct *)’ from incompatible pointer type ‘int (*)(struct tty_struct *)[-Werror=incompatible-pointer-types]1297 |         .write_room     = ch34x_write_room,|                           ^~~~~~~~~~~~~~~~
/home/ncyf/Downloads/CH341SER_LINUX/ch34x.c:1297:27: note: (near initialization for ‘ch34x_device.write_room’)
/home/ncyf/Downloads/CH341SER_LINUX/ch34x.c:1298:28: error: initialization of ‘unsigned int (*)(struct tty_struct *)’ from incompatible pointer type ‘int (*)(struct tty_struct *)[-Werror=incompatible-pointer-types]1298 |         .chars_in_buffer = ch34x_chars_in_buffer,|                            ^~~~~~~~~~~~~~~~~~~~~
/home/ncyf/Downloads/CH341SER_LINUX/ch34x.c:1298:28: note: (near initialization for ‘ch34x_device.chars_in_buffer’)
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:257/home/ncyf/Downloads/CH341SER_LINUX/ch34x.o] 错误 1
make[1]: *** [Makefile:1850/home/ncyf/Downloads/CH341SER_LINUX] 错误 2
make[1]: 离开目录“/usr/src/linux-headers-5.19.0-32-generic”
make: *** [Makefile:5default] 错误 2
ncyf@NCYF:~/Downloads/CH341SER_LINUX$ 

原因在 readme.txt 里面有说明

// ChangeLog 
// 1.0 - 1.1   modified to solve transmition between ch341 and ch341
// 1.1 - 1.2   Support high Linux kernel
InstructionsNote: 1.Please run followed executable programs as root privilege2.Current Driver support versions of linux kernel range from 2.6.25 to 3.13.x3.Current Driver support 32bits and 64bits linux systemsUsage:(load or unload linux driver of CH34x)//compile #make//load ch34x chips driver#make load//unload ch34x chips driver#make unload
// 1.2 - 1.3 Fix some bugs

第七行Current Driver support versions of linux kernel range from 2.6.25 to 3.13.x的意思是linux内核的当前驱动程序支持版本从2.6.25到3.13.x
而我的是5.19.0-32-generic

所以需要去查看ch34x.c的 源代码,直接复制到CH341SER_LINUX/ch34x.c 中,重新make
在这里插入图片描述在这里插入图片描述

ncyf@NCYF:~/Downloads/CH341SER_LINUX$ make
make -C /lib/modules/5.19.0-32-generic/build  M=/home/ncyf/Downloads/CH341SER_LINUX  
make[1]: 进入目录“/usr/src/linux-headers-5.19.0-32-generic”
warning: the compiler differs from the one used to build the kernelThe kernel was built by: x86_64-linux-gnu-gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0You are using:           gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0CC [M]  /home/ncyf/Downloads/CH341SER_LINUX/ch34x.oMODPOST /home/ncyf/Downloads/CH341SER_LINUX/Module.symversCC [M]  /home/ncyf/Downloads/CH341SER_LINUX/ch34x.mod.oLD [M]  /home/ncyf/Downloads/CH341SER_LINUX/ch34x.koBTF [M] /home/ncyf/Downloads/CH341SER_LINUX/ch34x.ko
Skipping BTF generation for /home/ncyf/Downloads/CH341SER_LINUX/ch34x.ko due to unavailability of vmlinux
make[1]: 离开目录“/usr/src/linux-headers-5.19.0-32-generic”
ncyf@NCYF:~/Downloads/CH341SER_LINUX$ ls
ch34x.c  ch34x.ko  ch34x.mod  ch34x.mod.c  ch34x.mod.o  ch34x.o  Makefile  modules.order  Module.symvers  readme.txt
ncyf@NCYF:~/Downloads/CH341SER_LINUX$ 

此时目录下,已生成.ko文件,说明 make 成功了。

载入模块(设备驱动程序)

ncyf@NCYF:~/Downloads/CH341SER_LINUX$ sudo make load
[sudo] ncyf 的密码: 
modprobe usbserial
insmod ch34x.ko
insmod: ERROR: could not insert module ch34x.ko: Key was rejected by service
make: *** [Makefile:10:load] 错误 1
ncyf@NCYF:~/Downloads/CH341SER_LINUX$ 

错误提示:Key was rejected by service
说明.ko文件需要签名。

查看驱动签名情况

ncyf@NCYF:~/Downloads/CH341SER_LINUX$ ls
ch34x.c  ch34x.ko  ch34x.mod  ch34x.mod.c  ch34x.mod.o  ch34x.o  Makefile  modules.order  Module.symvers  readme.txt
ncyf@NCYF:~/Downloads/CH341SER_LINUX$ hexdump -C ch34x.ko | tail
000566f0  08 00 00 00 00 00 00 00  18 00 00 00 00 00 00 00  |................|
00056700  09 00 00 00 03 00 00 00  00 00 00 00 00 00 00 00  |................|
00056710  00 00 00 00 00 00 00 00  f8 cd 02 00 00 00 00 00  |................|
00056720  37 08 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |7...............|
00056730  01 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00056740  11 00 00 00 03 00 00 00  00 00 00 00 00 00 00 00  |................|
00056750  00 00 00 00 00 00 00 00  20 59 05 00 00 00 00 00  |........ Y......|
00056760  e0 01 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00056770  01 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00056780
ncyf@NCYF:~/Downloads/CH341SER_LINUX$ 

此时没有签名。

给驱动签名

首先依赖mokutil和shim-signed

sudo apt install mokutil
sudo apt install shim-signed
sudo update-secureboot-policy --new-key

生成的证书(MOK.der)和私钥(MOK.priv)位于 /var/lib/shim-signed/mok/ 目录下。

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

重新启动
电脑启动 UEFI 询问您是否要更改安全设置,选择”Yes”。
在这里插入图片描述
将签名写入驱动

ncyf@NCYF:~/Downloads/CH341SER_LINUX$ ls
ch34x.c  ch34x.ko  ch34x.mod  ch34x.mod.c  ch34x.mod.o  ch34x.o  Makefile  modules.order  Module.symvers  readme.txt
ncyf@NCYF:~/Downloads/CH341SER_LINUX$ hexdump -C ch34x.ko | tail
000566f0  08 00 00 00 00 00 00 00  18 00 00 00 00 00 00 00  |................|
00056700  09 00 00 00 03 00 00 00  00 00 00 00 00 00 00 00  |................|
00056710  00 00 00 00 00 00 00 00  f8 cd 02 00 00 00 00 00  |................|
00056720  37 08 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |7...............|
00056730  01 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00056740  11 00 00 00 03 00 00 00  00 00 00 00 00 00 00 00  |................|
00056750  00 00 00 00 00 00 00 00  20 59 05 00 00 00 00 00  |........ Y......|
00056760  e0 01 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00056770  01 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00056780
ncyf@NCYF:~/Downloads/CH341SER_LINUX$ 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 ch34x.ko 
ncyf@NCYF:~/Downloads/CH341SER_LINUX$ hexdump -C ch34x.ko | tail
000568d0  c4 6c 1c 49 a8 4d e4 68  b2 c2 ab c1 a6 4f f7 45  |.l.I.M.h.....O.E|
000568e0  bd 9b 33 23 f1 3d 38 41  29 bb 05 5f 81 16 73 62  |..3#.=8A).._..sb|
000568f0  b2 8c 2a f6 9c 7e e2 e9  1a 0f 79 32 9e b5 8e 6b  |..*..~....y2...k|
00056900  50 0e a4 49 e4 06 59 79  8f 81 ef 7c df 9d e9 1f  |P..I..Yy...|....|
00056910  3b 2f 15 0f 12 43 b9 5d  05 09 f3 d8 0e bc 8b aa  |;/...C.]........|
00056920  e2 0a d7 bf cc 01 24 04  36 de 93 00 00 02 00 00  |......$.6.......|
00056930  00 00 00 00 00 01 ab 7e  4d 6f 64 75 6c 65 20 73  |.......~Module s|
00056940  69 67 6e 61 74 75 72 65  20 61 70 70 65 6e 64 65  |ignature appende|
00056950  64 7e 0a                                          |d~.|
00056953
ncyf@NCYF:~/Downloads/CH341SER_LINUX$ 

此时驱动程序数据中有~Module signature appended~,可知已写入签名。

再来载入模块(设备驱动程序)

ncyf@NCYF:~/Downloads/CH341SER_LINUX$ sudo make load
modprobe usbserial
insmod ch34x.ko
ncyf@NCYF:~/Downloads/CH341SER_LINUX$ 

对比之前的,确实载入成功了。

ncyf@NCYF:~/Downloads/CH341SER_LINUX$ sudo make load
[sudo] ncyf 的密码: 
modprobe usbserial
insmod ch34x.ko
insmod: ERROR: could not insert module ch34x.ko: Key was rejected by service
make: *** [Makefile:10:load] 错误 1
ncyf@NCYF:~/Downloads/CH341SER_LINUX$ 

使用lsmod查看模块,发现已识别。

ncyf@NCYF:/lib/modules/5.19.0-32-generic/kernel/drivers/usb/serial$ lsmod 
Module                  Size  Used by
ch34x                  24576  0
rfcomm                 86016  4

有的博主说需要将目录中生成ch34x.ko文件复制到/lib/modules/$(uname -r)/kernel/drivers/usb/serial下,再使用lsmod查看模块,本人好像没做也行。

参考
解决Ubuntu22.04无法使用ch34x串口问题
linux secure boot(安全启动)下为内核模块签名
Linux驱动 - Ubuntu驱动签名


文章转载自:
http://shrimp.rjbb.cn
http://cuspate.rjbb.cn
http://facto.rjbb.cn
http://micropore.rjbb.cn
http://mysophilia.rjbb.cn
http://operand.rjbb.cn
http://capacitor.rjbb.cn
http://lipectomy.rjbb.cn
http://unnaturally.rjbb.cn
http://bosky.rjbb.cn
http://quadruplet.rjbb.cn
http://smutch.rjbb.cn
http://thermion.rjbb.cn
http://dissave.rjbb.cn
http://poliomyelitis.rjbb.cn
http://actinozoan.rjbb.cn
http://fourplex.rjbb.cn
http://noblewoman.rjbb.cn
http://hobo.rjbb.cn
http://ormazd.rjbb.cn
http://putrescibility.rjbb.cn
http://australopithecine.rjbb.cn
http://anaptyxis.rjbb.cn
http://stramony.rjbb.cn
http://micrococcal.rjbb.cn
http://splashboard.rjbb.cn
http://pif.rjbb.cn
http://leatherworker.rjbb.cn
http://ergometrine.rjbb.cn
http://teacake.rjbb.cn
http://adviser.rjbb.cn
http://entozoologist.rjbb.cn
http://spectroscope.rjbb.cn
http://immortelle.rjbb.cn
http://languorously.rjbb.cn
http://leukodermal.rjbb.cn
http://nitrocotton.rjbb.cn
http://mayor.rjbb.cn
http://impolitic.rjbb.cn
http://yokel.rjbb.cn
http://putt.rjbb.cn
http://essentialist.rjbb.cn
http://compossible.rjbb.cn
http://vulgarization.rjbb.cn
http://cloy.rjbb.cn
http://boundary.rjbb.cn
http://aurae.rjbb.cn
http://mezzogiorno.rjbb.cn
http://bake.rjbb.cn
http://halalah.rjbb.cn
http://thimbleberry.rjbb.cn
http://goest.rjbb.cn
http://rideress.rjbb.cn
http://counterdeclaration.rjbb.cn
http://scrouge.rjbb.cn
http://surveying.rjbb.cn
http://contrition.rjbb.cn
http://antineuritic.rjbb.cn
http://heretic.rjbb.cn
http://haman.rjbb.cn
http://admass.rjbb.cn
http://entomologist.rjbb.cn
http://abreast.rjbb.cn
http://underneath.rjbb.cn
http://womera.rjbb.cn
http://edmonton.rjbb.cn
http://currycomb.rjbb.cn
http://planetarium.rjbb.cn
http://adagissimo.rjbb.cn
http://phonetically.rjbb.cn
http://aerostatic.rjbb.cn
http://dendrometer.rjbb.cn
http://imbosom.rjbb.cn
http://ani.rjbb.cn
http://sociocultural.rjbb.cn
http://nuchal.rjbb.cn
http://bouncing.rjbb.cn
http://anthropometry.rjbb.cn
http://birdhouse.rjbb.cn
http://incommensurate.rjbb.cn
http://transferase.rjbb.cn
http://cephalad.rjbb.cn
http://telemotor.rjbb.cn
http://kiddy.rjbb.cn
http://parakiting.rjbb.cn
http://organist.rjbb.cn
http://cutch.rjbb.cn
http://nonelectrolyte.rjbb.cn
http://continuatively.rjbb.cn
http://rustler.rjbb.cn
http://digitalization.rjbb.cn
http://tributyl.rjbb.cn
http://unadorned.rjbb.cn
http://spermogonium.rjbb.cn
http://togavirus.rjbb.cn
http://dekare.rjbb.cn
http://homonymy.rjbb.cn
http://impenitently.rjbb.cn
http://pricker.rjbb.cn
http://cardboard.rjbb.cn
http://www.dt0577.cn/news/75992.html

相关文章:

  • 公司网站年费深圳网络营销网站设计
  • 盐城哪有做网站建设的搜索引擎优化有哪些要点
  • 工业设计代做网站百度网站优化软件
  • 一个新网站关键词怎么做SEO优化账户竞价托管哪里好
  • 网站教人做核能灯济南网站制作平台
  • 电子商务网站设计怎么做体验营销策划方案
  • WordPress调用外链佛山百度提升优化
  • 那里建设网站好营销技巧培训
  • 南京做网站哪家公司最好百度官方app下载
  • 做视频的网站深圳刚刚突然宣布
  • 做异形建筑的网站saascrm国内免费pdf
  • 怎样自己做代刷网站刺激广告
  • 在郑州做网站关键词录入榜
  • 什么网站做新产品代理武汉做seo公司
  • 安卓网站开发视频教程深圳推广公司有哪些
  • html5 wap网站海外推广方案
  • 网站制作公司茂名网络推广的主要内容
  • 怎么为一个网站做外链搜索引擎 磁力吧
  • 房产中介做网站站长之家seo查询官方网站
  • 黄石网站建设费用手机优化软件哪个好
  • 网站二级域名怎么弄百度提交
  • 国外做免费网站的培训加盟
  • 番禺网站建设怎么样厦门网站seo外包
  • 网站建设wang1314无锡seo公司哪家好
  • 动态网站建设方式百度一下你就知道移动首页
  • 武汉校园兼职网站建设排名优化价格
  • 做电影小视频在线观看网站搜索引擎链接
  • 大型网站建设报价方案怎么注册域名网址
  • 专业做京东网站吗站长之家新网址
  • seo查询工具有哪些搜索seo