[Bug 2029502] Re: udev ata_id environment keys not imported for sata hdd
Nick Rosbrook
2029502 at bugs.launchpad.net
Thu Aug 3 21:17:06 UTC 2023
I don't know enough about these interactions to know what is best here.
On the one hand, I don't exactly know the motivation for only setting
ID_SERIAL if it is unset, but that seems like a reasonable thing to do.
And systemd/udev cannot control other packages installing udev rules
that will be run earlier and try to do similar things (as sg3-utils is
here).
I know you asked this question on systemd-devel too, but you might have
better luck with a github issue/PR trying to make the change. Otherwise,
I would suggest using a local udev rule that meets your needs.
If you do open an upstream issue or something, please link it here.
** Also affects: sg3-utils (Ubuntu)
Importance: Undecided
Status: New
** Changed in: systemd (Ubuntu)
Status: New => Incomplete
** Changed in: sg3-utils (Ubuntu)
Status: New => Incomplete
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to systemd in Ubuntu.
https://bugs.launchpad.net/bugs/2029502
Title:
udev ata_id environment keys not imported for sata hdd
Status in sg3-utils package in Ubuntu:
Incomplete
Status in systemd package in Ubuntu:
Incomplete
Bug description:
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
https://github.com/hreinecke/sg3_utils/blob/master/scripts/55-scsi-
sg3_id.rules#L100C61-L100C61
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 expect that the `ata_id` env properties are
always imported if the device has `ID_ATA=1`
# lsb_release -rd
Description: Ubuntu 22.04.2 LTS
Release: 22.04
# apt-cache policy systemd
systemd:
Installed: 249.11-0ubuntu3.9
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/sg3-utils/+bug/2029502/+subscriptions
More information about the foundations-bugs
mailing list