Fedora 36: no sound coming out of HDMI, Intel i5 8250U, setting intel_iommu=on,igfx_off in grub doesn't help

I can’t get any sound out of my HDMI port. My laptop is Acer Swift SF514-52T and is running on Fedora 36.

I tired to add the intel_iommu=on,igfx_offto GRUB_CMDLINE_LINUX="" in the /etc/default/grub file, as it has been suggested everywhere, for instance, here.

Then I sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg and reboot.

After rebooted, my internal speakers and internal mic that was working before are now death (no device show up at all).

My laptop is working fine on Windows 11.

How can I make the sound come out of my HDMI port on Fedora 36?

Here’s my aplay info:

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: hdadsp [hda-dsp], device 7: Analog HDA DSP (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: hdadsp [hda-dsp], device 8: Digital HDA DSP (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: hdadsp [hda-dsp], device 9: Alt Analog HDA DSP (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: hdadsp [hda-dsp], device 10: HDA DSP HDMI1 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: hdadsp [hda-dsp], device 11: HDA DSP HDMI2 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: hdadsp [hda-dsp], device 12: HDA DSP HDMI3 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Here’s my alsa-info:

http://alsa-project.org/db/?f=7072edabfaf7c12f2c1c548f80d70ae188024897

That has been wrong since F33 was released. The file you overwrote is a stub pointer that redirects grub to the relocated grub.cfg file. All system updates write a new grub.cfg file to /boot/grub2/grub.cfg and once you write the file under /boot/efi as you did then updates will no longer be accessible without manually redoing the grub2-mkconfig command.
The correct command is sudo grub2-mkconfig -o /boot/grub2/grub.cfg

Please remove the file you created at /boot/efi/EFI/fedora/grub.cfg then restore the default file in that location with sudo dnf reinstall grub2-common grub2-efi. Then if you want to rebuild the grub.cfg file use the command I provided above.

I personally use gnome settings to select the hdmi output, but see lots of threads about pavucontrol and similar to select specific devices for audio output.

Thanks for the correct command.

I tried adding the intel_iommu=on,igfx_off to GRUB_CMDLINE_LINUX="" in the /etc/default/grub file again and running the correct command. But the result is the same after rebooted. All of my sound devices disappear from my settings.

I also tried disable Intel virtualization settings in the BIOS (VT-x, VT-d) but it didn’t help to get the sound out of my HDMI.

Do you thing I should file a bug report?

Can you double check your wireplumber version?
sudo dnf list installed wireplumber

If it’s wireplumber-0.4.10-1, and you’ve modified or copied any of the config files to ~/.config or /etc you may want to check the updated ones versus your modified ones.

More details here

My wireplumber version is:

Installed Packages
wireplumber.x86_64                    0.4.10-1.fc36                     @updates

My speakers, mic, and bluetooth are working without any issue. I am having an issue with HDMI output. I have never modified any wireplumber related config. All I do is adding the intel_iommu=on,igfx_off to GRUB_CMDLINE_LINUX="" in the /etc/default/grub file.

1 Like

If you see problems with hardware after an update, one of the simplest things to try that sometimes works is just to select the previous kernel when your system is booting. It is not uncommon that a kernel update is responsible for hardware malfunctions.

This is my first time with Fedora and Linux in general. As with Fedora 36, everything work out of the box on my laptop except for the HDMI audio output.

UPDATE: in the end, the only way to make the sound out of my HDMI is to use the HDaudio legacy driver by adding the options snd-intel-dspcfg dsp_driver=1 in the /etc/modprobe.d/snd-intel.conf file. Then running sudo dracut --force and reboot.

However, with the HDaudio legacy driver, DMIC wouldn’t work which is the expected behavior.

Fedora 36 default setting is options snd-intel-dspcfg dsp_driver=2 (SST driver). No matter what you do, the HDMI audio will not work, ever.

SOF driver, options snd-intel-dspcfg dsp_driver=3, is not supported on my laptop—Coffee Lake CPU at all. You can see more regarding this situation here.

Basically, I have to pick my poison between option 1 or 2 :nauseated_face:

4 Likes

These three commands do exactly the same thing

This command overwrites a pointer file used to redirect grub to the actual grub.cfg file located at /boot/grub2/grub.cfg and will mean the user MUST manually repeat that command with every kernel update.

To recover from this error the user must first remove 2 files then reinstall grub2-common to recreate those files properly.
sudo rm /boot/grub2/grub.cfg /boot/efi/EFI/fedora/grub.cfg
sudo dnf reinstall grub2-common (which will recreate the files just removed with proper content.)

Closing this thread which has been necro for 2 years.