Getting HDMI audio working on Fedora
09 May 2017
A few days ago, I wanted to stream a film on my tv. Since the tv isn't smart, I streamed on my laptop and plugged it into the tv. The video feed was no problem but the audio just didn't show up. Even a few times of turning everything off and on again wouldn't work. So in the end, I ended up on Google and this is how I got the sound to work:
To check if you screen actually shows up:
$ aplay -l
**** List of PLAYBACK Hardware Devices **** card 0: HDMI [HDA Intel HDMI], device 3: HDMI 0 [HDMI 0] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: HDMI [HDA Intel HDMI], device 7: HDMI 1 [HDMI 1] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: HDMI [HDA Intel HDMI], device 8: HDMI 2 [HDMI 2] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: PCH [HDA Intel PCH], device 0: ALC286 Analog [ALC286 Analog] Subdevices: 0/1 Subdevice #0: subdevice #0
Then try out every device and see which one is the right ourput device:
$ aplay -D plughw:0,7 /usr/share/sounds/alsa/Front_Right.wav
0,7 standing for <card no>,<device no>
Spotify, mplayer, pulse etc need to be closed for this, otherwise you'll get an
audio open error.
Then, force pulseaudio to load the hdmi device by adding
load-module module-alsa-sink device=hw:0,7
/etc/pulse/default.pa file. There should already be a line with
load-module module-alsa-sink so you only need to uncomment it and add the
device... part. Of course, you need to subsitute the 0 and 7 with your device's numbers.
Then, restart pulseaudio:
$pulseaudio -k $pulseaudio --start
Then, open the GNOME settings and choose built-in audio as the output device.
This was the way I did it. Potentially it would work with using the GNOME settings only or maybe the
aplay part and then the GNOME settings. But by the time I found the option in GNOME settings, I'd already done all of the above.