CH343 驱动安装

USB UART

Posted by LXG on July 1, 2025

CH344

CH344

CH344Q为480Mbps高速USB设备接口,CH344L为12Mbps全速USB设备接口。

CH343驱动源码

CDC ACM


[   96.517038] cdc_acm 1-1:1.0: ttyACM0: USB ACM device
[   96.518049] cdc_acm 1-1:1.2: ttyACM1: USB ACM device
[   96.519000] cdc_acm 1-1:1.4: ttyACM2: USB ACM device
[   96.519674] cdc_acm 1-1:1.6: ttyACM3: USB ACM device

Linux 内核中用于支持 USB CDC (Communications Device Class) ACM(抽象控制模型)设备的模块。它会自动识别符合 USB CDC ACM 协议的设备,包括很多 USB 转串口设备,如 CH344、CH9102、STM32 虚拟串口等。

cdc_acm 对比 ch343ser_linux

对比项 cdc_acm ch343ser_linux
类型 通用驱动(Linux 内核自带) 专用驱动(WCH 提供)
是否需安装 否(内核自动加载) 是(需手动编译安装)
驱动加载方式 插入 CDC 设备自动加载 插入匹配设备后,需手动加载或配置 udev
生成的设备节点 /dev/ttyACM0, /dev/ttyACM1 /dev/ttyUSB0, /dev/ttyUSB1
适配芯片/设备 符合 USB CDC ACM 协议的设备 CH341、CH344、CH343 等 WCH 设备
多端口支持 支持有限(部分设备) 完整支持 CH344 多通道(最多4个端口)
传输性能 一般(可能限速、丢包) 更高性能、更稳定
硬件流控支持 部分支持 完整支持
驱动特性 标准串口功能 支持串口属性设置、硬件特性更丰富
内核支持情况 主线内核已支持 需自行安装(GPL 开源)
应用兼容性 某些串口工具对 ACM 不兼容 与常见串口工具完全兼容
使用建议 能正常通信即可 推荐用于 CH34x 系列确保稳定性和性能

阻止 cdc_acm 驱动绑定 CH34*

sudo vim /etc/modprobe.d/blacklist-ch343.conf


options cdc_acm ignore_list=1a86:55d4

ch343ser_linux 驱动下载


curl -L -o ch343ser_linux.zip https://github.com/WCHSoftGroup/ch343ser_linux/archive/refs/heads/master.zip

编译配置


make

sudo cp ch343.ko /lib/modules/$(uname -r)/kernel/drivers/usb/serial/

sudo ls -al /lib/modules/$(uname -r)/kernel/drivers/usb/serial/ch343.ko

sudo depmod

sudo modprobe ch343

sudo modinfo ch343

开机启动

sudo vim /etc/systemd/system/ch343.service



[Unit]
Description=Load ch343 Kernel Module
After=multi-user.target
Wants=network-online.target

[Service]
Type=oneshot
ExecStart=/sbin/modprobe ch343
ExecStartPost=/bin/sh -c 'echo "ch343 module loaded successfully at $(date)" >> /var/log/ch343.log'
ExecStop=/sbin/modprobe -r ch343
RemainAfterExit=yes Restart=on-failure
RestartSec=5s
StartLimitIntervalSec=300
StartLimitBurst=30

[Install]
WantedBy=multi-user.target

sudo systemctl daemon-reload

sudo systemctl enable ch343.service

生成的串口


[    2.085735] usb_ch343 1-1:1.0: ttyCH343USB0: usb to uart device
[    2.085862] usb_ch343 1-1:1.0: USB to GPIO device now attached to ch343_iodev0
[    2.085941] usb_ch343 1-1:1.2: ttyCH343USB1: usb to uart device
[    2.086052] usb_ch343 1-1:1.4: ttyCH343USB2: usb to uart device
[    2.086186] usb_ch343 1-1:1.6: ttyCH343USB3: usb to uart device
[    2.086289] usbcore: registered new interface driver usb_ch343