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 : Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Integrated Graphics Controller [8086:22b1] (rev 35)
And this Intel card is driven by
$> 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