Server issues on macOS 10.14

Hello,

We have been evaluating Virtual Here for multiple use cases and everything has been going well and worked as expected. We have tried most combinations of Windows/Linux(both Ubuntu desktop and OpenWRT)/macOS as both client and server.

The only issue we are currently facing is the Server on macOS 10.14.5 - the Virtual Here server version we are evaluating is 3.9.5.

The log contains the following items:

Jul 13 14:25:10 mbp-2 vhusbdosx[13316] : >>> Starting VirtualHere USB Server v3.9.5 (Built: Jun 19 2019, 11:35:38)<<<
Jul 13 14:25:10 mbp-2 vhusbdosx[13316] : Warning, cannot lookup the exe path, 22 (Invalid argument) (defaulting to HOME)
Jul 13 14:25:10 mbp-2 vhusbdosx[13316] : Using configuration /Users/pnovak/config.ini
Jul 13 14:25:10 mbp-2 vhusbdosx[13316] : Server licensed to=unlicensed max_devices=1
Jul 13 14:25:10 mbp-2 vhusbdosx[13316] : Listening on all network interfaces at TCP port 7575 (IPv6 dual-stack)
Jul 13 14:25:10 mbp-2 vhusbdosx[13316] : Found Full speed device [072f:2224] "ACS, ACR1281U" at address 337641472
Jul 13 14:25:10 mbp-2 vhusbdosx[13316] : Found High speed device [05ac:027c] "Apple Inc., Apple Internal Keyboard / Trackpad" at address 2152726528
Jul 13 14:25:10 mbp-2 vhusbdosx[13316] : Found Full speed device [0c76:161f] "0x0c76, USB PnP Audio Device" at address 340000768
Jul 13 14:25:10 mbp-2 vhusbdosx[13316] : Found Super speed device [0bda:8153] "Realtek, USB 10/100/1000 LAN" at address 2232320
Jul 13 14:25:10 mbp-2 vhusbdosx[13316] : Found Super speed device [2537:1081] "Norelsys, NS1081" at address 2293760
Jul 13 14:25:10 mbp-2 vhusbdosx[13316] : Error (0x38, 0x0000, 0x02be) finding plugin interface for usb device
Jul 13 14:25:10 mbp-2 vhusbdosx[13316] : Failed to load descriptors
Jul 13 14:25:10 mbp-2 vhusbdosx[13316] : Error (0x38, 0x0000, 0x02be) finding plugin interface for usb device
Jul 13 14:25:10 mbp-2 vhusbdosx[13316] : Failed to load descriptors
Jul 13 14:25:10 mbp-2 vhusbdosx[13316] : Found High speed device [05ac:5043] "Apple, Headset" at address 2151677952
Jul 13 14:25:10 mbp-2 vhusbdosx[13316] : Error (0x38, 0x0000, 0x02be) finding plugin interface for usb device
Jul 13 14:25:10 mbp-2 vhusbdosx[13316] : Failed to load descriptors
Jul 13 14:25:10 mbp-2 vhusbdosx[13316] : Error (0x38, 0x0000, 0x02be) finding plugin interface for usb device
Jul 13 14:25:10 mbp-2 vhusbdosx[13316] : Failed to load descriptors
Jul 13 14:25:10 mbp-2 vhusbdosx[13316] : Error (0x38, 0x0000, 0x02be) finding plugin interface for usb device
Jul 13 14:25:10 mbp-2 vhusbdosx[13316] : Failed to load descriptors

When trying to connect the ACR1281U smart card reader from another Mac, it immediately fails. The server log contains the following:

Jul 13 14:29:02 mbp-2 vhusbdosx[13316] : 192.168.157.139 connected as connection 1
Jul 13 14:29:09 mbp-2 vhusbdosx[13316] : captureDevicePrepare: USBDeviceOpenSeize error kIOReturnExclusiveAccess (exclusive access) at IOService:/IOResources/AppleUSBHostResources/AppleUSBLegacyRoot/AppleUSBXHCI@14000000/ACR1281U@14200000
Jul 13 14:29:09 mbp-2 vhusbdosx[13316] : Error binding device 337641472 [072f:2224] to connection 1, BIND_ERROR

After restarting the server as root, we get the same issue.

Jul 13 14:31:30 mbp-2 vhusbdosx[13364] : >>> Starting VirtualHere USB Server v3.9.5 (Built: Jun 19 2019, 11:35:38)<<<
Jul 13 14:31:30 mbp-2 vhusbdosx[13364] : Warning, cannot lookup the exe path, 22 (Invalid argument) (defaulting to HOME)
Jul 13 14:31:30 mbp-2 vhusbdosx[13364] : Using configuration /Users/pnovak/config.ini
Jul 13 14:31:31 mbp-2 vhusbdosx[13364] : Server licensed to=unlicensed max_devices=1
Jul 13 14:31:31 mbp-2 vhusbdosx[13364] : Disabling usbmuxd
Jul 13 14:31:31 mbp-2 vhusbdosx[13364] : Listening on all network interfaces at TCP port 7575 (IPv6 dual-stack)
Jul 13 14:31:31 mbp-2 vhusbdosx[13364] : Found Full speed device [072f:2224] "ACS, ACR1281U" at address 337641472
Jul 13 14:31:31 mbp-2 vhusbdosx[13364] : Found High speed device [05ac:027c] "Apple Inc., Apple Internal Keyboard / Trackpad" at address 2152726528
Jul 13 14:31:31 mbp-2 vhusbdosx[13364] : Found Full speed device [0c76:161f] "0x0c76, USB PnP Audio Device" at address 340000768
Jul 13 14:31:31 mbp-2 vhusbdosx[13364] : Found Super speed device [0bda:8153] "Realtek, USB 10/100/1000 LAN" at address 2232320
Jul 13 14:31:31 mbp-2 vhusbdosx[13364] : Found Super speed device [2537:1081] "Norelsys, NS1081" at address 2293760
Jul 13 14:31:31 mbp-2 vhusbdosx[13364] : Error (0x38, 0x0000, 0x02be) finding plugin interface for usb device
Jul 13 14:31:31 mbp-2 vhusbdosx[13364] : Failed to load descriptors
Jul 13 14:31:31 mbp-2 vhusbdosx[13364] : Error (0x38, 0x0000, 0x02be) finding plugin interface for usb device
Jul 13 14:31:31 mbp-2 vhusbdosx[13364] : Failed to load descriptors
Jul 13 14:31:31 mbp-2 vhusbdosx[13364] : Found High speed device [05ac:5043] "Apple, Headset" at address 2151677952
Jul 13 14:31:31 mbp-2 vhusbdosx[13364] : Error (0x38, 0x0000, 0x02be) finding plugin interface for usb device
Jul 13 14:31:31 mbp-2 vhusbdosx[13364] : Failed to load descriptors
Jul 13 14:31:31 mbp-2 vhusbdosx[13364] : Error (0x38, 0x0000, 0x02be) finding plugin interface for usb device
Jul 13 14:31:31 mbp-2 vhusbdosx[13364] : Failed to load descriptors
Jul 13 14:31:31 mbp-2 vhusbdosx[13364] : Error (0x38, 0x0000, 0x02be) finding plugin interface for usb device
Jul 13 14:31:31 mbp-2 vhusbdosx[13364] : Failed to load descriptors

Jul 13 14:31:58 mbp-2 vhusbdosx[13364] : 192.168.157.139 connected as connection 1
Jul 13 14:32:13 mbp-2 vhusbdosx[13364] : captureDevicePrepare: USBDeviceOpenSeize error kIOReturnExclusiveAccess (exclusive access) at IOService:/IOResources/AppleUSBHostResources/AppleUSBLegacyRoot/AppleUSBXHCI@14000000/ACR1281U@14200000
Jul 13 14:32:13 mbp-2 vhusbdosx[13364] : Error binding device 337641472 [072f:2224] to connection 1, BIND_ERROR
Jul 13 14:32:24 mbp-2 vhusbdosx[13364] : Connection 1 remotely disconnected gracefully (rx msg size)
Jul 13 14:32:33 mbp-2 vhusbdosx[13364] : Connection 1 successfully removed (reason:timeout)

Our current temporary workaround is to connect the USB Device to a VMware Fusion OpenWRT Linux VM and then run a Linux version of Virtual Here server from there. This workaround is working without issues.

Would you have any recommendation what might be the problem with the macOS server and ho w to fix it?

The client works fine on the same Mac.

Thank you.

Petr

#2

The issue reported by "adendum" on Mon, 2019-07-08 seems to be the same or similar (that issue is written from the point of view of the client, but we have tested the same device and same client on other servers and the problem seems to be the macOS server).

#3

OSX 10.14 has blocked access to smartcards so there is no way around it

#4

Hi Michael,

Thanks a lot for your answer.

This is strange, as VMware is able to do exactly what you are trying to do - on the very same machine I have done the test above, I can still move the same USB device (smart card reader) to a VM and use a Virtual Here server to share it from there. So it must be possible to take a remote control of this USB device like VMware does.

Petr

#5

Yes but i don't want to forcefully remove devices if there are in use elsewhere. Its not reliable.

If this sort of issue is occurring its best to use Linux as the server and plug the smart-card into that. Linux is far superior to either windows or osx as a USB server as its much more robust and flexible and designed to provide maximum compatiblity. (Client side is fine for osx/windows/linux they all work well)

#6

OK, that is effectively what we are doing as a workaround and the moment. The problem is that while I can ask a normal user to install and run a VirtualHere server, I cannot ask them to install and run a Linux VM, that would be too complicated for them. The idea is to have a remote diagnostic for smart card issues for all operating systems - the client side (the Helpdesk) can be a complex setup, but the server side (where the card is) needs to be fairly simple.

#7

Apple is currently implementing new tight restrictions on basically anything outside the app store so its probably just a matter of time before they block access to devices by third party programs not in the app store. Programs that have kernel modules (like virtualhere) cannot be in the app store. So its a wait and see thing to see if apple adds more substantial support for programs like virtualhere