You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用pySerial打开/dev/ttyr串口失败:Errno 6 设备不存在或地址错误

解决SerialException: Errno 6 找不到串口设备(设备文件存在但无法打开)

在Scientific Linux 7.9上用Python 3.8.8(ipython)通过pyserial打开/dev/ttyr00时,收到错误:

SerialException: [Errno 6] could not open port /dev/ttyr00: [Errno 6] No such device or address: '/dev/ttyr00'

但ls -lart | grep ttyr能看到设备文件,修改权限也没用,同系列的ttyr02/ttyr03也有同样问题。

以下是针对性的解决方案:

  • 检查硬件是否真的被系统识别:
    执行dmesg | grep ttyr(或针对USB串口设备执行lsusb),查看是否有对应的硬件日志,确认驱动是否正确加载。如果没有相关输出,说明硬件没被识别,设备文件只是udev生成的占位符。

  • 验证设备是否被其他进程占用:
    用lsof /dev/ttyr00或者fuser /dev/ttyr00查看是否有其他进程在使用该串口,如果有,先关闭对应进程再尝试。

  • 用终端工具测试串口可用性:
    避开Python,直接用screen /dev/ttyr00 57600或者minicom -D /dev/ttyr00 -b 57600尝试打开串口,如果同样失败,说明问题出在系统层面而非Python代码。

  • 检查udev规则的有效性:
    如果ttyr*是自定义的udev别名,去/etc/udev/rules.d/目录下查看对应的规则文件,确认规则里的硬件参数(比如ATTRS{idVendor}、ATTRS{idProduct})是否和你的串口设备匹配,以及SYMLINK设置是否正确。

  • 重新加载udev规则:
    执行以下命令强制刷新udev配置:

    sudo udevadm control --reload-rules && sudo udevadm trigger
    

    之后重新尝试打开串口。

  • 确认设备的实际路径:
    用udevadm info -q path -n /dev/ttyr00查看该设备文件对应的实际硬件路径,如果输出为空或者指向不存在的路径,说明设备文件无效。

内容的提问来源于stack exchange,提问作者Steven Thomas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 04:30:11