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

无法访问macos主机上VirtualBox Guest中的USB UART,usb,virtualbox,docker-machine,Usb,Virtualbox,Docker Machine,我通过docker机器创建了一个virtualbox: $docker machine create——驱动程序virtualbox默认值 在来宾操作系统中,我想访问我的USB串行设备,它是一个Nordic nRF52840 DevKit,在macos中列为/dev/tty.usbmodem144241 但是,virtualbox并未将此设备列为USB设备。我还尝试将设备添加为端口模式为“主机设备”的串行端口,如前所述,但没有成功: 如果我将串行端口添加为.tty usbmodem,virt

我通过docker机器创建了一个virtualbox:

$docker machine create——驱动程序virtualbox默认值

在来宾操作系统中,我想访问我的USB串行设备,它是一个Nordic nRF52840 DevKit,在macos中列为
/dev/tty.usbmodem144241

但是,virtualbox并未将此设备列为USB设备。我还尝试将设备添加为端口模式为“主机设备”的串行端口,如前所述,但没有成功:

如果我将串行端口添加为
.tty usbmodem
,virtualbox将挂起“启动”,我必须关闭所有virtualbox进程或断开串行电缆才能重新启动。如果我使用
.cu usbmodem
,virtualbox会启动,但会立即崩溃

我的想法都快用完了。我被这个问题困住了,因为docker for mac不支持没有虚拟机的
--devices
映射,而对于虚拟机,我不知何故无法添加端口


关于我还可以尝试什么,有什么想法吗?

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

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

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

  • 关闭virtualbox的电源
  • 确保USB控制器已启用
  • 将USB/串行设备连接到计算机(主机)
  • 将其添加到虚拟框中的筛选器
现在,每当您想将设备与virtualbox一起使用时:

  • 确保virtualbox已关闭(例如,
    docker机器停止默认值
  • 断开USB/串行设备与计算机的连接
  • 启动virtualbox(例如,
    docker机器启动默认值
  • Virtualbox现在应该能够“拦截”设备并将其列在
    /dev
    下,例如,作为
    /dev/ttyACM0

在机箱启动后,卸载/插入过滤设备也可以工作(如果在启动之前忘记断开设备的连接,则无需再次关闭virtualbox的电源。只需等待机箱启动,拔下插头,插入即可)