【问题标题】:Cannot access USB UART in VirtualBox Guest on macos Host无法在 macos 主机上的 VirtualBox Guest 中访问 USB UART
【发布时间】:2018-03-12 17:09:46
【问题描述】:

我已经通过 docker-machine 创建了一个虚拟机:

$ docker-machine create --driver virtualbox default

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

但是,该设备并未被 virtualbox 列为 USB 设备。我还尝试将设备添加为具有端口模式“主机设备”的串行端口,如in this link 所述,但没有任何成功:

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

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

还有什么我可以尝试的想法吗?

【问题讨论】:

    标签: usb virtualbox docker-machine


    【解决方案1】:

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

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

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

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

    现在每次您想使用带有 virtualbox 的设备时:

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

    在盒子启动后取消/插入过滤的设备也可以(如果您在启动之前忘记断开设备,则不必再次关闭虚拟盒子。只需等待盒子启动,拔掉,插上,应该不错)。

    【讨论】:

      猜你喜欢
      • 2013-05-11
      • 1970-01-01
      • 2016-12-10
      • 2016-07-02
      • 2016-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-29
      相关资源
      最近更新 更多