mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-29 13:46:49 +00:00
cleanup scripts: packages/
This commit is contained in:
parent
99ae3fc3b1
commit
67dcda694b
@ -13,171 +13,171 @@ mixer() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
(
|
(
|
||||||
. /etc/profile
|
. /etc/profile
|
||||||
|
|
||||||
progress "Setting up sound card"
|
progress "Setting up sound card"
|
||||||
|
|
||||||
if [ -f $HOME/.config/sound.conf ]; then
|
if [ -f $HOME/.config/sound.conf ]; then
|
||||||
|
|
||||||
alsactl restore -f $HOME/.config/sound.conf
|
alsactl restore -f $HOME/.config/sound.conf
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
# get card num
|
# get card num
|
||||||
card=`echo $1 | sed 's/[^0-9]*//g'`
|
card=$(echo $1 | sed 's/[^0-9]*//g')
|
||||||
|
|
||||||
# set common mixer params
|
# set common mixer params
|
||||||
mixer "$card" Master 0db
|
mixer "$card" Master 0db
|
||||||
mixer "$card" Front 100%
|
mixer "$card" Front 100%
|
||||||
mixer "$card" PCM 0db
|
mixer "$card" PCM 0db
|
||||||
mixer "$card" Synth 100%
|
mixer "$card" Synth 100%
|
||||||
|
|
||||||
# mute CD, since using digital audio instead
|
# mute CD, since using digital audio instead
|
||||||
mixer "$card" CD 0% mute
|
mixer "$card" CD 0% mute
|
||||||
|
|
||||||
# Only unmute Line and Aux if they are possibly used.
|
# Only unmute Line and Aux if they are possibly used.
|
||||||
# mixer "$card" Line 100%
|
# mixer "$card" Line 100%
|
||||||
# mixer "$card" Aux 100%
|
# mixer "$card" Aux 100%
|
||||||
|
|
||||||
# mute mic
|
# mute mic
|
||||||
mixer "$card" Mic 0% mute
|
mixer "$card" Mic 0% mute
|
||||||
|
|
||||||
# ESS 1969 chipset has 2 PCM channels
|
# ESS 1969 chipset has 2 PCM channels
|
||||||
mixer "$card" PCM,1 100%
|
mixer "$card" PCM,1 100%
|
||||||
|
|
||||||
# Trident/YMFPCI/emu10k1
|
# Trident/YMFPCI/emu10k1
|
||||||
mixer "$card" Wave 100%
|
mixer "$card" Wave 100%
|
||||||
mixer "$card" Music 100%
|
mixer "$card" Music 100%
|
||||||
mixer "$card" AC97 100%
|
mixer "$card" AC97 100%
|
||||||
mixer "$card" Surround 90%
|
mixer "$card" Surround 90%
|
||||||
mixer "$card" 'Surround Digital' 90%
|
mixer "$card" 'Surround Digital' 90%
|
||||||
mixer "$card" 'Wave Surround' 90%
|
mixer "$card" 'Wave Surround' 90%
|
||||||
mixer "$card" 'Duplicate Front' 90%
|
mixer "$card" 'Duplicate Front' 90%
|
||||||
mixer "$card" 'Sigmatel 4-Speaker Stereo' 90%
|
mixer "$card" 'Sigmatel 4-Speaker Stereo' 90%
|
||||||
|
|
||||||
# CS4237B chipset:
|
# CS4237B chipset:
|
||||||
mixer "$card" 'Master Digital' 100%
|
mixer "$card" 'Master Digital' 100%
|
||||||
|
|
||||||
# DRC
|
# DRC
|
||||||
mixer "$card" 'Dynamic Range Compression' 90%
|
mixer "$card" 'Dynamic Range Compression' 90%
|
||||||
|
|
||||||
# Envy24 chips with analog outs
|
# Envy24 chips with analog outs
|
||||||
mixer "$card" DAC 100%
|
mixer "$card" DAC 100%
|
||||||
mixer "$card" DAC,0 100%
|
mixer "$card" DAC,0 100%
|
||||||
mixer "$card" DAC,1 100%
|
mixer "$card" DAC,1 100%
|
||||||
|
|
||||||
# some notebooks use headphone instead of master
|
# some notebooks use headphone instead of master
|
||||||
mixer "$card" Headphone 100%
|
mixer "$card" Headphone 100%
|
||||||
mixer "$card" Speaker 100%
|
mixer "$card" Speaker 100%
|
||||||
mixer "$card" 'Internal Speaker' 0% mute
|
mixer "$card" 'Internal Speaker' 0% mute
|
||||||
mixer "$card" Playback 100%
|
mixer "$card" Playback 100%
|
||||||
mixer "$card" Headphone 100%
|
mixer "$card" Headphone 100%
|
||||||
mixer "$card" Speaker 100%
|
mixer "$card" Speaker 100%
|
||||||
mixer "$card" Center 100%
|
mixer "$card" Center 100%
|
||||||
mixer "$card" LFE 100%
|
mixer "$card" LFE 100%
|
||||||
mixer "$card" Center/LFE 100%
|
mixer "$card" Center/LFE 100%
|
||||||
|
|
||||||
# Intel P4P800-MX (Ubuntu bug #5813)
|
# Intel P4P800-MX (Ubuntu bug #5813)
|
||||||
mixer "$card" 'Master Playback Switch' on
|
mixer "$card" 'Master Playback Switch' on
|
||||||
|
|
||||||
# set digital output mixer params
|
# set digital output mixer params
|
||||||
mixer "$card" 'IEC958' 100% on
|
mixer "$card" 'IEC958' 100% on
|
||||||
mixer "$card" 'IEC958 Output' 100%
|
mixer "$card" 'IEC958 Output' 100%
|
||||||
mixer "$card" 'IEC958 Coaxial' 100%
|
mixer "$card" 'IEC958 Coaxial' 100%
|
||||||
mixer "$card" 'IEC958 LiveDrive' 100%
|
mixer "$card" 'IEC958 LiveDrive' 100%
|
||||||
mixer "$card" 'IEC958 Optical Raw' 100%
|
mixer "$card" 'IEC958 Optical Raw' 100%
|
||||||
mixer "$card" 'SPDIF Out' 100%
|
mixer "$card" 'SPDIF Out' 100%
|
||||||
mixer "$card" 'SPDIF Front' 100%
|
mixer "$card" 'SPDIF Front' 100%
|
||||||
mixer "$card" 'SPDIF Rear' 100%
|
mixer "$card" 'SPDIF Rear' 100%
|
||||||
mixer "$card" 'SPDIF Center/LFE' 100%
|
mixer "$card" 'SPDIF Center/LFE' 100%
|
||||||
mixer "$card" 'Master Digital' 100%
|
mixer "$card" 'Master Digital' 100%
|
||||||
|
|
||||||
mixer "$card" 'Analog Front' 100%
|
mixer "$card" 'Analog Front' 100%
|
||||||
mixer "$card" 'Analog Rear' 100%
|
mixer "$card" 'Analog Rear' 100%
|
||||||
mixer "$card" 'Analog Center/LFE' 100%
|
mixer "$card" 'Analog Center/LFE' 100%
|
||||||
|
|
||||||
# ASRock ION 330 (and perhaps others) has 2 IEC958 channels
|
# ASRock ION 330 (and perhaps others) has 2 IEC958 channels
|
||||||
mixer "$card" IEC958,0 on
|
mixer "$card" IEC958,0 on
|
||||||
mixer "$card" IEC958,1 on
|
mixer "$card" IEC958,1 on
|
||||||
|
|
||||||
# some ION2 has much more IEC958 channels ...
|
# some ION2 has much more IEC958 channels ...
|
||||||
mixer "$card" IEC958,2 on
|
mixer "$card" IEC958,2 on
|
||||||
mixer "$card" IEC958,3 on
|
mixer "$card" IEC958,3 on
|
||||||
|
|
||||||
# ASRock ION 330 has Master Front set to 0
|
# ASRock ION 330 has Master Front set to 0
|
||||||
mixer "$card" 'Master Front' 100%
|
mixer "$card" 'Master Front' 100%
|
||||||
|
|
||||||
# Shuttle XS35GT needs this too
|
# Shuttle XS35GT needs this too
|
||||||
mixer "$card" 'Master',0 100% on
|
mixer "$card" 'Master',0 100% on
|
||||||
|
|
||||||
# and this for various Fusion devices like Zotac ZBOX
|
# and this for various Fusion devices like Zotac ZBOX
|
||||||
mixer "$card" 'Front',0 100% on
|
mixer "$card" 'Front',0 100% on
|
||||||
|
|
||||||
# NVidia CK804 sound devices
|
# NVidia CK804 sound devices
|
||||||
mixer "$card" 'IEC958 Playback AC97-SPSA' 100%
|
mixer "$card" 'IEC958 Playback AC97-SPSA' 100%
|
||||||
|
|
||||||
# Allwinner H3 Analog
|
# Allwinner H3 Analog
|
||||||
mixer "$card" 'Line Out' 0db on
|
mixer "$card" 'Line Out' 0db on
|
||||||
|
|
||||||
# Allwinner A20 Analog
|
# Allwinner A20 Analog
|
||||||
mixer "$card" 'Power Amplifier' 0db
|
mixer "$card" 'Power Amplifier' 0db
|
||||||
mixer "$card" 'Power Amplifier DAC' on
|
mixer "$card" 'Power Amplifier DAC' on
|
||||||
mixer "$card" 'Power Amplifier Mute' on
|
mixer "$card" 'Power Amplifier Mute' on
|
||||||
|
|
||||||
# Allwinner A64 Analog
|
# Allwinner A64 Analog
|
||||||
mixer "$card" Headphone 0db on
|
mixer "$card" Headphone 0db on
|
||||||
mixer "$card" 'AIF1 Slot 0 Digital DAC' on
|
mixer "$card" 'AIF1 Slot 0 Digital DAC' on
|
||||||
|
|
||||||
# Amlogic audio devices
|
# Amlogic audio devices
|
||||||
case $(dtsoc) in
|
case $(dtsoc) in
|
||||||
amlogic,g12*|amlogic,sm1)
|
amlogic,g12* | amlogic,sm1)
|
||||||
# AXG HDMI // Logic assumes TDMOUT_A is not present in device-tree when TDMOUT_B is used
|
# AXG HDMI // Logic assumes TDMOUT_A is not present in device-tree when TDMOUT_B is used
|
||||||
TDMOUT=$(awk '/TDMOUT/ && $2=="OUT" {print substr($1,length($1),1)}' /sys/firmware/devicetree/base/sound/audio-routing | sort | head -n 1)
|
TDMOUT=$(awk '/TDMOUT/ && $2=="OUT" {print substr($1,length($1),1)}' /sys/firmware/devicetree/base/sound/audio-routing | sort | head -n 1)
|
||||||
if [ "${TDMOUT}" = "A" ]; then
|
if [ "${TDMOUT}" = "A" ]; then
|
||||||
mixer "$card" 'FRDDR_A SINK 1 SEL' 'OUT 0'
|
mixer "$card" 'FRDDR_A SINK 1 SEL' 'OUT 0'
|
||||||
mixer "$card" 'FRDDR_A SRC 1 EN' on
|
mixer "$card" 'FRDDR_A SRC 1 EN' on
|
||||||
mixer "$card" 'TDMOUT_A SRC SEL' 'IN 0'
|
mixer "$card" 'TDMOUT_A SRC SEL' 'IN 0'
|
||||||
mixer "$card" 'TOHDMITX' on
|
mixer "$card" 'TOHDMITX' on
|
||||||
mixer "$card" 'TOHDMITX I2S SRC' 'I2S A'
|
mixer "$card" 'TOHDMITX I2S SRC' 'I2S A'
|
||||||
elif [ "${TDMOUT}" = "B" ]; then
|
elif [ "${TDMOUT}" = "B" ]; then
|
||||||
mixer "$card" 'FRDDR_A SINK 1 SEL' 'OUT 1'
|
mixer "$card" 'FRDDR_A SINK 1 SEL' 'OUT 1'
|
||||||
mixer "$card" 'FRDDR_A SRC 1 EN' on
|
mixer "$card" 'FRDDR_A SRC 1 EN' on
|
||||||
mixer "$card" 'TDMOUT_B SRC SEL' 'IN 0'
|
mixer "$card" 'TDMOUT_B SRC SEL' 'IN 0'
|
||||||
mixer "$card" 'TOHDMITX' on
|
mixer "$card" 'TOHDMITX' on
|
||||||
mixer "$card" 'TOHDMITX I2S SRC' 'I2S B'
|
mixer "$card" 'TOHDMITX I2S SRC' 'I2S B'
|
||||||
fi
|
fi
|
||||||
# AXG S/PDIF
|
# AXG S/PDIF
|
||||||
SPDIFOUT=$(awk '/SPDIF/' /sys/firmware/devicetree/base/sound/audio-routing | sort | head -n 1)
|
SPDIFOUT=$(awk '/SPDIF/' /sys/firmware/devicetree/base/sound/audio-routing | sort | head -n 1)
|
||||||
if [ -n "${SPDIFOUT}" ]; then
|
if [ -n "${SPDIFOUT}" ]; then
|
||||||
mixer "$card" 'FRDDR_B SINK 1 SEL' 'OUT 3'
|
mixer "$card" 'FRDDR_B SINK 1 SEL' 'OUT 3'
|
||||||
mixer "$card" 'FRDDR_B SRC 1 EN' on
|
mixer "$card" 'FRDDR_B SRC 1 EN' on
|
||||||
mixer "$card" 'SPDIFOUT SRC SEL' 'IN 1'
|
mixer "$card" 'SPDIFOUT SRC SEL' 'IN 1'
|
||||||
mixer "$card" 'SPDIFOUT Playback' on
|
mixer "$card" 'SPDIFOUT Playback' on
|
||||||
fi
|
fi
|
||||||
# AXG Headphone Jack
|
# AXG Headphone Jack
|
||||||
ACODEC=$(awk '/ACODEC/' /sys/firmware/devicetree/base/sound/audio-routing | sort | head -n 1)
|
ACODEC=$(awk '/ACODEC/' /sys/firmware/devicetree/base/sound/audio-routing | sort | head -n 1)
|
||||||
if [ -n "${ACODEC}" ]; then
|
if [ -n "${ACODEC}" ]; then
|
||||||
mixer "$card" 'TOACODEC OUT EN' on
|
mixer "$card" 'TOACODEC OUT EN' on
|
||||||
mixer "$card" 'TOACODEC SRC' 'I2S ${TDMOUT}'
|
mixer "$card" 'TOACODEC SRC' 'I2S ${TDMOUT}'
|
||||||
mixer "$card" 'ACODEC Playback Switch' on
|
mixer "$card" 'ACODEC Playback Switch' on
|
||||||
mixer "$card" 'ACODEC Playback Channel Mode' Stereo
|
mixer "$card" 'ACODEC Playback Channel Mode' Stereo
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
amlogic,meson-gx*)
|
amlogic,meson-gx*)
|
||||||
# AIU HDMI and S/PDIF
|
# AIU HDMI and S/PDIF
|
||||||
mixer "$card" 'AIU HDMI CTRL SRC' 'I2S'
|
mixer "$card" 'AIU HDMI CTRL SRC' 'I2S'
|
||||||
mixer "$card" 'AIU SPDIF SRC SEL' 'SPDIF'
|
mixer "$card" 'AIU SPDIF SRC SEL' 'SPDIF'
|
||||||
# AIU ACODEC headphone jack
|
# AIU ACODEC headphone jack
|
||||||
mixer "$card" 'ACODEC' 80% on
|
mixer "$card" 'ACODEC' 80% on
|
||||||
mixer "$card" 'AIU ACODEC SRC' 'I2S'
|
mixer "$card" 'AIU ACODEC SRC' 'I2S'
|
||||||
mixer "$card" 'AIU ACODEC OUT EN' on
|
mixer "$card" 'AIU ACODEC OUT EN' on
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# ES8316 headphone jack
|
# ES8316 headphone jack
|
||||||
mixer "$card" 'Right Headphone Mixer Right DAC' on
|
mixer "$card" 'Right Headphone Mixer Right DAC' on
|
||||||
mixer "$card" 'Left Headphone Mixer Left DAC' on
|
mixer "$card" 'Left Headphone Mixer Left DAC' on
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
)&
|
) &
|
||||||
|
@ -4,21 +4,21 @@
|
|||||||
|
|
||||||
. /etc/profile
|
. /etc/profile
|
||||||
|
|
||||||
if [ -f $HOME/.config/sound.conf ] ; then
|
if [ -f $HOME/.config/sound.conf ]; then
|
||||||
alsactl restore -f $HOME/.config/sound.conf
|
alsactl restore -f $HOME/.config/sound.conf
|
||||||
else
|
else
|
||||||
if [ -r $HOME/.config/rpi-cirrus-config.sh ] ; then
|
if [ -r $HOME/.config/rpi-cirrus-config.sh ]; then
|
||||||
progress "Setting up Cirrus Logic Audio Card with user config"
|
progress "Setting up Cirrus Logic Audio Card with user config"
|
||||||
sh $HOME/.config/rpi-cirrus-config.sh
|
sh $HOME/.config/rpi-cirrus-config.sh
|
||||||
else
|
else
|
||||||
progress "Setting up Cirrus Logic Audio Card"
|
progress "Setting up Cirrus Logic Audio Card"
|
||||||
|
|
||||||
# load helper functions and definitions
|
# load helper functions and definitions
|
||||||
. /usr/lib/alsa/rpi-cirrus-functions.sh
|
. /usr/lib/alsa/rpi-cirrus-functions.sh
|
||||||
|
|
||||||
playback_to_spdif
|
playback_to_spdif
|
||||||
playback_to_lineout
|
playback_to_lineout
|
||||||
playback_to_headset
|
playback_to_headset
|
||||||
mixer 'Noise Gate Switch' off
|
mixer 'Noise Gate Switch' off
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
@ -23,26 +23,26 @@ if [ ! -f $KODI_ROOT/userdata/sources.xml ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# common setup guisettings
|
# common setup guisettings
|
||||||
if [ ! -f $KODI_ROOT/userdata/guisettings.xml ] ; then
|
if [ ! -f $KODI_ROOT/userdata/guisettings.xml ]; then
|
||||||
if [ -f /usr/share/kodi/config/guisettings.xml ]; then
|
if [ -f /usr/share/kodi/config/guisettings.xml ]; then
|
||||||
cp /usr/share/kodi/config/guisettings.xml $KODI_ROOT/userdata
|
cp /usr/share/kodi/config/guisettings.xml $KODI_ROOT/userdata
|
||||||
fi
|
fi
|
||||||
if [ "$BOOT_STATE" = "SAFE" ]; then
|
if [ "$BOOT_STATE" = "SAFE" ]; then
|
||||||
[ ! -f $KODI_ROOT/userdata/guisettings.xml ] && echo '<settings version="2"></settings>' > $KODI_ROOT/userdata/guisettings.xml
|
[ ! -f $KODI_ROOT/userdata/guisettings.xml ] && echo '<settings version="2"></settings>' >$KODI_ROOT/userdata/guisettings.xml
|
||||||
xmlstarlet ed --omit-decl --inplace -s settings -t elem -n setting -v "maroon" -i settings/setting -t attr -n id -v lookandfeel.skincolors $KODI_ROOT/userdata/guisettings.xml
|
xmlstarlet ed --omit-decl --inplace -s settings -t elem -n setting -v "maroon" -i settings/setting -t attr -n id -v lookandfeel.skincolors $KODI_ROOT/userdata/guisettings.xml
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
KODI_ARGS=""
|
KODI_ARGS=""
|
||||||
|
|
||||||
echo "KODI_ARGS=\"$KODI_ARGS\"" > /run/libreelec/kodi.conf
|
echo "KODI_ARGS=\"$KODI_ARGS\"" >/run/libreelec/kodi.conf
|
||||||
|
|
||||||
if [ "$(uname -m)" = "x86_64" ]; then
|
if [ "$(uname -m)" = "x86_64" ]; then
|
||||||
echo "MALLOC_MMAP_THRESHOLD_=524288" >> /run/libreelec/kodi.conf
|
echo "MALLOC_MMAP_THRESHOLD_=524288" >>/run/libreelec/kodi.conf
|
||||||
else #arm
|
else #arm
|
||||||
echo "MALLOC_MMAP_THRESHOLD_=8192" >> /run/libreelec/kodi.conf
|
echo "MALLOC_MMAP_THRESHOLD_=8192" >>/run/libreelec/kodi.conf
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -f /storage/.config/kodi.conf ] ; then
|
if [ -f /storage/.config/kodi.conf ]; then
|
||||||
cat /storage/.config/kodi.conf >>/run/libreelec/kodi.conf
|
cat /storage/.config/kodi.conf >>/run/libreelec/kodi.conf
|
||||||
fi
|
fi
|
||||||
|
@ -22,31 +22,31 @@ Quit Remote q or ctrl+c
|
|||||||
"
|
"
|
||||||
|
|
||||||
com() {
|
com() {
|
||||||
kodi-send --action="$1" > /dev/null 2>&1
|
kodi-send --action="$1" >/dev/null 2>&1
|
||||||
echo -ne "\r$1\e[K";
|
echo -ne "\r$1\e[K"
|
||||||
}
|
}
|
||||||
|
|
||||||
while true; do
|
while true; do
|
||||||
read -r -sn1 k
|
read -r -sn1 k
|
||||||
case "$k" in
|
case "$k" in
|
||||||
A) com "Up";;
|
A) com "Up" ;;
|
||||||
B) com "Down";;
|
B) com "Down" ;;
|
||||||
C) com "Right";;
|
C) com "Right" ;;
|
||||||
D) com "Left";;
|
D) com "Left" ;;
|
||||||
c) com "ContextMenu";;
|
c) com "ContextMenu" ;;
|
||||||
d) com "PlayerDebug";;
|
d) com "PlayerDebug" ;;
|
||||||
f) com "FullScreen";;
|
f) com "FullScreen" ;;
|
||||||
i) com "Info";;
|
i) com "Info" ;;
|
||||||
m) com "Mute";;
|
m) com "Mute" ;;
|
||||||
o) com "CodecInfo";;
|
o) com "CodecInfo" ;;
|
||||||
p) com "Pause";;
|
p) com "Pause" ;;
|
||||||
s) com "TakeScreenshot";;
|
s) com "TakeScreenshot" ;;
|
||||||
t) com "Skin.ToggleDebug";;
|
t) com "Skin.ToggleDebug" ;;
|
||||||
x) com "Stop";;
|
x) com "Stop" ;;
|
||||||
-) com "VolumeDown";;
|
-) com "VolumeDown" ;;
|
||||||
+) com "VolumeUp";;
|
+) com "VolumeUp" ;;
|
||||||
$'\177') com "Back";;
|
$'\177') com "Back" ;;
|
||||||
"") com "Select";;
|
"") com "Select" ;;
|
||||||
q) exit
|
q) exit ;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
@ -8,8 +8,7 @@ KODI_ROOT=$HOME/.kodi
|
|||||||
KODI_ROOT_FAILED=$KODI_ROOT.FAILED
|
KODI_ROOT_FAILED=$KODI_ROOT.FAILED
|
||||||
BOOT_STATUS=$HOME/.config/boot.status
|
BOOT_STATUS=$HOME/.config/boot.status
|
||||||
|
|
||||||
process_boot_status()
|
process_boot_status() {
|
||||||
{
|
|
||||||
BOOT_STATE="$(cat $BOOT_STATUS 2>/dev/null)"
|
BOOT_STATE="$(cat $BOOT_STATUS 2>/dev/null)"
|
||||||
|
|
||||||
if [ "${BOOT_STATE}" = "SAFE" ]; then
|
if [ "${BOOT_STATE}" = "SAFE" ]; then
|
||||||
@ -21,10 +20,10 @@ process_boot_status()
|
|||||||
# exiting safe mode - restore failed .kodi
|
# exiting safe mode - restore failed .kodi
|
||||||
rm -fr $KODI_ROOT
|
rm -fr $KODI_ROOT
|
||||||
mv $KODI_ROOT_FAILED $KODI_ROOT
|
mv $KODI_ROOT_FAILED $KODI_ROOT
|
||||||
echo "OK" > $BOOT_STATUS
|
echo "OK" >$BOOT_STATUS
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo "OK" > $BOOT_STATUS
|
echo "OK" >$BOOT_STATUS
|
||||||
fi
|
fi
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
|
@ -41,9 +41,15 @@ OUTPUT="/usr/bin/pastebinit"
|
|||||||
|
|
||||||
while getopts ":hc" opt; do
|
while getopts ":hc" opt; do
|
||||||
case ${opt} in
|
case ${opt} in
|
||||||
c) OUTPUT="cat";;
|
c)
|
||||||
?) usage "${OPTARG}";;
|
OUTPUT="cat"
|
||||||
h) usage;;
|
;;
|
||||||
|
?)
|
||||||
|
usage "${OPTARG}"
|
||||||
|
;;
|
||||||
|
h)
|
||||||
|
usage
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -90,13 +96,13 @@ fi
|
|||||||
vcgencmd bootloader_version | cat_data "Bootloader version"
|
vcgencmd bootloader_version | cat_data "Bootloader version"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cat_file "/flash/config.txt" # RPi
|
cat_file "/flash/config.txt" # RPi
|
||||||
cat_file "/flash/distroconfig.txt" # RPi
|
cat_file "/flash/distroconfig.txt" # RPi
|
||||||
cat_file "/flash/cmdline.txt" # RPi
|
cat_file "/flash/cmdline.txt" # RPi
|
||||||
|
|
||||||
cat_file "/flash/syslinux.cfg" # x86 BIOS
|
cat_file "/flash/syslinux.cfg" # x86 BIOS
|
||||||
cat_file "/flash/EFI/BOOT/syslinux.cfg" # x86 EFI
|
cat_file "/flash/EFI/BOOT/syslinux.cfg" # x86 EFI
|
||||||
cat_file "/flash/extlinux.conf" # x86 legacy
|
cat_file "/flash/extlinux.conf" # x86 legacy
|
||||||
|
|
||||||
cat_file "/flash/extlinux/extlinux.conf" # u-boot
|
cat_file "/flash/extlinux/extlinux.conf" # u-boot
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
|
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
|
||||||
|
|
||||||
if [ $# -ne 3 ] ; then
|
if [ $# -ne 3 ]; then
|
||||||
echo "$0 usage: context addon-id addon-path"
|
echo "$0 usage: context addon-id addon-path"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
@ -12,13 +12,13 @@ CONTEXT="$1"
|
|||||||
ADDON_ID="$2"
|
ADDON_ID="$2"
|
||||||
ADDON_PATH="$3"
|
ADDON_PATH="$3"
|
||||||
|
|
||||||
if [ ! -d /storage/.config/system.d ] ; then
|
if [ ! -d /storage/.config/system.d ]; then
|
||||||
mkdir -p /storage/.config/system.d
|
mkdir -p /storage/.config/system.d
|
||||||
fi
|
fi
|
||||||
|
|
||||||
SERVICE_FILE="${ADDON_PATH}/system.d/${ADDON_ID}.service"
|
SERVICE_FILE="${ADDON_PATH}/system.d/${ADDON_ID}.service"
|
||||||
|
|
||||||
if [ -f "${SERVICE_FILE}" ] ; then
|
if [ -f "${SERVICE_FILE}" ]; then
|
||||||
case "${CONTEXT}" in
|
case "${CONTEXT}" in
|
||||||
enable)
|
enable)
|
||||||
systemctl enable "${SERVICE_FILE}"
|
systemctl enable "${SERVICE_FILE}"
|
||||||
@ -51,7 +51,7 @@ if [ -f "${SERVICE_FILE}" ] ; then
|
|||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -d /storage/.cache/kernel-overlays ] ; then
|
if [ ! -d /storage/.cache/kernel-overlays ]; then
|
||||||
mkdir -p /storage/.cache/kernel-overlays
|
mkdir -p /storage/.cache/kernel-overlays
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -70,21 +70,21 @@ esac
|
|||||||
|
|
||||||
create_overlay_conf() {
|
create_overlay_conf() {
|
||||||
rm -f "${OVERLAY_CONF}"
|
rm -f "${OVERLAY_CONF}"
|
||||||
echo "${OVERLAY_PATH}" > "${OVERLAY_CONF}"
|
echo "${OVERLAY_PATH}" >"${OVERLAY_CONF}"
|
||||||
}
|
}
|
||||||
|
|
||||||
if [ -d "${OVERLAY_PATH}" ] ; then
|
if [ -d "${OVERLAY_PATH}" ]; then
|
||||||
OVERLAY_CONF="/storage/.cache/kernel-overlays/50-${ADDON_ID}.conf"
|
OVERLAY_CONF="/storage/.cache/kernel-overlays/50-${ADDON_ID}.conf"
|
||||||
|
|
||||||
case "${CONTEXT}" in
|
case "${CONTEXT}" in
|
||||||
enable | post-install )
|
enable | post-install)
|
||||||
create_overlay_conf
|
create_overlay_conf
|
||||||
;;
|
;;
|
||||||
disable | pre-uninstall )
|
disable | pre-uninstall)
|
||||||
rm -f "${OVERLAY_CONF}"
|
rm -f "${OVERLAY_CONF}"
|
||||||
;;
|
;;
|
||||||
update )
|
update)
|
||||||
if [ -e "${OVERLAY_CONF}" ] ; then
|
if [ -e "${OVERLAY_CONF}" ]; then
|
||||||
create_overlay_conf
|
create_overlay_conf
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
if [ -f /sys/class/rtc/rtc0/wakealarm ]; then
|
if [ -f /sys/class/rtc/rtc0/wakealarm ]; then
|
||||||
logger -t setwakeup.sh "### Setting system wakeup time ###"
|
logger -t setwakeup.sh "### Setting system wakeup time ###"
|
||||||
echo 0 > /sys/class/rtc/rtc0/wakealarm
|
echo 0 >/sys/class/rtc/rtc0/wakealarm
|
||||||
echo $1 > /sys/class/rtc/rtc0/wakealarm
|
echo $1 >/sys/class/rtc/rtc0/wakealarm
|
||||||
logger -t setwakeup.sh "### $(cat /proc/driver/rtc) ###"
|
logger -t setwakeup.sh "### $(cat /proc/driver/rtc) ###"
|
||||||
fi
|
fi
|
||||||
|
@ -14,4 +14,4 @@ for script in $HOME/.kodi/addons/*/sleep.d/*.power; do
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
@ -14,4 +14,4 @@ for script in $HOME/.config/sleep.d/*.power; do
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
@ -5,25 +5,23 @@
|
|||||||
|
|
||||||
. /etc/profile
|
. /etc/profile
|
||||||
|
|
||||||
run_scripts()
|
run_scripts() {
|
||||||
{
|
list_scripts $1
|
||||||
list_scripts $1
|
for script in $SCRIPTS; do
|
||||||
for script in $SCRIPTS ; do
|
progress "running sleep script $script ($1)..."
|
||||||
progress "running sleep script $script ($1)..."
|
sh /usr/lib/systemd/system-sleep.serial/$script $1
|
||||||
sh /usr/lib/systemd/system-sleep.serial/$script $1
|
done
|
||||||
done
|
|
||||||
}
|
}
|
||||||
|
|
||||||
list_scripts()
|
list_scripts() {
|
||||||
{
|
case $1 in
|
||||||
case $1 in
|
pre)
|
||||||
pre)
|
SCRIPTS=$(ls /usr/lib/systemd/system-sleep.serial/ | sort)
|
||||||
SCRIPTS=$(ls /usr/lib/systemd/system-sleep.serial/ | sort)
|
;;
|
||||||
;;
|
post)
|
||||||
post)
|
SCRIPTS=$(ls /usr/lib/systemd/system-sleep.serial/ | sort -r)
|
||||||
SCRIPTS=$(ls /usr/lib/systemd/system-sleep.serial/ | sort -r)
|
;;
|
||||||
;;
|
esac
|
||||||
esac
|
|
||||||
}
|
}
|
||||||
|
|
||||||
run_scripts $1
|
run_scripts $1
|
||||||
|
@ -4,22 +4,22 @@
|
|||||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||||
|
|
||||||
# creating initial settings file
|
# creating initial settings file
|
||||||
if [ ! -f /storage/.cache/connman/settings ]; then
|
if [ ! -f /storage/.cache/connman/settings ]; then
|
||||||
mkdir -p /storage/.cache/connman
|
mkdir -p /storage/.cache/connman
|
||||||
cp /usr/share/connman/settings /storage/.cache/connman
|
cp /usr/share/connman/settings /storage/.cache/connman
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# set variable for connman main.conf location
|
# set variable for connman main.conf location
|
||||||
if [ -f /storage/.config/connman_main.conf ]; then
|
if [ -f /storage/.config/connman_main.conf ]; then
|
||||||
export CONNMAN_MAIN="--config=/storage/.config/connman_main.conf"
|
export CONNMAN_MAIN="--config=/storage/.config/connman_main.conf"
|
||||||
else
|
else
|
||||||
export CONNMAN_MAIN="--config=/etc/connman/main.conf"
|
export CONNMAN_MAIN="--config=/etc/connman/main.conf"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# switch resolv.conf management to connman and use current contents
|
# switch resolv.conf management to connman and use current contents
|
||||||
# as a fallback
|
# as a fallback
|
||||||
if [ -f /run/libreelec/resolv.conf ]; then
|
if [ -f /run/libreelec/resolv.conf ]; then
|
||||||
cat /run/libreelec/resolv.conf > /run/connman/resolv.conf
|
cat /run/libreelec/resolv.conf >/run/connman/resolv.conf
|
||||||
fi
|
fi
|
||||||
rm -f /run/libreelec/resolv.conf
|
rm -f /run/libreelec/resolv.conf
|
||||||
ln -s /run/connman/resolv.conf /run/libreelec/resolv.conf
|
ln -s /run/connman/resolv.conf /run/libreelec/resolv.conf
|
||||||
|
@ -51,17 +51,17 @@ flush() {
|
|||||||
enable() {
|
enable() {
|
||||||
for cmd in $IPTABLES_CMDS; do
|
for cmd in $IPTABLES_CMDS; do
|
||||||
case "$cmd" in
|
case "$cmd" in
|
||||||
*6*)
|
*6*)
|
||||||
rules="$RULES6"
|
rules="$RULES6"
|
||||||
ipv="6"
|
ipv="6"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
rules="$RULES4"
|
rules="$RULES4"
|
||||||
ipv="4"
|
ipv="4"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
if [ -e "$rules" ]; then
|
if [ -e "$rules" ]; then
|
||||||
"$cmd-restore" "$rules"
|
"$cmd-restore" "$rules"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
check_docker
|
check_docker
|
||||||
@ -70,24 +70,24 @@ enable() {
|
|||||||
|
|
||||||
if [ "$1" = "enable" ]; then
|
if [ "$1" = "enable" ]; then
|
||||||
case "${RULES}" in
|
case "${RULES}" in
|
||||||
"none")
|
"none")
|
||||||
flush
|
flush
|
||||||
;;
|
;;
|
||||||
"public")
|
"public")
|
||||||
RULES4="${PUBLIC_RULES}4"
|
RULES4="${PUBLIC_RULES}4"
|
||||||
RULES6="${PUBLIC_RULES}6"
|
RULES6="${PUBLIC_RULES}6"
|
||||||
;;
|
;;
|
||||||
"home")
|
"home")
|
||||||
RULES4="${HOME_RULES}4"
|
RULES4="${HOME_RULES}4"
|
||||||
RULES6="${HOME_RULES}6"
|
RULES6="${HOME_RULES}6"
|
||||||
;;
|
;;
|
||||||
"custom")
|
"custom")
|
||||||
RULES4="${CUSTOM_RULES}4"
|
RULES4="${CUSTOM_RULES}4"
|
||||||
RULES6="${CUSTOM_RULES}6"
|
RULES6="${CUSTOM_RULES}6"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
enable
|
enable
|
||||||
elif [ "$1" = "disable" ]; then
|
elif [ "$1" = "disable" ]; then
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
if [ -f /storage/.cache/services/samba.conf ]; then
|
if [ -f /storage/.cache/services/samba.conf ]; then
|
||||||
. /storage/.cache/services/samba.conf
|
. /storage/.cache/services/samba.conf
|
||||||
|
|
||||||
if [ "$SAMBA_AUTOSHARE" == "true" ] ; then
|
if [ "$SAMBA_AUTOSHARE" == "true" ]; then
|
||||||
/usr/lib/samba/samba-config
|
/usr/lib/samba/samba-config
|
||||||
[ -f /run/samba/smbd.pid ] && pkill -HUP smbd
|
[ -f /run/samba/smbd.pid ] && pkill -HUP smbd
|
||||||
fi
|
fi
|
||||||
|
@ -9,21 +9,21 @@ if [ -x /usr/bin/wg ]; then
|
|||||||
mkdir -p /storage/.cache/wireguard
|
mkdir -p /storage/.cache/wireguard
|
||||||
|
|
||||||
if [ ! -f /storage/.cache/wireguard/privatekey ]; then
|
if [ ! -f /storage/.cache/wireguard/privatekey ]; then
|
||||||
wg genkey > /storage/.cache/wireguard/privatekey
|
wg genkey >/storage/.cache/wireguard/privatekey
|
||||||
echo "created /storage/.cache/wireguard/privatekey"
|
echo "created /storage/.cache/wireguard/privatekey"
|
||||||
else
|
else
|
||||||
echo "error, /storage/.cache/wireguard/privatekey already exists"
|
echo "error, /storage/.cache/wireguard/privatekey already exists"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -f /storage/.cache/wireguard/publickey ]; then
|
if [ ! -f /storage/.cache/wireguard/publickey ]; then
|
||||||
wg pubkey < /storage/.cache/wireguard/privatekey > /storage/.cache/wireguard/publickey
|
wg pubkey </storage/.cache/wireguard/privatekey >/storage/.cache/wireguard/publickey
|
||||||
echo "created /storage/.cache/wireguard/publickey"
|
echo "created /storage/.cache/wireguard/publickey"
|
||||||
else
|
else
|
||||||
echo "error, /storage/.cache/wireguard/publickey already exists"
|
echo "error, /storage/.cache/wireguard/publickey already exists"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -f /storage/.cache/wireguard/preshared ]; then
|
if [ ! -f /storage/.cache/wireguard/preshared ]; then
|
||||||
wg genpsk > /storage/.cache/wireguard/preshared
|
wg genpsk >/storage/.cache/wireguard/preshared
|
||||||
echo "created /storage/.cache/wireguard/preshared"
|
echo "created /storage/.cache/wireguard/preshared"
|
||||||
else
|
else
|
||||||
echo "error, /storage/.cache/wireguard/preshared already exists"
|
echo "error, /storage/.cache/wireguard/preshared already exists"
|
||||||
|
@ -25,7 +25,7 @@ mkdir -p "${TMPDIR}/usr/lib/firmware"
|
|||||||
cp -r "${EDID_DIR}" "${TMPDIR}/usr/lib/firmware"
|
cp -r "${EDID_DIR}" "${TMPDIR}/usr/lib/firmware"
|
||||||
cd "${TMPDIR}"
|
cd "${TMPDIR}"
|
||||||
mount -o remount,rw /flash
|
mount -o remount,rw /flash
|
||||||
find usr -print | cpio -ov -H newc > "${EDID_CPIO}"
|
find usr -print | cpio -ov -H newc >"${EDID_CPIO}"
|
||||||
sync
|
sync
|
||||||
mount -o remount,ro /flash
|
mount -o remount,ro /flash
|
||||||
cd /storage
|
cd /storage
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
COMPATIBLE=$(cat /proc/device-tree/compatible 2>/dev/null | tr -d '\000' | sed -n -e 's/.*\(allwinner\|amlogic\|fsl\|nxp\|qcom\|raspberrypi\|rockchip\|samsung\).*/\1/p')
|
COMPATIBLE=$(cat /proc/device-tree/compatible 2>/dev/null | tr -d '\000' | sed -n -e 's/.*\(allwinner\|amlogic\|fsl\|nxp\|qcom\|raspberrypi\|rockchip\|samsung\).*/\1/p')
|
||||||
|
|
||||||
do_dtfile(){
|
do_dtfile() {
|
||||||
if [[ -n $(find /flash -name extlinux.conf) ]]; then
|
if [[ -n $(find /flash -name extlinux.conf) ]]; then
|
||||||
EXTLINUX=$(find /flash -name extlinux.conf)
|
EXTLINUX=$(find /flash -name extlinux.conf)
|
||||||
DTFILE=$(grep FDT "${EXTLINUX}" | sed 's,^ *FDT /,,g')
|
DTFILE=$(grep FDT "${EXTLINUX}" | sed 's,^ *FDT /,,g')
|
||||||
@ -19,7 +19,7 @@ do_dtfile(){
|
|||||||
echo "${DTFILE}"
|
echo "${DTFILE}"
|
||||||
}
|
}
|
||||||
|
|
||||||
do_dtflag(){
|
do_dtflag() {
|
||||||
if [ "${COMPATIBLE}" = "raspberrypi" ]; then
|
if [ "${COMPATIBLE}" = "raspberrypi" ]; then
|
||||||
DTFLAG=$(cat /proc/device-tree/compatible | cut -f1,2 -d',' | head -n 1)
|
DTFLAG=$(cat /proc/device-tree/compatible | cut -f1,2 -d',' | head -n 1)
|
||||||
PIREV=$(awk '/^Revision/ {sub($3,-6, "", $3); print $3}' /proc/cpuinfo) # truncate to 6-chars
|
PIREV=$(awk '/^Revision/ {sub($3,-6, "", $3); print $3}' /proc/cpuinfo) # truncate to 6-chars
|
||||||
@ -36,10 +36,10 @@ do_dtflag(){
|
|||||||
a*)
|
a*)
|
||||||
MEMSIZE="-1g"
|
MEMSIZE="-1g"
|
||||||
;;
|
;;
|
||||||
*0002|*0003|*0004|*0005|*0006|*0007|*0008|*0009|*0012)
|
*0002 | *0003 | *0004 | *0005 | *0006 | *0007 | *0008 | *0009 | *0012)
|
||||||
MEMSIZE="-256"
|
MEMSIZE="-256"
|
||||||
;;
|
;;
|
||||||
0*|9*)
|
0* | 9*)
|
||||||
MEMSIZE="-512"
|
MEMSIZE="-512"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
@ -58,17 +58,17 @@ do_dtflag(){
|
|||||||
echo "${DTFLAG}${MEMSIZE}"
|
echo "${DTFLAG}${MEMSIZE}"
|
||||||
}
|
}
|
||||||
|
|
||||||
do_dtname(){
|
do_dtname() {
|
||||||
DTNAME=$(cat /proc/device-tree/compatible | cut -f1,2 -d',' | head -n 1)
|
DTNAME=$(cat /proc/device-tree/compatible | cut -f1,2 -d',' | head -n 1)
|
||||||
echo "${DTNAME}"
|
echo "${DTNAME}"
|
||||||
}
|
}
|
||||||
|
|
||||||
do_dtsoc(){
|
do_dtsoc() {
|
||||||
DTSOC=$(cat /proc/device-tree/compatible | cut -f1,2 -d',' | tail -n 1)
|
DTSOC=$(cat /proc/device-tree/compatible | cut -f1,2 -d',' | tail -n 1)
|
||||||
echo "${DTSOC}"
|
echo "${DTSOC}"
|
||||||
}
|
}
|
||||||
|
|
||||||
do_unknown(){
|
do_unknown() {
|
||||||
echo "unknown"
|
echo "unknown"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
@ -18,14 +18,14 @@ info() {
|
|||||||
|
|
||||||
mkdir -p "${EDID_DIR}"
|
mkdir -p "${EDID_DIR}"
|
||||||
|
|
||||||
for c in /sys/class/drm/card?-* ; do
|
for c in /sys/class/drm/card?-*; do
|
||||||
[ ! -d "$c" ] && continue
|
[ ! -d "$c" ] && continue
|
||||||
[ ! -e "$c/status" ] && continue
|
[ ! -e "$c/status" ] && continue
|
||||||
|
|
||||||
if [ $(cat $c/status 2>/dev/null) = "connected" ]; then
|
if [ $(cat $c/status 2>/dev/null) = "connected" ]; then
|
||||||
CONNECTOR=$(basename $c | cut -c 7-)
|
CONNECTOR=$(basename $c | cut -c 7-)
|
||||||
EDID_NAME="edid-${CONNECTOR}.bin"
|
EDID_NAME="edid-${CONNECTOR}.bin"
|
||||||
cat $c/edid > "${EDID_DIR}/${EDID_NAME}" 2>/dev/null
|
cat $c/edid >"${EDID_DIR}/${EDID_NAME}" 2>/dev/null
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
[ -n "${CONNECTORS}" ] && CONNECTORS="${CONNECTORS} "
|
[ -n "${CONNECTORS}" ] && CONNECTORS="${CONNECTORS} "
|
||||||
CONNECTORS="${CONNECTORS}${CONNECTOR}"
|
CONNECTORS="${CONNECTORS}${CONNECTOR}"
|
||||||
|
@ -26,10 +26,9 @@ help() {
|
|||||||
echo "And then use: getedid create"
|
echo "And then use: getedid create"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# check for GPU and store string
|
# check for GPU and store string
|
||||||
check_gpu() {
|
check_gpu() {
|
||||||
if lspci | grep -i vga | grep -i -q -E 'intel|amd' ; then
|
if lspci | grep -i vga | grep -i -q -E 'intel|amd'; then
|
||||||
gpu="intel/amd"
|
gpu="intel/amd"
|
||||||
elif lspci | grep -i vga | grep -i -q nvidia; then
|
elif lspci | grep -i vga | grep -i -q nvidia; then
|
||||||
gpu="nvidia"
|
gpu="nvidia"
|
||||||
@ -39,12 +38,11 @@ check_gpu() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# run this first if the user already has a custom EDID but want to create a new one (TV or AVR change)
|
# run this first if the user already has a custom EDID but want to create a new one (TV or AVR change)
|
||||||
del_edid() {
|
del_edid() {
|
||||||
if [ "$gpu" = "intel/amd" ]; then
|
if [ "$gpu" = "intel/amd" ]; then
|
||||||
check_file
|
check_file
|
||||||
if [ -f "$file".old ]; then
|
if [ -f "$file".old ]; then
|
||||||
mount_rw
|
mount_rw
|
||||||
rm "$file"
|
rm "$file"
|
||||||
mv "$file".old "$file"
|
mv "$file".old "$file"
|
||||||
@ -60,10 +58,9 @@ del_edid() {
|
|||||||
rm -f /storage/.config/xorg.conf
|
rm -f /storage/.config/xorg.conf
|
||||||
rm -f /storage/.config/xorg.le.backup
|
rm -f /storage/.config/xorg.le.backup
|
||||||
systemctl restart xorg.service
|
systemctl restart xorg.service
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# run main script depending on the GPU
|
# run main script depending on the GPU
|
||||||
run() {
|
run() {
|
||||||
if [ "$gpu" = "intel/amd" ]; then
|
if [ "$gpu" = "intel/amd" ]; then
|
||||||
@ -73,19 +70,16 @@ run() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# mounting /flash to rw
|
# mounting /flash to rw
|
||||||
mount_rw() {
|
mount_rw() {
|
||||||
mount -o remount,rw /flash
|
mount -o remount,rw /flash
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# mounting /flash to ro
|
# mounting /flash to ro
|
||||||
mount_ro() {
|
mount_ro() {
|
||||||
mount -o remount,ro /flash
|
mount -o remount,ro /flash
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# remount /flash to ro and reboot
|
# remount /flash to ro and reboot
|
||||||
sys_reboot() {
|
sys_reboot() {
|
||||||
mount_ro
|
mount_ro
|
||||||
@ -94,11 +88,10 @@ sys_reboot() {
|
|||||||
reboot
|
reboot
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# check syslinux.cfg and/or extlinux.conf
|
# check syslinux.cfg and/or extlinux.conf
|
||||||
check_file() {
|
check_file() {
|
||||||
# check boot system
|
# check boot system
|
||||||
if [ -d /sys/firmware/efi -a -f /flash/EFI/BOOT/syslinux.cfg ] ; then
|
if [ -d /sys/firmware/efi -a -f /flash/EFI/BOOT/syslinux.cfg ]; then
|
||||||
sys_boot="UEFI"
|
sys_boot="UEFI"
|
||||||
sys_path="/flash/EFI/BOOT"
|
sys_path="/flash/EFI/BOOT"
|
||||||
else
|
else
|
||||||
@ -122,30 +115,26 @@ check_file() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
check_content() {
|
check_content() {
|
||||||
# check if changes are already made to $file and exit if yes
|
# check if changes are already made to $file and exit if yes
|
||||||
if grep -q "initrd=/edid.cpio" $file ; then
|
if grep -q "initrd=/edid.cpio" $file; then
|
||||||
echo "$file has been modified. Please run 'getedid delete' first if you want to modify it again. Exiting."
|
echo "$file has been modified. Please run 'getedid delete' first if you want to modify it again. Exiting."
|
||||||
exit 5
|
exit 5
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
create_edid() {
|
create_edid() {
|
||||||
# create edid
|
# create edid
|
||||||
mkdir -p /tmp/cpio/lib/firmware/edid
|
mkdir -p /tmp/cpio/lib/firmware/edid
|
||||||
cat "/sys/class/drm/$card/edid" > /tmp/cpio/lib/firmware/edid/edid.bin
|
cat "/sys/class/drm/$card/edid" >/tmp/cpio/lib/firmware/edid/edid.bin
|
||||||
mkdir -p /storage/.config/firmware/edid
|
mkdir -p /storage/.config/firmware/edid
|
||||||
cp /tmp/cpio/lib/firmware/edid/edid.bin /storage/.config/firmware/edid
|
cp /tmp/cpio/lib/firmware/edid/edid.bin /storage/.config/firmware/edid
|
||||||
|
|
||||||
|
|
||||||
# create cpio archive
|
# create cpio archive
|
||||||
cd /tmp/cpio/
|
cd /tmp/cpio/
|
||||||
find . -print | cpio -ov -H newc > /storage/edid.cpio
|
find . -print | cpio -ov -H newc >/storage/edid.cpio
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
intel_amd() {
|
intel_amd() {
|
||||||
# check which output is connnected:
|
# check which output is connnected:
|
||||||
counter=0
|
counter=0
|
||||||
@ -162,7 +151,7 @@ intel_amd() {
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
# create the edid
|
# create the edid
|
||||||
create_edid
|
create_edid
|
||||||
|
|
||||||
# check extlinux.conf and syslinux.cfg
|
# check extlinux.conf and syslinux.cfg
|
||||||
@ -175,7 +164,7 @@ intel_amd() {
|
|||||||
|
|
||||||
# make a backup of $file
|
# make a backup of $file
|
||||||
cp "$file" "$file".old
|
cp "$file" "$file".old
|
||||||
|
|
||||||
# add boot parameters to $file
|
# add boot parameters to $file
|
||||||
sed -i "/ APPEND/s/$/ initrd=\/edid.cpio drm.edid_firmware=edid\/edid.bin video=$hdmi:D/" "$file"
|
sed -i "/ APPEND/s/$/ initrd=\/edid.cpio drm.edid_firmware=edid\/edid.bin video=$hdmi:D/" "$file"
|
||||||
|
|
||||||
@ -183,7 +172,6 @@ intel_amd() {
|
|||||||
sys_reboot
|
sys_reboot
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
nvidia() {
|
nvidia() {
|
||||||
# check if xorg.conf already exists
|
# check if xorg.conf already exists
|
||||||
if [ -f /storage/.config/xorg.conf -o -f /storage/.config/xorg-nvidia.conf ]; then
|
if [ -f /storage/.config/xorg.conf -o -f /storage/.config/xorg-nvidia.conf ]; then
|
||||||
@ -191,7 +179,6 @@ nvidia() {
|
|||||||
exit 6
|
exit 6
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# check for multi-montior setup
|
# check for multi-montior setup
|
||||||
monitors="$(grep -i -w "connected" /var/log/Xorg.0.log | grep -i -o "dfp-[0-9]" | sort -u | wc -l)"
|
monitors="$(grep -i -w "connected" /var/log/Xorg.0.log | grep -i -o "dfp-[0-9]" | sort -u | wc -l)"
|
||||||
if [ "$monitors" -gt "1" ]; then
|
if [ "$monitors" -gt "1" ]; then
|
||||||
@ -199,12 +186,10 @@ nvidia() {
|
|||||||
exit 7
|
exit 7
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# set debug and restart Xorg
|
# set debug and restart Xorg
|
||||||
cp /etc/X11/xorg-nvidia.conf /storage/.config/xorg.conf
|
cp /etc/X11/xorg-nvidia.conf /storage/.config/xorg.conf
|
||||||
sed -i 's/"ModeDebug" "false"/"ModeDebug" "true"/g' /storage/.config/xorg.conf
|
sed -i 's/"ModeDebug" "false"/"ModeDebug" "true"/g' /storage/.config/xorg.conf
|
||||||
systemctl restart xorg.service
|
systemctl restart xorg.service
|
||||||
|
|
||||||
|
|
||||||
# get port
|
# get port
|
||||||
nv_port="$(grep -i -w connected /var/log/Xorg.0.log | grep -i -o "dfp-[0-9]" | sort -u)"
|
nv_port="$(grep -i -w connected /var/log/Xorg.0.log | grep -i -o "dfp-[0-9]" | sort -u)"
|
||||||
@ -212,7 +197,7 @@ nvidia() {
|
|||||||
|
|
||||||
# set mode debug back to false
|
# set mode debug back to false
|
||||||
sed -i 's/"ModeDebug" "true"/"ModeDebug" "false"/g' /storage/.config/xorg.conf
|
sed -i 's/"ModeDebug" "true"/"ModeDebug" "false"/g' /storage/.config/xorg.conf
|
||||||
|
|
||||||
# set port and uncomment lines
|
# set port and uncomment lines
|
||||||
sed -i "s/# Option \"ConnectedMonitor\" \"DFP-0\"/ Option \"ConnectedMonitor\" \"$nv_port\"/g" /storage/.config/xorg.conf
|
sed -i "s/# Option \"ConnectedMonitor\" \"DFP-0\"/ Option \"ConnectedMonitor\" \"$nv_port\"/g" /storage/.config/xorg.conf
|
||||||
sed -i "s/# Option \"CustomEDID\" \"DFP-0:\/storage\/.config\/edid.bin\"/ Option \"CustomEDID\" \"$nv_port:\/storage\/.config\/edid.bin\"/g" /storage/.config/xorg.conf
|
sed -i "s/# Option \"CustomEDID\" \"DFP-0:\/storage\/.config\/edid.bin\"/ Option \"CustomEDID\" \"$nv_port:\/storage\/.config\/edid.bin\"/g" /storage/.config/xorg.conf
|
||||||
@ -223,7 +208,6 @@ nvidia() {
|
|||||||
systemctl restart xorg.service
|
systemctl restart xorg.service
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# start script from here
|
# start script from here
|
||||||
case "$1" in
|
case "$1" in
|
||||||
'create')
|
'create')
|
||||||
|
@ -15,7 +15,7 @@ mkdir -p "${MODULES_DIR}"
|
|||||||
mkdir -p "${FIRMWARE_DIR}"
|
mkdir -p "${FIRMWARE_DIR}"
|
||||||
|
|
||||||
log() {
|
log() {
|
||||||
echo "kernel-overlays-setup: $@" > /dev/kmsg
|
echo "kernel-overlays-setup: $@" >/dev/kmsg
|
||||||
}
|
}
|
||||||
|
|
||||||
apply_overlay() {
|
apply_overlay() {
|
||||||
@ -30,18 +30,18 @@ apply_overlay() {
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
if [ -d "${modules_overlay_dir}" ] ; then
|
if [ -d "${modules_overlay_dir}" ]; then
|
||||||
GOT_MODULE_OVERLAY="yes"
|
GOT_MODULE_OVERLAY="yes"
|
||||||
|
|
||||||
if cp -rfs "${modules_overlay_dir}"/* "${MODULES_DIR}" ; then
|
if cp -rfs "${modules_overlay_dir}"/* "${MODULES_DIR}"; then
|
||||||
log "added modules from $modules_overlay_dir"
|
log "added modules from $modules_overlay_dir"
|
||||||
else
|
else
|
||||||
log "failed to add modules from $modules_overlay_dir"
|
log "failed to add modules from $modules_overlay_dir"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -d "${firmware_overlay_dir}" ] ; then
|
if [ -d "${firmware_overlay_dir}" ]; then
|
||||||
if cp -rfs "${firmware_overlay_dir}"/* "${FIRMWARE_DIR}" ; then
|
if cp -rfs "${firmware_overlay_dir}"/* "${FIRMWARE_DIR}"; then
|
||||||
log "added firmware from $firmware_overlay_dir"
|
log "added firmware from $firmware_overlay_dir"
|
||||||
else
|
else
|
||||||
log "failed to add firmware from $firmware_overlay_dir"
|
log "failed to add firmware from $firmware_overlay_dir"
|
||||||
@ -56,26 +56,26 @@ apply_overlay base
|
|||||||
|
|
||||||
# apply user-configured module overlays
|
# apply user-configured module overlays
|
||||||
|
|
||||||
if [ -d "${OVERLAY_CONFIG_DIR}" ] ; then
|
if [ -d "${OVERLAY_CONFIG_DIR}" ]; then
|
||||||
log "adding overlays from ${OVERLAY_CONFIG_DIR}"
|
log "adding overlays from ${OVERLAY_CONFIG_DIR}"
|
||||||
GOT_MODULE_OVERLAY="no"
|
GOT_MODULE_OVERLAY="no"
|
||||||
|
|
||||||
for conf in "${OVERLAY_CONFIG_DIR}/"*.conf ; do
|
for conf in "${OVERLAY_CONFIG_DIR}/"*.conf; do
|
||||||
if [ -e "$conf" ] ; then
|
if [ -e "$conf" ]; then
|
||||||
log "processing conf $conf"
|
log "processing conf $conf"
|
||||||
overlay=$(cat "$conf")
|
overlay=$(cat "$conf")
|
||||||
[ -n "$overlay" ] && apply_overlay "$overlay"
|
[ -n "$overlay" ] && apply_overlay "$overlay"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ "yes" = "$GOT_MODULE_OVERLAY" ] ; then
|
if [ "yes" = "$GOT_MODULE_OVERLAY" ]; then
|
||||||
log "running depmod"
|
log "running depmod"
|
||||||
/usr/sbin/depmod -a >/dev/kmsg 2>&1
|
/usr/sbin/depmod -a >/dev/kmsg 2>&1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -d "${USER_FIRMWARE_DIR}" ] && [ -n "$(ls ${USER_FIRMWARE_DIR})" ] ; then
|
if [ -d "${USER_FIRMWARE_DIR}" ] && [ -n "$(ls ${USER_FIRMWARE_DIR})" ]; then
|
||||||
if cp -rfs "${USER_FIRMWARE_DIR}"/* "${FIRMWARE_DIR}" ; then
|
if cp -rfs "${USER_FIRMWARE_DIR}"/* "${FIRMWARE_DIR}"; then
|
||||||
log "added firmware from ${USER_FIRMWARE_DIR}"
|
log "added firmware from ${USER_FIRMWARE_DIR}"
|
||||||
else
|
else
|
||||||
log "failed to add firmware from ${USER_FIRMWARE_DIR}"
|
log "failed to add firmware from ${USER_FIRMWARE_DIR}"
|
||||||
|
@ -9,8 +9,8 @@ case $(dtsoc) in
|
|||||||
for triggerfile in $(find /sys/devices/platform/leds -name trigger); do
|
for triggerfile in $(find /sys/devices/platform/leds -name trigger); do
|
||||||
trigger=$(awk -F'[][]' '{print $2}' "$triggerfile")
|
trigger=$(awk -F'[][]' '{print $2}' "$triggerfile")
|
||||||
if [ "$trigger" = "heartbeat" ]; then
|
if [ "$trigger" = "heartbeat" ]; then
|
||||||
echo "none" > "$triggerfile"
|
echo "none" >"$triggerfile"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
EARLY_DIR="$2"
|
EARLY_DIR="$2"
|
||||||
|
|
||||||
log() {
|
log() {
|
||||||
echo "libreelec-target-generator: $@" > /dev/kmsg
|
echo "libreelec-target-generator: $@" >/dev/kmsg
|
||||||
}
|
}
|
||||||
|
|
||||||
if [ -z "$EARLY_DIR" ]; then
|
if [ -z "$EARLY_DIR" ]; then
|
||||||
|
@ -3,13 +3,13 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
# Copyright (C) 2022-present Team LibreELEC (https://libreelec.tv)
|
# Copyright (C) 2022-present Team LibreELEC (https://libreelec.tv)
|
||||||
|
|
||||||
do_install(){
|
do_install() {
|
||||||
# create the persistent firmware dir
|
# create the persistent firmware dir
|
||||||
mkdir -p "/storage/.config/firmware/edid"
|
mkdir -p "/storage/.config/firmware/edid"
|
||||||
|
|
||||||
# capture the raw edid file
|
# capture the raw edid file
|
||||||
if [ ! -e /storage/.config/firmware/edid/edid.bin ]; then
|
if [ ! -e /storage/.config/firmware/edid/edid.bin ]; then
|
||||||
cat "/sys/class/drm/card0-HDMI-A-1/edid" > "/storage/.config/firmware/edid/edid.bin"
|
cat "/sys/class/drm/card0-HDMI-A-1/edid" >"/storage/.config/firmware/edid/edid.bin"
|
||||||
else
|
else
|
||||||
echo "info: using existing edid.bin"
|
echo "info: using existing edid.bin"
|
||||||
fi
|
fi
|
||||||
@ -18,7 +18,7 @@ do_install(){
|
|||||||
mkdir -p "/storage/cpio/lib/firmware/edid"
|
mkdir -p "/storage/cpio/lib/firmware/edid"
|
||||||
cp "/storage/.config/firmware/edid/edid.bin" "/storage/cpio/lib/firmware/edid/"
|
cp "/storage/.config/firmware/edid/edid.bin" "/storage/cpio/lib/firmware/edid/"
|
||||||
cd "/storage/cpio"
|
cd "/storage/cpio"
|
||||||
find . -print | cpio -ov -H newc > "/storage/.config/firmware/edid/edid.cpio"
|
find . -print | cpio -ov -H newc >"/storage/.config/firmware/edid/edid.cpio"
|
||||||
|
|
||||||
# mount /flash rw
|
# mount /flash rw
|
||||||
mount -o remount,rw /flash
|
mount -o remount,rw /flash
|
||||||
@ -32,7 +32,7 @@ do_install(){
|
|||||||
# determine boot method and set params
|
# determine boot method and set params
|
||||||
if [ -f "/flash/extlinux/extlinux.conf" ]; then
|
if [ -f "/flash/extlinux/extlinux.conf" ]; then
|
||||||
FILE="/flash/extlinux/extlinux.conf"
|
FILE="/flash/extlinux/extlinux.conf"
|
||||||
if grep -q "initrd=/edid.cpio" "${FILE}" ; then
|
if grep -q "initrd=/edid.cpio" "${FILE}"; then
|
||||||
echo "error: ${FILE} already contains edid.cpio, aborting!"
|
echo "error: ${FILE} already contains edid.cpio, aborting!"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
@ -43,7 +43,7 @@ do_install(){
|
|||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
FILE="/flash/uEnv.ini"
|
FILE="/flash/uEnv.ini"
|
||||||
if grep -q "initrd=/edid.cpio" "${FILE}" ; then
|
if grep -q "initrd=/edid.cpio" "${FILE}"; then
|
||||||
echo "error: ${FILE} already contains edid.cpio info .. aborting!"
|
echo "error: ${FILE} already contains edid.cpio info .. aborting!"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
@ -55,7 +55,7 @@ do_install(){
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
do_cleanup(){
|
do_cleanup() {
|
||||||
rm "/storage/.config/firmware/edid/edid.bin"
|
rm "/storage/.config/firmware/edid/edid.bin"
|
||||||
rm "/storage/.config/firmware/edid/edid.cpio"
|
rm "/storage/.config/firmware/edid/edid.cpio"
|
||||||
mount -o remount,rw /flash
|
mount -o remount,rw /flash
|
||||||
@ -69,7 +69,7 @@ do_cleanup(){
|
|||||||
mount -o remount,ro /flash
|
mount -o remount,ro /flash
|
||||||
}
|
}
|
||||||
|
|
||||||
do_usage(){
|
do_usage() {
|
||||||
echo "usage: getedid {create|delete}"
|
echo "usage: getedid {create|delete}"
|
||||||
exit 0
|
exit 0
|
||||||
}
|
}
|
||||||
|
@ -43,21 +43,21 @@ get_cleaned_cmdline_txt() {
|
|||||||
add_initramfs() {
|
add_initramfs() {
|
||||||
# make sure config.txt ends with a newline
|
# make sure config.txt ends with a newline
|
||||||
if [ "$(tail -c 1 ${CONFIG_TXT} | tr -c -d '\n' | tr '\n' 'X')" != "X" ]; then
|
if [ "$(tail -c 1 ${CONFIG_TXT} | tr -c -d '\n' | tr '\n' 'X')" != "X" ]; then
|
||||||
echo "" >> ${CONFIG_TXT}
|
echo "" >>${CONFIG_TXT}
|
||||||
fi
|
fi
|
||||||
echo "initramfs edid.cpio" >> ${CONFIG_TXT}
|
echo "initramfs edid.cpio" >>${CONFIG_TXT}
|
||||||
}
|
}
|
||||||
|
|
||||||
add_cmdline() {
|
add_cmdline() {
|
||||||
CMDLINE=$(get_cleaned_cmdline_txt)
|
CMDLINE=$(get_cleaned_cmdline_txt)
|
||||||
FIRMWARE=""
|
FIRMWARE=""
|
||||||
VIDEO=""
|
VIDEO=""
|
||||||
for conn in "$@"; do
|
for conn in "$@"; do
|
||||||
VIDEO="${VIDEO} video=${conn}:D"
|
VIDEO="${VIDEO} video=${conn}:D"
|
||||||
[ -n "${FIRMWARE}" ] && FIRMWARE="${FIRMWARE},"
|
[ -n "${FIRMWARE}" ] && FIRMWARE="${FIRMWARE},"
|
||||||
FIRMWARE="${FIRMWARE}${conn}:edid/edid-${conn}.bin"
|
FIRMWARE="${FIRMWARE}${conn}:edid/edid-${conn}.bin"
|
||||||
done
|
done
|
||||||
echo "${CMDLINE} drm.edid_firmware=${FIRMWARE}${VIDEO}" > ${CMDLINE_TXT}
|
echo "${CMDLINE} drm.edid_firmware=${FIRMWARE}${VIDEO}" >${CMDLINE_TXT}
|
||||||
}
|
}
|
||||||
|
|
||||||
set_edids() {
|
set_edids() {
|
||||||
@ -73,7 +73,7 @@ delete_edids() {
|
|||||||
mount -o remount,rw /flash
|
mount -o remount,rw /flash
|
||||||
cleanup_config_txt
|
cleanup_config_txt
|
||||||
CMDLINE=$(get_cleaned_cmdline_txt)
|
CMDLINE=$(get_cleaned_cmdline_txt)
|
||||||
echo "${CMDLINE}" > ${CMDLINE_TXT}
|
echo "${CMDLINE}" >${CMDLINE_TXT}
|
||||||
mount -o remount,ro /flash
|
mount -o remount,ro /flash
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,31 +3,30 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
# Copyright (C) 2022-present Team LibreELEC (https://libreelec.tv)
|
# Copyright (C) 2022-present Team LibreELEC (https://libreelec.tv)
|
||||||
|
|
||||||
do_start(){
|
do_start() {
|
||||||
while sleep 1
|
while sleep 1; do
|
||||||
do
|
printf "%4s" "$(date +'%l %M' | tr -d '[:space:]')" >"$LED_PATH_TEXT"
|
||||||
printf "%4s" "$(date +'%l %M' | tr -d '[:space:]')" > "$LED_PATH_TEXT"
|
|
||||||
if [ "$LED_COLON" = "off" ]; then
|
if [ "$LED_COLON" = "off" ]; then
|
||||||
echo "1" > "$LED_PATH_COLON"
|
echo "1" >"$LED_PATH_COLON"
|
||||||
LED_COLON="on"
|
LED_COLON="on"
|
||||||
else
|
else
|
||||||
echo "0" > "$LED_PATH_COLON"
|
echo "0" >"$LED_PATH_COLON"
|
||||||
LED_COLON="off"
|
LED_COLON="off"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
do_stop(){
|
do_stop() {
|
||||||
echo "0" > "$LED_PATH_COLON"
|
echo "0" >"$LED_PATH_COLON"
|
||||||
echo " " > "$LED_PATH_TEXT"
|
echo " " >"$LED_PATH_TEXT"
|
||||||
}
|
}
|
||||||
|
|
||||||
case $(dtname) in
|
case $(dtname) in
|
||||||
oranth,tx3-mini|oranth,tx9-pro|sunvell,t95z-plus)
|
oranth,tx3-mini | oranth,tx9-pro | sunvell,t95z-plus)
|
||||||
LED_PATH_COLON="/sys/devices/platform/spi/spi_master/spi0/spi0.0/leds/:colon/brightness"
|
LED_PATH_COLON="/sys/devices/platform/spi/spi_master/spi0/spi0.0/leds/:colon/brightness"
|
||||||
LED_PATH_TEXT="/sys/devices/platform/spi/spi_master/spi0/spi0.0/display_text"
|
LED_PATH_TEXT="/sys/devices/platform/spi/spi_master/spi0/spi0.0/display_text"
|
||||||
;;
|
;;
|
||||||
default|*)
|
default | *)
|
||||||
# noop
|
# noop
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
@ -3,8 +3,8 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
# Copyright (C) 2017 Matthias Reichl (hias@horus.com)
|
# Copyright (C) 2017 Matthias Reichl (hias@horus.com)
|
||||||
|
|
||||||
if [ -e "/storage/.config/lirc_options.conf" ] ; then
|
if [ -e "/storage/.config/lirc_options.conf" ]; then
|
||||||
LIRCD_OPTIONS="-O /storage/.config/lirc_options.conf"
|
LIRCD_OPTIONS="-O /storage/.config/lirc_options.conf"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec /usr/sbin/lircd $LIRCD_OPTIONS "$@" /storage/.config/lircd.conf
|
exec /usr/sbin/lircd $LIRCD_OPTIONS "$@" /storage/.config/lircd.conf
|
||||||
|
@ -3,8 +3,8 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
# Copyright (C) 2017 Matthias Reichl (hias@horus.com)
|
# Copyright (C) 2017 Matthias Reichl (hias@horus.com)
|
||||||
|
|
||||||
if [ -e "/storage/.config/lirc_options.conf" ] ; then
|
if [ -e "/storage/.config/lirc_options.conf" ]; then
|
||||||
LIRCD_OPTIONS="-O /storage/.config/lirc_options.conf"
|
LIRCD_OPTIONS="-O /storage/.config/lirc_options.conf"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec /usr/sbin/lircd-uinput $LIRCD_OPTIONS "$@"
|
exec /usr/sbin/lircd-uinput $LIRCD_OPTIONS "$@"
|
||||||
|
@ -4,14 +4,14 @@
|
|||||||
# Copyright (C) 2009-2015 Stephan Raue (stephan@openelec.tv)
|
# Copyright (C) 2009-2015 Stephan Raue (stephan@openelec.tv)
|
||||||
# Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv)
|
# Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv)
|
||||||
|
|
||||||
SYS_CPUFREQ_GOV=$( cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor )
|
SYS_CPUFREQ_GOV=$(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor)
|
||||||
SYS_CPUFREQ_DIR="/sys/devices/system/cpu/cpufreq"
|
SYS_CPUFREQ_DIR="/sys/devices/system/cpu/cpufreq"
|
||||||
|
|
||||||
# Configure frequency scaling properties
|
# Configure frequency scaling properties
|
||||||
if [ $SYS_CPUFREQ_GOV = "ondemand" ]; then
|
if [ $SYS_CPUFREQ_GOV = "ondemand" ]; then
|
||||||
for policy in ${SYS_CPUFREQ_DIR}/ondemand ${SYS_CPUFREQ_DIR}/policy*/; do
|
for policy in ${SYS_CPUFREQ_DIR}/ondemand ${SYS_CPUFREQ_DIR}/policy*/; do
|
||||||
if [ -e $policy/up_threshold ]; then
|
if [ -e $policy/up_threshold ]; then
|
||||||
echo 50 > $policy/up_threshold
|
echo 50 >$policy/up_threshold
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
# read config files
|
# read config files
|
||||||
for config in /etc/profile.d/*; do
|
for config in /etc/profile.d/*; do
|
||||||
if [ -f "$config" ] ; then
|
if [ -f "$config" ]; then
|
||||||
. $config
|
. $config
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
@ -6,42 +6,40 @@ check_hosts() {
|
|||||||
grep -v "^#" /run/libreelec/hosts | grep "${1}"
|
grep -v "^#" /run/libreelec/hosts | grep "${1}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# setup hostname
|
# setup hostname
|
||||||
if [ -f /storage/.cache/hostname ]; then
|
if [ -f /storage/.cache/hostname ]; then
|
||||||
cat /storage/.cache/hostname > /proc/sys/kernel/hostname
|
cat /storage/.cache/hostname >/proc/sys/kernel/hostname
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# setup /etc/hosts
|
# setup /etc/hosts
|
||||||
rm -f /run/libreelec/hosts
|
rm -f /run/libreelec/hosts
|
||||||
if [ -f /storage/.config/hosts.conf ]; then
|
if [ -f /storage/.config/hosts.conf ]; then
|
||||||
cat /storage/.config/hosts.conf > /run/libreelec/hosts
|
cat /storage/.config/hosts.conf >/run/libreelec/hosts
|
||||||
# add localhost to hosts if not present
|
# add localhost to hosts if not present
|
||||||
LOCALHOST_HOSTS=$(check_hosts "localhost")
|
LOCALHOST_HOSTS=$(check_hosts "localhost")
|
||||||
if [ -z "${LOCALHOST_HOSTS}" ]; then
|
if [ -z "${LOCALHOST_HOSTS}" ]; then
|
||||||
{
|
{
|
||||||
echo "127.0.0.1 localhost"
|
echo "127.0.0.1 localhost"
|
||||||
echo "::1 localhost ip6-localhost ip6-loopback"
|
echo "::1 localhost ip6-localhost ip6-loopback"
|
||||||
} >> /run/libreelec/hosts
|
} >>/run/libreelec/hosts
|
||||||
fi
|
fi
|
||||||
# add HOSTNAME to hosts if not present
|
# add HOSTNAME to hosts if not present
|
||||||
HOSTNAME=$(cat /proc/sys/kernel/hostname)
|
HOSTNAME=$(cat /proc/sys/kernel/hostname)
|
||||||
HOSTNAME_HOSTS=$(check_hosts "${HOSTNAME}")
|
HOSTNAME_HOSTS=$(check_hosts "${HOSTNAME}")
|
||||||
if [ -z "${HOSTNAME_HOSTS}" ]; then
|
if [ -z "${HOSTNAME_HOSTS}" ]; then
|
||||||
echo "127.0.1.1 ${HOSTNAME}" >> /run/libreelec/hosts
|
echo "127.0.1.1 ${HOSTNAME}" >>/run/libreelec/hosts
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# setup /etc/resolv.conf
|
# setup /etc/resolv.conf
|
||||||
rm -f /run/libreelec/resolv.conf
|
rm -f /run/libreelec/resolv.conf
|
||||||
if [ -f /storage/.config/resolv.conf ]; then
|
if [ -f /storage/.config/resolv.conf ]; then
|
||||||
cat /storage/.config/resolv.conf > /run/libreelec/resolv.conf
|
cat /storage/.config/resolv.conf >/run/libreelec/resolv.conf
|
||||||
elif [ -f /dev/.kernel_ipconfig ] && [ -f /proc/net/pnp ]; then
|
elif [ -f /dev/.kernel_ipconfig ] && [ -f /proc/net/pnp ]; then
|
||||||
cat /proc/net/pnp > /run/libreelec/resolv.conf
|
cat /proc/net/pnp >/run/libreelec/resolv.conf
|
||||||
else
|
else
|
||||||
cat << EOF > /run/libreelec/resolv.conf
|
cat <<EOF >/run/libreelec/resolv.conf
|
||||||
nameserver 8.8.8.8
|
nameserver 8.8.8.8
|
||||||
nameserver 8.8.4.4
|
nameserver 8.8.4.4
|
||||||
EOF
|
EOF
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -17,4 +17,4 @@ umount /storage/.cache/systemd-machine-id >/dev/null 2>&1
|
|||||||
|
|
||||||
# persist uuid
|
# persist uuid
|
||||||
mkdir -p /storage/.cache
|
mkdir -p /storage/.cache
|
||||||
echo "$MACHINEID" > /storage/.cache/systemd-machine-id
|
echo "$MACHINEID" >/storage/.cache/systemd-machine-id
|
||||||
|
@ -13,10 +13,9 @@ if [ -f /proc/net/ipconfig/ntp_servers ]; then
|
|||||||
done
|
done
|
||||||
if [ -n "$NTP_SERVERS" ]; then
|
if [ -n "$NTP_SERVERS" ]; then
|
||||||
mkdir -p /run/systemd/timesyncd.conf.d/
|
mkdir -p /run/systemd/timesyncd.conf.d/
|
||||||
cat << EOF > /run/systemd/timesyncd.conf.d/kernel-ntp-servers.conf
|
cat <<EOF >/run/systemd/timesyncd.conf.d/kernel-ntp-servers.conf
|
||||||
[Time]
|
[Time]
|
||||||
NTP=$NTP_SERVERS
|
NTP=$NTP_SERVERS
|
||||||
EOF
|
EOF
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -11,12 +11,12 @@ if [ -f /storage/.config/swap.conf ]; then
|
|||||||
. /storage/.config/swap.conf
|
. /storage/.config/swap.conf
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -e /dev/.storage_netboot ] ; then
|
if [ -e /dev/.storage_netboot ]; then
|
||||||
logger -t Boot "### netbooting... swap disabled ###"
|
logger -t Boot "### netbooting... swap disabled ###"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! "${SWAP_ENABLED}" = "yes" ] ; then
|
if [ ! "${SWAP_ENABLED}" = "yes" ]; then
|
||||||
logger -t Boot "### swap disabled via configfile ###"
|
logger -t Boot "### swap disabled via configfile ###"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
@ -17,7 +17,7 @@ mount -o remount,rw $BOOT_ROOT
|
|||||||
|
|
||||||
# update bootloader files
|
# update bootloader files
|
||||||
cp -p $SYSTEM_ROOT/usr/share/bootloader/LICENCE* $BOOT_ROOT
|
cp -p $SYSTEM_ROOT/usr/share/bootloader/LICENCE* $BOOT_ROOT
|
||||||
for f in bootcode.bin fixup.dat start.elf ; do
|
for f in bootcode.bin fixup.dat start.elf; do
|
||||||
if [ -f "${SYSTEM_ROOT}/usr/share/bootloader/$f" ]; then
|
if [ -f "${SYSTEM_ROOT}/usr/share/bootloader/$f" ]; then
|
||||||
cp -p "${SYSTEM_ROOT}/usr/share/bootloader/$f" "${BOOT_ROOT}"
|
cp -p "${SYSTEM_ROOT}/usr/share/bootloader/$f" "${BOOT_ROOT}"
|
||||||
fi
|
fi
|
||||||
@ -36,10 +36,10 @@ rm -rf $BOOT_ROOT/start_x.elf
|
|||||||
if [ ! -f $BOOT_ROOT/config.txt ]; then
|
if [ ! -f $BOOT_ROOT/config.txt ]; then
|
||||||
cp -p $SYSTEM_ROOT/usr/share/bootloader/config.txt $BOOT_ROOT
|
cp -p $SYSTEM_ROOT/usr/share/bootloader/config.txt $BOOT_ROOT
|
||||||
else
|
else
|
||||||
CONFIG_TXT_VERSION=$( \
|
CONFIG_TXT_VERSION=$(
|
||||||
grep "^# config.txt version v[0-9]\+" $BOOT_ROOT/config.txt | \
|
grep "^# config.txt version v[0-9]\+" $BOOT_ROOT/config.txt |
|
||||||
head -n 1 | \
|
head -n 1 |
|
||||||
sed 's/^# config.txt version v\([0-9]\+\) .*$/\1/' \
|
sed 's/^# config.txt version v\([0-9]\+\) .*$/\1/'
|
||||||
)
|
)
|
||||||
if [ ${CONFIG_TXT_VERSION:-0} -lt $MIN_CONFIG_TXT_VERSION ]; then
|
if [ ${CONFIG_TXT_VERSION:-0} -lt $MIN_CONFIG_TXT_VERSION ]; then
|
||||||
mv -f $BOOT_ROOT/config.txt $BOOT_ROOT/config.txt.old
|
mv -f $BOOT_ROOT/config.txt $BOOT_ROOT/config.txt.old
|
||||||
@ -50,7 +50,7 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Add distro config files
|
# Add distro config files
|
||||||
for distro in "$SYSTEM_ROOT/usr/share/bootloader/distroconfig"*.txt ; do
|
for distro in "$SYSTEM_ROOT/usr/share/bootloader/distroconfig"*.txt; do
|
||||||
if [ -f "${distro}" ]; then
|
if [ -f "${distro}" ]; then
|
||||||
cp -p "${distro}" $BOOT_ROOT
|
cp -p "${distro}" $BOOT_ROOT
|
||||||
fi
|
fi
|
||||||
|
@ -5,20 +5,20 @@
|
|||||||
# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
|
# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
|
||||||
|
|
||||||
mkdir -p $RELEASE_DIR/3rdparty/bootloader
|
mkdir -p $RELEASE_DIR/3rdparty/bootloader
|
||||||
cp -PR $INSTALL/usr/share/bootloader/LICENCE* $RELEASE_DIR/3rdparty/bootloader/
|
cp -PR $INSTALL/usr/share/bootloader/LICENCE* $RELEASE_DIR/3rdparty/bootloader/
|
||||||
for f in bootcode.bin fixup.dat start.elf ; do
|
for f in bootcode.bin fixup.dat start.elf; do
|
||||||
if [ -f "${INSTALL}/usr/share/bootloader/$f" ]; then
|
if [ -f "${INSTALL}/usr/share/bootloader/$f" ]; then
|
||||||
cp -PR "${INSTALL}/usr/share/bootloader/$f" "${RELEASE_DIR}/3rdparty/bootloader/"
|
cp -PR "${INSTALL}/usr/share/bootloader/$f" "${RELEASE_DIR}/3rdparty/bootloader/"
|
||||||
fi
|
|
||||||
done
|
|
||||||
cp -PR $INSTALL/usr/share/bootloader/*.dtb $RELEASE_DIR/3rdparty/bootloader/
|
|
||||||
cp -PR $INSTALL/usr/share/bootloader/overlays $RELEASE_DIR/3rdparty/bootloader/
|
|
||||||
|
|
||||||
if [ -f $INSTALL/usr/share/bootloader/config.txt ]; then
|
|
||||||
cp -PR $INSTALL/usr/share/bootloader/config.txt $RELEASE_DIR/3rdparty/bootloader/
|
|
||||||
fi
|
fi
|
||||||
for distro in "$INSTALL/usr/share/bootloader/distroconfig"*.txt ; do
|
done
|
||||||
if [ -f "${distro}" ]; then
|
cp -PR $INSTALL/usr/share/bootloader/*.dtb $RELEASE_DIR/3rdparty/bootloader/
|
||||||
cp -PR "${distro}" $RELEASE_DIR/3rdparty/bootloader/
|
cp -PR $INSTALL/usr/share/bootloader/overlays $RELEASE_DIR/3rdparty/bootloader/
|
||||||
fi
|
|
||||||
done
|
if [ -f $INSTALL/usr/share/bootloader/config.txt ]; then
|
||||||
|
cp -PR $INSTALL/usr/share/bootloader/config.txt $RELEASE_DIR/3rdparty/bootloader/
|
||||||
|
fi
|
||||||
|
for distro in "$INSTALL/usr/share/bootloader/distroconfig"*.txt; do
|
||||||
|
if [ -f "${distro}" ]; then
|
||||||
|
cp -PR "${distro}" $RELEASE_DIR/3rdparty/bootloader/
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
@ -8,25 +8,25 @@
|
|||||||
# modify it to run on other hardware and you brick your device you will
|
# modify it to run on other hardware and you brick your device you will
|
||||||
# receive no support to restore your device. You have been warned!
|
# receive no support to restore your device. You have been warned!
|
||||||
|
|
||||||
do_backup(){
|
do_backup() {
|
||||||
do_umount
|
do_umount
|
||||||
echo "info: compressing ${EMMC} to ${2}, this will take time"
|
echo "info: compressing ${EMMC} to ${2}, this will take time"
|
||||||
dd if="${EMMC}" | gzip > of="${2}"
|
dd if="${EMMC}" | gzip >of="${2}"
|
||||||
echo "info: compressing completed"
|
echo "info: compressing completed"
|
||||||
}
|
}
|
||||||
|
|
||||||
do_detect(){
|
do_detect() {
|
||||||
# used on LibreComputer LePotato/LaFrite where pre-formatted modules
|
# used on LibreComputer LePotato/LaFrite where pre-formatted modules
|
||||||
# must be attached after boot (LibreComputer supports this) else the
|
# must be attached after boot (LibreComputer supports this) else the
|
||||||
# device always boots to the pre-installed OS on the module.
|
# device always boots to the pre-installed OS on the module.
|
||||||
echo "info: rebinding d0074000.mmc"
|
echo "info: rebinding d0074000.mmc"
|
||||||
echo -n d0074000.mmc > /sys/bus/platform/drivers/meson-gx-mmc/unbind
|
echo -n d0074000.mmc >/sys/bus/platform/drivers/meson-gx-mmc/unbind
|
||||||
echo -n d0074000.mmc > /sys/bus/platform/drivers/meson-gx-mmc/bind
|
echo -n d0074000.mmc >/sys/bus/platform/drivers/meson-gx-mmc/bind
|
||||||
sleep 1
|
sleep 1
|
||||||
parted -s "${EMMC}" print
|
parted -s "${EMMC}" print
|
||||||
}
|
}
|
||||||
|
|
||||||
do_info(){
|
do_info() {
|
||||||
BOOTINFO=$(dd if="${BOOT}" count=2048 2>/dev/null | strings | grep -e '^U-Boot ' | awk '{print $2}')
|
BOOTINFO=$(dd if="${BOOT}" count=2048 2>/dev/null | strings | grep -e '^U-Boot ' | awk '{print $2}')
|
||||||
EMMCINFO=$(dd if="${EMMC}" count=2048 2>/dev/null | strings | grep -e '^U-Boot ' | awk '{print $2}')
|
EMMCINFO=$(dd if="${EMMC}" count=2048 2>/dev/null | strings | grep -e '^U-Boot ' | awk '{print $2}')
|
||||||
echo ""
|
echo ""
|
||||||
@ -45,7 +45,7 @@ do_info(){
|
|||||||
echo ""
|
echo ""
|
||||||
}
|
}
|
||||||
|
|
||||||
do_labels(){
|
do_labels() {
|
||||||
if [ -n "${2}" ] && [ -n "${3}" ]; then
|
if [ -n "${2}" ] && [ -n "${3}" ]; then
|
||||||
BOOTLABEL=$(echo "${2}" | awk 'BEGIN { getline; print toupper($0) }')
|
BOOTLABEL=$(echo "${2}" | awk 'BEGIN { getline; print toupper($0) }')
|
||||||
DISKLABEL=$(echo "${3}" | awk 'BEGIN { getline; print toupper($0) }')
|
DISKLABEL=$(echo "${3}" | awk 'BEGIN { getline; print toupper($0) }')
|
||||||
@ -77,7 +77,7 @@ do_labels(){
|
|||||||
echo ""
|
echo ""
|
||||||
}
|
}
|
||||||
|
|
||||||
do_resize(){
|
do_resize() {
|
||||||
if [ -z "${DISKLABEL}" ]; then
|
if [ -z "${DISKLABEL}" ]; then
|
||||||
DISKLABEL=$(blkid | grep "${EMMC}"p2 | awk -F'"' '{print $2}')
|
DISKLABEL=$(blkid | grep "${EMMC}"p2 | awk -F'"' '{print $2}')
|
||||||
fi
|
fi
|
||||||
@ -103,7 +103,7 @@ do_resize(){
|
|||||||
parted -s "${EMMC}" print
|
parted -s "${EMMC}" print
|
||||||
}
|
}
|
||||||
|
|
||||||
do_storage(){
|
do_storage() {
|
||||||
if [ -n "${2}" ]; then
|
if [ -n "${2}" ]; then
|
||||||
DISKLABEL=$(echo "${2}" | awk 'BEGIN { getline; print toupper($0) }')
|
DISKLABEL=$(echo "${2}" | awk 'BEGIN { getline; print toupper($0) }')
|
||||||
else
|
else
|
||||||
@ -130,7 +130,7 @@ do_storage(){
|
|||||||
echo ""
|
echo ""
|
||||||
}
|
}
|
||||||
|
|
||||||
do_umount(){
|
do_umount() {
|
||||||
for mount in $(grep "${EMMC}" /proc/mounts | awk '{print $1}'); do
|
for mount in $(grep "${EMMC}" /proc/mounts | awk '{print $1}'); do
|
||||||
echo "info: unmounting $mount"
|
echo "info: unmounting $mount"
|
||||||
umount -f "$mount"
|
umount -f "$mount"
|
||||||
@ -138,13 +138,13 @@ do_umount(){
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
do_writeprotect(){
|
do_writeprotect() {
|
||||||
echo "info: disabling emmc write protection"
|
echo "info: disabling emmc write protection"
|
||||||
echo 0 > "/sys/block/${EMMC}boot0/force_ro"
|
echo 0 >"/sys/block/${EMMC}boot0/force_ro"
|
||||||
echo 0 > "/sys/block/${EMMC}boot1/force_ro"
|
echo 0 >"/sys/block/${EMMC}boot1/force_ro"
|
||||||
}
|
}
|
||||||
|
|
||||||
do_write(){
|
do_write() {
|
||||||
do_umount
|
do_umount
|
||||||
|
|
||||||
case $(dtname) in
|
case $(dtname) in
|
||||||
@ -155,7 +155,7 @@ do_write(){
|
|||||||
|
|
||||||
if [ -e "${2}" ]; then
|
if [ -e "${2}" ]; then
|
||||||
case "${2}" in
|
case "${2}" in
|
||||||
*box.img.gz|*box.img)
|
*box.img.gz | *box.img)
|
||||||
echo "error: ${2} is not a bootable image, aborting!"
|
echo "error: ${2} is not a bootable image, aborting!"
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
@ -170,6 +170,7 @@ do_write(){
|
|||||||
*)
|
*)
|
||||||
echo "error: ${2} is not a valid image file!"
|
echo "error: ${2} is not a valid image file!"
|
||||||
exit 1
|
exit 1
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
else
|
else
|
||||||
echo "error: ${2} not found!"
|
echo "error: ${2} not found!"
|
||||||
@ -177,14 +178,14 @@ do_write(){
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
do_zero(){
|
do_zero() {
|
||||||
do_umount
|
do_umount
|
||||||
echo "info: zeroing ${EMMC}, be patient, this will take time"
|
echo "info: zeroing ${EMMC}, be patient, this will take time"
|
||||||
dd if="/dev/zero" of="${EMMC}" bs=1M
|
dd if="/dev/zero" of="${EMMC}" bs=1M
|
||||||
echo "info: zeroing complete"
|
echo "info: zeroing complete"
|
||||||
}
|
}
|
||||||
|
|
||||||
do_help(){
|
do_help() {
|
||||||
echo ""
|
echo ""
|
||||||
echo "usage: emmctool (w)rite <filename> : write <filename>.img/.img.gz to the eMMC module"
|
echo "usage: emmctool (w)rite <filename> : write <filename>.img/.img.gz to the eMMC module"
|
||||||
echo " (b)backup <filename> : dump the emmc partition to <filename>.img.gz file"
|
echo " (b)backup <filename> : dump the emmc partition to <filename>.img.gz file"
|
||||||
@ -207,7 +208,7 @@ if [ -z "${EMMC}" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
case $(dtname) in
|
case $(dtname) in
|
||||||
azw*|bananapi*|friendlyarm*|hardkernel*|khadas*|libretech*|radxa*|wetek*)
|
azw* | bananapi* | friendlyarm* | hardkernel* | khadas* | libretech* | radxa* | wetek*)
|
||||||
if [ "${BOOT}" = "${EMMC}" ]; then
|
if [ "${BOOT}" = "${EMMC}" ]; then
|
||||||
do_info
|
do_info
|
||||||
echo "Your device is booted from the eMMC module!"
|
echo "Your device is booted from the eMMC module!"
|
||||||
@ -226,27 +227,27 @@ case "${1}" in
|
|||||||
backup)
|
backup)
|
||||||
do_backup "$@"
|
do_backup "$@"
|
||||||
;;
|
;;
|
||||||
detect|d)
|
detect | d)
|
||||||
do_detect
|
do_detect
|
||||||
;;
|
;;
|
||||||
info|i)
|
info | i)
|
||||||
do_info
|
do_info
|
||||||
;;
|
;;
|
||||||
labels|l)
|
labels | l)
|
||||||
do_labels "$@"
|
do_labels "$@"
|
||||||
;;
|
;;
|
||||||
resize|r)
|
resize | r)
|
||||||
do_resize
|
do_resize
|
||||||
;;
|
;;
|
||||||
storage|s)
|
storage | s)
|
||||||
do_storage "$@"
|
do_storage "$@"
|
||||||
;;
|
;;
|
||||||
write|w)
|
write | w)
|
||||||
do_write "$@"
|
do_write "$@"
|
||||||
do_resize
|
do_resize
|
||||||
do_labels
|
do_labels
|
||||||
;;
|
;;
|
||||||
zero|z)
|
zero | z)
|
||||||
do_zero
|
do_zero
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
|
@ -29,7 +29,7 @@ fi
|
|||||||
|
|
||||||
if [ ! -f ${SWAY_CONFIG_USER} ]; then
|
if [ ! -f ${SWAY_CONFIG_USER} ]; then
|
||||||
mkdir -p ${SWAY_CONFIG_BASEDIR}
|
mkdir -p ${SWAY_CONFIG_BASEDIR}
|
||||||
cp ${SWAY_CONFIG_USER_DEFAULT} ${SWAY_CONFIG_BASEDIR}
|
cp ${SWAY_CONFIG_USER_DEFAULT} ${SWAY_CONFIG_BASEDIR}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -f ${SWAY_CONFIG_COLOR} ]; then
|
if [ ! -f ${SWAY_CONFIG_COLOR} ]; then
|
||||||
@ -40,8 +40,8 @@ if [ ! -f ${SWAY_CONFIG_DAEMON} ]; then
|
|||||||
cp ${SWAY_CONFIG_DAEMON_DEFAULT} ${SWAY_CONFIG_BASEDIR}
|
cp ${SWAY_CONFIG_DAEMON_DEFAULT} ${SWAY_CONFIG_BASEDIR}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -f ${SWAY_CONFIG_DAEMON} ] ; then
|
if [ -f ${SWAY_CONFIG_DAEMON} ]; then
|
||||||
SWAY_DAEMON_CONF=$(cat ${SWAY_CONFIG_DAEMON} | grep -E '^SWAY_DAEMON_CONF=' | cut -d "\"" -f2)
|
SWAY_DAEMON_CONF=$(cat ${SWAY_CONFIG_DAEMON} | grep -E '^SWAY_DAEMON_CONF=' | cut -d "\"" -f2)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo SWAY_DAEMON_ARGS=\"${SWAY_DAEMON_CONF} ${SWAY_DAEMON_ARGS}\" > ${SWAY_CONFIG_RUN}
|
echo SWAY_DAEMON_ARGS=\"${SWAY_DAEMON_CONF} ${SWAY_DAEMON_ARGS}\" >${SWAY_CONFIG_RUN}
|
||||||
|
@ -14,4 +14,4 @@ fi
|
|||||||
export WLR_LIBINPUT_NO_DEVICES=1
|
export WLR_LIBINPUT_NO_DEVICES=1
|
||||||
|
|
||||||
logger -t Sway "### Starting Sway with -V ${SWAY_GPU_ARGS} ${SWAY_DAEMON_ARGS}"
|
logger -t Sway "### Starting Sway with -V ${SWAY_GPU_ARGS} ${SWAY_DAEMON_ARGS}"
|
||||||
/usr/bin/sway -V ${SWAY_GPU_ARGS} ${SWAY_DAEMON_ARGS} > ${SWAY_LOG_FILE} 2>&1
|
/usr/bin/sway -V ${SWAY_GPU_ARGS} ${SWAY_DAEMON_ARGS} >${SWAY_LOG_FILE} 2>&1
|
||||||
|
@ -8,11 +8,11 @@ FOOT_LOG_FILE=/var/log/foot.log
|
|||||||
|
|
||||||
if [ ! -f ${FOOT_CONFIG_DIR}/foot.ini ]; then
|
if [ ! -f ${FOOT_CONFIG_DIR}/foot.ini ]; then
|
||||||
mkdir -p ${FOOT_CONFIG_DIR}
|
mkdir -p ${FOOT_CONFIG_DIR}
|
||||||
cp ${FOOT_CONFIG_DEFAULT} ${FOOT_CONFIG_DIR}
|
cp ${FOOT_CONFIG_DEFAULT} ${FOOT_CONFIG_DIR}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z "${LOCPATH}" ]; then
|
if [ -z "${LOCPATH}" ]; then
|
||||||
export LOCPATH="/storage/.cache/locpath"
|
export LOCPATH="/storage/.cache/locpath"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
/usr/bin/foot > ${FOOT_LOG_FILE} 2>&1
|
/usr/bin/foot >${FOOT_LOG_FILE} 2>&1
|
||||||
|
@ -6,22 +6,22 @@
|
|||||||
# wait for xorg-configure@.service
|
# wait for xorg-configure@.service
|
||||||
# max 10 seconds
|
# max 10 seconds
|
||||||
ARGS_FILE="/run/libreelec/xorg-settings.conf"
|
ARGS_FILE="/run/libreelec/xorg-settings.conf"
|
||||||
for i in $(seq 1 40) ; do
|
for i in $(seq 1 40); do
|
||||||
if [ -e "$ARGS_FILE" ] ; then
|
if [ -e "$ARGS_FILE" ]; then
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
usleep 250000
|
usleep 250000
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ -e "$ARGS_FILE" ] ; then
|
if [ -e "$ARGS_FILE" ]; then
|
||||||
. /run/libreelec/xorg-settings.conf
|
. /run/libreelec/xorg-settings.conf
|
||||||
exec xorg-launch-helper $@ $XORG_ARGS
|
exec xorg-launch-helper $@ $XORG_ARGS
|
||||||
else
|
else
|
||||||
echo "" > /dev/tty1
|
echo "" >/dev/tty1
|
||||||
echo "failed to start xorg." > /dev/tty1
|
echo "failed to start xorg." >/dev/tty1
|
||||||
echo "is your GPU supported?" > /dev/tty1
|
echo "is your GPU supported?" >/dev/tty1
|
||||||
echo "" > /dev/tty1
|
echo "" >/dev/tty1
|
||||||
lspci -nn > /dev/tty1
|
lspci -nn >/dev/tty1
|
||||||
echo "" > /dev/tty1
|
echo "" >/dev/tty1
|
||||||
sleep 30
|
sleep 30
|
||||||
fi
|
fi
|
||||||
|
@ -13,7 +13,7 @@ mkdir -p /var/run
|
|||||||
|
|
||||||
# HACK. we have xorg-configure@%. so nice race
|
# HACK. we have xorg-configure@%. so nice race
|
||||||
# can happen on multi-gpu setups
|
# can happen on multi-gpu setups
|
||||||
if [ -e /var/run/xorg-configure.done ] ; then
|
if [ -e /var/run/xorg-configure.done ]; then
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -26,10 +26,10 @@ logger -t Xorg "creating needed directories and symlinks for driver: "${1}""
|
|||||||
|
|
||||||
logger -t Xorg "### setup xorg.conf paths ###"
|
logger -t Xorg "### setup xorg.conf paths ###"
|
||||||
|
|
||||||
XORG_CONF_USER="/storage/.config/xorg.conf"
|
XORG_CONF_USER="/storage/.config/xorg.conf"
|
||||||
XORG_CONF_USER_DRV="/storage/.config/xorg-${1}.conf"
|
XORG_CONF_USER_DRV="/storage/.config/xorg-${1}.conf"
|
||||||
XORG_CONF_DEFAULT="/etc/X11/xorg.conf"
|
XORG_CONF_DEFAULT="/etc/X11/xorg.conf"
|
||||||
XORG_CONF_DEFAULT_DRV="/etc/X11/xorg-${1}.conf"
|
XORG_CONF_DEFAULT_DRV="/etc/X11/xorg-${1}.conf"
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
# creating start options
|
# creating start options
|
||||||
@ -37,18 +37,18 @@ logger -t Xorg "### setup xorg.conf paths ###"
|
|||||||
|
|
||||||
logger -t Xorg "### creating start options ###"
|
logger -t Xorg "### creating start options ###"
|
||||||
|
|
||||||
XORG_ARGS="-s 0 -noreset -allowMouseOpenFail"
|
XORG_ARGS="-s 0 -noreset -allowMouseOpenFail"
|
||||||
|
|
||||||
# load user defined xorg.conf, if exist
|
# load user defined xorg.conf, if exist
|
||||||
if [ -f "${XORG_CONF_USER}" ]; then
|
if [ -f "${XORG_CONF_USER}" ]; then
|
||||||
XORG_ARGS="${XORG_ARGS} -config ${XORG_CONF_USER}"
|
XORG_ARGS="${XORG_ARGS} -config ${XORG_CONF_USER}"
|
||||||
elif [ -f "${XORG_CONF_USER_DRV}" ]; then
|
elif [ -f "${XORG_CONF_USER_DRV}" ]; then
|
||||||
XORG_ARGS="${XORG_ARGS} -config ${XORG_CONF_USER_DRV}"
|
XORG_ARGS="${XORG_ARGS} -config ${XORG_CONF_USER_DRV}"
|
||||||
elif [ -f "${XORG_CONF_DEFAULT}" ]; then
|
elif [ -f "${XORG_CONF_DEFAULT}" ]; then
|
||||||
XORG_ARGS="${XORG_ARGS} -config ${XORG_CONF_DEFAULT}"
|
XORG_ARGS="${XORG_ARGS} -config ${XORG_CONF_DEFAULT}"
|
||||||
elif [ -f "$XORG_CONF_DEFAULT_DRV" ]; then
|
elif [ -f "$XORG_CONF_DEFAULT_DRV" ]; then
|
||||||
XORG_ARGS="${XORG_ARGS} -config ${XORG_CONF_DEFAULT_DRV}"
|
XORG_ARGS="${XORG_ARGS} -config ${XORG_CONF_DEFAULT_DRV}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
# creating needed directories and symlinks
|
# creating needed directories and symlinks
|
||||||
@ -56,55 +56,54 @@ logger -t Xorg "### creating start options ###"
|
|||||||
|
|
||||||
logger -t Xorg "### creating needed directories and symlinks ###"
|
logger -t Xorg "### creating needed directories and symlinks ###"
|
||||||
|
|
||||||
# Used to support GeForce 600 Series & newer
|
# Used to support GeForce 600 Series & newer
|
||||||
if [ "${1}" = "nvidia" ]; then
|
if [ "${1}" = "nvidia" ]; then
|
||||||
ln -sf /usr/lib/xorg/modules/extensions/libglx_nvidia.so /var/lib/libglx.so
|
ln -sf /usr/lib/xorg/modules/extensions/libglx_nvidia.so /var/lib/libglx.so
|
||||||
ln -sf /usr/lib/libnvidia-ml.so.@NVIDIA_VERSION@ /var/lib/libnvidia-ml.so.1
|
ln -sf /usr/lib/libnvidia-ml.so.@NVIDIA_VERSION@ /var/lib/libnvidia-ml.so.1
|
||||||
ln -sf /usr/lib/xorg/modules/drivers/nvidia-main_drv.so /var/lib/nvidia_drv.so
|
ln -sf /usr/lib/xorg/modules/drivers/nvidia-main_drv.so /var/lib/nvidia_drv.so
|
||||||
ln -sf /usr/lib/nvidia/nvidia.ko /var/lib/nvidia.ko
|
ln -sf /usr/lib/nvidia/nvidia.ko /var/lib/nvidia.ko
|
||||||
ln -sf /usr/lib/vdpau/libvdpau_nvidia-main.so.1 /var/lib/libvdpau_nvidia.so.1
|
ln -sf /usr/lib/vdpau/libvdpau_nvidia-main.so.1 /var/lib/libvdpau_nvidia.so.1
|
||||||
ln -sf /usr/lib/vdpau/libvdpau_nvidia-main.so.1 /var/lib/libvdpau_nvidia.so
|
ln -sf /usr/lib/vdpau/libvdpau_nvidia-main.so.1 /var/lib/libvdpau_nvidia.so
|
||||||
ln -sf /usr/bin/nvidia-main-smi /var/lib/nvidia-smi
|
ln -sf /usr/bin/nvidia-main-smi /var/lib/nvidia-smi
|
||||||
ln -sf /usr/bin/nvidia-main-xconfig /var/lib/nvidia-xconfig
|
ln -sf /usr/bin/nvidia-main-xconfig /var/lib/nvidia-xconfig
|
||||||
insmod /var/lib/nvidia.ko
|
insmod /var/lib/nvidia.ko
|
||||||
# GL/GLX (GLVND)
|
# GL/GLX (GLVND)
|
||||||
ln -sf /usr/lib/libGL_glvnd.so.1 /var/lib/libGL.so
|
ln -sf /usr/lib/libGL_glvnd.so.1 /var/lib/libGL.so
|
||||||
ln -sf /usr/lib/libGLX_glvnd.so.0 /var/lib/libGLX.so
|
ln -sf /usr/lib/libGLX_glvnd.so.0 /var/lib/libGLX.so
|
||||||
# indirect rendering
|
# indirect rendering
|
||||||
ln -sf /usr/lib/libGLX_nvidia.so.0 /var/lib/libGLX_indirect.so.0
|
ln -sf /usr/lib/libGLX_nvidia.so.0 /var/lib/libGLX_indirect.so.0
|
||||||
XORG_ARGS="${XORG_ARGS} -ignoreABI"
|
XORG_ARGS="${XORG_ARGS} -ignoreABI"
|
||||||
# Used to support GeForce 500 Series & older
|
# Used to support GeForce 500 Series & older
|
||||||
elif [ "${1}" = "nvidia-legacy" ]; then
|
elif [ "${1}" = "nvidia-legacy" ]; then
|
||||||
ln -sf /usr/lib/libGL_nvidia-legacy.so.1 /var/lib/libGL.so
|
ln -sf /usr/lib/libGL_nvidia-legacy.so.1 /var/lib/libGL.so
|
||||||
ln -sf /usr/lib/xorg/modules/extensions/libglx_nvidia-legacy.so /var/lib/libglx.so
|
ln -sf /usr/lib/xorg/modules/extensions/libglx_nvidia-legacy.so /var/lib/libglx.so
|
||||||
ln -sf /usr/lib/libnvidia-ml.so.@NVIDIA_LEGACY_VERSION@ /var/lib/libnvidia-ml.so.1
|
ln -sf /usr/lib/libnvidia-ml.so.@NVIDIA_LEGACY_VERSION@ /var/lib/libnvidia-ml.so.1
|
||||||
ln -sf /usr/lib/xorg/modules/drivers/nvidia-legacy_drv.so /var/lib/nvidia_drv.so
|
ln -sf /usr/lib/xorg/modules/drivers/nvidia-legacy_drv.so /var/lib/nvidia_drv.so
|
||||||
ln -sf /usr/lib/nvidia-legacy/nvidia.ko /var/lib/nvidia.ko
|
ln -sf /usr/lib/nvidia-legacy/nvidia.ko /var/lib/nvidia.ko
|
||||||
ln -sf /usr/lib/vdpau/libvdpau_nvidia-legacy.so.1 /var/lib/libvdpau_nvidia.so.1
|
ln -sf /usr/lib/vdpau/libvdpau_nvidia-legacy.so.1 /var/lib/libvdpau_nvidia.so.1
|
||||||
ln -sf /usr/lib/vdpau/libvdpau_nvidia-legacy.so.1 /var/lib/libvdpau_nvidia.so
|
ln -sf /usr/lib/vdpau/libvdpau_nvidia-legacy.so.1 /var/lib/libvdpau_nvidia.so
|
||||||
ln -sf /usr/bin/nvidia-legacy-smi /var/lib/nvidia-smi
|
ln -sf /usr/bin/nvidia-legacy-smi /var/lib/nvidia-smi
|
||||||
ln -sf /usr/bin/nvidia-legacy-xconfig /var/lib/nvidia-xconfig
|
ln -sf /usr/bin/nvidia-legacy-xconfig /var/lib/nvidia-xconfig
|
||||||
insmod /var/lib/nvidia.ko
|
insmod /var/lib/nvidia.ko
|
||||||
# GLX (NON-GLVND)
|
# GLX (NON-GLVND)
|
||||||
ln -sf /usr/lib/libGL_nvidia-legacy.so.1 /var/lib/libGLX.so
|
ln -sf /usr/lib/libGL_nvidia-legacy.so.1 /var/lib/libGLX.so
|
||||||
# indirect rendering
|
# indirect rendering
|
||||||
ln -sf /usr/lib/libGL_nvidia-legacy.so.1 /var/lib/libGLX_indirect.so.0
|
ln -sf /usr/lib/libGL_nvidia-legacy.so.1 /var/lib/libGLX_indirect.so.0
|
||||||
XORG_ARGS="${XORG_ARGS} -ignoreABI"
|
XORG_ARGS="${XORG_ARGS} -ignoreABI"
|
||||||
# Used for AMD & Intel GPUs supported by MESA 3D
|
# Used for AMD & Intel GPUs supported by MESA 3D
|
||||||
else
|
else
|
||||||
ln -sf /usr/lib/xorg/modules/extensions/libglx_mesa.so /var/lib/libglx.so
|
ln -sf /usr/lib/xorg/modules/extensions/libglx_mesa.so /var/lib/libglx.so
|
||||||
# GL/GLX (GLVND)
|
# GL/GLX (GLVND)
|
||||||
ln -sf /usr/lib/libGL_glvnd.so.1 /var/lib/libGL.so
|
ln -sf /usr/lib/libGL_glvnd.so.1 /var/lib/libGL.so
|
||||||
ln -sf /usr/lib/libGLX_glvnd.so.0 /var/lib/libGLX.so
|
ln -sf /usr/lib/libGLX_glvnd.so.0 /var/lib/libGLX.so
|
||||||
# indirect rendering
|
# indirect rendering
|
||||||
ln -sf /usr/lib/libGLX_mesa.so.0 /var/lib/libGLX_indirect.so.0
|
ln -sf /usr/lib/libGLX_mesa.so.0 /var/lib/libGLX_indirect.so.0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# setup xorg-settings.conf
|
# setup xorg-settings.conf
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
logger -t Xorg "### starting Xorg with '${DISPLAY} vt01 ${XORG_ARGS}' ###"
|
logger -t Xorg "### starting Xorg with '${DISPLAY} vt01 ${XORG_ARGS}' ###"
|
||||||
mkdir -p /run/libreelec
|
mkdir -p /run/libreelec
|
||||||
echo "XORG_ARGS=\"${XORG_ARGS}\"" > /run/libreelec/xorg-settings.conf
|
echo "XORG_ARGS=\"${XORG_ARGS}\"" >/run/libreelec/xorg-settings.conf
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user