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

问题描述 投票:1回答:1

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

$ docker-machine create --driver virtualbox default

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

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

USB devices in VirtualBox Serial Port in VirtualBox

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

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

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

usb virtualbox docker-machine
1个回答
0
投票

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

  • 我使用的设备实际上只是在USB菜单中显示为SEGGER J-Link
  • 它必须添加为过滤器(过滤器真的很混乱>首先我认为它会忽略设备)
  • 设备无法“动态”添加到虚拟框中(使用“显示”窗口中的USB图标,请参见屏幕截图),在虚拟机启动之前不得连接它。
  • 串行选项卡无关紧要>它全部通过USB选项卡处理。

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

重要的事实是,在虚拟机启动时,不得连接设备。因此,添加设备的步骤如下:

  • 关闭虚拟机电源
  • 确保已启用USB控制器
  • 将USB /串行设备连接到计算机(主机)
  • 将其添加到虚拟框中的过滤器

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

  • 确保虚拟机已关闭(例如docker-machine stop default
  • 断开USB /串行设备与计算机的连接
  • 启动虚拟机(例如,docker-machine start default
  • Virtualbox现在应该能够“拦截”设备并在/dev下列出它,例如/dev/ttyACM0

Device is connected!

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

© www.soinside.com 2019 - 2024. All rights reserved.