Request for Comments (RFC): Potential change in setting sound card volume on boot

Daniel T. Chen crimsun at
Wed Jun 27 01:20:59 UTC 2007

Hi folks,

I would like to bring several issues into the glare and to propose a
non-invasive and forward- and backward-compatible (for 6.06 LTS and
Gutsy+1 LTS in particular) resolution to them.

(1) For some time now, the Ubuntu alsa-utils source package has shipped
a udev rule that restores sound card volume levels on boot[0].  Several
Ubuntu releases have seen changes in ALSA's mixer element names.  These
changes have wrought much weeping and gnashing of teeth[1], because the
changes in mixer element names do not correspond to known (at fresh boot
into the new kernel) state file[2] fields.

(2) Moreover, some users of one family of any particular ALSA driver
require one particular mixer setting (on a binary toggle), while users
of a newer version of the same family of audio cards _using the
identical ALSA driver_ require precisely the opposite mixer setting[3].

(3) Further, users are required to set, to a particular configuration
solely dependent on the revision of the audio hardware in the machine,
this mixer state.

(4) Additionally, users seem split on whether a default login sound in a
graphical environment should be muted[4] or audible.

To alleviate the issues given above, I am requesting comments from
developers and users alike regarding the following proposal that changes
alsa-utils's initscript usage[0]:

/etc/init.d/alsa-utils will no longer be invoked in the udev rule
shipped in the alsa-utils source package (for reference, it is included

This change means that volume restoration would be delegated to KMix,
mixer_applet2, and xfce4-mixer (for Kubuntu, Ubuntu/Edubuntu/Ubuntu
Studio, and Xubuntu, respectively).  The change resolves issue 1[1],
since at shutdown `alsactl store` is executed, which stores the new
state; also resolved are issues 2[3], 3, and 4[5], since the driver is
responsible for setting a sane toggle.

Users who elect to continue to restore volume levels at boot can do so
by adding the invocation of `/etc/init.d/alsa-utils start`
to /etc/rc.local.

I am particularly interested in further suggestions.  Constructive
criticism is always welcome.

Finally, in accordance with the Ubuntu Code of Conduct, because a new
job will remove me from consistent Internet access for three consecutive
years beginning 9 July 2007, I am resigning from both the community lead
for Ubuntu's ALSA maintainership and from Ubuntu core at the end of the
Gutsy development cycle.  I would like to recognise Luke Yelavich and
Toby Smithe in particular whose efforts in improving sound usability in
Ubuntu are ongoing.  Additionally, my own efforts would not be possible
without those of Martin Pitt, Thomas Hood, the remaining Debian ALSA
packaging team, the users who frequent #alsa/Freenode, upstream ALSA
core itself, and of course, the developers of all Free software I've

All the best,
Daniel Chen

[0] `alsactl restore` is invoked via /etc/init.d/alsa-utils as a RUN
target for each detected audio device.  See [4] below.
[1] e.g.,
[2] /var/lib/alsa/asound.state
[3] e.g.,
[4] e.g.,
[5] RUN+="/sbin/start-stop-daemon --start --background
--pidfile /var/run/alsa/bogus --startas /etc/init.d/alsa-utils -- start
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
URL: <>

More information about the Ubuntu-devel-discuss mailing list