mirror of
https://github.com/libretro/Lakka-LibreELEC.git
synced 2025-01-19 04:52:07 +00:00
765323df23
Lakka 5.x Switch changes (#1853) Lakka v5.x switchroot 5.1.2 (#1871) Fix Switch Issue's in upstream 5.x (#1888) Minor Switch Changes (#1893) Lakka v5.x switch 3 (#1895) Lakka v5.x switch 4 (#1898) L4T: Xorg-server: Fix build issue (#1924) Switch: remove ra patch Lakka v5.x switch 6 (#1926) Cleanups, More LibreELEC Stuff, more permission fixes, Misc switch stuff. (#1930) Switch: U-Boot: bump version to 2024-NX02 (#1946) L4T/Ayn post-upstreaming fixes - retroarch_joypad_autoconfig: remove spaces from file names - retroarch: remove Switch specific patch merged upstream - libXv: move to L4T packages folder (package removed in upstream) - bring some packages from v5.x to L4T packages - ffmpeg: remove vulkan - remove stella core from Switch build (missing C++ headers) - Ayn/Odin: use proper kernel arg to not hide kernel messages in console - connman: add wpa_supplicant support back
96 lines
1.9 KiB
Bash
Executable File
96 lines
1.9 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
# Copyright (C) 2021-present Team LibreELEC (https://libreelec.tv)
|
|
|
|
EDID_DIR="/storage/.config/firmware/edid"
|
|
EDID_CPIO="/flash/edid.cpio"
|
|
CONFIG_TXT="/flash/config.txt"
|
|
CMDLINE_TXT="/flash/cmdline.txt"
|
|
|
|
usage() {
|
|
echo "$0 set CONNECTOR... | delete | help"
|
|
}
|
|
|
|
check_args() {
|
|
if [ $# -eq 0 ]; then
|
|
echo "error: no connector(s) specified!"
|
|
exit 1
|
|
fi
|
|
if [ ! -f "${EDID_CPIO}" ]; then
|
|
echo "error: ${EDID_CPIO} not present"
|
|
exit 1
|
|
fi
|
|
for conn in "$@"; do
|
|
if [ ! -f "${EDID_DIR}/edid-${conn}.bin" ]; then
|
|
echo "error: ${EDID_DIR}/edid-${conn}.bin not present"
|
|
exit 1
|
|
fi
|
|
done
|
|
}
|
|
|
|
cleanup_config_txt() {
|
|
sed -i "/^initramfs edid\.cpio/d" ${CONFIG_TXT}
|
|
}
|
|
|
|
get_cleaned_cmdline_txt() {
|
|
sed \
|
|
-e 's| drm\.edid_firmware=[^ ]*||g' \
|
|
-e 's| video=[^ ]*||g' \
|
|
${CMDLINE_TXT}
|
|
}
|
|
|
|
add_initramfs() {
|
|
# make sure config.txt ends with a newline
|
|
if [ "$(tail -c 1 ${CONFIG_TXT} | tr -c -d '\n' | tr '\n' 'X')" != "X" ]; then
|
|
echo "" >> ${CONFIG_TXT}
|
|
fi
|
|
echo "initramfs edid.cpio" >> ${CONFIG_TXT}
|
|
}
|
|
|
|
add_cmdline() {
|
|
CMDLINE=$(get_cleaned_cmdline_txt)
|
|
FIRMWARE=""
|
|
VIDEO=""
|
|
for conn in "$@"; do
|
|
VIDEO="${VIDEO} video=${conn}:D"
|
|
[ -n "${FIRMWARE}" ] && FIRMWARE="${FIRMWARE},"
|
|
FIRMWARE="${FIRMWARE}${conn}:edid/edid-${conn}.bin"
|
|
done
|
|
echo "${CMDLINE} drm.edid_firmware=${FIRMWARE}${VIDEO}" > ${CMDLINE_TXT}
|
|
}
|
|
|
|
set_edids() {
|
|
check_args "$@"
|
|
mount -o remount,rw /flash
|
|
cleanup_config_txt
|
|
add_initramfs
|
|
add_cmdline "$@"
|
|
mount -o remount,ro /flash
|
|
}
|
|
|
|
delete_edids() {
|
|
mount -o remount,rw /flash
|
|
cleanup_config_txt
|
|
CMDLINE=$(get_cleaned_cmdline_txt)
|
|
echo "${CMDLINE}" > ${CMDLINE_TXT}
|
|
mount -o remount,ro /flash
|
|
}
|
|
|
|
case $1 in
|
|
set)
|
|
shift
|
|
set_edids "$@"
|
|
;;
|
|
delete)
|
|
delete_edids
|
|
;;
|
|
help)
|
|
usage
|
|
;;
|
|
*)
|
|
usage
|
|
exit 1
|
|
;;
|
|
esac
|