So I think the right way to go here is to modify /lib/udev/rules.d/90
-alsa-restore.rules and add a check of /usr/share/alsa and
/var/run/alsa, so the entire file ends up like this (first line changed)
:

-----
ACTION=="add", SUBSYSTEM=="sound", KERNEL=="controlC*", KERNELS!="card*", 
TEST=="/usr/share/alsa", TEST=="/var/run/alsa", GOTO="alsa_restore_go"
GOTO="alsa_restore_end"

LABEL="alsa_restore_go"
TEST!="/var/lib/alsa/state-daemon.conf", RUN+="/usr/sbin/alsactl -E 
HOME=/var/run/alsa restore $attr{device/number}"
TEST=="/var/lib/alsa/state-daemon.conf", RUN+="/usr/sbin/alsactl -E 
HOME=/var/run/alsa nrestore $attr{device/number}"

LABEL="alsa_restore_end"
-----

...because this udev rule is meant for hotplugging. In case this udev
rule gets to run before /usr or /var is mounted, alsactl restore will
instead be run for these cards later on, in /etc/init/alsa-restore.conf
or /lib/systemd/system/basic.target.wants/alsa-restore.service.

Does that make sense?

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1289730

Title:
  systemd-udev fails to execute alsactl during start-up if /usr and/or
  /var are separate volumes

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/alsa-utils/+bug/1289730/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to