首页 文章

无法在macos主机上的VirtualBox Guest中访问USB UART

提问于
浏览
1

我通过docker-machine创建了一个虚拟框:

$ docker-machine create --driver virtualbox default

在Guest-OS中,我想访问我的USB-Serial设备,这是一个Nordic nRF52840 DevKit,在macos中列为 /dev/tty.usbmodem144241 .

但是,此设备未被virtualbox列为USB设备 . 我还尝试将设备添加为端口模式"Host-Device"的串行端口,如in this link所述,但没有任何成功:

USB devices in VirtualBox

Serial Port in VirtualBox

如果我将串行端口添加为 .tty-usbmodem ,则虚拟机将挂起'Starting',我必须终止所有虚拟机进程或断开串行电缆才能重新启动 . 如果我使用 .cu-usbmodem 虚拟机启动但立即崩溃 .

我坚持这个问题,因为docker for mac不支持没有虚拟机的 --devices 映射,而对于虚拟机我无论如何都无法管理添加端口 .

关于我还能尝试什么的任何想法?

1 回答

  • 0

    因此,事实证明,当设备实际连接时,virtualbox非常挑剔,并且无法像我使用VMWare那样无缝地工作:

    • 我正在使用的设备实际上只是在USB菜单中显示为 SEGGER J-Link

    • 必须添加为过滤器(过滤器真的很混乱>首先我认为它会忽略设备)

    • 无法将设备添加到virtualbox 'on the fly'(使用'Show'窗口中的USB图标,请参见屏幕截图),在虚拟机启动之前不得连接它 .

    • 串行选项卡无关紧要>全部通过USB选项卡处理 .

    Virtualbox grays out the device - it was connected before powering up the box

    重要的事实是,虚拟机会启动 device must not be connected . 因此,添加设备的步骤如下:

    • 关闭虚拟机电源

    • 确保已启用USB控制器

    • 将USB /串行设备连接到计算机(主机)

    • 将其添加到虚拟框中的过滤器

    现在每次要将设备与虚拟机一起使用时:

    • 确保虚拟机已关闭(例如 docker-machine stop default

    • 断开USB /串行设备与计算机的连接

    • 启动虚拟机(例如, docker-machine start default

    • Virtualbox现在应该能够"intercept"设备并将其列在 /dev 下,例如 /dev/ttyACM0

    Device is connected!

    在盒子启动后取出/插入已过滤的设备也可以正常工作(如果您在启动设备之前忘记断开设备,则无需再次关闭虚拟机 . 只需等待盒子启动,拔下插头即可在,应该是好的) .

相关问题