麒麟系统串口连接报错“Unable to open serial port /dev/ttyUSB0”解决方案

在使用麒麟系统进行串口通信时,遇到"Unable to open serial port /dev/ttyUSB0"这一报错,通常是由于以下几种原因导致的,以下是相应的解决方法:

一、权限问题

  1. 临时修改权限
    • 可以通过命令sudo chmod 777 /dev/ttyUSB0临时修改串口设备的权限,使其具有读写权限。
    • 也可以尝试使用sudo命令以管理员权限运行相关程序,例如sudo putty来打开串口工具。
  2. 添加用户到dialout组
    • 执行命令sudo gpasswd --add [username] dialout,将当前用户添加到dialout组中,其中[username]替换为实际的用户名。
    • 或者使用sudo usermod -a -G dialout $USER命令,将当前用户添加到dialout组,之后需要重启系统才能使权限生效。

二、设备连接问题

  1. 检查串口设备连接
    • 确认串口设备是否正确连接到计算机上,并且已经插好,没有松动或损坏的情况。
    • 使用命令ls -l /dev/tty*查看串口设备列表,确认/dev/ttyUSB0是否存在。
  2. 重新插拔设备
    • 尝试重新插拔串口设备,有时候设备连接不稳定或未被系统正确识别,重新插拔后系统可能会重新识别设备。

三、驱动问题

  1. 检查驱动是否加载
    • 对于USB转串口设备,可以使用lsmod | grep usbserial命令查看usbserial驱动是否已经加载,如果没有加载,可以使用sudo modprobe usbserial命令手动加载驱动。
  2. 安装或更新驱动
    • 如果是特定型号的USB转串口设备,如PL2303,需要确保其驱动已正确安装。可以进入USB转串口驱动的目录查看,如发现驱动版本无效或缺失,需要重新下载对应版本的驱动源码,并按照编译、安装的步骤进行操作。

四、系统配置问题

  1. 修改串口服务配置
    • 打开文件/lib/systemd/system/serial-getty@.service,找到ExecStart=项,修改为ExecStart=-/sbin/agetty -8 -L 115200 %I $TERM,然后执行systemctl daemon-reload重新加载系统服务配置,接着使用systemctl unmask serial-getty@ttyS0.service解除掩码(串口是tty多少就改成多少),最后使用systemctl enable serial-getty@ttyS0.service启用串口服务,若要即刻使用还可执行systemctl start serial-getty@ttyS0.service启动服务。
  2. 修改udev规则
    • 创建文件/etc/udev/rules.d/70-ttyusb.rules,在文件内增加一行KERNEL=="ttyUSB[0-9]*", MODE="0666",重新插入USB转串口设备后,普通用户就有权限访问了。
    • 或者先用lsusb查看USB转串口芯片的idVendor和idProduct,然后在70-ttyusb.rules文件中写入SUBSYSTEM=="tty", ATTRS{idVendor}=="[idVendor]", ATTRS{idProduct}=="[idProduct]", MODE="0666",其中[idVendor][idProduct]替换为实际的值。

如果上述方法仍无法解决问题,建议检查串口设备本身是否正常,可以尝试更换其他串口设备或在其他系统上进行测试,以排除设备故障的可能。

相关推荐
tntxia5 小时前
linux curl命令详解_curl详解
linux
扛枪的书生7 小时前
Linux 网络管理器用法速查
linux
SkyWalking中文站9 小时前
认识 Horizon UI · 1/17:SkyWalking 新一代可观测性控制台
运维·前端·监控
顺风尿一寸10 小时前
Java Socket 内核之旅:从 SocketChannel.read() 到 tcp_recvmsg 与 epoll 的完整调用链路
linux
雪梨酱QAQ12 小时前
Kubeneters HA Cluster部署
运维
AKAMAI14 小时前
每百万 Token 成本砍六成,出海 AI 团队开始重算推理这笔账
人工智能·云计算
江华森16 小时前
Spring Cloud 微服务全栈实战:从 Eureka 到 Docker Compose 一文贯通
运维
江华森16 小时前
Matplotlib 数据绘图基础入门
运维
XIAOHEZIcode16 小时前
Ubuntu 终端美化全栈指南:Bash 到 Kitty 踩坑实录
linux·ubuntu·命令行
江华森16 小时前
NumPy 数值计算基础入门
运维