/dev/ttyACM0 睡眠后丢失 - 如何重新检测/重新启动/重新扫描 ttyACM0?

/dev/ttyACM0 睡眠后丢失 - 如何重新检测/重新启动/重新扫描 ttyACM0?

我已经发布这个问题在 Ubuntu 中,但被告知它不属于那里,因为我的安装是 Mint 18.2,需要移到这里(我不知道如何移动它)。

我有一个基于 Ubuntu 16.04 的虚拟机 (Mint 18.2),它在 Windows 10 上的 VirtualBox (6.2) 内运行。

eric@XMEANT ~ $ uname -a
Linux XMEANT 4.8.0-53-generic #56~16.04.1-Ubuntu SMP Tue May 16 01:18:56 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

在我的主机上,我连接了 ZWave USB 天线,然后将其映射/附加到虚拟机。当我第一次启动虚拟机时,我可以看到 USB 设备被正确检测为/dev/ttyACM0

eric@XMEANT ~ $ dmesg | grep acm
[   18.593264] cdc_acm 2-2:1.0: ttyACM0: USB ACM device

eric@XMEANT ~ $ ls /dev/ttyA*
/dev/ttyACM0

但是,当我将主机从睡眠模式唤醒后,我不再看到我的/dev.

eric@XMEANT ~ $ ls /dev/ttyA*
ls: cannot access '/dev/ttyA*': No such file or directory

按照我在另一个上找到的提示超级用户问题,我尝试了以下方法:

eric@XMEANT ~ $ cat /proc/tty/drivers
/dev/tty             /dev/tty        5       0 system:/dev/tty
/dev/console         /dev/console    5       1 system:console
/dev/ptmx            /dev/ptmx       5       2 system
/dev/vc/0            /dev/vc/0       4       0 system:vtmaster
acm                  /dev/ttyACM   166 0-255 serial
ttyprintk            /dev/ttyprintk   5       3 console
max310x              /dev/ttyMAX   204 209-224 serial
serial               /dev/ttyS       4 64-111 serial
pty_slave            /dev/pts      136 0-1048575 pty:slave
pty_master           /dev/ptm      128 0-1048575 pty:master
unknown              /dev/tty        4 1-63 console

eric@XMEANT ~ $ lsmod | grep acm
cdc_acm                36864  0

eric@XMEANT ~ $ sudo modprobe -r cdc_acm
eric@XMEANT ~ $ sudo modprobe  cdc_acm

但是,仍然没有找到设备:

eric@XMEANT ~ $ ls /dev/ttyA*
ls: cannot access '/dev/ttyA*': No such file or directory

我还尝试重置我的 USB 驱动程序/模块,但它们内置于内核中,不知道如何独立重新加载它们。

modprobe: FATAL: Module ehci_pci is builtin.
modprobe: FATAL: Module ehci_hcd is builtin.
modprobe: FATAL: Module ohci_pci is builtin.
modprobe: FATAL: Module ohci_hcd is builtin.
Reloading USB modules...

我也看到了这个阿库本图问题,但不确定它是否真的适用,因为它没有被检测为 USB 设备,而是被检测为 ACM 设备。我尝试重新启动 ModemManager,但这也没有任何影响。

最后,我尝试从 VirtualBox 取消映射并重新映射它,但没有什么区别。我能想到的唯一方法是重新启动虚拟机。但这并不是一个真正有效的解决方案,因为重新启动我的虚拟机和所有服务等可能需要几分钟的时间。

有没有其他方法可以强制虚拟机重新扫描/重新检测丢失的设备或重新启动找到它所需的子服务?

相关内容