OK to disable quirks for external Seagate HDD to enable hdparm support?

Ubuntu Version: 24.04.3 LTS

Desktop Environment (if applicable): N/A (server)

Problem Description: My Seagate Backup Plus Desktop drive which I use for daily backups will not spin down in response to hdparm commands such as sudo hdparm -S 1 /dev/sdc even though my other drives spin down appropriately. This post on askubuntu mentions that external Seagate drives have inconsistent USB to SATA feature support and that disabling quirks can sometimes fix problems like this, if the hardware does support these features. I was going to reply to their post to ask my question, but I was unable to create an account over there. My question is is there any way to know if my drive (0bc2:ab34) supports these features before attempting to disable quirks for it? Or is disabling quirks the best way to figure this out?

Relevant System Information: 2012 Mac mini with Seagate Backup Plus Desktop external HDD

Screenshots or Error Messages: SG_IO: bad/missing sense data, sb[]: 70 00 05 00 00 00 00 0a 00 00 00 00 24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

What I’ve Tried: sdparm is also unable to show info about the drive suspend settings


Hi @fence5042, thanks for posting.

I’m also rather new and I don’t have many ideas on this one.
For a lot of systems, smartctl seems to play an important part. And it shows a lot of info on drives such as drive capabilities.

You’d run sudo smartctl -a </dev/sdX> to get the details on capabilities.

smartctl keeps a database of drives, so maybe a possibility there?

Not sure how the USB-SATA controller will interfere with that though.

1 Like

Thanks for the reply. Unfortunately, it looks like the quirks or usb controller are likely blocking use of smart tools:

Read Device Identity failed: scsi error unsupported field in scsi command

If this is a USB connected device, look at the various --device=TYPE variants
A mandatory SMART command failed: exiting. To continue, add one or more '-T permissive' options.

Sorry for the wait. What’s the output of sudo smartctl --scan?

If you enter the command

hdparm -I /dev/sdX

(replacing the X with your own drive letter) does that show the “*” next to every instance of “Power Management”, indicating that they are enabled?

IF   your drive allows you to define the Advanced Power Management function, you can turn it on using the command:

hdparm -B 127 /dev/sdX

with that “127” value being the max which allows for you to define sleep/spin-down.

/dev/sda -d scsi # /dev/sda, SCSI device
/dev/sdb -d scsi # /dev/sdb, SCSI device
/dev/sdc -d sat # /dev/sdc [SAT], ATA device
/dev/sdd -d sat # /dev/sdd [SAT], ATA device
/dev/sdc:

ATA device, with non-removable media
Standards:
	Likely used: 1
Configuration:
	Logical		max	current
	cylinders	0	0
	heads		0	0
	sectors/track	0	0
	--
	Logical/Physical Sector size:           512 bytes
	device size with M = 1024*1024:           0 MBytes
	device size with M = 1000*1000:           0 MBytes 
	cache/buffer size  = unknown
Capabilities:
	IORDY not likely
	Cannot perform double-word IO
	R/W multiple sector transfer: not supported
	DMA: not supported
	PIO: pio0

Looks like not supported unfortunately :confused:

Not sure if the quirks thing is the best way to go about it. Here’s what I see as your possibilities:

  1. Shuck the drive if it’s out of warranty, you skip the usb controller and hook it up directly to the system on a sata port or other USB sata controller.
  2. Ask someone with a windows machine and use something like CrystalDiskMark to try to edit the settings from there, only takes a few seconds…
  3. Ask Seagate help
  4. Go over the different settings in smartctl to get some more info (below)
    sudo smartctl -a /dev/sdc -d test to see if that gives you the device type.
    sudo smartctl -a /dev/sdc -T permissive or verypermissive
    Another possibility, iterate over some of the smartctl settings with sudo smartctl -a /dev/sdc -d <device_type>:
    -d ata
    -d sat
    -d scsi
    -d usbasm1352r,0
    -d usbasm1352r,1
    … more in man smartctl
2 Likes

Can you confirm if your use of the quirk is in the following fashion (all 3 parameters) on your GRUB line for “GRUB_CMDLINE_LINUX_DEFAULT”?

scsi_mod.use_blk_mq=1 usb-storage.quirks=0bc2:ab34:u usbcore.autosuspend=-1

If not, maybe give that a try as one final desperate attempt before moving on.

To clarify, that last item,

usbcore.autosuspend=-1

disables Kernel control, allowing the drive’s on-board power management to trigger sleep based on the previously programmed hdparm values.

1 Like

Thank you both @newmemory @ericmarceau. Unfortunately I’m away for a few days and won’t be able to test whether the drive actually stops spinning with those commands, but your replies are very helpful and I will test them out when I get back.

In the meantime the results of the info gathering commands are below:

$ sudo smartctl -a /dev/sdc -d test
smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.8.0-84-generic] (local build)
Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org

/dev/sdc [SAT]: Device of type 'sat' [ATA] detected
/dev/sdc [SAT]: Device of type 'sat' [ATA] opened
$ grep ^GRUB_CMDLINE_LINUX_DEFAULT /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT=""

So, you do not have any quirk currently in effect.

It may not make any difference, but let us know if you have any different results when you do apply the quirks in your GRUB.

:slight_smile:

1 Like

@eeickmeyer could you reset the timer for this topic so it doesn’t automatically close?

Done, given ~10 days. Bear in mind, though, that there may not be an answer to your satisfaction.

1 Like

Is there a good way of knowing which USB SATA controllers will support drive suspend?

Isn’t CrystalDiskMark a benchmark software? I don’t see anything in the docs about editing power management settings

Hi,
Sorry I meant CrystalDiskInfo.

Adding the quirks didn’t work for me and I didn’t end up using crystaldiskinfo, but that gave me the idea to try installing the Seagate Dashboard software to a separate computer and setting power management settings that way, which worked! Thank you everyone again for the help.

Drive suspend is not a SATA controller’s on-board function. It is a capability that can be fulfilled by the controller but on the directive coming from the power management function/service.

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.