Sata3 to USB-C Trouble - Wavlink ST345CP keeps resetting

Hi all, please enjoy this human + robot generated summary of all the things I’ve tried to do to troubleshoot my current issue: usb-c to sata adapters that are resetting every 10 minutes, preventing me from testing my 28TB HDD drives. The adapter I’m using is this one. The drives are Ironwolf 28TB drives (Merry Christmas to myself!).

My plan overall is - test my new drives, install & reshard them in my 4 bay NAS which is currently running to expand my storage, as I am at ~70% capacity.

I am running the tests from my Linux box (Framework Desktop) running Fedora. However when I ran my testing script, I noticed that the SMART tests kept failing for the drives attached using this adapter. I have another Sabrent USB-3.0 adapter that is working well. It’s the usb-c ones that are failing me. If I cannot get this to work, I will simply return the adapter and try some new ones. I just wanted to get started asap since this it going to take an estimated 300 hours per drive to fully test (LOL).

The main smoking gun are these logs:
muaddib@localhost-live:~$ sudo journalctl -k --since “today” --no-pager
| grep -Ei ‘usb 6-|6-1|usb 8-|8-1|reset|timed out|I/O error|xhci’
| tail -300
Jan 05 04:19:53 ``localhost-live.hsd1.md.comcast.net`` kernel: usb 6-1: reset SuperSpeed USB device number 2 using xhci_hcd
Jan 05 04:29:53 ``localhost-live.hsd1.md.comcast.net`` kernel: usb 8-1: reset SuperSpeed USB device number 2 using xhci_hcd
Jan 05 04:30:00 ``localhost-live.hsd1.md.comcast.net`` kernel: usb 6-1: reset SuperSpeed USB device number 2 using xhci_hcd
Jan 05 04:39:53 ``localhost-live.hsd1.md.comcast.net`` kernel: usb 8-1: reset SuperSpeed USB device number 2 using xhci_hcd
Jan 05 04:49:53 ``localhost-live.hsd1.md.comcast.net`` kernel: usb 6-1: reset SuperSpeed USB device number 2 using xhci_hcd
Jan 05 04:59:53 ``localhost-live.hsd1.md.comcast.net`` kernel: usb 8-1: reset SuperSpeed USB device number 2 using xhci_hcd
Jan 05 05:00:00 ``localhost-live.hsd1.md.comcast.net`` kernel: usb 6-1: reset SuperSpeed USB device number 2 using xhci_hcd
... continues ...

So as you can see I am getting resets every 10 mins for the two drives that are plugged in. Here is a summary from AI of all the things I’ve tried to do to troubleshoot. I’m a noob, admittedly, and I’ve been leaning heavily on Cursor + GPT 5.2 to help me get things running and tested. From this point below - it is the AI summary.

Thank you for any thoughts if you have them!
Sam

Summary (for posting to TrueNAS SCALE forums)

Hardware / topology

  • Seagate ST28000NT000-4AB103 28TB HDDs on USB-SATA bridges.

  • Drives show as:

  • /dev/sda → DEVPATH …/usb6/6-1/… (VID:PID 7825:a2a4, strings “ULT-Best / Best USB Device”)

  • /dev/sdb → DEVPATH …/usb8/8-1/… (VID:PID 7825:a2a4, same “ULT-Best / Best USB Device”)

  • /dev/sdc → DEVPATH …/usb2/2-1/2-1.2/… (VID:PID 152d:a578, SABRENT bridge)

  • Symptoms: sda/sdb fail SMART long (“Aborted by host”) and kernel shows repeating SuperSpeed USB resets every ~10 minutes on 6-1 and 8-1. sdc (Sabrent) is comparatively stable and continues a long burn-in.

Key symptom evidence

  • Kernel messages repeat like:

  • usb 6-1: reset SuperSpeed USB device number … using xhci_hcd

  • usb 8-1: reset SuperSpeed USB device number … using xhci_hcd

  • cadence: ~every 10 minutes

  • SMART long failures:

  • smartctl -c /dev/sdX shows aborted state

  • smartctl -l selftest top entry often becomes: Extended offline Aborted by host 90% …

  • Burn-in script logs: ERROR: SMART extended/long test aborted/failed: … Aborted by host …

Driver / UAS vs usb-storage

  • Initially devices were using UAS (Driver=uas) and SMART/long tests were unstable.

  • Added kernel cmdline quirk to force usb-storage:

  • usb-storage.quirks=7825:a2a4:u,152d:a578:u

  • Verified after reboot/replug:

  • lsusb -t shows Driver=usb-storage for Mass Storage.

  • Kernel logs confirm: UAS is ignored for this device, using usb-storage instead.

Power management / sleep

  • Considered system sleep/log-out as a cause; checked suspend/resume events:

  • journalctl -k | grep -Ei ‘PM: suspend|PM: resume|…’ → no suspend/resume events

  • Still disabled sleep targets as a precaution:

  • systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

Autosuspend / USB power settings

  • Tried disabling autosuspend in multiple ways:

  • Per-device and hub runtime PM controls (where applicable):

  • /sys/bus/usb/devices/6-1/power/control = on

  • /sys/bus/usb/devices/8-1/power/control = on

  • /sys/bus/usb/devices/6-1/power/autosuspend = -1

  • /sys/bus/usb/devices/8-1/power/autosuspend = -1

  • Global runtime autosuspend:

  • /sys/module/usbcore/parameters/autosuspend was 2, set to -1 successfully.

  • Attempted to disable USB3 Link Power Management (LPM) at runtime:

  • /sys/module/usbcore/parameters/lpm_enable exists but is not writable (“Permission denied” even with sudo), so runtime change not possible.

Kernel parameters queued

  • Current running cmdline before change:

  • usb-storage.quirks=7825:a2a4:u,152d:a578:u

  • Added (via grubby, requires reboot to take effect):

  • usbcore.autosuspend=-1

  • usbcore.lpm_enable=0

  • Not yet rebooted because /dev/sdc is mid-run (~293h total, ~24h completed).

Watch/monitoring

  • Used lsusb -t, lsblk, smartctl -c, smartctl -l selftest, and journalctl -k.

  • Noted that frequent external smartctl polling (e.g. every 10s via watch) may increase bridge flakiness; reduced recommended polling frequency.

Current situation / ask for help

  • Even with UAS disabled and autosuspend tweaks, USB-C bridge devices on 6-1 and 8-1 keep resetting every ~10 min, aborting SMART long tests.

  • The Sabrent bridge path (2-1.2) is stable.

  • Next planned step (but blocked by long-running sdc test) is rebooting with usbcore.lpm_enable=0 + usbcore.autosuspend=-1 to see if it stops the periodic SuperSpeed resets.

  • Looking for TrueNAS SCALE-specific guidance on:

  • USB3 LPM/U1/U2 handling on SCALE

  • stable USB-SATA bridge recommendations / quirks

  • whether usbcore.lpm_enable=0 (or equivalent) is the correct knob for periodic SuperSpeed resets on these bridges

My experience with USB←→SATA is that if you want to do anything worth doing with ZFS, you should use UAS.

ZFS does not at all expect to go through the kind of stack that usb-storage provides; ZFS expects to be able to leverage protocols like SCSI and SAS.

With UAS the quality of the controller is important. You didn’t specify what system platform you’re using but I’ve had reliable and trouble-free experiences with Intel USB controllers on the host side. There has been some discussion on the OpenZFS repo about issues with some AMD USB controllers in this context.

For whatever it’s worth I’ve never had an issue with the StarTech S3510SMU33 enclosure although I believe that has been replaced with a newer model of different design and potentially a different controller. I’ve used that with IronWolf 24TB drives connected to TrueNAS 24.10 (I recently migrated to 25.04) for ZFS replications that have run continuously for over a week without issues and without tweaks. For the pre-manufactured external drives I’ve had great success with Samsung’s T7 line. In each case I was using an Intel Xeon platform.

You can look through the Linux kernel tree (here is the TrueNAS fork used to build TrueNAS) to check out what controllers behave sanely and make enclosure/adapter purchases based on that. (Of course, there is no guarantee that manufacturers haven’t made changes.) Check in the drivers/usb/storage path and pay attention to the branch you’re on.

1 Like