I’ve installed EndevourOS yesterday for the first time. My PC is connected to the TV with HDMI cable and the audio is also over HDMI. It’s Ryzen 4750G and its internal GPU.
Issue: Every time I start playing audio there’s a 3s of silence and the audio starts and plays fine after that. When I pause audio playback for 1-2s and start again there is no delay. When I pause audio playback for 5s and start again there’s 3s of silence and then I can hear the audio. (audio is always in sync with the video, the issue is 3s of silence at the start)
My TV also displays this overlay when new device is connected or resolution is changed and it appears every time this problem occurs. This leads me to believe HDMI audio device is being put to sleep very aggressively, wakes up only when audio is playing and it takes 3s for it to wake up and play the sound.
Is there a way to keep HDMI audio device alive all the time?
I asked about this in your telegram group and one of the users suggested adding amdgpu.dpm=0 to kernel options to disable amdgpu dynamic power management. Unfortunately my system won’t boot with this option.
I have dual boot with windows on this machine and this problem doesn’t exist there. This is not hardware issue.
sudo nano /etc/pulse/default.pa
Comment the following line with a # at the beginning. load-module module-suspend-on-idle
Save the file (Ctrl+O), restart audio server with pulseaudio -k.
I think I am using pulseaudio, because when I start PulseAudio Volume Control from the main menu I can control the volume there and it works.
I don’t have this file /etc/pulse/default.pa. The only file in pulse folder is client.conf
EDIT #1: When I type pulseaudio in the terminal I get “command not found”, so I guess I am not running pulseaudio after all?
EDIT #2: I fixed it almost completely. There’s still this delay when I first start the system, but after that sound playback is instant. I followed this set of instructions from arch wiki:
This is caused by node suspension when inactive. It can be disabled by editing /etc/pipewire/media-session.d/*-monitor.conf depending on where the delay occurs and changing property session.suspend-timeout-seconds to 0 to disable or to experiment with other values and see what works. Alternatively you can comment out the line suspend-node in /etc/pipewire/media-session.d/media-session.conf. Restart both the pipewire and pipewire-pulse systemd services to apply these changes, or alternatively reboot.
Alternative method worked for me. For me the files were located in different folder. It wasn’t /etc/pipewire/media-session.d/ like arch wiki said, but /usr/share/pipewire/media-session.d/
A more accurate way to check if an app is installed would be
pacman -Q | grep pulse
should show everything that is installed with “pulse” in the package name.
I figured it out in a different way. I googled what’s pulseaudio, that led me to alsa. In terminal I opened alsamixer. There I saw PipeWire in Card and Chip. I googled what’s pipewire. That led me to arch wiki and the suspend issue was mentioned there.