Linux openSUSE Leap HDMI output not working correctly

2020-10-25 : Linux HDMI to receiver connection in a home theatre setup

Sometimes i want to watch video clips and films on my home theatre system with surround sound for audio and a projector for video directly from a laptop (in this example a Lenovo ideapad 100S), which is running openSUSE 15.2 currently. Because of this setup i don't connect the HDMI output directly to a TV HDMI input, but to a receiver which drives my theatre.

Sadly this setup seems to cause some problem with auto detecting of the HDMI output on the Linux laptop. If i connect the cable while the laptop is running, the video signal over HDMI starts switching on and off every 1 to 3 seconds and the audio signal is also missing. But these are two different problems, so let's start with the first, the video signal.

My Laptop has the following graphics hardware:

$> lspci -nn | egrep -i "(vga)|(3d)|(display)"
00:02.0 VGA compatible controller [0300]: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Integrated Graphics Controller [8086:22b1] (rev 35)

And this Intel card is driven by i915, see:

$> lspci -d 8086:22b1 -k
00:02.0 VGA compatible controller: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Integrated Graphics Controller (rev 35)
    Subsystem: Lenovo Device 3905
    Kernel driver in use: i915
    Kernel modules: i915

The problem is caused by the receiver (Pioneer AV Receiver ASX-329) probably. It seems it is not transmitting the correct EDID information of the connected output device (in this case my projector, a BenQ 3D beamer). Anyways, forcing i915to drive this output solves the on and off switching problem. I can achieve this with:

$> echo on > /sys/class/drm/card0-HDMI-A-1/status

Now to the missing audio signal. Because we force the video driver to output the signal, we have to explicitly select that output for the audio signal too. A nice little program to switch the output of your PulseAudio is pavucontrol. If you don't have it yet, i recommend to install it on your openSUSE system (It's part of the default repositories):

$> zypper in pavucontrol

I can easily select HDMI output now for audio and start watching stuff (youtube, Amazon Prime, etc.) from my laptop on my home theatre system. smile