ubuntu22.04安装CH340驱动踩坑记录
因为项目须要,须要安装CH340驱动,在这里记录以下自己的踩坑办理过程。之前自己安装了CH340驱动,但是没有成功,后来是参考这篇博客才开始算是开始真正的安装成功CH340驱动,在这里贴一下办理的链接:Linux-ubuntu22.04串口驱动安装(CH34X)
总结一下:
1.检察自己电脑是否安装了ch340驱动。
如果有CH340(雷同于ch34x.ko文件)驱动,但是不能用。删掉:
ls /lib/modules/$(uname -r)/kernel/drivers/usb/serial
cd /lib/modules/$(uname -r)/kernel/drivers/usb/serial
sudo rm -rf ch341.ko 把ch341.ko文件更换成自己的文件。
2.安装CH340驱动
我是参考这个链接安装的驱动:Linux-ubuntu22.04串口驱动安装(CH34X)
3.查询操作系统发行编号
uname -r https://i-blog.csdnimg.cn/blog_migrate/42d611518a8b0261ea5ba5908db81428.png
在网页查询对应自己编号,复制全部内容,更换下载的ch34x.c文件。https://elixir.bootlin.com/linux/v6.5/source/drivers/usb/serial/ch341.c
https://i-blog.csdnimg.cn/blog_migrate/1b5974a087ee4eeea2a6b9cc78bd4061.png4.编译源文件
cd切换至下载的文件夹,make编译源码,天生ch34x.ko文件:
cd CH341SER_LINUX/
make
sudo make load 我在运行这一步的时候会报错,贴别人的原图:参考链接:办理Ubuntu22.04.1上安装ch34x串口驱动报 Key was rejected by service 须要签名的题目
https://i-blog.csdnimg.cn/blog_migrate/e41902bd4dbc1a3a9fe1337ee8e7987a.png
同时大概会有:https://i-blog.csdnimg.cn/blog_migrate/1ceaaa2a796943dc9c1bbbe374a2d4eb.png
的题目,办理方法是安装,gcc-12:指令如下:
sudo apt update
sudo apt install gcc-12
make clean
make CC=gcc-12 出现错误提示:
insmod: ERROR: could not insert module ch34x.ko: Key was rejected by service 说明.ko文件须要签名。检察驱动签名环境。
检察签名,指令:
(base) robot@YL:~/Downloads/CH341SER_LINUX$ ls
ch34x.c ch34x.mod ch34x.mod.oMakefile Module.symvers
ch34x.koch34x.mod.cch34x.o modules.orderreadme.txt
指令:
hexdump -C ch34x.ko | tail https://i-blog.csdnimg.cn/blog_migrate/289db9131706d2288a0dfb79974be0f5.png
说明没有签名(贴的别人的图)。
给驱动签名
起首依赖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/ 目次下。
https://i-blog.csdnimg.cn/blog_migrate/ead8e9bde9d8550e2278eae35771bdfc.png
导入签名证书:
sudo mokutil --import /var/lib/shim-signed/mok/MOK.der
重新启动电脑
电脑启动 UEFI 扣问您是否要更改安全设置。选择Enroll MOK, 选择YEhttps://i-blog.csdnimg.cn/blog_migrate/15412683c5f0b2da921db566b0779a40.png
将签名写入驱动
重新启动后出现打开终端,输入:
(base) robot@YL:~/Downloads/CH341SER_LINUX$ hexdump -C ch34x.ko | tail
00064ce00b b3 1b 2f dc 99 c1 c49e af d5 d3 6c 45 a4 f7|.../........lE..|
00064cf05f 2c b3 4f 34 ae fa 2481 14 ec cf fd e1 1a 22|_,.O4..$......."|
00064d00dc e1 b3 40 2e 9f 5e 8274 50 32 26 82 c1 60 4d|...@..^.tP2&..`M|
00064d10a3 4e 98 59 6a 84 a3 1e92 75 95 ed 7d bf bc f2|.N.Yj....u..}...|
00064d2019 98 da c0 70 51 1d 20d1 2e f0 ce 82 58 94 22|....pQ. .....X."|
00064d30be b9 12 81 bd 83 bd 6b0b 00 00 02 00 00 00 00|.......k........|
00064d4000 00 00 01 a9 7e 4d 6f64 75 6c 65 20 73 69 67|.....~Module sig|
00064d506e 61 74 75 72 65 20 6170 70 65 6e 64 65 64 7e|nature appended~|
00064d600a |.|
00064d61 驱动步调数据中有~Module signature appended~,可知已写入签名。
在CH341SER_LINUX文件夹下再次
(base) robot@YL:~/Downloads/CH341SER_LINUX$ sudo make load
password for robot:
modprobe usbserial
insmod ch34x.ko
(base) robot@YL:~/Downloads/CH341SER_LINUX$
此时,载入成功了,使用lsmod | grep ch指令检察
(base) robot@YL:~/Downloads/CH341SER_LINUX$ lsmod | grep ch
ch34x 245760
usbserial 696321 ch34x
nft_chain_nat 122883
nf_nat 614402 nft_chain_nat,xt_MASQUERADE
hid_logitech_hidpp 655360
nf_tables 37273675 nft_compat,nft_chain_nat
snd_soc_acpi_intel_match 942082 snd_sof_intel_hda_common,snd_sof_pci_intel_tgl
snd_soc_acpi 122882 snd_soc_acpi_intel_match,snd_sof_intel_hda_common
hid_logitech_dj 368640
usbhid 778242 hid_logitech_dj,hid_logitech_hidpp
hid_multitouch 368640
sch_fq_codel 245761
hid 1802246 i2c_hid,usbhid,hid_multitouch,hid_generic,hid_logitech_dj,hid_logitech_hidpp
(base) robot@YL:~/Downloads/CH341SER_LINUX$
发现已经识别,这是本人的踩坑记录办理过程。但是本人重启电脑后发现驱动又没了,须要重新在H341SER_LINUX文件夹下sudo make load 才有。时间不早了,明天办理~~
开机主动加载CH340驱动
ch34x.ko文件被复制到内核模块目次。这个目次是/lib/modules/$(uname -r)/kernel/drivers/usb/serial/
sudo cp ch34x.ko /lib/modules/$(uname -r)/kernel/drivers/usb/serial/
刷新模块依赖关系
sudo depmod
执行完成后重新启动电脑即可。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]