Alsa error in journalctl

I am getting this alsa error. I think it is not perfectly compatible with my sound chip, Realtek ALC 1220. Fedora 35

garberw@electron> uname -a
Linux electron 5.15.4-201.fc35.x86_64 #1 SMP Tue Nov 23 18:54:50 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
alsactl[1380]: alsa-lib parser.c:242:(error_node) UCM is not supported for this HDA model (HDA Intel PCH at 0x380ffff20000 irq 85)
alsactl[1380]: alsa-lib main.c:1405:(snd_use_case_mgr_open) error: failed to import hw:0 use case configuration -6
alsactl[1380]: alsa-lib parser.c:242:(error_node) UCM is not supported for this HDA model (HDA ATI HDMI at 0xd8e60000 irq 87)
alsactl[1380]: alsa-lib main.c:1405:(snd_use_case_mgr_open) error: failed to import hw:1 use case configuration -6
root@electron# lshw -C sound
  *-multimedia              
       description: Audio device
       product: 200 Series PCH HD Audio
       vendor: Intel Corporation
       physical id: 1f.3
       bus info: pci@0000:00:1f.3
       version: 00
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi bus_master cap_list
       configuration: driver=snd_hda_intel latency=32
       resources: iomemory:380f0-380ef iomemory:380f0-380ef irq:85 memory:380ffff20000-380ffff23fff memory:380ffff00000-380ffff0ffff
  *-multimedia
       description: Audio device
       product: Baffin HDMI/DP Audio [Radeon RX 550 640SP / RX 560/560X]
       vendor: Advanced Micro Devices, Inc. [AMD/ATI]
       physical id: 0.1
       bus info: pci@0000:65:00.1
       version: 00
       width: 64 bits
       clock: 33MHz
       capabilities: pm pciexpress msi bus_master cap_list
       configuration: driver=snd_hda_intel latency=0
       resources: irq:87 memory:d8e60000-d8e63fff
root@electron# 

Other than this error I can hear sound fine.

https://www.linuxquestions.org/questions/slackware-14/alsa-errors-at-boot-and-with-alsactl-4175702516/
Other than making the boot messages untidy I don’t believe they do any harm. It’s because your sound card is too old to support “ucm”. To prevent the errors from showing, drop this in your /etc/udev/rules.d/90-alsa-restore.rules:

ACTION=="add", SUBSYSTEM=="sound", KERNEL=="controlC*", KERNELS!="card*", TEST=="/usr/sbin", TEST=="/usr/share/alsa", GOTO="alsa_restore_go"
GOTO="alsa_restore_end"
LABEL="alsa_restore_go"
TEST!="/etc/alsa/state-daemon.conf", RUN+="/usr/sbin/alsactl --no-ucm restore $attr{device/number}"
TEST=="/etc/alsa/state-daemon.conf", RUN+="/usr/sbin/alsactl --no-ucm nrestore $attr{device/number}"
LABEL="alsa_restore_end"

Then edit /etc/rc.d/rc.alsa and make sure the alsactl commands in there also have “–no-ucm” That should prevent the errors from showing on boot.

Can someone update this solution for fedora 35 please?

Hello @garberw ,
Are you using alsa? Not Pipewire?

1 Like

I am using pipewire but alsa is also installed (pipewire-alsa)

root@electron# rpm -qa | grep alsa
alsa-firmware-1.2.4-5.fc35.noarch
alsa-tools-firmware-1.2.5-2.fc35.x86_64
python3-alsa-1.1.6-17.fc35.x86_64
alsa-utils-1.2.5.1-2.fc35.x86_64
alsa-tools-1.2.5-2.fc35.x86_64
alsamixergui-0.9.0-0.35.rc2.fc35.x86_64
alsa-ucm-utils-1.2.5.1-2.fc35.x86_64
qemu-audio-alsa-6.1.0-10.fc35.x86_64
pipewire-alsa-0.3.40-1.fc35.x86_64
alsa-lib-1.2.5.1-4.fc35.x86_64
alsa-lib-devel-1.2.5.1-4.fc35.x86_64
alsa-ucm-1.2.5.1-4.fc35.noarch
alsa-sof-firmware-1.9.2-1.fc35.noarch
root@electron# 
garberw@electron> LANG=C pactl info | grep '^Server Name'
Server Name: PulseAudio (on PipeWire 0.3.40) 
garberw@electron> pacmd list-cards
No PulseAudio daemon running, or not running as session daemon.
garberw@electron> pacmd list-sinks
No PulseAudio daemon running, or not running as session daemon.
garberw@electron> aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC1220 Analog [ALC1220 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 1: ALC1220 Digital [ALC1220 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: HDMI [HDA ATI HDMI], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: HDMI [HDA ATI HDMI], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: HDMI [HDA ATI HDMI], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: HDMI [HDA ATI HDMI], device 9: HDMI 3 [HDMI 3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: HDMI [HDA ATI HDMI], device 10: HDMI 4 [HDMI 4]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
garberw@electron> 

Does anyone know what

sudo alsactu -U store
would do and if that would fix it?

Not sure if it would fix it but might help determine something for you by elimination if nothing else. If it doesn’t change the results then it likely isn’t the issue or related so you can then ignore it and move onto other possibilities.

1 Like

alsactl -U store did not do anything.

Looking at your original post it looks like it is a configuration error, did you try the solution that you reference? If so, then I take it your asking to have this solution referenced in the documentation. There is a bug here about this, maybe go there and comment

1 Like

What is alsa needed for if I have pipewire? Would I lose any functionality if I disabled alsa? I expect it is used for some packages which require compatibility with the previous version. I forgot why I installed alsa, but somewhere it was recommended.

If there is no sacrifice, could you please explain how to shut down alsa if it is not too hard.
That would definitely cure this. Thanks (I read the previous post and link; it is a new system; alc1220 is relatively new).

On Fedora? With systemd? That’s definitely not right. /etc/rc.d/ is a vestigial directory tree, see /etc/rc.d/init.d/README. Nobody should be doing anything in /etc/rc.d in any release of Fedora since around Fedora 21(?)!

To adjust the commands in the alsa-state.service unit, you can run sudo systemctl edit --full alsa-state.service and edit the ExecStart and ExecStop command strings accordingly.

see the link at the beginning of that “solution”. it was from a slackware blog. I know we do not have rc.d anymore.

Ah, sorry, I didn’t realize that was just a copy-paste from that page. You may want to enclose the quoted bits in [quote] markers so it’s clearer. Anyway, the systemctl edit command I mentioned would be the modern-day equivalent, if I’m understanding those ancient-history suggestions correctly.


#
# 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=Manage Sound Card State (restore and store)
ConditionPathExists=/etc/alsa/state-daemon.conf

[Service]
Type=simple
ExecStart=-/usr/sbin/alsactl -s -n 19 -c -E ALSA_CONFIG_PATH=/etc/alsa/alsactl.conf --initfile=/lib/alsa/init/00main rdaemon
ExecStop=-/usr/sbin/alsactl -s kill save_and_quit

I do have the error to. Quite confusing the whole sotry ?!

Alsa was needed in the beginning of adoption of Pipewire as there were some missing functionality that was desired but not available yet on Pipewire. You manipulate Pipewire with pw-cli and other commands. Or you use Wireplumber for patching use, but there is still session management incompleteness. Alsa provides low level sound card/chip drivers, so maybe will be around for a bit. Another thing to keep in mind about your boot up being untidy which is largely the bulk of the issue, is that when systemd is starting things up, it starts a lot of concurrent tasks which in turn often need some other task going to continue. While those pre-requisite tasks are missing, said started task will complain to systemd which in turn tells you about it. Eventually things get caught up and it disappears (the annoying message). The boot continues as you note.

1 Like

Ah well I guess I should just ignore the so-called “error”. I apologize humbly. I wish not-serious “errors” or really warnings would not report under journalctl -p 3 though (color red = bad errors).

Btw you could remove alsa-ucm with $ sudo dnf remove alsa-ucm. It will remove three files: alsa-ucm, alsa-utils, and libsamplerate. After that reboot. Your error messages about alsa-ucm will gone and your audio will still working.

If something goes wrong, you could reinstall it with $ sudo dnf install alsa-ucm alsa-utils libsamplerate.

2 Likes

I like this last solution (Syaifur Rizal / oprizal); it solved the issue without any “side effects”.

Solved. thanks.

If you are satisfied with the solution presented please mark that post as the solution.