Hi,
I'm encountering a strange issue with a Prolific RS232 adapter during loopback testing. My test script sends and receives multiple packets in a for loop at various baud rates (9600, 14400, 115200). Occasionally, I see the message "usbip_core: unknown command" in the logs, and after that, the serial port (/dev/ttyUSB0) is no longer available even though the VirtualHere client (/usr/sbin/vhclientx86_64 -t "LIST") still shows the device as "In-use by you".
Any idea on what might cause this issue?
Additionally, does the VirtualHere client have the usbip_core module built-in, or does it rely on the kernel's usbip_core module? I'm interested in increasing debugging for the usbip_core kernel module on Linux.
Any insights or suggestions would be appreciated!
$ uname -r
6.1.0-32-amd64
$ grep CONFIG_USBIP_DEBUG /boot/config-$(uname -r)
# CONFIG_USBIP_DEBUG is not set
## Instance # 1 - dmesg output with dynamic debugging enabled.
...
...
[Fri Sep 12 15:51:45 2025] vhci_hcd vhci_hcd.0: pdev(0) rhport(0) sockfd(11)
[Fri Sep 12 15:51:45 2025] vhci_hcd vhci_hcd.0: devid(4) speed(2) speed_str(full-speed)
[Fri Sep 12 15:51:45 2025] vhci_hcd vhci_hcd.0: Device attached
[Fri Sep 12 15:51:45 2025] vhci_hcd: vhci_device speed not set
[Fri Sep 12 15:51:45 2025] usb 2-1: new full-speed USB device number 2 using vhci_hcd
[Fri Sep 12 15:51:45 2025] vhci_hcd: vhci_device speed not set
[Fri Sep 12 15:51:45 2025] usb 2-1: SetAddress Request (2) to port 0
[Fri Sep 12 15:51:45 2025] usb 2-1: New USB device found, idVendor=067b, idProduct=2303, bcdDevice= 4.00
[Fri Sep 12 15:51:45 2025] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[Fri Sep 12 15:51:45 2025] usb 2-1: Product: USB-Serial Controller D
[Fri Sep 12 15:51:45 2025] usb 2-1: Manufacturer: Prolific Technology Inc.
[Fri Sep 12 15:51:45 2025] usbcore: registered new interface driver usbserial_generic
[Fri Sep 12 15:51:45 2025] usbserial: USB Serial support registered for generic
[Fri Sep 12 15:51:45 2025] usbcore: registered new interface driver pl2303
[Fri Sep 12 15:51:45 2025] usbserial: USB Serial support registered for pl2303
[Fri Sep 12 15:51:45 2025] pl2303 2-1:1.0: pl2303 converter detected
[Fri Sep 12 15:51:45 2025] usb 2-1: pl2303 converter now attached to ttyUSB0
[Fri Sep 12 15:56:17 2025] usbip_core: BASE: cmd 4 seq 40 devid 4 dir 1 ep 3
[Fri Sep 12 15:56:17 2025] usbip_core: USBIP_RET_UNLINK: status -104
[Fri Sep 12 15:56:17 2025] vhci_hcd: unlink->seqnum 40
[Fri Sep 12 15:56:17 2025] vhci_hcd: urb->status -104
[Fri Sep 12 15:56:17 2025] usbip_core: BASE: cmd 4 seq 41 devid 4 dir 1 ep 3
[Fri Sep 12 15:56:17 2025] usbip_core: USBIP_RET_UNLINK: status -104
....
....
[Fri Sep 12 15:56:54 2025] usbip_core: BASE: cmd 4 seq 3906 devid 4 dir 1 ep 3
[Fri Sep 12 15:56:54 2025] usbip_core: USBIP_RET_UNLINK: status -104
[Fri Sep 12 15:56:54 2025] vhci_hcd: unlink->seqnum 3906
[Fri Sep 12 15:56:54 2025] vhci_hcd: urb->status -104
[Fri Sep 12 15:56:54 2025] usbip_core: unknown command
[Fri Sep 12 15:56:54 2025] vhci_hcd: unknown pdu 262144
[Fri Sep 12 15:56:54 2025] usbip_core: BASE: cmd 262144 seq 65536 devid 262143 dir 4288151552 ep 0
[Fri Sep 12 15:56:54 2025] usbip_core: unknown command
[Fri Sep 12 15:56:54 2025] vhci_hcd: stop threads
[Fri Sep 12 15:56:54 2025] vhci_hcd: release socket
[Fri Sep 12 15:56:54 2025] vhci_hcd: disconnect device
[Fri Sep 12 15:56:54 2025] usb 2-1: USB disconnect, device number 2
[Fri Sep 12 15:56:54 2025] pl2303 ttyUSB0: error sending break = -110
[Fri Sep 12 15:56:54 2025] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0
[Fri Sep 12 15:56:54 2025] pl2303 2-1:1.0: device disconnected
....
....
## Instance # 2 - dmesg output with dynamic debugging enabled.
...
...
[Fri Sep 5 16:30:46 2025] vhci_hcd: urb->status -104
[Fri Sep 5 16:30:47 2025] usbip_core: BASE: cmd 4 seq 375229 devid 5 dir 1 ep 3
[Fri Sep 5 16:30:47 2025] usbip_core: USBIP_RET_UNLINK: status -104
[Fri Sep 5 16:30:47 2025] vhci_hcd: unlink->seqnum 375229
[Fri Sep 5 16:30:47 2025] vhci_hcd: urb->status -104
[Fri Sep 5 16:30:47 2025] usbip_core: unknown command
[Fri Sep 5 16:30:47 2025] vhci_hcd: unknown pdu 327680
[Fri Sep 5 16:30:47 2025] usbip_core: BASE: cmd 327680 seq 65536 devid 262143 dir 4288151552 ep 0
[Fri Sep 5 16:30:47 2025] usbip_core: unknown command
[Fri Sep 5 16:30:47 2025] vhci_hcd: stop threads
[Fri Sep 5 16:30:47 2025] vhci_hcd: release socket
[Fri Sep 5 16:30:47 2025] vhci_hcd: disconnect device
[Fri Sep 5 16:30:47 2025] usb 2-2: USB disconnect, device number 27
[Fri Sep 5 16:30:47 2025] pl2303 ttyUSB1: error sending break = -19
[Fri Sep 5 16:30:47 2025] pl2303 ttyUSB1: pl2303 converter now disconnected from ttyUSB1
[Fri Sep 5 16:30:47 2025] pl2303 2-2:1.0: device disconnected
...
...
Thanks
.
Virtualhere has no built-in modules. It uses the Linux kernel usbip-core and vhci_hcd kernel drivers that are standard Linux and translates the virtualhere protocol to/from those modules.
(Virtualhere client cannot include any kernel modules as every kernel is different and the modules would need header files to be compiled from source etc)
You can use the any Linux debugging settings and recompile the kernel module to add debugging if you need to or use the module debug flags.
Looking here https://github.com/search?q=repo%3Atorvalds%2Flinux%20%22unknown%20command%22&type=code scroll down and find anything usbip related and thats where the msg is coming from.
If you are getting weird errors like this, the first thing is to update to the very latest stable kernel if you can e.g at this time 6.16. Then there are still issues its likely the prolific device itself. Perhaps the latency is quite high and the firmware inside the chip is overflowing (or underflowing). It would depend on network latency of the USB signal.
Any serial type device, should always be connected via ethernet (and not wifi) via virtualhere to minimize latency.