Thanks Oskar for your valuable time.
I updated the udev rules and reloaded and reran the script.
first of all, UBS ACM device is still detected just after all the ODrives are detected (dmesg)
(behaviors certainly changed though explained next):
[ 128.406348] usb 3-1.1.4: New USB device found, idVendor=1209, idProduct=0d32
[ 128.406354] usb 3-1.1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 128.406358] usb 3-1.1.4: Product: ODrive 3.5 CDC Interface
[ 128.406362] usb 3-1.1.4: Manufacturer: ODrive Robotics
[ 128.406366] usb 3-1.1.4: SerialNumber: 208037713548
[ 128.445532] cdc_acm 3-1.1.2:1.0: ttyACM0: USB ACM device
[ 128.448513] cdc_acm 3-1.1.3:1.0: ttyACM1: USB ACM device
[ 128.451809] cdc_acm 3-1.1.4:1.0: ttyACM2: USB ACM device
[ 128.452195] usbcore: registered new interface driver cdc_acm
It took longer for usb error to occur this time.
Before the error occurs, there was a whole page of the following in dmesg:
[ 231.049779] usb 3-1.1.3: reset full-speed USB device number 14 using xhci_hcd
[ 231.151736] cdc_acm 3-1.1.3:1.0: ttyACM1: USB ACM device
[ 231.441773] usb 3-1.1.3: reset full-speed USB device number 14 using xhci_hcd
[ 231.543378] cdc_acm 3-1.1.3:1.0: ttyACM1: USB ACM device
[ 232.397740] usb 3-1.1.3: reset full-speed USB device number 14 using xhci_hcd
[ 232.685485] usb 3-1.1.3: device descriptor read/64, error -71
[ 232.899498] cdc_acm 3-1.1.3:1.0: ttyACM1: USB ACM device
[ 232.981764] usb 3-1.1.3: reset full-speed USB device number 14 using xhci_hcd
[ 233.083210] cdc_acm 3-1.1.3:1.0: ttyACM1: USB ACM device
similar EMI error after exception is thrown:
[ 474.122768] cdc_acm 3-1.1.3:1.0: ttyACM1: USB ACM device
[ 475.833540] usb 3-1.1-port3: disabled by hub (EMI?), re-enabling...
[ 475.834883] usb 3-1.1.3: USB disconnect, device number 55
[ 476.063461] usb 3-1.1.3: new full-speed USB device number 56 using xhci_hcd
[ 476.170091] usb 3-1.1.3: New USB device found, idVendor=1209, idProduct=0d32
Also the exception that is being caught seems to have changed from
AttributeError: ‘RemoteObject’ object has no attribute ...
to
received unexpected ACK: 8068
(number after ACK is different each time)
I added two sigrok captures again to the same link:
https://drive.google.com/drive/folders/1ZsbgBWiQUggRHibgv2StUjEyhWG2lpkM?usp=sharing
EDIT:
I can confirm the blacklist is working (I did upgrade modemmanager from 1.6.4 to 1.8.2 so I can set filter options). But still couldn’t figure out how to stop ubuntu from polling the ACM devices. I’ll post an edit if when I get a chance to try again. I might try opening the USB hubs I have and compare how different USB hub ICs behave. Glad to know there is not a single error packet caused by ODrive in the capture.
>>> sudo mmcli -G DEBUG;
Successfully set logging level
>>> journalctl -f | grep "ModemManager.*\[filter\]"
(plug in ODrive)
ModemManager[1076]: <debug> [filter] (tty/ttyACM0): port filtered: device is blacklisted