![尽管出现在 dmesg 中,但 dev/ttyacm0 并不存在](https://linux22.com/image/1020227/%E5%B0%BD%E7%AE%A1%E5%87%BA%E7%8E%B0%E5%9C%A8%20dmesg%20%E4%B8%AD%EF%BC%8C%E4%BD%86%20dev%2Fttyacm0%20%E5%B9%B6%E4%B8%8D%E5%AD%98%E5%9C%A8.png)
我正在尝试使用 teensy 3.6 运行 rosserial,但出现以下错误
[ERROR] [1603751770.005130]: Error opening serial: [Errno 2] could not open port /dev/ttyACM0: [Errno 2] No such file or directory: '/dev/ttyACM0'
但是,我的 dmesg | grep tty 输出显示以下内容
[ 0.000000] console [tty0] enabled
[12758.910672] cdc_acm 1-2:1.0: ttyACM0: USB ACM device
当我运行 ls dev/tty* 时,TTYACM0 也没有出现。
提前致谢!
答案1
可能是因为该设备在 udev 规则中被列入了黑名单。
答案2
当我将关闭的智能手机(Alcatel Idol 2 6037K)连接到计算机的 USB 端口时,我也遇到了同样的问题。在内核日志中我提到了 ttyACM0,但该设备未出现在系统中。
[ 7813.982058] usb 2-1.3: new high-speed USB device number 28 using ehci-pci
[ 7814.061817] usb 2-1.3: New USB device found, idVendor=0e8d, idProduct=2000, bcdDevice= 1.00
[ 7814.061823] usb 2-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 7814.061826] usb 2-1.3: Product: MT65xx Preloader
[ 7814.061828] usb 2-1.3: Manufacturer: MediaTek
[ 7814.083399] cdc_acm 2-1.3:1.0: Zero length descriptor references
[ 7814.083411] cdc_acm: probe of 2-1.3:1.0 failed with error -22
[ 7814.123453] cdc_acm 2-1.3:1.1: ttyACM0: USB ACM device
[ 7816.882582] usb 2-1.3: USB disconnect, device number 28
发生这种情况的原因是设备在 2-3 秒后(内核日志最后两行之间的时间)与系统断开连接。在这几秒钟内,必须打开设备,否则设备将断开连接。您可以看到设备在这几秒钟内如何出现和消失:
$ ls -la /dev/ttyACM*
ls: cannot access '/dev/ttyACM*': No such file or directory
$ ls -la /dev/ttyACM*
ls: cannot access '/dev/ttyACM*': No such file or directory
$ ls -la /dev/ttyACM*
crw-rw---- 1 root uucp 166, 0 Jun 1 03:30 /dev/ttyACM0
$ ls -la /dev/ttyACM*
crw-rw---- 1 root uucp 166, 0 Jun 1 03:30 /dev/ttyACM0
$ ls -la /dev/ttyACM*
crw-rw---- 1 root uucp 166, 0 Jun 1 03:30 /dev/ttyACM0
$ ls -la /dev/ttyACM*
crw-rw---- 1 root uucp 166, 0 Jun 1 03:30 /dev/ttyACM0
$ ls -la /dev/ttyACM*
crw-rw---- 1 root uucp 166, 0 Jun 1 03:30 /dev/ttyACM0
$ ls -la /dev/ttyACM*
ls: cannot access '/dev/ttyACM*': No such file or directory
我遇到了一个问题,因为我的软件(SP Flash Tool)没有足够的权限打开此设备,所以设备断开了连接。在我添加权限后,一切正常。