有人可以解释一下 /dev/ttyACM0 和 lsusb 的输出之间的联系吗?
我正在关注本说明。它显示“更新 ttyACM0 以匹配您的适配器位置。”我不知道在这里做什么。
lsusb
Bus 002 Device 002: ID 1058:25a3 Western Digital Technologies, Inc. Elements Desktop (WDBWLG)
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 0451:16a8 Texas Instruments, Inc. CC2531 ZigBee
Bus 001 Device 002: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
simon@simon-itx:~/Downloads/zigbee2mqtt$ usb-devices
答案1
输出lsusb
表明您已连接 Zigbee 设备:
Bus 001 Device 004: ID 0451:16a8 Texas Instruments, Inc. CC2531 ZigBee
现在,某一类 USB 设备具有可以创建/dev/ttyACM*
设备的驱动程序。它们在创建时会被分配越来越多的数字,并且这些数字与 的输出完全无关lsusb
。
从我所看到的lsusb
输出来看,您可能只有其中一个。因此,如果您这样做ls /dev/ttyACM*
,您应该会看到一个文件/dev/ttyACM0
。
如果是这种情况,请使用以下文件启动容器:
docker run \
--device=/dev/ttyACM0
...
你就完成了。
如果您看到多个文件具有不同的编号,例如/dev/ttyACM0
和/dev/ttyACM1
,那么下一步就是找出哪个是哪个。有多种方法可以做到这一点,例如,您可以dmesg
在插入设备后立即查看输出,或者您可以使用/sys
文件系统,它具有显示关系的符号链接。