Comment 29 for bug 199094

Revision history for this message
Graeme Hewson (ghewson) wrote :

I've given up on hdparm.conf now. As noted in #27, it seems that systemd and udev/udisks2 is the way to go, but it's not clear how exactly.

Here's what I've done. This bug report isn't the ideal place to document it, but I can't find a better place for now. Maybe it'll help someone who finds it through a search engine.

The Ubuntu Disks utility (not in the Launcher by default) allows configuration of the spindown/standby time and other settings. (See below for Kubuntu.) Click on the disk in the left-hand pane, then click the "hamburger" icon at the top right and select Drive Settings.

Great! Except... what it says in the title of this bug. Also:
https://bugs.launchpad.net/ubuntu/+source/gnome-disk-utility/+bug/1511703

I fixed this by coding a sleep script as shown in
https://wiki.archlinux.org/index.php/Power_management#Hooks_in_.2Fusr.2Flib.2Fsystemd.2Fsystem-sleep
Note the directory in Ubuntu is /lib/systemd/system-sleep/, which is different from Arch Linux.

In the "post/*" case I simply coded the required hdparm command directly, e.g.

hdparm -B 254 -S 120 /dev/sdb

I'd earlier tried to make hdparm.conf work by emulating the pmutils scripts by coding, e.g.,

DEVNAME=/dev/sdb /lib/udev/hdparm

but that didn't work for some reason. I don't think I worked out why.

Kubuntu users (like me) and others who don't have the Ubuntu Disks utility available need to write a config file (which, of course, is what hdparm.conf is) to set the post-boot spindown time, etc. See udisks(8) for the format of the file /etc/udisks2/IDENTIFIER.conf, the file which the Disks utility writes. For instance:

[ATA]
APMLevel=254
StandbyTimeout=120

What is IDENTIFIER? Run "udisksctl dump" (the output is piped to less) and look for an object path starting "/org/freedesktop/UDisks2/drives/" with your drive model and serial number. Within the org.freedesktop.UDisks2.Drive interface underneath that, the Id property is the required IDENTIFIER part of the filename. See
http://udisks.freedesktop.org/docs/latest/gdbus-org.freedesktop.UDisks2.Drive.html#gdbus-property-org-freedesktop-UDisks2-Drive.Id

So it seems that in 2015, it's a bit more complicated than writing /etc/hdparm.conf. It seems (unless there's currently a better way) it's necessary to specify the hdparm settings for the post-boot and post-resume conditions in two different ways.