84 lines
2.2 KiB
Bash
Executable file
84 lines
2.2 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
# Copyright (C) 2018-present Team CoreELEC (https://coreelec.org)
|
|
|
|
remap_keys () {
|
|
[ ! -f "$1" ] && return
|
|
|
|
sed -i 's/ 15[^0-9]*$/ 1/
|
|
s/ 63[^0-9]*$/ 90/
|
|
s/ 97[^0-9]*$/ 28/
|
|
s/ 102[^0-9]*$/ 172/
|
|
s/ 125[^0-9]*$/ 46/
|
|
s/ 128[^0-9]*$/ 45/
|
|
s/ 139[^0-9]*$/ 46/
|
|
s/ 142[^0-9]*$/ 116/
|
|
s/ 143[^0-9]*$/ 116/
|
|
s/ 158[^0-9]*$/ 1/
|
|
s/ 183[^0-9]*$/ 59/
|
|
s/ 184[^0-9]*$/ 399/
|
|
s/ 185[^0-9]*$/ 400/
|
|
s/ 186[^0-9]*$/ 60/
|
|
s/ 232[^0-9]*$/ 28/
|
|
s/ 240[^0-9]*$/ 164/
|
|
s/ 241[^0-9]*$/ 163/
|
|
s/ 242[^0-9]*$/ 165/
|
|
s/ 244[^0-9]*$/ 208/
|
|
s/ 245[^0-9]*$/ 168/
|
|
s/ 264[^0-9]*$/ 63/
|
|
s/ 704[^0-9]*$/ 116/' \
|
|
"$1"
|
|
}
|
|
|
|
[ ! -e "/proc/device-tree/meson-ir/compatible" -o ! -e "/proc/device-tree/meson-remote/compatible" ] && exit
|
|
|
|
if [ -f "/flash/remote.disable" -o -f "/storage/.config/remote.disable" ]; then
|
|
echo "remote control disabled by user"
|
|
exit 0
|
|
fi
|
|
|
|
if [ -f "/flash/remote.force_meson_ir" -o -f "/storage/.config/remote.force_meson_ir" ]; then
|
|
force_meson_ir="yes"
|
|
else
|
|
force_meson_ir="no"
|
|
fi
|
|
|
|
if [ -f "/flash/remote.conf" ]; then
|
|
REMOTE_CONF_DIR="/flash"
|
|
elif [ -f "/storage/.config/remote.conf" ]; then
|
|
REMOTE_CONF_DIR="/storage/.config"
|
|
else
|
|
REMOTE_CONF_DIR=""
|
|
|
|
if [ -d "/proc/device-tree/custom_maps" -a "$force_meson_ir" = "no" ]; then
|
|
MAP_NAME=$(cat /proc/device-tree/custom_maps/map_0/mapname 2>/dev/null)
|
|
echo "using meson-remote, with pre-defined map '$MAP_NAME' from dtb"
|
|
modprobe meson-remote
|
|
exit 0
|
|
fi
|
|
fi
|
|
|
|
if [ -d "$REMOTE_CONF_DIR" ]; then
|
|
echo "using meson-remote, conf from $REMOTE_CONF_DIR"
|
|
|
|
if [ -d "/proc/device-tree/custom_maps" ]; then
|
|
MAP_NAME=$(cat /proc/device-tree/custom_maps/map_0/mapname 2>/dev/null)
|
|
echo "also using pre-defined map '$MAP_NAME' from dtb"
|
|
fi
|
|
|
|
modprobe meson-remote
|
|
|
|
for f in $REMOTE_CONF_DIR/remote*.conf; do
|
|
echo "configuring remote with $f"
|
|
cp "$f" /tmp/remote.conf
|
|
remap_keys /tmp/remote.conf
|
|
remotecfg /tmp/remote.conf
|
|
rm -f /tmp/remote.conf
|
|
done
|
|
else
|
|
echo "using meson-ir"
|
|
modprobe meson-ir
|
|
fi
|
|
|
|
exit 0
|