USB 3.0 External HDD not connecting consistently

I’m trying to setup two external Seagate 16tb USB 3.0 hard drives in raid 1. I can setup and format to ext4 on an Intel machine running ubuntu 18.04. The drives are connected to a 4 port USB 3.0 to USB-C dongle on the front USB-C port with the power, HDMI, and ethernet. The logitech keyboard is plugged into the rear USB-C port.

If I log into the physical AGX I can see the two HDD in the disks GUI.

However over SSH the disks seem to be recognized at random.

Is this an X11 issue? I’m just looking for advice on where to investigate.

lsusb when it recognizes the disks as /dev/sda and /dev/sdb

rocinante@rocinante-desktop:~$ lsusb
Bus 002 Device 004: ID 0bc2:331a Seagate RSS LLC
Bus 002 Device 003: ID 0bc2:331a Seagate RSS LLC
Bus 002 Device 002: ID 05e3:0626 Genesys Logic, Inc.
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 007: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

rocinante@rocinante-desktop:~$ lsusb && dmesg | tail
Bus 002 Device 004: ID 0bc2:331a Seagate RSS LLC
Bus 002 Device 003: ID 0bc2:331a Seagate RSS LLC
Bus 002 Device 002: ID 05e3:0626 Genesys Logic, Inc.
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 007: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
[ 145.672028] hub 2-1:1.0: hub_ext_port_status failed (err = -110)
[ 155.751801] hub 2-1:1.0: hub_ext_port_status failed (err = -110)
[ 165.831584] hub 2-1:1.0: hub_ext_port_status failed (err = -110)
[ 175.911451] hub 2-1:1.0: hub_ext_port_status failed (err = -110)
[ 185.991297] hub 2-1:1.0: hub_ext_port_status failed (err = -110)
[ 196.071235] hub 2-1:1.0: hub_ext_port_status failed (err = -110)
[ 206.151111] hub 2-1:1.0: hub_ext_port_status failed (err = -110)
[ 216.231038] hub 2-1:1.0: hub_ext_port_status failed (err = -110)
[ 226.310885] hub 2-1:1.0: hub_ext_port_status failed (err = -110)
[ 236.390421] hub 2-1:1.0: hub_ext_port_status failed (err = -110)

when it won’t recognize the disks

rocinante@rocinante-desktop:~$ lsusb
Bus 002 Device 002: ID 05e3:0626 Genesys Logic, Inc.
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

edit
after logging in physically then SSH’ing in, it appears the disks are failing USB 3.0 and rolling back to the USB 2.0 hub

rocinante@rocinante-desktop:~$ lsusb && dmesg | tail
Bus 002 Device 002: ID 05e3:0626 Genesys Logic, Inc.
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 0bc2:331a Seagate RSS LLC
Bus 001 Device 003: ID 0bc2:331a Seagate RSS LLC
Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 005: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
[ 36.389511] Bluetooth: BNEP socket layer initialized
[ 36.471192] tegradc 15200000.nvdisplay: unblank
[ 36.471202] tegradc 15210000.nvdisplay: blank - powerdown
[ 36.471207] tegradc 15220000.nvdisplay: blank - powerdown
[ 38.276916] EXT4-fs (mmcblk0p1): mounted filesystem with ordered data mode. Opts: (null)
[ 106.727623] t19x-arm-smmu 12000000.iommu: Unhandled context fault: smmu0, iova=0x4fe2d7000, fsynr=0x280003, cb=0, sid=86(0x56 - PCIE0), pgd=85655e003, pud=85655e003, pmd=7d5757003, pte=0
[ 106.728264] mc-err: (255) csr_pcie0r: EMEM address decode error
[ 106.728368] mc-err: status = 0x200640d8; addr = 0xffffffff00; hi_adr_reg=ff08
[ 106.728504] mc-err: secure: yes, access-type: read
[ 106.728592] mc-err: mcerr: unknown intr source intstatus = 0x00000000, intstatus_1 = 0x00000000

edit 2
I removed the 4-port usb 3.0 hub and plugged in each HDD to their individual USB-c ports. Still falling back to USB 2.0 hub.

rocinante@rocinante-desktop:~$ lsusb && lsusb -t && dmesg | tail
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 0bc2:331a Seagate RSS LLC
Bus 001 Device 003: ID 0bc2:331a Seagate RSS LLC
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 10000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 480M
|__ Port 1: Dev 3, If 0, Class=Mass Storage, Driver=uas, 480M
|__ Port 2: Dev 2, If 0, Class=Mass Storage, Driver=uas, 480M
[ 17.424944] Reserved SVD code 0
[ 17.428994] extcon-disp-state external-connection:disp-state: cable 48 state 1
[ 17.428996] Extcon AUX2(HDMI) enable
[ 17.430008] tegradc 15200000.nvdisplay: unblank
[ 17.430018] tegradc 15220000.nvdisplay: blank - powerdown
[ 17.430024] tegradc 15210000.nvdisplay: blank - powerdown
[ 17.727919] EXT4-fs (sdb1): mounted filesystem with ordered data mode. Opts: (null)
[ 17.816469] fuse init (API version 7.26)
[ 29.176020] eqos 2490000.ether_qos eth0: Link is Up - 100Mbps/Full - flow control rx/tx
[ 29.176764] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

rocinante@rocinante-desktop:~$ dmesg | grep -i usb
[ 0.000000] Kernel command line: console=ttyTCU0,115200 video=tegrafb no_console_suspend=1 earlycon=tegra_comb_uart,mmio32,0x0c168000 gpt tegra_fbmem=0x800000@0xa069c000 lut_mem=0x2008@0xa0697000 usbcore.old_scheme_first=1 tegraid=19.1.2.0.0 maxcpus=8 boot.slot_suffix= boot.ratchetvalues=0.4.2 vpr_resize sdhci_tegra.en_boot_part_access=1 quiet root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyTCU0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 rootfstype=ext4
[ 0.944698] usbcore: registered new interface driver usbfs
[ 0.944754] usbcore: registered new interface driver hub
[ 0.944828] usbcore: registered new device driver usb
[ 1.031122] vdd-usb-3v3: at 3300 mV
[ 1.926576] usbcore: registered new interface driver r8152
[ 1.926658] usbcore: registered new interface driver asix
[ 1.926694] usbcore: registered new interface driver ax88179_178a
[ 1.926733] usbcore: registered new interface driver cdc_ether
[ 1.926802] usbcore: registered new interface driver net1080
[ 1.926831] usbcore: registered new interface driver cdc_subset
[ 1.926859] usbcore: registered new interface driver zaurus
[ 1.926898] usbcore: registered new interface driver cdc_ncm
[ 1.928382] ehci_hcd: USB 2.0 ‘Enhanced’ Host Controller (EHCI) Driver
[ 1.928440] ohci_hcd: USB 1.1 ‘Open’ Host Controller (OHCI) Driver
[ 1.933738] tegra-xusb 3610000.xhci: USB2 port 0 has OTG_CAP
[ 1.933746] tegra-xusb 3610000.xhci: USB3 port 2 has OTG_CAP
[ 1.939933] usbcore: registered new interface driver uas
[ 1.939986] usbcore: registered new interface driver usb-storage
[ 1.940103] usbcore: registered new interface driver usbserial
[ 1.963625] usbcore: registered new interface driver xpad
[ 2.196344] usbcore: registered new interface driver usbhid
[ 2.196346] usbhid: USB HID core driver
[ 2.238068] usbcore: registered new interface driver snd-usb-audio
[ 5.704944] tegra-xusb 3610000.xhci: USB2 port 0 has OTG_CAP
[ 5.704949] tegra-xusb 3610000.xhci: USB3 port 2 has OTG_CAP
[ 5.707922] tegra-xusb 3610000.xhci: extcon 0: ffffffc7c7d14400 id
[ 5.710895] tegra-xusb 3610000.xhci: Firmware timestamp: 2019-07-24 05:47:34 UTC, Version: 60.06 release
[ 5.710927] tegra-xusb 3610000.xhci: xHCI Host Controller
[ 5.710939] tegra-xusb 3610000.xhci: new USB bus registered, assigned bus number 1
[ 5.711571] tegra-xusb 3610000.xhci: hcc params 0x0184ff25 hci version 0x110 quirks 0x00050810
[ 5.711596] tegra-xusb 3610000.xhci: irq 473, io mem 0x03610000
[ 5.711760] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[ 5.711764] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 5.711783] usb usb1: Product: xHCI Host Controller
[ 5.711786] usb usb1: Manufacturer: Linux 4.9.140-tegra xhci-hcd
[ 5.711790] usb usb1: SerialNumber: 3610000.xhci
[ 5.712078] hub 1-0:1.0: USB hub found
[ 5.712361] tegra-xusb 3610000.xhci: xHCI Host Controller
[ 5.712368] tegra-xusb 3610000.xhci: new USB bus registered, assigned bus number 2
[ 5.712374] tegra-xusb 3610000.xhci: Host supports USB 3.1 Enhanced SuperSpeed
[ 5.712510] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003
[ 5.712514] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 5.712517] usb usb2: Product: xHCI Host Controller
[ 5.712521] usb usb2: Manufacturer: Linux 4.9.140-tegra xhci-hcd
[ 5.712524] usb usb2: SerialNumber: 3610000.xhci
[ 5.713056] hub 2-0:1.0: USB hub found
[ 6.036602] usb 1-2: new high-speed USB device number 2 using tegra-xusb
[ 6.085828] usb 1-2: New USB device found, idVendor=0bc2, idProduct=331a
[ 6.085835] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 6.085840] usb 1-2: Product: Expansion Desk
[ 6.085843] usb 1-2: Manufacturer: Seagate
[ 6.085846] usb 1-2: SerialNumber: NAABCC3D
[ 9.877063] tegra-xusb 3610000.xhci: Upgrade port 0 to USB3.0
[ 9.877066] tegra-xusb 3610000.xhci: Upgrade port 1 to USB3.0
[ 9.980755] usb usb2: usb_suspend_both: status 0
[ 10.144591] usb 1-1: new high-speed USB device number 3 using tegra-xusb
[ 10.193728] usb 1-1: New USB device found, idVendor=0bc2, idProduct=331a
[ 10.193732] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 10.193735] usb 1-1: Product: Expansion Desk
[ 10.193737] usb 1-1: Manufacturer: Seagate
[ 10.193739] usb 1-1: SerialNumber: NAABA9PP
[ 12.340803] usb 1-1: reset high-speed USB device number 3 using tegra-xusb
[ 14.324797] usb 1-1: reset high-speed USB device number 3 using tegra-xusb
[ 15.659546] usb0: HOST MAC a2:42:f8:dc:44:12
[ 15.659600] usb0: MAC a2:42:f8:dc:44:13
[ 15.677827] l4tbr0: port 2(usb0) entered blocking state
[ 15.677830] l4tbr0: port 2(usb0) entered disabled state
[ 15.678013] device usb0 entered promiscuous mode
[ 15.685762] IPv6: ADDRCONF(NETDEV_UP): usb0: link is not ready

It is possible that low power/energy savings mode is getting in the way. If you operate directly on the Jetson, then any kind of sleep function would probably not occur due to activity.

Some different ways to do this (or several at once) would be:

  • Add /etc/modprobe.d/usbcore.conf, content:
    options usbcore autosuspend=-1
  • Append to kernel parameters:
    usbcore.autosuspend=-1

In most releases you could append to the kernel command line via making this the last part of the “APPEND” key/value pair in “/boot/extlinux/extlinux.conf”. After boot you could “cat /proc/cmdline” to be sure it shows up. Then test again from remote…this should prevent issues from code to reduce power during inactivity.