distribution/packages/jelos/autostart/055-hdmi-check

29 lines
1.2 KiB
Bash
Executable file

#!/bin/bash
# SPDX-License-Identifier: MIT
# Copyright (C) 2023-present Fewtarius (https://github.com/fewtarius)
# Copyright (C) 2023-present christianhaitian (https://github.com/christianhaitian)
# Copyright (C) 2023-present Rocky5 (https://github.com/rocky5)
# The purpose of this script is to permanently set the resolution
# output for hdmi when connected.
xres="$(cat /sys/class/graphics/fb0/modes | grep -o -P '(?<=:).*(?=p-)' | cut -dx -f1)"
# drm_tool source available at https://github.com/christianhaitian/drm_tool.git
mode="$(/usr/bin/drm_tool list | awk '/1280x720.*60/ {print substr($2,1,length($2)-1); exit}')"
mode2="$(/usr/bin/drm_tool list | awk '/1920x1080.*60/ {print substr($2,1,length($2)-1); exit}')"
# Now we tell drm what the hdmi mode is by writing to /var/run/drmMode
# This will get picked up by SDL2 as long as it's been patched with the batocera
# drm resolution patch. This patch can be found at
# https://github.com/christianhaitian/rk3566_core_builds/raw/master/patches/sdl2-patch-0003-drm-resolution.patch
if [ $xres -eq "1280" ]; then
echo $mode | tee /var/run/drmMode
elif [ $xres -eq "1920" ]; then
echo $mode2 | tee /var/run/drmConn
else
echo 0 | tee /var/run/drmMode
echo 1 | tee /var/run/drmConn
fi