USE command returns FAILED on UNIX clients. Windows client works fine.

Hello,

I am using a Raspberry Pi (1st edition) with Raspbian jessy lite as Server with VirtualHere:

pi@serialpi:~ $ uname -a
Linux serialpi 4.4.34+ #930 Wed Nov 23 15:12:30 GMT 2016 armv6l GNU/Linux
vhusbdarm v3.2.3

When trying to mount a USB device on either Ubuntu 16.04 LTS or Debian Jessy it fails:
When using a Windows Client, it works fine.
Please point me in the right direction.

Debian Jessy Client:

root@debian:~# uname -a
Linux debian 3.16.0-4-amd64 #1 SMP Debian 3.16.39-1 (2016-12-30) x86_64 GNU/Linux
VirtualHere Client 3.9.6, Use USB devices over a network
root@debian:~# ./vhclientx86_64 -t "LIST"
VirtualHere Client IPC, below are the available devices:
(Value in brackets = address, * = Auto-Use)

Raspberry Hub (serialpi:7575)
--> FT232R USB UART (serialpi.113)

Auto-Find currently on
Auto-Use All currently off
Reverse Lookup currently off
VirtualHere Client is running as a service
root@debian:~# ./vhclientx86_64 -t "USE,serialpi.113"
FAILED
root@debian:~#

Latest output from DMESG:

[ 331.195758] usbcore: registered new interface driver usbfs
[ 331.195782] usbcore: registered new interface driver hub
[ 331.195905] usbcore: registered new device driver usb
[ 331.197007] usbip_core: module is from the staging directory, the quality is unknown, you have been warned.
[ 331.197256] usbip_core: USB/IP Core v1.0.0
[ 331.197725] vhci_hcd: module is from the staging directory, the quality is unknown, you have been warned.
[ 331.198023] vhci_hcd vhci_hcd: USB/IP Virtual Host Controller
[ 331.198026] vhci_hcd vhci_hcd: new USB bus registered, assigned bus number 1
[ 331.199289] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[ 331.199292] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 331.199293] usb usb1: Product: USB/IP Virtual Host Controller
[ 331.199295] usb usb1: Manufacturer: Linux 3.16.0-4-amd64 vhci_hcd
[ 331.199296] usb usb1: SerialNumber: vhci_hcd
[ 331.199535] hub 1-0:1.0: USB hub found
[ 331.199567] hub 1-0:1.0: 8 ports detected
[ 331.199715] vhci_hcd: USB/IP 'Virtual' Host Controller (VHCI) Driver v1.0.0
[ 824.879296] usbip_host: module is from the staging directory, the quality is unknown, you have been warned.
[ 824.880021] usbcore: registered new device driver usbip-host
[ 824.880184] usbip_host: USB/IP Host Driver v1.0.0

Ubuntu 16.04 LTS Client:

vincent@SOLAREDGE:~$ uname -a
Linux SOLAREDGE 4.4.0-62-generic #83-Ubuntu SMP Wed Jan 18 14:10:15 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
VirtualHere Client 3.9.6, Use USB devices over a network
vincent@SOLAREDGE:~$ sudo ./vhclientx86_64 -t "LIST"
VirtualHere Client IPC, below are the available devices:
(Value in brackets = address, * = Auto-Use)

Raspberry Hub (serialpi:7575)
*--> FT232R USB UART (serialpi.113)

Auto-Find currently on
Auto-Use All currently on
Reverse Lookup currently off
VirtualHere Client is running as a service
vincent@SOLAREDGE:~$ sudo ./vhclientx86_64 -t "USE,serialpi.113"
FAILED
vincent@SOLAREDGE:~$

Latest output from DMESG:

[175072.337535] usbip_core: USB/IP Core v1.0.0
[175072.343022] vhci_hcd vhci_hcd: USB/IP Virtual Host Controller
[175072.343399] vhci_hcd vhci_hcd: new USB bus registered, assigned bus number 1
[175072.343688] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[175072.343690] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[175072.343692] usb usb1: Product: USB/IP Virtual Host Controller
[175072.343693] usb usb1: Manufacturer: Linux 4.4.0-62-generic vhci_hcd
[175072.343695] usb usb1: SerialNumber: vhci_hcd
[175072.343969] hub 1-0:1.0: USB hub found
[175072.343978] hub 1-0:1.0: 8 ports detected
[175072.344230] vhci_hcd: USB/IP 'Virtual' Host Controller (VHCI) Driver v1.0.0
vincent@SOLAREDGE:~$

#2

The server needs to be purchased if you run the client as a service

#3

Hello Michael,

Indeed, solved by buying a license.
It would be nice to have a more clear error instead of just "FAILED".

#4

Yeah this does need to be a lot clearer, just wasted many hours and nearly put me off buying it

However, i can't buy a licence until my new hardware arrives (Rpi4) is this 100% guaranteed to work?

#6

Don't want to be that guy, but yeah "FAILED" isn't helpful, people scan documentation these days and skip to code snippets. Just a "LICENCE" would be helpful.

Also on that note, it's really hard to test when I have to buy a licence, no problem doing that, but I'm trying to test zwave/zigbee sticks and want to make sure they work first, or I'll have to go down a different route

#7

You can use the GUI client for Linux and that will work in trial mode

#8

Sure... but running on headless servers makes that kinda hard :(

I do wonder if could do licensing/trial in more flexible way? As you attach to the server based on a unique hardware key? (As you can't transfer the licence from my understanding), wondering if it makes sense to do a 7 day trial (or similar) makes it much easier to test everything, then pay once we have confirmed. 
It's a really cool product, I want to support you, just needing to test actual use case is super important, esp with weird things like these zwave/zigbee sticks.

Cheers!

#9

There are several reasons why it works as it does

  1. The API returns FAILED when any API call doesn't work. Returning "invalid license" etc JUST for that call so all scripts have to handle is not a good idea. This is a documentation issue, and is not related to the API, that is why it returns FAILED.
  2. The license is very cheap, (check any of the other competitors), and you have unlimited use of one device for the GUI.  If the license cost is a big deal you may not be the target market for virtualhere. In this case the open source USBIP is a good idea, but its buggy doesnt work on mac and windows needs test signing.
  3. It doesn't work as a service free for the client because virtualhere gets stolen otherwise. Companies put their own GUI and hide virtualhere hence the restriction
  4. The license is restricted to one server device because i dont charge for updates, its not a subscription service and its not reasonable for me to provide unlimited updates for unlimited machines for unlimited time. I cant be bothered with that, i got a life :)