我在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).
如何卸载它以使我的客户操作系统USB设备正常工作!