[alsa-devel] [PATCH] alsactl: Check existence of `alsactl` in udev rule

Takashi Iwai tiwai at suse.de
Fri Dec 30 11:16:11 CET 2016


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 at 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_alsactl.patch/
> > > 
> > > Signed-off-by: Paul Menzel <paulepanter at users.sourceforge.net>
> > > CC: Jordi Mallach <jordi at 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


More information about the Alsa-devel mailing list