[alsa-devel] [PATCH] alsactl: Check existence of `alsactl` in udev rule
From: Jordi Mallach jordi@debian.org Date: Thu, 10 Jan 2013 00:17:58 +0000
Include the line `TEST=="/usr/sbin/alsactl"` in the udev rule, to properly fix the state restoring for users with split `/usr` filesystems [1].
Upstream the patch from the Debian package [2].
[1] https://bugs.debian.org/670490 "Debian Bug report logs - #670490 alsa-utils: Restore sound volume in udev" [2] https://sources.debian.net/src/alsa-utils/1.1.2-1/debian/patches/udev_test_a...
Signed-off-by: Paul Menzel paulepanter@users.sourceforge.net CC: Jordi Mallach jordi@debian.org --- Please apply with `git am saved-messages.mbox`.
alsactl/90-alsa-restore.rules.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/alsactl/90-alsa-restore.rules.in b/alsactl/90-alsa-restore.rules.in index c0c1b23..f190b85 100644 --- a/alsactl/90-alsa-restore.rules.in +++ b/alsactl/90-alsa-restore.rules.in @@ -2,7 +2,7 @@ ACTION=="add", SUBSYSTEM=="sound", KERNEL=="controlC*", KERNELS!="card*", TEST== GOTO="alsa_restore_end" LABEL="alsa_restore_go" -TEST!="@daemonswitch@", RUN+="@sbindir@/alsactl restore $attr{device/number}" -TEST=="@daemonswitch@", RUN+="@sbindir@/alsactl nrestore $attr{device/number}" +TEST!="@daemonswitch@", TEST=="@sbindir@/alsactl", RUN+="@sbindir@/alsactl restore $attr{device/number}" +TEST=="@daemonswitch@", TEST=="@sbindir@/alsactl", RUN+="@sbindir@/alsactl nrestore $attr{device/number}" LABEL="alsa_restore_end" -- 2.11.0
On Wed, 28 Dec 2016 23:31:15 +0100, Paul Menzel wrote:
From: Jordi Mallach jordi@debian.org Date: Thu, 10 Jan 2013 00:17:58 +0000
Include the line `TEST=="/usr/sbin/alsactl"` in the udev rule, to properly fix the state restoring for users with split `/usr` filesystems [1].
This doesn't sound like a real "fix". It means that the whole save/restore mechanism will be silently lost, right?
thanks,
Takashi
Upstream the patch from the Debian package [2].
[1] https://bugs.debian.org/670490 "Debian Bug report logs - #670490 alsa-utils: Restore sound volume in udev" [2] https://sources.debian.net/src/alsa-utils/1.1.2-1/debian/patches/udev_test_a...
Signed-off-by: Paul Menzel paulepanter@users.sourceforge.net CC: Jordi Mallach jordi@debian.org
Please apply with `git am saved-messages.mbox`.
alsactl/90-alsa-restore.rules.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/alsactl/90-alsa-restore.rules.in b/alsactl/90-alsa-restore.rules.in index c0c1b23..f190b85 100644 --- a/alsactl/90-alsa-restore.rules.in +++ b/alsactl/90-alsa-restore.rules.in @@ -2,7 +2,7 @@ ACTION=="add", SUBSYSTEM=="sound", KERNEL=="controlC*", KERNELS!="card*", TEST== GOTO="alsa_restore_end" LABEL="alsa_restore_go" -TEST!="@daemonswitch@", RUN+="@sbindir@/alsactl restore $attr{device/number}" -TEST=="@daemonswitch@", RUN+="@sbindir@/alsactl nrestore $attr{device/number}" +TEST!="@daemonswitch@", TEST=="@sbindir@/alsactl", RUN+="@sbindir@/alsactl restore $attr{device/number}" +TEST=="@daemonswitch@", TEST=="@sbindir@/alsactl", RUN+="@sbindir@/alsactl nrestore $attr{device/number}" LABEL="alsa_restore_end" -- 2.11.0
Am Donnerstag, den 29.12.2016, 14:28 +0100 schrieb Takashi Iwai:
On Wed, 28 Dec 2016 23:31:15 +0100, Paul Menzel wrote:
From: Jordi Mallach jordi@debian.org Date: Thu, 10 Jan 2013 00:17:58 +0000
Include the line `TEST=="/usr/sbin/alsactl"` in the udev rule, to properly fix the state restoring for users with split `/usr` filesystems [1].
This doesn't sound like a real "fix". It means that the whole save/restore mechanism will be silently lost, right?
Well, if the binary `alsactl` is not available, it shouldn’t be run.
But you are right, it depends on the system setup, what happens.
See the description of commit de7c3eff (alsactl: systemd and udev hookup).
- At boot the asound.state file might not be readable, since it resides on a different file system. That means exclusively restoring sound card settings from udev rules will no suffice, since if the rule is executed at early boot (for example within udev settle) then the file will no be readable and cannot be restored.
Thanks,
Paul
Upstream the patch from the Debian package [2].
[1] https://bugs.debian.org/670490 "Debian Bug report logs - #670490 alsa-utils: Restore sound volume in udev" [2] https://sources.debian.net/src/alsa-utils/1.1.2-1/debian/patches/udev_test_a...
Signed-off-by: Paul Menzel paulepanter@users.sourceforge.net CC: Jordi Mallach jordi@debian.org
Please apply with `git am saved-messages.mbox`.
alsactl/90-alsa-restore.rules.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/alsactl/90-alsa-restore.rules.in b/alsactl/90-alsa-restore.rules.in index c0c1b23..f190b85 100644 --- a/alsactl/90-alsa-restore.rules.in +++ b/alsactl/90-alsa-restore.rules.in @@ -2,7 +2,7 @@ ACTION=="add", SUBSYSTEM=="sound", KERNEL=="controlC*", KERNELS!="card*", TEST== GOTO="alsa_restore_end" LABEL="alsa_restore_go" -TEST!="@daemonswitch@", RUN+="@sbindir@/alsactl restore $attr{device/number}" -TEST=="@daemonswitch@", RUN+="@sbindir@/alsactl nrestore $attr{device/number}" +TEST!="@daemonswitch@", TEST=="@sbindir@/alsactl", RUN+="@sbindir@/alsactl restore $attr{device/number}" +TEST=="@daemonswitch@", TEST=="@sbindir@/alsactl", RUN+="@sbindir@/alsactl nrestore $attr{device/number}" LABEL="alsa_restore_end" -- 2.11.0
On Fri, 30 Dec 2016 11:04:54 +0100, Paul Menzel wrote:
Am Donnerstag, den 29.12.2016, 14:28 +0100 schrieb Takashi Iwai:
On Wed, 28 Dec 2016 23:31:15 +0100, Paul Menzel wrote:
From: Jordi Mallach jordi@debian.org Date: Thu, 10 Jan 2013 00:17:58 +0000
Include the line `TEST=="/usr/sbin/alsactl"` in the udev rule, to properly fix the state restoring for users with split `/usr` filesystems [1].
This doesn't sound like a real "fix". It means that the whole save/restore mechanism will be silently lost, right?
Well, if the binary `alsactl` is not available, it shouldn’t be run.
But you are right, it depends on the system setup, what happens.
See the description of commit de7c3eff (alsactl: systemd and udev hookup).
- At boot the asound.state file might not be readable, since it resides on a different file system. That means exclusively restoring sound card settings from udev rules will no suffice, since if the rule is executed at early boot (for example within udev settle) then the file will no be readable and cannot be restored.
Yeah, if you allow a separate /usr partition to be mounted later, all stuff executed in udev rules should be put in either /bin or /sbin. The same is true for /var/lib/alsa.
And yet the question is whether we should suppress the error in such a case. When suppressed, user might not notice what went wrong. Meanwhile an error message is annoying if you know it.
Takashi
Thanks,
Paul
Upstream the patch from the Debian package [2].
[1] https://bugs.debian.org/670490 "Debian Bug report logs - #670490 alsa-utils: Restore sound volume in udev" [2] https://sources.debian.net/src/alsa-utils/1.1.2-1/debian/patches/udev_test_a...
Signed-off-by: Paul Menzel paulepanter@users.sourceforge.net CC: Jordi Mallach jordi@debian.org
Please apply with `git am saved-messages.mbox`.
alsactl/90-alsa-restore.rules.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/alsactl/90-alsa-restore.rules.in b/alsactl/90-alsa-restore.rules.in index c0c1b23..f190b85 100644 --- a/alsactl/90-alsa-restore.rules.in +++ b/alsactl/90-alsa-restore.rules.in @@ -2,7 +2,7 @@ ACTION=="add", SUBSYSTEM=="sound", KERNEL=="controlC*", KERNELS!="card*", TEST== GOTO="alsa_restore_end" LABEL="alsa_restore_go" -TEST!="@daemonswitch@", RUN+="@sbindir@/alsactl restore $attr{device/number}" -TEST=="@daemonswitch@", RUN+="@sbindir@/alsactl nrestore $attr{device/number}" +TEST!="@daemonswitch@", TEST=="@sbindir@/alsactl", RUN+="@sbindir@/alsactl restore $attr{device/number}" +TEST=="@daemonswitch@", TEST=="@sbindir@/alsactl", RUN+="@sbindir@/alsactl nrestore $attr{device/number}" LABEL="alsa_restore_end" -- 2.11.0
participants (2)
-
Paul Menzel
-
Takashi Iwai