[alsa-devel] [RFC PATCH] alsactl: Do not run udev rule before datadir is mounted

David Henningsson david.henningsson at canonical.com
Fri Jun 13 11:05:52 CEST 2014



On 2014-06-13 10:26, Jaroslav Kysela wrote:
> Date 13.6.2014 10:15, David Henningsson wrote:
>> The 90-alsa-restore.rules udev rule is primarily meant to handle hotplugging,
>> but sometimes it is also run before /usr is mounted,
>> and alsactl restore depends on /usr/share/alsa being present.
>>
>> If /usr/share/alsa is not present, we're so early in the boot
>> process that alsa-restore.service (or upstart equivalent) will
>> run later on.
>>
>> BugLink: https://bugs.launchpad.net/bugs/1289730
>> Signed-off-by: David Henningsson <david.henningsson at canonical.com>
>> ---
>>
>> I'm not really sure of all quirks in the boot process, and I haven't tested the
>> patch either, hence the RFC above. Do you think it makes sense?
>
> Yes, I think that's ok. Takashi?
>
>> Should we also add @sbindir@ to the things to test for?
>
> It shouldn't harm anything. Could you prepare a new patch?

Sure, please find it attached. I was also considering adding something 
under /var as well, but I didn't do that, because I think it will fall 
back to an "alsactl init" in that case (right?), so it still makes some 
sense to run alsactl without /var.

>
>>   alsactl/90-alsa-restore.rules.in | 2 +-
>>   alsactl/Makefile.am              | 1 +
>>   configure.ac                     | 1 +
>>   3 files changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/alsactl/90-alsa-restore.rules.in b/alsactl/90-alsa-restore.rules.in
>> index c68119d..c83c6b5 100644
>> --- a/alsactl/90-alsa-restore.rules.in
>> +++ b/alsactl/90-alsa-restore.rules.in
>> @@ -1,4 +1,4 @@
>> -ACTION=="add", SUBSYSTEM=="sound", KERNEL=="controlC*", KERNELS!="card*", GOTO="alsa_restore_go"
>> +ACTION=="add", SUBSYSTEM=="sound", KERNEL=="controlC*", KERNELS!="card*", TEST=="@datadir@", GOTO="alsa_restore_go"
>>   GOTO="alsa_restore_end"
>>
>>   LABEL="alsa_restore_go"
>> diff --git a/alsactl/Makefile.am b/alsactl/Makefile.am
>> index b862412..afbedb3 100644
>> --- a/alsactl/Makefile.am
>> +++ b/alsactl/Makefile.am
>> @@ -44,6 +44,7 @@ endif
>>
>>   edit = \
>>   	$(SED) -r -e 's, at sbindir\@,$(sbindir),g' \
>> +		  -e 's, at datadir\@,$(mydatadir),g' \
>>   		  -e 's, at daemonswitch\@,$(ALSACTL_DAEMONSWITCH),g' \
>>   							< $< > $@ || rm $@
>>
>> diff --git a/configure.ac b/configure.ac
>> index 7e6894a..a4d2db3 100644
>> --- a/configure.ac
>> +++ b/configure.ac
>> @@ -292,6 +292,7 @@ AC_DEFINE_UNQUOTED(SOUNDSDIR, "$soundsdir", [directory containing sample data])
>>
>>   mydatadir="$dir/alsa"
>>   AC_DEFINE_UNQUOTED(DATADIR, "$mydatadir", [directory containing alsa configuration])
>> +AC_SUBST(mydatadir)
>>
>>   AC_ARG_WITH(testsound,
>>     AS_HELP_STRING([--with-testsound=file], [give the path of test sound file for alsaconf]),
>>
>
>

-- 
David Henningsson, Canonical Ltd.
https://launchpad.net/~diwic
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-alsactl-Do-not-run-udev-rule-before-datadir-sbindir-.patch
Type: text/x-patch
Size: 2119 bytes
Desc: not available
URL: <http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20140613/870af90a/attachment.bin>


More information about the Alsa-devel mailing list