[SOLVED] (UPDATED) Debian 13 Testing: systemd-udevd[414]: /usr/lib/udev/rules.d/90-alsa-restore.rules:18 GOTO=”alsa_restore_std” has no matching label, ignoring.

Edit: Thanks to the Anonymous Helper’s for the info in the comment:

Bug report https://github.com/alsa-project/alsa-utils/issues/280

Fix Commit: https://github.com/alsa-project/alsa-utils/commit/f90124c73edd050b24961197a4abcf17e53b41a8

Hello beautiful peoples!


Recently for shits and giggles I’ve decided to install Debian 13 Testing Linux to a SSD connected via USB using USB to SATA cable. Since then I’ve been booting to the installation once a day and trying to configure and or fix one thing. My goal is to have a working installation that is configured to suit my needs “soon”. Will I be using it as my daily driver? Hell naw… Its going to be my emergency OS in case excrement hits the oscillator.

Today I have booted to the installation and ran:

journalctl -b -l -x --no-pager -p 3

Its my favourite method of retrieving and displaying error-level logs from the current boot without truncation or paging, while including extra explanatory text where available. It’s useful for troubleshooting system issues.

First thing that caught my eye were systemd-udev messages:

May 14 18:52:45 OptiPlex-7010 systemd-udevd[414]: /usr/lib/udev/rules.d/90-alsa-restore.rules:18 GOTO="alsa_restore_std" has no matching label, ignoring.


Those messages are harmless but I want them gone…

My first diagnostic step was to check the 90-alsa-restore.rules file for broken GOTO statements

cat /usr/lib/udev/rules.d/90-alsa-restore.rules | grep 'GOTO'

root@OptiPlex-7010:~# cat /usr/lib/udev/rules.d/90-alsa-restore.rules | grep ‘GOTO’
ACTION==”add”, SUBSYSTEM==”sound”, KERNEL==”controlC*”, KERNELS!=”card*”, TEST==”/usr/sbin”, TEST==”/usr/share/alsa”, GOTO=”alsa_restore_go”
GOTO=”alsa_restore_end”
TEST==”device/device/acp3x-dmic-capture”, GOTO=”alsa_hda_analog”
TEST==”device/device/acp6x-dmic-capture”, GOTO=”alsa_hda_analog”
TEST==”device/device/acp63-dmic-capture”, GOTO=”alsa_hda_analog”
TEST==”device/device/acp-dmic-codec”, GOTO=”alsa_hda_analog”
GOTO=”alsa_restore_std”
TEST!=”/run/udev/alsa-hda-analog-card”, GOTO=”alsa_restore_std”
root@OptiPlex-7010:~#

My 90-alsa-restore.rules file contains multiple GOTO references, but it appears the “alsa_restore_std” label itself is missing – which is likely what’s causing the journal errors.

Since GOTO="alsa_restore_std" is referenced twice, but there’s no corresponding label, I then checked if the rule file is incomplete or corrupted:

tail -n 20 /usr/lib/udev/rules.d/90-alsa-restore.rules

root@OptiPlex-7010:~# tail -n 20 /usr/lib/udev/rules.d/90-alsa-restore.rules
DRIVERS==”snd_hda_intel”, TEST==”device/pcmC$env{ALSA_CARD_NUMBER}D0p”, RUN+=”/bin/sh -c ‘echo ALSA_CARD_HDA_ANALOG=$env{ALSA_CARD_NUMBER} >> /run/udev/alsa-hda-analog-card'”

# check for ACP hardware
TEST==”device/device/acp3x-dmic-capture”, GOTO=”alsa_hda_analog”
TEST==”device/device/acp6x-dmic-capture”, GOTO=”alsa_hda_analog”
TEST==”device/device/acp63-dmic-capture”, GOTO=”alsa_hda_analog”
TEST==”device/device/acp-dmic-codec”, GOTO=”alsa_hda_analog”
GOTO=”alsa_restore_std”

LABEL=”alsa_hda_analog”
# restore configuration for profile with combined cards (HDA + digital mic)
TEST!=”/run/udev/alsa-hda-analog-card”, GOTO=”alsa_restore_std”
IMPORT{program}=”/usr/bin/cat /run/udev/alsa-hda-analog-card”
ENV{ALSA_CARD_HDA_ANALOG}!=””, ENV{ALSA_CARD_NUMBER}=”$env{ALSA_CARD_HDA_ANALOG}”

LABEL=”alsa_restore_go”
TEST!=”/etc/alsa/state-daemon.conf”, TEST==”/usr/sbin/alsactl”, RUN+=”/usr/sbin/alsactl -E HOME=/run/alsa -E XDG_RUNTIME_DIR=/run/alsa/runtime restore $env{ALSA_CARD_NUMBER}”
TEST==”/etc/alsa/state-daemon.conf”, TEST==”/usr/sbin/alsactl”, RUN+=”/usr/sbin/alsactl -E HOME=/run/alsa -E XDG_RUNTIME_DIR=/run/alsa/runtime nrestore $env{ALSA_CARD_NUMBER}”

LABEL=”alsa_restore_end”
root@OptiPlex-7010:~#

The output confirms what I was suspecting. LABEL="alsa_restore_std" is missing from the rule file, but it’s referenced twice. That’s why systemd-udevd is throwing a hissy fit.

To resolve this issue I manually added the missing label at the end of the 90-alsa-restore.rules file.

To do that I used my favourite command-line based text editor with root privilages:

su -
mcedit /usr/lib/udev/rules.d/90-alsa-restore.rules

I scrolled down to the bottom of the file until I found LABEL="alsa_restore_end" and I added LABEL="alsa_restore_std" in the line before that entry.


I have saved the file and rebooted the system.

When the system booted back up I re-ran:

journalctl -b -l -x --no-pager -p 3

And the systemd-udevd related error messages were gawn…


I hope this helps!

Catch you on the flip side,

AndrzejL

Avatar photo

AndrzejL

“Some men just want to watch the world burn.”

2 Comments:

  1. Hi, you may want to update this to the correct fix.

    See https://github.com/alsa-project/alsa-utils/issues/280 (link is clean // AndrzejL)

    and the correct patch:

    \\ Removed. Reasons. Different link then the one in the issue. Paranoia bells ringing.

    • Hi whoever You are!

      First things first…

      Thank you for your reply. But also… Holly carp… Someone is actually reading this? Wowza! Mom! I’m internet famous! 😉Just kidding… She’s dead.

      Added an edit at the beginning of the post to point people to the correct commit.

      Sorry I removed the 2nd link from your reply – I assume that it was fine but it was different than the one that’s listed in the issue 280 and my spidey senses were tingling. Better safe than sorry I guess.

      Anyway… So weird to actually reply to a comment…

      Thanks again!

Leave a Reply

Your email address will not be published. Required fields are marked *