[alsa-devel] udev rules prefix

Takashi Iwai tiwai at suse.de
Thu Nov 14 10:42:33 CET 2013


At Thu, 14 Nov 2013 12:08:47 +0000,
Ivailo Monev wrote:
> 
> On 11/14/13 02:48, David Henningsson wrote:
> > On 11/13/2013 09:36 PM, Ivailo wrote:
> >> Hello,
> >>
> >> the default prefix for alsa-utils is /usr however the udev rules directory
> >> is /lib/udev/rules.d thus on setups with separate partition for /usr the
> >> binaries, from /usr/bin and /usr/sbin, will likely not be available during
> >> the boot process and the udev rule will fail to restore the state.
> >>
> >> I suggest that the udev rules directory follows the prefix or append /usr
> >> to it to resolve this.
> >>
> >> Cheers!
> > Hi,
> >
> > ALSA merely follows what udev dictates, so I think your
> > question/suggestion is better redirected on the udev (now systemd)
> > mailinglist. Or potentially that of your distro.
> >
> Actually, you are not following what udev dictates (unless I'm missing 
> something).
> By default, systemd (and more importantly udev) will be installed with 
> /usr prefix
> (which is wrong in it self because it blindly assumes that /usr has been 
> mounted
> via initrd/initramfs where separate /usr partition is in use but let's 
> not talk about
> this here).
> 
> 
> On 11/14/13 06:45, Takashi Iwai wrote:
> > At Wed, 13 Nov 2013 20:36:48 +0000,
> > Ivailo wrote:
> >> Hello,
> >>
> >> the default prefix for alsa-utils is /usr however the udev rules directory
> >> is /lib/udev/rules.d thus on setups with separate partition for /usr the
> >> binaries, from /usr/bin and /usr/sbin, will likely not be available during
> >> the boot process and the udev rule will fail to restore the state.
> > Not true.  /lib must be always present at boot even if /usr isn't
> > mounted.  That's the reason why /lib/udev was chosen as default in the
> > past.
> >
> >
> > Takashi
> You got me wrong, I know that /lib should be available on early boot 
> (unless it's a
> symlink, like in Arch Linux) but the point is that since the alsa-utils 
> binaries are
> installed in /usr so should be the udev rules otherwise during boot 
> without /usr
> being mounted you will see error message about /usr/sbin/alsactl.

Theoretically yes, but this has been rather less problems than
creating a non-existing /usr/lib/udev in the past.  That's the very
reason of hard-coded /lib/udev.  Changing the default behavior is
often worse unless you really do it carefully with consideration of
compatibility with old systems.

So, if you want to change the default, don't hard code again.  Make
configure to guess the right place.  A patch achieving it is welcome.


Takashi


More information about the Alsa-devel mailing list