Hello! I'm trying to share a USB Bluetooth dongle from an old Mac (VirtualHere Server) to share a USB Bluetooth adapter to a Windows PC (VirtualHere client).
Unfortunately, when I try to connect to the the Bluetooth dongle on the Windows client, I get a somewhat cryptic error message: "there was a error using this device"
The Server Log provides a bit more information:
Jul 7 17:52:15 Jonathans-Mac-Pro.local vhusbdosx : captureDevicePrepare: USBDeviceOpenSeize error kIOReturnExclusiveAccess (exclusive access) at IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/XHC@14/AppleUSBXHCI/BCM20702A0@14b00000
Jul 7 17:52:15 Jonathans-Mac-Pro.local vhusbdosx : Error binding device 347078656 [13d3:3404] to connection 3, BIND_ERROR
Other USB devices, like my mouse, seem to work fine.
Anything I can do? I'm interested in buying the full version of VirtualHere if I can get this to work!
It sounds like OSX bluetooth software is holding the device and not allowing it to redirect. VirtualHere wont force a redirect but you could try stopping the bluetooth daemon before using it via virtualhere. However this doesnt work on all versions of osx. But see here https://apple.stackexchange.com/questions/251842/how-to-restart-bluetoo…
I feel like I'm so darn close! :(
So, it's not the daemon that's the problem. I can do
sudo launchctl unload /System/Library/LaunchDaemons/com.apple.blued.plist, which seems to stop new Bluetooth devices from connecting and prevents toggling the bluetooth power state, but doesn't actually disconnect any devices from my Mac. This doesn't fix VirtualHere.
What does fix VirtualHere is unloading the kext completely with
sudo launchctl unload /System/Library/LaunchDaemons/com.apple.blued.plist—but then, after I'm done with VirtualHere, there's no way to get Bluetooth back on the host Mac without rebooting.
sudo kextload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport doesn't have any effect.
Oh, but this is interesting, if I:
1. Unload com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport
2. Use VirtualHere, etc until I'm finished with it.
3. Load com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport
4. Open VMWare Fusion, and attach the Bluetooth dongle to the guest OS
5. Detach the Bluetooth dongle from the VMWare guest
...Then bluetooth works again on my Mac!
I can't actually use this though, because there's no way to automate those VMWare steps (and, spinning up an entire Virtual Machine to get Bluetooth working again is ridiculous). I wish I knew what VMWare was doing to reset the dongle...
It might be worth switching to just using a pi as the server . Just get a pi4 then download and install https://www.virtualhere.com/hardware then just plug the dongle into that and use it as the server instead. Mac is a bit of a nightmare now. Apple has made it too difficult and buggy to use anymore. Im going to pull support for it soon.