USB serial device Passthrough fails after a short while

Red Squirrel

Renowned Member
May 31, 2014
50
9
73
I'm working on virtualizing my home automation server, it has two USB devices that act as a serial device, the first device is a relay controller with temp sensors and that one works. The other one is an Arduino. For some reason, that one only works if I disconnect and reconnect it. So if I reboot the VM, it won't pick it up. It shows up in /dev and the Udev rule picks it up, but it's not responsive.

Is there a way to get this to work so I don't need to keep unplugging and plugging it back in? If I try to connect to it with Picocom I get nothing. It does show up in dmesg at system startup so it is being detected but for whatever reason it won't pass any traffic until I unplug and plug it back in again.


EDIT: Just realized that what really happens is that it works for a short while then dies. After I manually reset it I was getting traffic then it just stopped. This is what I get in DMESG, wonder if the first line or the last line might help diagnose this.

Code:
[  469.663011] xhci_hcd 0000:02:1b.0: WARN Set TR Deq Ptr cmd failed due to incorrect slot or ep state.
[  469.672503] usb 2-2: USB disconnect, device number 3
[  474.023054] usb 2-2: new full speed USB device number 4 using xhci_hcd
[  474.141347] usb 2-2: New USB device found, idVendor=2341, idProduct=0043
[  474.141350] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=220
[  474.141352] usb 2-2: Manufacturer: Arduino (www.arduino.cc)
[  474.141353] usb 2-2: SerialNumber: 74934303030351C04081
[  474.141424] usb 2-2: configuration #1 chosen from 1 choice
[  474.141429] usb 2-2: ep 0x82 - rounding interval to 1024 microframes, ep desc says 2040 microframes
[  474.141716] cdc_acm 2-2:1.0: ttyACM1: USB ACM device
 
Last edited:
I've been doing more troubleshooting on this but not really getting anywhere. It's also affecting the other USB device, but that one seems to last longer, like 10 hours.

The devices don't actually drop out or anything they just stop responding. Can still connect with picocom but can't do anything. This didn't happen on the physical server. I virtualized the OS so it's a clone of the physical server.

Any idea what could be going on?