I've been trying to get USB/IP working with my scanner. I'm finding a couple of problems.
The first problem is that I can't get it to work using the linux client and VirtualBox. I have a scanner that's not supported by SANE. As a result, I use the Windows drivers and run Windows XP under VirtualBox on my Kubuntu based laptop. The scanner works fine if I plug it into a local USB port on the laptop and enable the device in VirtualBox. It also works fine if I plug it in on the server and use the Windows driver/client inside VirtualBox. What doesn't work is attaching the device using the linux client/driver and then enabling it in VirtualBox, which seems like it will be the most convenient way to set it up. The device seems to attach successfully and it shows up in the list of USB devices in VirtualBox. I even get the Windows "new device" sound when I enable it, but the scanner does not initialize as normally happens when I connect it any other way, nor does it scan anything successfully. Instead, any application that tries to use it freezes. I've played around with the debug output for the client and server, but the information is pretty limited. I'm thinking that perhaps if I could get some more debugging output, such as what type of messages are going back and forth I might be able to see what's different between the Windows driver connecting directly and the VirtualBox USB hub connecting to the linux driver and then going to the server. I didn't see any options for additional debugging output, so will I have to just modify the server sources myself to do so, or is there something already available?
The second problem I'm having is that I'm unable to get devices to disconnect properly. Devices attach fine the first time, but if I disconnect them or shut down the client, I can no longer re-attach them or use them in any way without rebooting the server. I've tried restarting usbipd, unbinding and rebinding the device on the server client reboots, but it seems like once a client has attached to the device, that's it. Nothing else will ever be able to use that USB device until I reboot the server. My server typically runs 24x7 and it's not practical to be rebooting it every time I want to connect a client to use the scanner. How can I cleanly detach from a device and is there any way to fix the problem without a reboot if it wasn't cleanly detached?