如何使用 Python 识别 LINUX 上的 USB 调制解调器 /dev



如果我有一个使用Python pyserial模块访问的USB调制解调器,它要求识别设备'/dev/ttyACM0。如果调制解调器连接到 USB 集线器,它将不再出现在/dev/tty...

如何以编程方式从我的 Python 代码中识别它,以便无论它是否已更改,或者机器重新启动,我都可以找到调制解调器?

注意:我总是可以看到使用 lsusb 的设备,但如果它连接到 USB 集线器,它不会显示为/dev/tty...装置

这听起来像是 linux 内核中的一个错误。如果可以,请尝试更新的版本。

如果失败,请检查dmesg输出的最后几行或文件/var/log/messages(后者取决于您的发行版;如果该文件不存在或不包含您要查找的内容,请检查/var/log中的其他文件;按时间排序ls -rt帮助(。

识别设备后,您可能会看到一个模式。

另一种方法是主要和次要编号。如果运行 ls -l /dev ,您将看到如下所示的输出:

crw--w----   1 root tty         4,   0 2011-12-19 09:15 tty0

c表示"字符设备",4, 0表示它是控制台设备单元 0。

4是标识设备类型的主编号。有关主要编号和相应设备驱动程序的列表,请参阅 /proc/devices

如果直接插入模型,请记下主编号。将其插入集线器后,尝试查找具有相同编号的设备。

与其在 Python 中做一些巫毒教,不如尝试编写一个 udev 规则,为您的设备提供一个更有用的名称,例如 /dev/my-serial-thingy 。从Python使用它要容易得多。

最新更新