CH344
CH344Q为480Mbps高速USB设备接口,CH344L为12Mbps全速USB设备接口。
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