Hello everyone,
I am currently using the NVIDIA JETSON AGX ORIN developer kit, and have been troubled by USB issues for a long time. I have several USB TTY devices (FT232BL, CH341, PL2303) or USB ACM devices (Ublox f9p, teensy 4.1), and the COM ports of these devices become invalid after opening them one to three times, rendering them unable to be read from or written to unless the devices are unplugged or reset. This problem persists from JP5.0 to the current 5.1.1, and I have not seen any relevant messages in dmesg. Could you please advise me on how to deal with this issue? If more information is needed, please let me know. Thank you.
dmesg:
[ 871.226312] usb 1-4.4: new full-speed USB device number 17 using tegra-xusb
[ 871.333671] usb 1-4.4: New USB device found, idVendor=067b, idProduct=2303, bcdDevice= 3.00
[ 871.333683] usb 1-4.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 871.333687] usb 1-4.4: Product: USB-Serial Controller
[ 871.333691] usb 1-4.4: Manufacturer: Prolific Technology Inc.
[ 871.336067] pl2303 1-4.4:1.0: pl2303 converter detected
[ 871.351551] usb 1-4.4: pl2303 converter now attached to ttyUSB0
[ 1290.330887] pl2303 ttyUSB0: pl2303_set_control_lines - failed: -19
[ 1290.337340] pl2303 ttyUSB0: error sending break = -19
[ 1290.342829] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0
[ 1290.342864] pl2303 1-4.4:1.0: device disconnected
[ 1302.071158] usb 1-4.4: new full-speed USB device number 18 using tegra-xusb
[ 1317.458990] usb 1-4.4: device descriptor read/64, error -110
[ 1333.282838] usb 1-4.4: device descriptor read/64, error -110
[ 1333.478792] usb 1-4.4: new full-speed USB device number 19 using tegra-xusb
[ 1351.226676] usb 1-4.3: new full-speed USB device number 20 using tegra-xusb
[ 1351.333284] usb 1-4.3: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.64
[ 1351.333288] usb 1-4.3: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[ 1351.333290] usb 1-4.3: Product: USB Serial
[ 1351.335371] ch341 1-4.3:1.0: ch341-uart converter detected
[ 1351.342506] usb 1-4.3: ch341-uart converter now attached to ttyUSB0
[ 1398.106089] usb 1-4.3: USB disconnect, device number 20
[ 1398.106713] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[ 1398.106758] ch341 1-4.3:1.0: device disconnected
[ 1502.607577] usb 1-4.3: new full-speed USB device number 26 using tegra-xusb
[ 1502.691397] usb 1-4.3: device descriptor read/64, error -32
[ 1502.883419] usb 1-4.3: device descriptor read/64, error -32
[ 1503.079380] usb 1-4.3: new full-speed USB device number 27 using tegra-xusb
[ 1503.190799] usb 1-4.3: New USB device found, idVendor=1546, idProduct=01a9, bcdDevice= 1.00
[ 1503.190808] usb 1-4.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 1503.190813] usb 1-4.3: Product: u-blox GNSS receiver
[ 1503.190816] usb 1-4.3: Manufacturer: u-blox AG - www.u-blox.com
[ 1503.193133] cdc_acm 1-4.3:1.0: ttyACM0: USB ACM device
udevadm info:
orin@orin:~$ udevadm info --name=/dev/ttyUSB0 --attribute-walk
Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.
looking at device '/devices/platform/3610000.xhci/usb1/1-4/1-4.4/1-4.4:1.0/ttyUSB0/tty/ttyUSB0':
KERNEL=="ttyUSB0"
SUBSYSTEM=="tty"
DRIVER==""
looking at parent device '/devices/platform/3610000.xhci/usb1/1-4/1-4.4/1-4.4:1.0/ttyUSB0':
KERNELS=="ttyUSB0"
SUBSYSTEMS=="usb-serial"
DRIVERS=="pl2303"
ATTRS{port_number}=="0"
looking at parent device '/devices/platform/3610000.xhci/usb1/1-4/1-4.4/1-4.4:1.0':
KERNELS=="1-4.4:1.0"
SUBSYSTEMS=="usb"
DRIVERS=="pl2303"
ATTRS{bInterfaceNumber}=="00"
ATTRS{bNumEndpoints}=="03"
ATTRS{bAlternateSetting}==" 0"
ATTRS{authorized}=="1"
ATTRS{supports_autosuspend}=="1"
ATTRS{bInterfaceClass}=="ff"
ATTRS{bInterfaceSubClass}=="00"
ATTRS{bInterfaceProtocol}=="00"
looking at parent device '/devices/platform/3610000.xhci/usb1/1-4/1-4.4':
KERNELS=="1-4.4"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{bmAttributes}=="80"
ATTRS{bNumConfigurations}=="1"
ATTRS{bDeviceProtocol}=="00"
ATTRS{bMaxPacketSize0}=="64"
ATTRS{tx_lanes}=="1"
ATTRS{manufacturer}=="Prolific Technology Inc."
ATTRS{bNumInterfaces}==" 1"
ATTRS{rx_lanes}=="1"
ATTRS{removable}=="unknown"
ATTRS{ltm_capable}=="no"
ATTRS{maxchild}=="0"
ATTRS{bDeviceSubClass}=="00"
ATTRS{urbnum}=="324"
ATTRS{devnum}=="17"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{idProduct}=="2303"
ATTRS{bDeviceClass}=="00"
ATTRS{quirks}=="0x0"
ATTRS{speed}=="12"
ATTRS{devpath}=="4.4"
ATTRS{product}=="USB-Serial Controller"
ATTRS{version}==" 1.10"
ATTRS{bcdDevice}=="0300"
ATTRS{idVendor}=="067b"
ATTRS{devspec}=="(null)"
ATTRS{bMaxPower}=="100mA"
ATTRS{bConfigurationValue}=="1"
ATTRS{configuration}==""
ATTRS{authorized}=="1"
ATTRS{busnum}=="1"
looking at parent device '/devices/platform/3610000.xhci/usb1/1-4':
KERNELS=="1-4"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{urbnum}=="261"
ATTRS{bMaxPower}=="0mA"
ATTRS{bDeviceClass}=="09"
ATTRS{authorized}=="1"
ATTRS{tx_lanes}=="1"
ATTRS{bConfigurationValue}=="1"
ATTRS{idProduct}=="5420"
ATTRS{devnum}=="3"
ATTRS{devpath}=="4"
ATTRS{bNumInterfaces}==" 1"
ATTRS{maxchild}=="4"
ATTRS{devspec}=="(null)"
ATTRS{busnum}=="1"
ATTRS{bmAttributes}=="e0"
ATTRS{bDeviceProtocol}=="02"
ATTRS{bcdDevice}=="0140"
ATTRS{rx_lanes}=="1"
ATTRS{speed}=="480"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{bMaxPacketSize0}=="64"
ATTRS{product}=="4-Port USB 2.0 Hub"
ATTRS{configuration}==""
ATTRS{idVendor}=="0bda"
ATTRS{ltm_capable}=="no"
ATTRS{manufacturer}=="Generic"
ATTRS{removable}=="unknown"
ATTRS{version}==" 2.10"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bNumConfigurations}=="1"
ATTRS{quirks}=="0x0"
looking at parent device '/devices/platform/3610000.xhci/usb1':
KERNELS=="usb1"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{busnum}=="1"
ATTRS{version}==" 2.00"
ATTRS{quirks}=="0x0"
ATTRS{maxchild}=="4"
ATTRS{manufacturer}=="Linux 5.10.104-tegra xhci-hcd"
ATTRS{bMaxPower}=="0mA"
ATTRS{devnum}=="1"
ATTRS{removable}=="unknown"
ATTRS{serial}=="3610000.xhci"
ATTRS{rx_lanes}=="1"
ATTRS{bDeviceProtocol}=="01"
ATTRS{idProduct}=="0002"
ATTRS{bNumInterfaces}==" 1"
ATTRS{interface_authorized_default}=="1"
ATTRS{tx_lanes}=="1"
ATTRS{ltm_capable}=="no"
ATTRS{bNumConfigurations}=="1"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{bmAttributes}=="e0"
ATTRS{configuration}==""
ATTRS{bDeviceClass}=="09"
ATTRS{bcdDevice}=="0510"
ATTRS{authorized_default}=="1"
ATTRS{idVendor}=="1d6b"
ATTRS{product}=="xHCI Host Controller"
ATTRS{bConfigurationValue}=="1"
ATTRS{urbnum}=="36"
ATTRS{devpath}=="0"
ATTRS{speed}=="480"
ATTRS{bDeviceSubClass}=="00"
ATTRS{authorized}=="1"
ATTRS{bMaxPacketSize0}=="64"
looking at parent device '/devices/platform/3610000.xhci':
KERNELS=="3610000.xhci"
SUBSYSTEMS=="platform"
DRIVERS=="tegra-xusb"
ATTRS{driver_override}=="(null)"
looking at parent device '/devices/platform':
KERNELS=="platform"
SUBSYSTEMS==""
DRIVERS==""
orin@orin:~$ udevadm info --name=/dev/ttyUSB0 --attribute-walk
Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.
looking at device '/devices/platform/3610000.xhci/usb1/1-4/1-4.3/1-4.3:1.0/ttyUSB0/tty/ttyUSB0':
KERNEL=="ttyUSB0"
SUBSYSTEM=="tty"
DRIVER==""
looking at parent device '/devices/platform/3610000.xhci/usb1/1-4/1-4.3/1-4.3:1.0/ttyUSB0':
KERNELS=="ttyUSB0"
SUBSYSTEMS=="usb-serial"
DRIVERS=="ch341-uart"
ATTRS{port_number}=="0"
looking at parent device '/devices/platform/3610000.xhci/usb1/1-4/1-4.3/1-4.3:1.0':
KERNELS=="1-4.3:1.0"
SUBSYSTEMS=="usb"
DRIVERS=="ch341"
ATTRS{bAlternateSetting}==" 0"
ATTRS{authorized}=="1"
ATTRS{bInterfaceNumber}=="00"
ATTRS{bInterfaceSubClass}=="01"
ATTRS{bNumEndpoints}=="03"
ATTRS{bInterfaceProtocol}=="02"
ATTRS{bInterfaceClass}=="ff"
ATTRS{supports_autosuspend}=="1"
looking at parent device '/devices/platform/3610000.xhci/usb1/1-4/1-4.3':
KERNELS=="1-4.3"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{quirks}=="0x0"
ATTRS{bcdDevice}=="0264"
ATTRS{speed}=="12"
ATTRS{maxchild}=="0"
ATTRS{ltm_capable}=="no"
ATTRS{rx_lanes}=="1"
ATTRS{devspec}=="(null)"
ATTRS{removable}=="unknown"
ATTRS{authorized}=="1"
ATTRS{configuration}==""
ATTRS{bMaxPower}=="98mA"
ATTRS{bMaxPacketSize0}=="8"
ATTRS{bConfigurationValue}=="1"
ATTRS{product}=="USB Serial"
ATTRS{busnum}=="1"
ATTRS{bNumConfigurations}=="1"
ATTRS{idProduct}=="7523"
ATTRS{bmAttributes}=="80"
ATTRS{version}==" 1.10"
ATTRS{bNumInterfaces}==" 1"
ATTRS{urbnum}=="15"
ATTRS{devpath}=="4.3"
ATTRS{devnum}=="20"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{bDeviceClass}=="ff"
ATTRS{idVendor}=="1a86"
ATTRS{tx_lanes}=="1"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bDeviceProtocol}=="00"
looking at parent device '/devices/platform/3610000.xhci/usb1/1-4':
KERNELS=="1-4"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{product}=="4-Port USB 2.0 Hub"
ATTRS{bcdDevice}=="0140"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bDeviceProtocol}=="02"
ATTRS{bNumInterfaces}==" 1"
ATTRS{tx_lanes}=="1"
ATTRS{bDeviceClass}=="09"
ATTRS{devpath}=="4"
ATTRS{manufacturer}=="Generic"
ATTRS{busnum}=="1"
ATTRS{urbnum}=="354"
ATTRS{devnum}=="3"
ATTRS{bmAttributes}=="e0"
ATTRS{bMaxPacketSize0}=="64"
ATTRS{idProduct}=="5420"
ATTRS{bMaxPower}=="0mA"
ATTRS{configuration}==""
ATTRS{ltm_capable}=="no"
ATTRS{speed}=="480"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{devspec}=="(null)"
ATTRS{maxchild}=="4"
ATTRS{quirks}=="0x0"
ATTRS{rx_lanes}=="1"
ATTRS{idVendor}=="0bda"
ATTRS{bConfigurationValue}=="1"
ATTRS{version}==" 2.10"
ATTRS{removable}=="unknown"
ATTRS{authorized}=="1"
ATTRS{bNumConfigurations}=="1"
looking at parent device '/devices/platform/3610000.xhci/usb1':
KERNELS=="usb1"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{manufacturer}=="Linux 5.10.104-tegra xhci-hcd"
ATTRS{tx_lanes}=="1"
ATTRS{busnum}=="1"
ATTRS{bMaxPower}=="0mA"
ATTRS{bNumInterfaces}==" 1"
ATTRS{devpath}=="0"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{bConfigurationValue}=="1"
ATTRS{speed}=="480"
ATTRS{product}=="xHCI Host Controller"
ATTRS{bcdDevice}=="0510"
ATTRS{rx_lanes}=="1"
ATTRS{version}==" 2.00"
ATTRS{removable}=="unknown"
ATTRS{maxchild}=="4"
ATTRS{quirks}=="0x0"
ATTRS{bDeviceClass}=="09"
ATTRS{bmAttributes}=="e0"
ATTRS{devnum}=="1"
ATTRS{bDeviceProtocol}=="01"
ATTRS{ltm_capable}=="no"
ATTRS{urbnum}=="36"
ATTRS{bMaxPacketSize0}=="64"
ATTRS{interface_authorized_default}=="1"
ATTRS{bDeviceSubClass}=="00"
ATTRS{authorized}=="1"
ATTRS{authorized_default}=="1"
ATTRS{bNumConfigurations}=="1"
ATTRS{configuration}==""
ATTRS{idProduct}=="0002"
ATTRS{serial}=="3610000.xhci"
ATTRS{idVendor}=="1d6b"
looking at parent device '/devices/platform/3610000.xhci':
KERNELS=="3610000.xhci"
SUBSYSTEMS=="platform"
DRIVERS=="tegra-xusb"
ATTRS{driver_override}=="(null)"
looking at parent device '/devices/platform':
KERNELS=="platform"
SUBSYSTEMS==""
DRIVERS==""
orin@orin:~$ udevadm info --name=/dev/ttyACM0 --attribute-walk
Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.
looking at device '/devices/platform/3610000.xhci/usb1/1-4/1-4.3/1-4.3:1.0/tty/ttyACM0':
KERNEL=="ttyACM0"
SUBSYSTEM=="tty"
DRIVER==""
looking at parent device '/devices/platform/3610000.xhci/usb1/1-4/1-4.3/1-4.3:1.0':
KERNELS=="1-4.3:1.0"
SUBSYSTEMS=="usb"
DRIVERS=="cdc_acm"
ATTRS{bInterfaceClass}=="02"
ATTRS{bInterfaceSubClass}=="02"
ATTRS{supports_autosuspend}=="1"
ATTRS{bInterfaceNumber}=="00"
ATTRS{bmCapabilities}=="2"
ATTRS{bNumEndpoints}=="01"
ATTRS{authorized}=="1"
ATTRS{bInterfaceProtocol}=="01"
ATTRS{bAlternateSetting}==" 0"
looking at parent device '/devices/platform/3610000.xhci/usb1/1-4/1-4.3':
KERNELS=="1-4.3"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{maxchild}=="0"
ATTRS{bmAttributes}=="c0"
ATTRS{bcdDevice}=="0100"
ATTRS{configuration}==""
ATTRS{devnum}=="27"
ATTRS{idVendor}=="1546"
ATTRS{manufacturer}=="u-blox AG - www.u-blox.com"
ATTRS{bMaxPower}=="0mA"
ATTRS{bMaxPacketSize0}=="64"
ATTRS{devpath}=="4.3"
ATTRS{tx_lanes}=="1"
ATTRS{product}=="u-blox GNSS receiver"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bNumConfigurations}=="1"
ATTRS{devspec}=="(null)"
ATTRS{ltm_capable}=="no"
ATTRS{bDeviceProtocol}=="00"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{bDeviceClass}=="02"
ATTRS{bConfigurationValue}=="1"
ATTRS{authorized}=="1"
ATTRS{bNumInterfaces}==" 2"
ATTRS{speed}=="12"
ATTRS{busnum}=="1"
ATTRS{urbnum}=="125"
ATTRS{removable}=="unknown"
ATTRS{version}==" 1.10"
ATTRS{quirks}=="0x0"
ATTRS{rx_lanes}=="1"
ATTRS{idProduct}=="01a9"
looking at parent device '/devices/platform/3610000.xhci/usb1/1-4':
KERNELS=="1-4"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{quirks}=="0x0"
ATTRS{speed}=="480"
ATTRS{devnum}=="3"
ATTRS{product}=="4-Port USB 2.0 Hub"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bmAttributes}=="e0"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{rx_lanes}=="1"
ATTRS{devpath}=="4"
ATTRS{tx_lanes}=="1"
ATTRS{bDeviceClass}=="09"
ATTRS{maxchild}=="4"
ATTRS{idProduct}=="5420"
ATTRS{bConfigurationValue}=="1"
ATTRS{configuration}==""
ATTRS{authorized}=="1"
ATTRS{bcdDevice}=="0140"
ATTRS{bNumConfigurations}=="1"
ATTRS{removable}=="unknown"
ATTRS{busnum}=="1"
ATTRS{bMaxPower}=="0mA"
ATTRS{bDeviceProtocol}=="02"
ATTRS{ltm_capable}=="no"
ATTRS{bNumInterfaces}==" 1"
ATTRS{idVendor}=="0bda"
ATTRS{version}==" 2.10"
ATTRS{bMaxPacketSize0}=="64"
ATTRS{devspec}=="(null)"
ATTRS{manufacturer}=="Generic"
ATTRS{urbnum}=="559"
looking at parent device '/devices/platform/3610000.xhci/usb1':
KERNELS=="usb1"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{manufacturer}=="Linux 5.10.104-tegra xhci-hcd"
ATTRS{removable}=="unknown"
ATTRS{tx_lanes}=="1"
ATTRS{devpath}=="0"
ATTRS{bDeviceProtocol}=="01"
ATTRS{quirks}=="0x0"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bDeviceClass}=="09"
ATTRS{speed}=="480"
ATTRS{ltm_capable}=="no"
ATTRS{maxchild}=="4"
ATTRS{bmAttributes}=="e0"
ATTRS{bcdDevice}=="0510"
ATTRS{bNumInterfaces}==" 1"
ATTRS{authorized_default}=="1"
ATTRS{urbnum}=="36"
ATTRS{bMaxPacketSize0}=="64"
ATTRS{authorized}=="1"
ATTRS{configuration}==""
ATTRS{bNumConfigurations}=="1"
ATTRS{bMaxPower}=="0mA"
ATTRS{version}==" 2.00"
ATTRS{idVendor}=="1d6b"
ATTRS{busnum}=="1"
ATTRS{devnum}=="1"
ATTRS{product}=="xHCI Host Controller"
ATTRS{bConfigurationValue}=="1"
ATTRS{interface_authorized_default}=="1"
ATTRS{idProduct}=="0002"
ATTRS{rx_lanes}=="1"
ATTRS{serial}=="3610000.xhci"
looking at parent device '/devices/platform/3610000.xhci':
KERNELS=="3610000.xhci"
SUBSYSTEMS=="platform"
DRIVERS=="tegra-xusb"
ATTRS{driver_override}=="(null)"
looking at parent device '/devices/platform':
KERNELS=="platform"
SUBSYSTEMS==""
DRIVERS==""