9dd0d3270d
* Revert enabling blkid in e2fsprogs, this conflicts with the busybox binary and causes partitions to fail to resize on first boot. * Optimize startup order and apply a guard to set_settings to ensure the system configuration exists before writing to it. This resolves black screen issues that sometimes occur during the initial boot.
65 lines
2.4 KiB
Bash
Executable file
65 lines
2.4 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
|
|
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
|
|
|
|
. /etc/profile.d/001-functions
|
|
|
|
if [ ! -e "/storage/.configured" ]
|
|
then
|
|
tocon "Initializing configuration..."
|
|
# Copy config files
|
|
rsync -a --ignore-existing --exclude={es_features.cfg,es_systems.cfg} /usr/config/* /storage/.config/ >/var/log/configure.log 2>&1
|
|
|
|
if [ -d "/usr/lib/autostart/quirks/platforms/${HW_DEVICE}/config" ]
|
|
then
|
|
rsync -a /usr/lib/autostart/quirks/platforms/"${HW_DEVICE}"/config/* /storage/.config/ >>/var/log/configure.log 2>&1
|
|
fi
|
|
|
|
if [ -d "/usr/lib/autostart/quirks/devices/${QUIRK_DEVICE}/config" ]
|
|
then
|
|
rsync -a /usr/lib/autostart/quirks/devices/"${QUIRK_DEVICE}"/config/* /storage/.config/ >>/var/log/configure.log 2>&1
|
|
fi
|
|
|
|
if [ -e "/usr/bin/emulationstation" ]
|
|
then
|
|
tocon "Installing themes..."
|
|
mkdir -p /storage/.config/emulationstation/themes >/dev/null
|
|
ln -s /usr/share/themes/es-theme-art-book-next /storage/.config/emulationstation/themes/system-theme >/dev/null 2>&1
|
|
|
|
### Link the game controller database so it is managed with OS updates.
|
|
tocon "Configuring controller database..."
|
|
rm -f /storage/.config/SDL-GameControllerDB/gamecontrollerdb.txt >/dev/null 2>&1
|
|
ln -s /usr/config/SDL-GameControllerDB/gamecontrollerdb.txt /storage/.config/SDL-GameControllerDB/gamecontrollerdb.txt >/dev/null 2>&1
|
|
|
|
### Remove and link es configs so they are managed with OS updates.
|
|
for es_cfg in es_features.cfg es_systems.cfg
|
|
do
|
|
ln -s /usr/config/emulationstation/${es_cfg} /storage/.config/emulationstation/${es_cfg} >/dev/null 2>&1
|
|
done
|
|
fi
|
|
|
|
mkdir -p /storage/.config/modprobe.d >/dev/null 2>&1
|
|
touch /storage/.configured >/dev/null 2>&1
|
|
sync
|
|
fi
|
|
|
|
if [ ! -e "/storage/.cache/ld.so.cache" ]
|
|
then
|
|
tocon "Initializing library cache..."
|
|
### Create library cache
|
|
ldconfig -X >/dev/null 2>&1
|
|
fi
|
|
|
|
if [ ! -d "/storage/.config/locale" ]
|
|
then
|
|
tocon "Initializing language support..."
|
|
rsync -a --delete /usr/config/locale/* /storage/.config/locale/ >/dev/null 2>&1
|
|
if [ ! -L "/storage/.config/emulationstation/locale" ] &&
|
|
[ -e "/usr/bin/emulationstation" ]
|
|
then
|
|
rm -rf /storage/.config/emulationstation/locale >/dev/null 2>&1 ||:
|
|
ln -sf /usr/share/locale /storage/.config/emulationstation/locale
|
|
fi
|
|
fi
|