在 Windows 7 64 位上安装的 Oracle VirtualBox (v 4.3.4 r 91027) 抛出此错误消息:
Failed to attach USB device STMicroelectronics STM32 STLink[0100] to the virtual machine ..
.. is busy with previous request..
答案1
按照 rubStackOverflow 的说法,添加设备过滤器是必要的,这样可以避免主机操作系统使用设备的实际驱动程序。如果您做对了,并在插入设备时观察 Windows 设备管理器,您会看到USB Controllers -> Virtualbox USB
显示的不是实际设备。
如果客户操作系统未检测到该设备,请检查主机 Windows 是否USBPcap
安装了上层 USB 过滤器驱动程序。(参考:https://forums.virtualbox.org/viewtopic.php?f=6&t=39104#p176270)
- 启动 regedit。
- 寻找
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}
。 - 查找密钥
UpperFilters
。就我而言,它在那里并且有值USBPcap
。这很可能来自 Wireshark,或者我可能手动安装了它。 - 重命名或者删除该项
UpperFilters
。 - 重新引导主机。
- 检查客户的 USB 过滤器设置(通过保留 VID/PID 设置以外的所有内容来进行概括)。
- 啟動客人。
- 插入 USB 设备。
- 观察主机设备管理器显示 Virtualbox USB。
- 观察客户设备管理器检测实际设备。
祝你好运!
答案2
基本上,您必须添加您的设备和设备过滤器。
安装“Oracle VM VirtualBox 扩展包”以匹配您的 VirtualBox 版本。https://www.virtualbox.org/wiki/Downloads
连接您的 USB 设备。
确认您还可以通过 VBoxManage list usbhost 命令查看您的 USB 设备。在此命令运行之前,您无法在 VirtualBox 中添加有效的过滤器。
在 VirtualBox 中,转到您的客户机的“设置”、USB 部分,然后为您的 USB 设备添加一个过滤器和一个新的设备过滤器(空)。
启动您的客户端并确认它可以看到您的设备。
(我从这里获得这些步骤:superuser.com/questions/306172/how-can-i-make-my-virtualbox-vista-see-my-usb-device-ipad)
这里的视频一步一步说明了我如何解决这个问题: USB 设备正忙于处理先前的请求
来源:youtube.com/user/tutorialnacional
答案3
当我花了一些时间在谷歌上搜索答案时,以下是对我很有帮助的: https://forums.virtualbox.org/viewtopic.php?f=6&t=59303
我做了很多修改。我不确定修复是在哪一步进行的。
我稍微改变了我的虚拟机,我把它从 C: 移到了 D:,并在 VirtualBox 设置中添加了一个 CPU。然后我在主机的设备管理器中做了一些更改。昨天我尝试了两个通用 USB 集线器的“电源管理”中的“允许计算机关闭此设备以节省电源”,但没有成功,今天我再次在两个通用 USB 集线器上取消了该标记。我还删除了 USB 过滤器的部分内容(但我之前尝试过很多次),最后我再次启动了我的虚拟机。
插入 USB 设备后,我收到主机的通知,告知它已安装 VirtualBox 驱动程序!(我不知道它是否再次安装了它?!)然后我可以通过右键单击 VM 窗口的 USB 图标并选择设备来绑定 USB 设备。
是的,这就是问题所在,通用串行总线控制器缺少 VirtualBox USB 驱动程序。我不知道怎么做,但我可以绑定 USB 棒。
答案4
我每天在 Win 8 Host 下运行 3~4 个虚拟机,XP 和 Win7,并设置休眠模式;这些虚拟机使用一些 Sandisk USB,其中一些已分区,只能在 XPsp2 环境中读取;其他地方则无法读取。很容易发现它们“忙于处理上一个请求”……这会触发类似多米诺骨牌效应的东西,甚至会重新启动系统。因此,一些结构化作业无论如何都无法继续进行。没有 UpperFilters 条目可从注册表中删除;经过多年的徒劳希望,这是我唯一的解决方案,虽然简单但非常彻底,可以摆脱这场噩梦。
假设这个[Sandisk]案例。
VBox:从所有虚拟机的 USB 设置中删除任何单个设备。
系统:使用系统功能拔下所有连接的 USB:“安全删除硬件并弹出媒体”图标(用于“打开设备和打印机”)或类似功能(我通常建议不要简单地使用资源管理器菜单上的“弹出”)。关闭 VM Oracle Virtualbox。
现在从注册表中找到并删除所有出现的 Sandisk [在我的情况下,或任何正在使用的 USB] - 您甚至可以在之前导出它们,但此时这样做没有风险,只要您确切知道自己在做什么。我没有提供详细信息,因为您应该知道我在说什么。请注意,我发现有 172 个 [HKEY_… 引用需要删除,因此您可能需要一个工具来执行此操作。重新启动系统以进行清理。
重置:打开 VM Oracle Virtualbox。插入一个 USB(一次),选择并设置到一台机器(一次)中适当的 USB。运行该机器并确保 USB 已安装:它还必须从主机系统资源管理器中消失。不要在不同的 Vbox 中重叠同一个 USB。
这很简单,但最终对我有用。 不要对计算机过于熟悉,总是把它当成傻子(因为就是这样):一次只做一件事。原谅我的英语。
顺便说一句,我还有另一个“虚拟”问题,即我无法通过“显示”运行任何机器,否则会遇到另一个丑陋的无限错误,该错误会长时间挂起所有东西并且没有解决方案:没有机器可以启动。抱歉,这超出了主题,但它也可以帮助某些人。我现在无法重现它(我正在工作,这样的尝试会危及一切……)但它是已知的,我找不到任何解决方案。
请注意,我无法重新安装虚拟机,因为 Windows 的另一个礼物,著名的“错误代码 2755”(特别是仅适用于 Virtualbox - 我可以安装一些其他应用程序)我无法重新安装 Windows 和许多其他东西,因为我的时间很宝贵,我没有一周的时间以这种方式浪费。但我也找到了如何摆脱这种情况的方法:打开“开始”[单击向下箭头] 菜单并选择“无头启动”:机器以隐藏方式启动,几秒钟后命令箭头将再次变为绿色。然后单击它以按照普通视图启动。