0 引
某次给Ubuntu装了个usb转串口驱动后,我的USB设备就一直被读成ttyCH341USB而不是正常的ttyUSB,难受,但是卸载了驱动又读不出来,重新换别的转串口驱动也一样,直到某天突然修好了……
1 查看电脑的内核版本
uname -r
2 删除旧的CH340驱动(似乎不是必须操作)
不放心可以先备份,后面失败了再拷回来也行
cd /lib/modules/$(uname -r)/kernel/drivers/usb/serial
sudo rm ch341.ko
3 下载驱动安装包
http://www.wch.cn/download/CH341SER_LINUX_ZIP.html
解压后将ch341.h删掉
4 修改驱动安装包代码
打开:https://elixir.bootlin.com/linux/v5.8/source/drivers/usb/serial/ch341.c
根据第一步查询到的操作系统编号,找到对应的版本,复制代码内容替换上一步中的ch341.c文件代码
5 编译驱动
到下载目录下编译(需要有安装gcc和cmake)
make
sudo make load
如果遇到以下错误1
可以通过移除已有的加载项解决,命令如下
sudo rmmod ch341.ko
如果遇到以下错误2
可以通过加载依赖项usbserial解决,命令如下
sudo modprobe usbserial
6 拷贝驱动文件
复制ch341.ko文件至系统默认驱动文件夹:sudo cp ch34x.ko /lib/modules/$(uname -r)/kernel/drivers/usb/serial
sudo cp ch341.ko /lib/modules/$(uname -r)/kernel/drivers/usb/serial
或直接(推荐,否则下次开机好像还是不能用)
sudo make install