麒麟系统串口连接报错“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]替换为实际的值。

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

相关推荐
Karoku0661 小时前
【CI/CD】CI/CD环境搭建流程和持续集成环境配置
运维·ci/cd·docker·容器·kubernetes·prometheus
布鲁克零三四四1 小时前
阿里云CDN转https个人测试证书过期更换
阿里云·https·云计算
Lansonli1 小时前
云原生(五十七) | 阿里云CDN基本概念
阿里云·云原生·云计算
Nerd Nirvana3 小时前
软考—系统架构设计(案例 | 论文)
linux·系统架构·软件工程·软考·计算机基础
勤奋的凯尔森同学4 小时前
webmin配置终端显示样式,模仿UbuntuDesktop终端
linux·运维·服务器·ubuntu·webmin
月光水岸New4 小时前
Ubuntu 中建的mysql数据库使用Navicat for MySQL连接不上
数据库·mysql·ubuntu
莫忘初心丶4 小时前
在 Ubuntu 22 上使用 Gunicorn 启动 Flask 应用程序
python·ubuntu·flask·gunicorn
丁卯4045 小时前
Go语言中使用viper绑定结构体和yaml文件信息时,标签的使用
服务器·后端·golang
chengooooooo5 小时前
苍穹外卖day8 地址上传 用户下单 订单支付
java·服务器·数据库
人间打气筒(Ada)6 小时前
MySQL主从架构
服务器·数据库·mysql