Package: alsa-utils Version: 1.1.2 Severity: normal
Dear Debian folks, I see the message below on a Debian Sid/unstable system. ``` $ sudo journalctl -u systemd-udevd […] […] systemd-udevd[323]: Process '/usr/sbin/alsactl -E HOME=/run/alsa restore 0' failed with exit code 99. ``` If I am not mistaken, this is from the udev rule file [1]. ``` ACTION=="add", SUBSYSTEM=="sound", KERNEL=="controlC*", KERNELS!="card*", TEST=="@sbindir@", TEST=="@mydatadir@", GOTO="alsa_restore_go" GOTO="alsa_restore_end" LABEL="alsa_restore_go" TEST!="@daemonswitch@", TEST=="/usr/sbin/alsactl", RUN+="@sbindir@/alsactl -E HOME=@alsactlhome@ restore $attr{device/number}" TEST=="@daemonswitch@", TEST=="/usr/sbin/alsactl", RUN+="@sbindir@/alsactl -E HOME=@alsactlhome@ nrestore $attr{device/number}" LABEL="alsa_restore_end" ``` Manually running this command shows that `/var/lib/alsa/asound.state` is missing. ``` $ sudo /usr/sbin/alsactl -E HOME=/run/alsa restore 0 /usr/sbin/alsactl: load_state:1683: Cannot open /var/lib/alsa/asound.state for reading: No such file or directory /usr/sbin/alsactl: sysfs_init:48: sysfs path '/sys' is invalid X11 connection rejected because of wrong authentication. xcb_connection_has_error() returned true Found hardware: "HDA-Intel" "Realtek ALC269VB" "HDA:10ec0269,10280577,00100100 HDA:80862806,80860101,00100000" "0x1028" "0x0577" Hardware is initialized using a generic method ``` But there is also a systemd service unit [2] for the same purpose, which checks for the presence of `/var/lib/alsa/asound.state`. ``` $ more /lib/systemd/system/basic.target.wants/alsa-restore.service # # Note that two different ALSA card state management schemes exist and they # can be switched using a file exist check - /etc/alsa/state-daemon.conf . # [Unit] Description=Save/Restore Sound Card State Documentation=man:alsactl(1) ConditionPathExists=!/etc/alsa/state-daemon.conf ConditionPathExistsGlob=/dev/snd/control* ConditionPathExists=/var/lib/alsa/asound.state After=alsa-state.service [Service] Type=oneshot RemainAfterExit=true ExecStart=-/usr/sbin/alsactl -E HOME=/run/alsa restore ExecStop=-/usr/sbin/alsactl -E HOME=/run/alsa store $ systemctl status alsa-restore ● alsa-restore.service - Save/Restore Sound Card State Loaded: loaded (/lib/systemd/system/alsa-restore.service; static; vendor preset: enabled) Active: inactive (dead) Condition: start condition failed at Fri 2016-12-16 11:51:03 CET; 11min ago └─ ConditionPathExists=/var/lib/alsa/asound.state was not met Docs: man:alsactl(1) ``` Is the udev rule still needed? I don’t really know, how it’s supposed to work, and what I don’t have that file `asound.state`. It would be nice to not run `alsactl` during startup, if it’s failing, to get rid of the error message. Kind regards, Paul [1] https://sources.debian.net/src/alsa-utils/1.1.2-1/alsactl/90-alsa-restore.rules.in/ [2] https://sources.debian.net/src/alsa-utils/1.1.2-1/alsactl/alsa-restore.service.in/