As you may remember, I decided to analyze and, if possible, fix all the errors I see in the kernel event log on my laptop Dell XPS 15 9550.
Message from journalctl log:
systemd-udevd[660]: /usr/lib/udev/rules.d/90-alsa-restore.rules:16 GOTO="alsa_restore_std" has no matching label, ignoring.
systemd-udevd[660]: /usr/lib/udev/rules.d/90-alsa-restore.rules:16 The line has no effect any more, dropping.The error messages you are seeing in the kernel log is from systemd-udevd indicate a bug in the alsa-utils package's udev rules. This is a known issue affecting various Linux distributions, including Debian and Ubuntu, and is not related to the more serious NVIDIA and suspend problems I've been troubleshooting.
Analysis of the udev errors:
90-alsa-restore.rules:16 GOTO="alsa_restore_std" has no matching label, ignoring.: The90-alsa-restore.rulesfile is a udev rule that is supposed to restore ALSA (audio) settings on boot or when a device is plugged in. This particular error means that on line 16 of the file, the rule attempts to jump to a label namedalsa_restore_std, but that label does not exist anywhere in the file.The line has no effect any more, dropping.: This issystemd-udevd's way of telling you that it has detected the error and will ignore the line, effectively making it a non-issue for the system's functionality.
Is this a serious problem? No, this is a minor and non-critical issue. My audio should still be working correctly, and yes, my audio system continues to work correctly. The system will simply skip the buggy rule, and your audio settings will be managed by other means or will remain as they were set in the previous session.
How to fix the error (and stop the log message). Since this is a bug in the alsa-utils package, it can't be fixed by simply changing a setting. The fix will come in a future package update. However, you have two options to resolve it now:
Method 1: Apply the upstream fix (Recommended).
This method involves manually editing the udev rules file to apply the official fix from the alsa-utils developers on GitHub.
- Locate the problematic line. Look for line
16or search forGOTO="alsa_restore_std". - Apply the fix.
- Save the file and exit the editor.
- Reboot your system. The error messages should no longer appear.
Apply the patch manually. According to the upstream fix, the rule was missing a line. Add the following line before the GOTO command on line 16:
LABEL="alsa_restore_std"
Alternatively, you can just delete the erroneous GOTO line.
Open the udev rules file with root privileges:sh
sudo vim /usr/lib/udev/rules.d/90-alsa-restore.rules
Use code with caution.
Your final rules file should look like this:
# do not edit this file, it will be overwritten on update
ACTION=="add", SUBSYSTEM=="sound", KERNEL=="controlC*", KERNELS!="card*",@extratest@ GOTO="alsa_restore_go"
GOTO="alsa_restore_end"
LABEL="alsa_restore_go"
ENV{ALSA_CARD_NUMBER}="$attr{device/number}"
# mark HDA analog card; HDMI/DP card does not have capture devices
DRIVERS=="snd_hda_intel", TEST=="device/pcmC$env{ALSA_CARD_NUMBER}D0c", 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_std"
TEST!="@daemonswitch@", RUN+="@sbindir@/alsactl@args@ restore $env{ALSA_CARD_NUMBER}"
TEST=="@daemonswitch@", RUN+="@sbindir@/alsactl@args@ nrestore $env{ALSA_CARD_NUMBER}"
LABEL="alsa_restore_end"Method 2: Suppress the udev log messagesIf you prefer not to edit system files, you can suppress the log messages by setting a higher log level for systemd-udevd or for the kernel as a whole.
However, since I'm already doing advanced debugging and looking for a complete picture of my system's health, applying the manual fix is the better approach, as it correctly resolves the underlying bug.
But! Manual fixes for this issue will be erased by the next update of the system package containing this file. In Ubuntu, this is alsa-utils APT pachage.