USB Audio device. Works then doesn't work after some time of not being used

I have a Linux laptop connected to a virtualhere server on a Zimmaboard running the Goldmont server version. It runs as a service using init.d and loads and unloads perfectly fine. On initial loading of the system, everything seems to be running fine. The server is connected through ethernet and the laptop is also connected through ethernet. The server is connected to a Beringher X16 audio mixer device. 

Initially, the sound comes through nice and clear with very few errors. After a while, if you haven't sent any audio to the soundcard, the audio is all stuttery and slow. If there is a video attached to the audio, it also becomes stuttering and slow to match the audio. If I restart the service the USB disconnects on the laptop and after 30 seconds or so, it reconnects. The audio stuttering does not go away after restarting the service. If I reboot the Zimmaboard, the issue goes away and the audio is clear for the first time used. After some time of being idle, the issue comes back if you don't use it after a while

Is there a setting or something that I can change to troubleshoot this problem? If so where is the config file, since I installed the service using the online script?

Any help would be appreciated. 

#2

Im wondering if it might be going to sleep. Can you use the audio via virtualhere and then open Windows Device manager on the client pc.

In the Device Manager menu select View ->By Connection from the menu 

Then go to Virtualhere USB 3 eXtensible Host Controller and for each device under there right click it it and go to the "Power Events" tab (if it has one) and UNcheck allow windows to turn off device to save power.

BTW; the settings are in /usr/local/etc/virtualhere/config.ini

Stop the virtualhere service before hand by typing 

systemctl stop virtualhere

<edit the config.ini file>

systemctl start virtualhere

 

#3

oh.. the laptop is Linux.. not windows.. does that make a difference here?

#4

OK that's a bit more helpful because Linux has quite good debugging messages.

Can you do this:

  1. tail -f /var/log/syslog and watch that in a terminal window
  2.  Run the audio streaming via virtualhere and watch any urb... messages in the syslog.
  3. Leave it for a while then try it again and see if there are (more) urb... messages in the syslog.

     

#5

I get this in normal working operations:

Dec 13 11:09:07 Dell-G5-Manjaro kernel: vhci_get_frame_number: 12942 callbacks suppressed
Dec 13 11:09:07 Dell-G5-Manjaro kernel: usb usb3: Not yet implemented
Dec 13 11:09:07 Dell-G5-Manjaro kernel: usb usb3: Not yet implemented
Dec 13 11:09:07 Dell-G5-Manjaro kernel: usb usb3: Not yet implemented
Dec 13 11:09:07 Dell-G5-Manjaro kernel: usb usb3: Not yet implemented
Dec 13 11:09:07 Dell-G5-Manjaro kernel: usb usb3: Not yet implemented
Dec 13 11:09:07 Dell-G5-Manjaro kernel: usb usb3: Not yet implemented
Dec 13 11:09:07 Dell-G5-Manjaro kernel: usb usb3: Not yet implemented
Dec 13 11:09:07 Dell-G5-Manjaro kernel: usb usb3: Not yet implemented
Dec 13 11:09:07 Dell-G5-Manjaro kernel: usb usb3: Not yet implemented
Dec 13 11:09:07 Dell-G5-Manjaro kernel: usb usb3: Not yet implemented
Dec 13 11:09:12 Dell-G5-Manjaro kernel: vhci_get_frame_number: 12933 callbacks suppressed
Dec 13 11:09:12 Dell-G5-Manjaro kernel: usb usb3: Not yet implemented
Dec 13 11:09:12 Dell-G5-Manjaro kernel: usb usb3: Not yet implemented
Dec 13 11:09:12 Dell-G5-Manjaro kernel: usb usb3: Not yet implemented
Dec 13 11:09:12 Dell-G5-Manjaro kernel: usb usb3: Not yet implemented
Dec 13 11:09:12 Dell-G5-Manjaro kernel: usb usb3: Not yet implemented
Dec 13 11:09:12 Dell-G5-Manjaro kernel: usb usb3: Not yet implemented
Dec 13 11:09:12 Dell-G5-Manjaro kernel: usb usb3: Not yet implemented
Dec 13 11:09:12 Dell-G5-Manjaro kernel: usb usb3: Not yet implemented
Dec 13 11:09:12 Dell-G5-Manjaro kernel: usb usb3: Not yet implemented
Dec 13 11:09:12 Dell-G5-Manjaro kernel: usb usb3: Not yet implemented

 .......

Dec 13 11:27:21 Dell-G5-Manjaro kernel: vhci_get_frame_number: 11995 callbacks suppressed
Dec 13 11:27:21 Dell-G5-Manjaro kernel: usb usb3: Not yet implemented
Dec 13 11:27:21 Dell-G5-Manjaro kernel: usb usb3: Not yet implemented
Dec 13 11:27:21 Dell-G5-Manjaro kernel: usb usb3: Not yet implemented
Dec 13 11:27:21 Dell-G5-Manjaro kernel: usb usb3: Not yet implemented
Dec 13 11:27:21 Dell-G5-Manjaro kernel: usb usb3: Not yet implemented
Dec 13 11:27:21 Dell-G5-Manjaro kernel: usb usb3: Not yet implemented
Dec 13 11:27:21 Dell-G5-Manjaro kernel: usb usb3: Not yet implemented
Dec 13 11:27:21 Dell-G5-Manjaro kernel: usb usb3: Not yet implemented
Dec 13 11:27:21 Dell-G5-Manjaro kernel: usb usb3: Not yet implemented
Dec 13 11:27:21 Dell-G5-Manjaro kernel: usb usb3: Not yet implemented
Dec 13 11:27:23 Dell-G5-Manjaro kernel: vhci_hcd: unlink->seqnum 861218
Dec 13 11:27:23 Dell-G5-Manjaro kernel: vhci_hcd: urb->status -104
Dec 13 11:27:23 Dell-G5-Manjaro kernel: vhci_hcd: unlink->seqnum 861219
Dec 13 11:27:23 Dell-G5-Manjaro kernel: vhci_hcd: urb->status -104
Dec 13 11:27:23 Dell-G5-Manjaro kernel: vhci_hcd: unlink->seqnum 861220
Dec 13 11:27:23 Dell-G5-Manjaro kernel: vhci_hcd: urb->status -104
Dec 13 11:27:23 Dell-G5-Manjaro kernel: vhci_hcd: unlink->seqnum 861221
Dec 13 11:27:23 Dell-G5-Manjaro kernel: vhci_hcd: urb->status -104
Dec 13 11:27:23 Dell-G5-Manjaro kernel: vhci_hcd: unlink->seqnum 861222
Dec 13 11:27:23 Dell-G5-Manjaro kernel: vhci_hcd: urb->status -104
Dec 13 11:27:23 Dell-G5-Manjaro kernel: vhci_hcd: unlink->seqnum 861223
Dec 13 11:27:23 Dell-G5-Manjaro kernel: vhci_hcd: urb->status -104

 

I haven't had it fail surprisingly yet, but I see that status -104 happens quite a bit for now. Will update if I get the slowdown happen again

 

#6

I think you should switch to a windows client instead if you can. The reason is some functionality (specifically frame numbering) is missing in the linux kernel which i think is related to this issue.

#8

Interesting. Virtualhere works the same all the time. It never drops or corrupts packets.  Can you do this

In the virtualhere client right click USB Hubs->Statistics and watch that graph . Let it run and the when you get the stuttering have a look at the latency and see if that changes

#9

I can't say I can see that option under USB Hubs -> Statistics in either Linux or Windows?

#10

Sorry i mean USB Hubs->About->Statistics