0

Yes, this question has been asked 6 or 7 million times already. But everybody has had a different cause for it, and therefore everybody has had a different solution to it. I am suffering from this issue, so I thought I would have a post where all the main causes (and solutions) are listed along with the troubleshooting steps. Of course, if anybody sees anything that I'm missing, please chime in.

First step, what's the machine.

user@machine:~$ sudo inxi
CPU: 8-core AMD Ryzen 7 7735HS with Radeon Graphics (-MT MCP-)
speed/min/max: 1700/1600/4828 MHz Kernel: 5.19.0-35-generic x86_64 Up: 9m
Mem: 2348.4/28818.8 MiB (8.1%) Storage: 476.94 GiB (2.7% used) Procs: 397
Shell: Sudo inxi: 3.3.13

user@machine:~$ sudo inxi -xA Audio: Device-1: AMD driver: snd_hda_intel v: kernel bus-ID: 74:00.1 Device-2: AMD Raven/Raven2/FireFlight/Renoir Audio Processor driver: snd_pci_acp6x v: kernel bus-ID: 74:00.5 Device-3: AMD Family 17h HD Audio driver: snd_hda_intel v: kernel bus-ID: 74:00.6 Sound Server-1: ALSA v: k5.19.0-35-generic running: yes Sound Server-2: PulseAudio v: 15.99.1 running: yes Sound Server-3: PipeWire v: 0.3.48 running: yes

user@machine:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.2 LTS Release: 22.04 Codename: jammy

Second, what's the behaviour. No audio over HDMI. Headphone jack works fine, Bluetooth audio works fine, no audio at all over HDMI (video signal is fine).

Third, what's been tried. The HDMI cable and speakers are known to be good. I hooked up an old laptop running 20.04, and the audio over HDMI is fine. There is a solution somewhere where somebody fixed this issue (on Windows) by getting a "4K HDMI cable", if that's even a thing, and that solved their issue. My HDMI cable says "High Speed Cable" on it, and nothing else. For someone else, what fixed it for them is to boot with the HDMI cable disconnected, and then reconnect it. Tried it, didn't help.

I looked under sound settings, HDMI is selected as an output. Sometimes I see a profile, but not for long, and that disappears, so I suspect it's a software thing (driver?), not a hardware thing. When I play sound, the sound meter moves, so the PC thinks it's outputting sound. I should probably look at the drivers (they say Intel HDA, this is an AMD APU, wtf?).

I also looked in Alsamixer to make sure nothing was muted (I've had this issue on other machines), everything was unmuted and I turned all the volumes to max.

UPDATE#1: tried deleting the pulse audio profile and rebooting, no change.

UPDATE#2: Gnome Alsamixer isn't a thing in 22.04, 18.04 is the latest release that has it.

UPDATE#3: Playing a test sound to a specific hardware output didn't result in sound over HDMI. I did get sound through the headphone jack when expected though.

UPDATE#4: Found a post that claims audio over HDMI is broken for my current kernel and that I need to downgrade.

Things to look into (with links to posts):

create a sink (I don't even know what a sink is, but I can look into it, instructions look simple and clear enough)

install GNOME AlsaMixer (I don't know that this would make a difference from the cli alsamixer, could be an updated or forked version, worth trying)

removing pulseaudio profile (worth trying)

disabling the iGPU (as someone in that thread pointed out, this is mental, it's like closing your eyes so you can hear better)

Kernel incompatibility (instructions to downgrade are here)

I will edit this post with progress.

tlhIngan
  • 358

1 Answers1

0

Great success! Kernel v5.19.0-35 is known to have issues with audio over HDMI. I reverted to kervel v5.15.104, the latest LTS kernel in the v5 series, and everything works as expected. Under sound settings, clicking "test" produces audible sound over the speakers that are connected through HDMI, and playing a YouTube video produces sound through those as well. Here are the steps I took to downgrade the kernel, copied from the original post in case things change there:

wget https://raw.githubusercontent.com/pimlie/ubuntu-mainline-kernel.sh/master/ubuntu-mainline-kernel.sh
chmod +x ubuntu-mainline-kernel.sh

search and find your wanted version

ubuntu-mainline-kernel.sh -r | grep 5.13

install that version kernel

ubuntu-mainline-kernel.sh -i v5.13.19

get all menuentries

grep 'menuentry |submenu ' /boot/grub/grub.cfg | cut -f2 -d "'"

change the grub configuration

vi /etc/default/grub from: GRUB_DEFAULT=0 to: GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 5.13.19-051319-generic"

update grub

update-grub

reboot

reboot now

verify

uname -r

Please note, some of these commands required sudo. Also make the following 3 changes to match your desired kernel version:

  • "5.13" in the second step to the version you want (5.15 in my case)
  • "v5.13.19" in the 3rd step to the one you want from the output of step #2 (v5.15.104 in my case)
  • "5.13.19-051319-generic" from the 5th step to the exact entry from the output of step #4 that has your desired kernel version and that does NOT say recovery ("5.15.104-0515104-generic" in my case)

I find it deeply upsetting that a broken kernel would be forced onto the user, and a non-LTS one at that.

tlhIngan
  • 358