[systemd-devel] udev ata_id environment keys not imported for sata hdd
Mauricio Garavaglia
mkfs at x86.ar
Sat Jul 29 01:28:23 UTC 2023
Hello,
While debugging why `pm-utils` hdparam udev rules were not picked up by my
SATA HDD, I found that it depends on the presence of the
`ID_ATA_FEATURE_SET_APM`
env key to set the drive advanced power management. This key is returned by
`ata_id` correctly but, among other values, they are never imported as
environment keys by udev.
They seem to be imported in `/lib/udev/rules.d/60-persistent-storage.rules`
# ATA
KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="scsi", \
ATTRS{vendor}=="ATA", IMPORT{program}="ata_id --export $devnode"
But this rule is not applied since `sg3_utils` already set an
`ID_SERIAL` in [1].
I workaround this by introducing a new rule that imports the `ata_id`
output on that
device, without the ID_SERIAL condition, which makes hdparm to detect
APM correctly.
So, regardless of how hdparm is detecting APM capabilities, I'm not sure
the current
behavior is expected or not. I would assume the `ata_id` env properties are
always imported if the device has `ID_ATA=1`. Does it make sense?
I found this on an fresh Ubuntu 22.04.2 LTS with systemd 249
(249.11-0ubuntu3.9)
Thanks!
[1]
https://github.com/hreinecke/sg3_utils/blob/master/scripts/55-scsi-sg3_id.rules#L100C61-L100C61
--
Mauricio Garavaglia
More information about the systemd-devel
mailing list