我在Lion OSX中安装了VirtualBox,发现USB设备在Window 7客户操作系统中无法正常工作 . 当我从VirtualBox设备菜单中选择USB设备以将USB设备分配给客户操作系统时,VirtualBox报告错误:

Failed to create a proxy device for the usb device
Error: VERR_OUT_OF_RESOURCES

我分析了kextstat和system.log的输出,比较了USB设备插入之前和之后的差异 .

Oct 15 19:45:02 yee kernel[0]: 0        0 AppleUSBCDC: start - initDevice failed
Oct 15 19:45:02 yee kernel[0]: USBF:    26094.693   IOUSBCompositeDriver[0xffffff800bf6fb00](IOUSBDevice) GetFullConfigDescriptor(0) returned NULL

然后我发现Mac内核加载了两个驱动程序

1)com.apple.driver.AppleUSBCDC

2)com.apple.driver.AppleUSBComposite

我可以使用命令“sudo kextunload -b”卸载1),但无法卸载2) . 当我kextunload AppleUSBComposite

Kext user-space log filter changed from 0xff2 to 0xfff.
Kext kernel-space log filter changed from 0xff2 to 0xfff.
Requesting unload of com.apple.driver.AppleUSBComposite (with termnation of IOServices).
(kernel) User-space log flags changed from 0x0 to 0xfff.
(kernel) Received 'Unload' request from user space.
(kernel) Can't remove kext com.apple.driver.AppleUSBComposite; services failed to terminate - 0xdc008018.
Kernel error handling kext request - (libkern/kext) kext is in use or retained (cannot unload).
Failed to unload com.apple.driver.AppleUSBComposite - (libkern/kext) kext is in use or retained (cannot unload).

how can I unload it for my guest OS USB device working properly!