#2125: ALSA Utilities - syntax errors in 15-alsa.rules, and controlC* files are
not put into /dev/snd.
---------------------------+------------------------------------------------
Reporter: Bryan Kadzban | Owner: [email protected]
Type: task | Status: new
Priority: normal | Milestone: 6.2
Component: BOOK | Version: SVN
Severity: major | Keywords: udev alsa
---------------------------+------------------------------------------------
The 15-alsa.rules file created in current SVN BLFS
(http://www.linuxfromscratch.org/blfs/view/svn/multimedia/alsa-utils.html)
has several of the same syntax error in it. All occurrences of this type
of rule:
{{{
KERNEL="whatever", <whatever>
}}}
need to be changed to:
{{{
KERNEL=="whatever", <whatever>
}}}
(add an extra equal sign), otherwise udev-096 and above will complain when
they try to load the rule. (And I do not believe the rule will actually
be loaded, though I don't know for sure.)
Also, in the same file, the "controlC[0-9]*" device file(s) are not moved
to the snd/ subdirectory like the rest of the Alsa devices are. This
causes e.g. {{{alsactl restore}}} to fail with an error similar to "no
sound cards exist", if no other rule moves the device node.
The standard LFS udev-config tarball has rules in 25-lfs.rules to move the
controlC* devices, but CLFS's rules files do not. (Standard LFS udev-
config has rules to move the rest of the devices that 15-alsa.rules moves,
also, for whatever that's worth.) But I don't think BLFS should rely on
LFS's rule overriding an incorrect device node placement in any case, I
think the BLFS rules should be correct.
'''Also''', the rule to match midiC0D0 (and friends) may be incorrect.
Currently it matches "midiC[D0-9]*", but that will only match "midiC"
followed by digits or D characters. (Assuming udev's matching is regex-
based, which I'm not at all sure about; I thought it was glob-based. But
whatever.) A correct pattern is probably "midi[CD0-9]", just like all the
other patterns in the file.
Marking this bug "major" since with a current CLFS, and an unmodified
15-alsa.rules file, Alsa is unusable. (Or at least, the controlC* devices
aren't where they need to be, and therefore volumes are never restored.
There may be other problems also.) With LFS, it's only usable by accident
(because all the incorrect rules here -- both the invalid-syntax ones, and
the controlC* one -- are overridden by correct rules later, in
25-lfs.rules).
A correct 15-alsa.rules file creation could look something like this:
{{{
cat <<"EOF" >/etc/udev/rules.d/15-alsa.rules
# Give the audio group ownership of sound devices
SUBSYSTEM=="sound", GROUP="audio"
SUBSYSTEM=="snd", GROUP="audio"
# ALSA Devices
# When a sound device is detected, restore the volume settings
KERNEL=="controlC[0-9]*", ACTION=="add", RUN+="/usr/sbin/alsactl restore
%n"
KERNEL=="controlC[0-9]*", NAME="snd/%k"
KERNEL=="hw[CD0-9]*", NAME="snd/%k"
KERNEL=="pcm[CD0-9cp]*", NAME="snd/%k"
KERNEL=="midi[CD0-9]*", NAME="snd/%k"
KERNEL=="timer", NAME="snd/%k"
KERNEL=="seq", NAME="snd/%k"
EOF
}}}
--
Ticket URL: <http://wiki.linuxfromscratch.org/blfs/ticket/2125>
BLFS Trac <http://wiki.linuxfromscratch.org/blfs>
Beyond Linux From Scratch
--
http://linuxfromscratch.org/mailman/listinfo/blfs-book
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page