银河麒麟OS中USB转串口设备无/dev/ttyUSB0,主因是内核未加载对应芯片驱动模块;需先用lsusb确认VID:PID(如1a86:7523对应CH340),再执行sudo modprobe ch341/pl2303/cp210x/ftdi_sio加载驱动,若无效则编译安装ch341serial源码驱动,并确保用户加入dialout组、配置udev规则或chmod授权。

银河麒麟OS中插入USB转串口适配器后,设备管理器不识别/dev/ttyUSB0、dmesg显示“unknown device”或lsusb仅列出VID:PID但无对应tty节点,说明系统缺少对应芯片的内核驱动模块,必须手动加载或安装配套驱动包。
确认USB转串口芯片型号
这一步不可跳过,不同芯片需加载不同内核模块。打开终端,执行:
lsusb -v | grep -A 5 "Vendor|Product\|iInterface" | grep -E "(idVendor|idProduct|FTDI|CH34|PL2303|CP210|Silicon Labs)"
重点关注输出中的idVendor:idProduct组合,例如“idVendor=1a86 idProduct=7523”对应CH340芯片,“idVendor=067b idProduct=2303”对应PL2303HX。
若命令无输出或只显示“Bus 001 Device 002: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter”,直接记下1a86:7523即可——这是CH340最常见标识。部分山寨CH341芯片也会伪装成该ID,后续加载模块时会自动兼容。
加载通用内核模块(免安装)
银河麒麟V10内核已内置主流USB转串口驱动,只需手动触发加载:
执行:sudo modprobe ch341(适用于CH340/CH341)
执行:sudo modprobe pl2303(适用于Prolific PL2303系列)
执行:sudo modprobe cp210x(适用于Silicon Labs CP2102/CP2104)
执行:sudo modprobe ftdi_sio(适用于FTDI FT232/FT231X)
加载后立即运行 ls /dev/ttyUSB*,若出现ttyUSB0则成功;若提示“no such file”,说明模块未绑定设备,此时执行 sudo dmesg | tail -15 查看是否有“ch341-uart: ch341_set_baudrate - failed to set baud rate”类报错——这表示硬件握手失败,需拔插重试或更换USB线。
安装CH340专用驱动(国产芯片高频方案)
当modprobe ch341无效且dmesg显示“ch341: unknown device type”时,说明内核版本较新但驱动未适配,需编译安装官方源码驱动:
第一步:安装编译依赖
sudo apt-get install build-essential linux-headers-$(uname -r) git
第二步:克隆并进入驱动源码目录
git clone https://gitee.com/kylin-os/ch341serial.git && cd ch341serial
第三步:编译并安装模块
make → sudo make load
注意:【必须在执行make load前确认当前用户属于dialout组,否则即使模块加载成功也无法访问/dev/ttyUSB0】。验证方式:groups | grep dialout,若无输出则执行 sudo usermod -a -G dialout $USER,然后注销重登录。
第四步:强制绑定设备
echo '1a86 7523' | sudo tee /sys/bus/usb-serial/drivers/ch341-uart/new_id
启用用户权限并验证通信
方法一:临时授权(重启失效)
sudo chmod a+rw /dev/ttyUSB0
方法二:永久加入dialout组(推荐)
sudo usermod -a -G dialout $USER
执行完任一方法后,关闭当前终端,重新打开一个终端窗口,运行:
stty -F /dev/ttyUSB0 9600 raw -echo
再执行:
echo "AT" > /dev/ttyUSB0 && cat /dev/ttyUSB0
若返回“OK”或类似响应,说明串口通信链路已通。若无响应,检查串口线是否为交叉线(部分调试板需交叉)、目标设备是否上电并处于AT指令模式。


















