0
0
mirror of https://github.com/libretro/Lakka-LibreELEC.git synced 2025-01-31 20:02:31 +00:00
Lakka-LibreELEC/packages/sysutils/busybox/scripts/update-bootloader-edid-amlogic
2024-07-06 13:02:07 +02:00

90 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2022-present Team LibreELEC (https://libreelec.tv)
do_install() {
# create the persistent firmware dir
mkdir -p "/storage/.config/firmware/edid"
# capture the raw edid file
if [ ! -e /storage/.config/firmware/edid/edid.bin ]; then
cat "/sys/class/drm/card0-HDMI-A-1/edid" >"/storage/.config/firmware/edid/edid.bin"
else
echo "info: using existing edid.bin"
fi
# create the cpio file
mkdir -p "/storage/cpio/lib/firmware/edid"
cp "/storage/.config/firmware/edid/edid.bin" "/storage/cpio/lib/firmware/edid/"
cd "/storage/cpio"
find . -print | cpio -ov -H newc >"/storage/.config/firmware/edid/edid.cpio"
# mount /flash rw
mount -o remount,rw /flash
# copy the cpio file
cp "/storage/.config/firmware/edid/edid.cpio" "/flash/edid.cpio"
# cleanup cpio dir
rm -rf "/storage/cpio"
# determine boot method and set params
if [ -f "/flash/extlinux/extlinux.conf" ]; then
FILE="/flash/extlinux/extlinux.conf"
if grep -q "initrd=/edid.cpio" "${FILE}"; then
echo "error: ${FILE} already contains edid.cpio, aborting!"
exit 1
else
cp "${FILE}" "${FILE}.backup"
sed -i "/ APPEND/s/$/ drm.edid_firmware=edid\/edid.bin video=HDMI-A-1:D/" "${FILE}"
echo "info: edid setup complete!"
exit 0
fi
else
FILE="/flash/uEnv.ini"
if grep -q "initrd=/edid.cpio" "${FILE}"; then
echo "error: ${FILE} already contains edid.cpio info .. aborting!"
exit 1
else
cp "${FILE}" "${FILE}.backup"
sed -i "/ bootargs/s/$/ drm.edid_firmware=edid\/edid.bin video=HDMI-A-1:D/" "${FILE}"
echo "info: edid setup complete!"
exit 0
fi
fi
}
do_cleanup() {
rm "/storage/.config/firmware/edid/edid.bin"
rm "/storage/.config/firmware/edid/edid.cpio"
mount -o remount,rw /flash
rm "/flash/edid.cpio"
if [ -f "/flash/extlinux/extlinux.conf" ]; then
FILE="/flash/extlinux/extlinux.conf"
else
FILE="/flash/uEnv.ini"
fi
cp "${FILE}.backup" "${FILE}"
mount -o remount,ro /flash
}
do_usage() {
echo "usage: getedid {create|delete}"
exit 0
}
case $1 in
create)
do_install
;;
delete)
do_cleanup
;;
*)
do_usage
;;
esac
exit