642 字
3 分钟
Jetson Orin CH341驱动安装(解决没有创建ttyUSB)
2026-04-22
无标签

最近在 Jetson Orin Nano 上接了个 CH341 的 USB 转串口模块,结果发现 /dev/ 下根本没有 ttyUSB* 设备。折腾了一下午,记录一下解决过程。

驱动安装#

下载源码#

首先得去 NVIDIA 官网下载对应版本的内核源码。我用的是 JetPack 6.1.x,所以去这里找: https://developer.nvidia.com/embedded/jetson-linux-archive

下载完之后,通过 scp 传到 Jetson 上:

Terminal window
scp ./public_sources.tbz2 jetson@172.20.10.2:~/

然后在 Jetson 上解压:

Terminal window
tar xjf public_sources.tbz2
cd ~/Linux_for_Tegra/source
tar xjf kernel_src.tbz2
cd kernel/kernel-jammy-src

编译驱动#

接下来要配置内核,先把当前运行的内核配置导出来:

Terminal window
zcat /proc/config.gz > .config

然后进入配置界面:

Terminal window
make menuconfig

使用按键/可以进行驱动搜索,搜索CH341出现以下结果

Symbol: USB_SERIAL_CH341 [=n]
Type : tristate
Defined at drivers/usb/serial/Kconfig:106
Prompt: USB Winchiphead CH341 Single Port Serial Driver
Depends on: USB_SUPPORT [=y] && USB [=y] && USB_SERIAL [=m]
Location:
-> Device Drivers
-> USB support (USB_SUPPORT [=y])
-> USB Serial Converter support (USB_SERIAL [=m])
Terminal window
make modules_prepare
make M=drivers/usb/serial modules

临时加载驱动#

编译完成后,可以用 insmod 临时加载驱动测试一下。

Terminal window
sudo insmod drivers/usb/serial/usbserial.ko
sudo insmod drivers/usb/serial/ch341.ko

注意 ch341.ko 依赖 usbserial.ko,所以要先加载 usbserial。 加载后可以用 lsmod 确认一下:

永久启用驱动#

临时加载每次重启都得重新来一遍,太麻烦了。要让驱动开机自动加载,需要把编译好的模块装到系统里。

首先把编译好的 .ko 文件复制到系统模块目录:

Terminal window
sudo cp drivers/usb/serial/ch341.ko /lib/modules/$(uname -r)/kernel/drivers/usb/serial/
sudo cp drivers/usb/serial/usbserial.ko /lib/modules/$(uname -r)/kernel/drivers/usb/serial/

然后更新模块依赖关系:

Terminal window
sudo depmod -a

接下来配置开机自动加载。创建一个配置文件:

Terminal window
sudo nano /etc/modules-load.d/ch341.conf

在文件里写入:

usbserial
ch341

保存退出后,重启系统验证一下:

Terminal window
sudo reboot

重启后用 lsmod | grep ch341 检查,如果能看到 ch341 模块,说明配置成功了。插上 USB 设备,/dev/ttyUSB0 应该就会自动出现。

疑难#

按理说到这里应该就能用了,但我插上 USB 设备后,/dev/ 下还是没有 ttyUSB0

使用

Terminal window
dmesg | tail -30

Terminal window
dmesg -w

我比较喜欢使用dmesg -w然后拔插USB设备,查看日志变化

发现关键日志

[ 2930.075949] ch341 1-2.1:1.0: ch341-uart converter detected
[ 2930.083122] usb 1-2.1: ch341-uart converter now attached to ttyUSB0
[ 2930.150612] usb 1-2.1: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
[ 2930.153427] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0

brltty是Linux系统中的盲文显示设备服务,它会自动检测并占用某些USB串口设备。CH340芯片恰好被brltty误识别为盲文设备,导致设备被占用后立即断开。

直接卸载即可

Terminal window
sudo apt remove brltty

重新插上USB 设备,/dev/* 成功创建出ttyUSB0

Jetson Orin CH341驱动安装(解决没有创建ttyUSB)
https://milkfunc.top/posts/jetson-orin-ch341驱动安装解决没有创建ttyusb/jetson-orin-ch341驱动安装解决没有创建ttyusb/
作者
CapaCake
发布于
2026-04-22
许可协议
CC BY-NC-SA 4.0