[TRACKING] Audio over HDMI on Ubuntu not working on 11th gen Intel Framework

I recently tried to set up my Framework main board as an HTPC running Ubuntu 23.04. Install went smoothly until I tried to play some audio at which point I noticed that nothing was coming out. I made sure the HDMI output was selected in the settings and ran another test, still nothing. I tried everything I could find online with various utilities like pavucontrol and still nothing.

Eventually, I noticed that if I let the machine go to sleep and have the TV stop detecting video output, I can shake the mouse to wake it back up and audio now just works. But if I restart my TV or the Framework, the audio stops again.

Has anyone had anything similar happen?

  • Operating System: Ubuntu
  • Operating System Version: 22.04/23.04
  • Framework Generation: 11th gen Intel
  • HDMI Dongle Generation: 1st gen

EDIT: Unrelated, but can someone tell me how to add tags to a post? Was trying to add the Linux tag but it wouldn’t let me. I see someone has added it for me for this post.

1 Like

Hi @Kasim_Ahmic,

To edit, tags, etc, look for the pencil next to the title, etc.

I run Jellyfin/Plex and I do not recommend using a non-LTS release for long term tasking like this. It’s newer, but it is obsolete in a few months and will require an update. For HTPC, you want 22.04 LTS.

That said, 23.04 uses Pipewire, but also uses backwards compatibility with PulseAudio applications like pavucontrol.

It sounds like you have your HDMI connection as your audio connection, is this correct?

  • You will want to ensure the HDMI device (I’m assuming here) is connected directly to an HDMI expansion card - avoid docks with suspend and audio/video transport, works until it doesn’t.

  • Using pavucontrol make sure under the Output Devices tab, it’s set as fallback (HDMI). It’s the circle with the checkmark in it, for that device - it should be pressed in for on.

  • Sometimes it’s tough to see if the button is pressed for the right device, so we can use this in a terminal with pactl get-default-sink to tell us absolutely what the fallback device is. Using pactl is compatible with Pipewire.

Best to check pactl get-default-sink immediately after the sound disappears during a resume. If the device is still showing as HDMI, and there is no audio, then I would ask if there are any power tweaks happening? TLP, etc?

Hi @Matt_Hartley, thanks for the response!

One thing I just noticed without changing anything is that the audio no longer stays gone after the machine wakes back up. Now I boot up, there’s no audio, I let the machine sleep, I wake it up, the audio becomes active, and it stays active. On reboot however, it goes away again.

With regard to the LTS version, I had seen a similar suggestion elsewhere so I tried 22.04 and had the same exact issue.

The HDMI device is connected directly to the HDMI expansion card and not through any dock or adapter.

In pavucontrol, I have verified that the HDMI output is set as the fallback. If I play a video, I can actually see the sound meter moving denoting there is actual audio playing.

The output of pactl get-default-sink is the same when there is no audio and when there is audio:

kasim@htpc:~$ pactl get-default-sink
alsa_output.pci-0000_00_1f.3.hdmi-stereo.2

EDIT: It doesn’t appear that tlp was installed and the “Power Mode” in Ubuntu’s Settings has been set to “Performance” mode.

Been chasing this all night trying various different things and it seems to be an Ubuntu specific issue. Out of curiosity, I installed Windows 11 and audio worked just fine from the get go. I then installed Pop!_OS 22.04 LTS (based on Ubuntu 22.04) and I had the same exact issue as Ubuntu 22.04 and 23.04. Gonna try Manjaro tomorrow and see if that fixes things though long term I would prefer to be on Debian/Ubuntu so any additional help with resolving the issue there would be much appreciated.

This is beginning to feel like it could be an ALSA bug. Please instead of Manjaro which is a rolling release, test with Fedora 38, fully updated (sudo dnf update) and see if it happens there.

We have resources and folks on the Fedora team I can lean on if this looks like a bug.

@Matt_Hartley It took a while, but I got Fedora 38 installed and updated and it too is exhibiting the same exact issue.

Thanks for checking this. What corrective workaround do you take again when this happens? Reboot?

I’m curious what the “state” is when it happens. if it appears muted, as it shows alsa_output.pci-0000_00_1f.3.hdmi-stereo.2 even when it goes silent.

This feels like it may be muting out. Please do the following, allow it to happen again, then check pavucontrol to see if it muted at Output and/or Playback tabs.

While still silent, also check alsamixer from the terminal. Leaving the soundcard settings as is, use the function keys to toggle to [All] and look for indicatations of anything being muted.

I either suspend the system by hitting the power button (making sure suspend is selected in Settings) or let it sleep on its own after the selected timeout in the Power section of Settings. Then I wake the system back up and it works, no need to fully shutdown.

The output of pactl on Fedora is slightly different, but I assume this is fine.

[kasim@fedora ~]$ pactl get-default-sink
alsa_output.pci-0000_00_1f.3.hdmi-stereo

Using pvaucontrol I’ve verified that neither the output or playback are muted. alsamixer also shows no indication of anything being muted.

I’ve been looking into this as well. 11th gen, Fedora 38 with all current updates.

Seeing this behaviour, exactly as mentioned.

In my [use] case, I don’t have to suspend the system to get HDMI audio working…as there are three additional paths to get it to work:

  1. Plug in the HDMI expansion card AFTER landing onto the Fedora desktop.
  2. Plug in the HDMI cable AFTER landing onto the Fedora desktop.
  3. Power on the AV receiver AFTER landing onto the Fedora desktop.

In all cases, there’s something that runs / enumerated at the time of setting re-initialization / setting the sink(?) that makes it work properly…but something that’s missing in the boot up flow.

I’ve been trying to simulate an unplug / plug action of the HDMI expansion card (without doing it physically) via commandline…but without success (unbind/bind).

As part of my troubleshooting, I’ve looked at restarting pipewire, pipewire-pulse, wireplumber services. Also looked into any delta in alsamixer and pavucontrol before and after suspend / replug. No visual differences. Also looked at pactl sink / source volume and mute…nothing obvious there. Looked into wpctl and pw-top…nothing obvious there. Ran alsaunmute, didn’t help. Tried running alsactl store / restore to see if the working state can be restored after a reboot, no go.

Regarding “alsa_output.pci-0000_00_1f.3.hdmi-stereo.2”…that last digit changes / increments everytime you suspend / resume or replug the HDMI cable or the HDMI expansion card.

1 Like

Thanks for the troubleshooting insights @Second_Coming

I am adding this to my list for us to dig into with the Fedora team.

2 Likes

Also, I’ve ruled out that it’s anything quirky with the HDMI expansion card as I’ve tried this with two other USB hubs with HDMI out. Same behaviour.

There’s probably enough information here already, but just for completeness sake I tested the issue on Manjaro after running through all the system updates and had the same exact issue.

1 Like

Appreciate the update.

Just to add on: I’m seeing the same issue with Fedora 39 on my 12th Gen.

1 Like