Loud pops when starting a sound

Hi all,

if a problem with aloud pop sound when starting any audio playback after some time. Some research brought up these:

https://wiki.archlinux.org/title/Advanced_Linux_Sound_Architecture/Troubleshooting#Pops_when_starting_and_stopping_playback

Both recommend putting “options snd_hda_intel power_save=0” in a .conf file under /etc/modprobe.d/.
While this is working after reloading the module, the option is not picked up on reboot. Anyone an idea why?

Some info:

Audio:
  Device-1: Intel 100 Series/C230 Series Family HD Audio
    driver: snd_hda_intel
  Device-2: NVIDIA GP104 High Definition Audio driver: snd_hda_intel
  Sound Server-1: ALSA v: k5.15.16-1-MANJARO running: yes
  Sound Server-2: PipeWire v: 0.3.43 running: yes

Hi @poetter,

Have you created, added the content and saved the as root?

Yes,

➜  ~ ls -la /etc/modprobe.d/audio_disable_powersave.conf
-rw-r--r-- 1 root root 36  3. Feb 12:02 /etc/modprobe.d/audio_disable_powersave.conf

Follow this tutorial and see if it helps. The user is also using Manjaro. Alternatively add options snd-hda-intel power_save=0 power_save_controller=N in /etc/modprobe.d/alsa-base.conf as suggested in the pinned comment.

you could try adding the kernel parameter
modules_load="options snd-hda-intel power_save=0"
this will make sure that the module parameter is getting read at boot and not being skipped for some reason

@ishaan2479 : Thanks for the link. Unfortunately, changing parameters in /sys/module/… changes only at runtime. It’s gone after a reboot. I don’t run tlp or any other power saving service. Changing the .conf file to alsa-base.conf did not help either. As far as I’m aware, the name does not matter. Just the file extension has to be .conf.

@person1873 : I tried adding kernel parameters into /etc/default/grub and they were picked up according to this:

➜  ~ cat /proc/cmdline
BOOT_IMAGE=/@/boot/vmlinuz-5.15-x86_64 root=UUID=bda07b1a-26b1-4655-8c8b-2d25d096e1d8 rw rootflags=subvol=@ quiet udev.log_priority=3 snd_hda_intel.power_save=0 snd_hda_intel.power_save_controller=N

But this still did not help. After a reboot, power_save is turned on again:

➜  ~ systool -v -m snd_hda_intel | grep power
    power_save          = "1"
    power_save_controller= "Y"

Hmm, I’m out of ideas now.

Edit: Copied output of systool after manually disabling. Changed to output before

you could as a last ditch attempt, write a small script (systemd .service?) that runs on login to set the power state?

make sure there’s no laptop power saving services running that could be re-enabling this without your knowledge.

I had also read in a few places that this flag is compiled into the kernel.
If you’re willing to risk it for the biscuit you could try compiling your own kernel with this option configured correctly for your system.

I have to apologize. I sure run tlp. Just my config file was under /etc/tlp.conf. Changed params in there to

# Enable audio power saving for Intel HDA, AC97 devices (timeout in secs).
# A value of 0 disables, >= 1 enables power saving.
# Note: 1 is recommended for Linux desktop environments with PulseAudio,
# systems without PulseAudio may require 10.
# Default: 1

SOUND_POWER_SAVE_ON_AC=0
SOUND_POWER_SAVE_ON_BAT=0

# Disable controller too (HDA only): Y/N.
# Note: effective only when SOUND_POWER_SAVE_ON_AC/BAT is activated.
# Default: Y

SOUND_POWER_SAVE_CONTROLLER=N

Now I’m reboot save. Thanks for your help

Glad to help.
there’s just too many moving parts sometimes

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.