mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-08-01 15:07:49 +00:00
Merge pull request #4540 from HiassofT/le10-systemd-target
use a systemd generator for selecting the default target
This commit is contained in:
commit
42e40c838f
@ -144,6 +144,9 @@ makeinstall_target() {
|
|||||||
cp $PKG_DIR/scripts/rpi-flash-firmware $INSTALL/usr/lib/libreelec
|
cp $PKG_DIR/scripts/rpi-flash-firmware $INSTALL/usr/lib/libreelec
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
mkdir -p $INSTALL/usr/lib/systemd/system-generators/
|
||||||
|
cp $PKG_DIR/scripts/libreelec-target-generator $INSTALL/usr/lib/systemd/system-generators/
|
||||||
|
|
||||||
mkdir -p $INSTALL/etc
|
mkdir -p $INSTALL/etc
|
||||||
cp $PKG_DIR/config/profile $INSTALL/etc
|
cp $PKG_DIR/config/profile $INSTALL/etc
|
||||||
cp $PKG_DIR/config/inputrc $INSTALL/etc
|
cp $PKG_DIR/config/inputrc $INSTALL/etc
|
||||||
|
@ -1005,11 +1005,7 @@ for arg in $(cat /proc/cmdline); do
|
|||||||
wol_wait=*)
|
wol_wait=*)
|
||||||
wol_wait="${arg#*=}"
|
wol_wait="${arg#*=}"
|
||||||
;;
|
;;
|
||||||
textmode)
|
|
||||||
INIT_UNIT="--unit=textmode.target"
|
|
||||||
;;
|
|
||||||
installer)
|
installer)
|
||||||
INIT_UNIT="--unit=installer.target"
|
|
||||||
SYSLINUX_DEFAULT="installer"
|
SYSLINUX_DEFAULT="installer"
|
||||||
;;
|
;;
|
||||||
debugging)
|
debugging)
|
||||||
@ -1134,19 +1130,7 @@ if [ "$STORAGE_NETBOOT" = "yes" ]; then
|
|||||||
echo "" > /sysroot/dev/.storage_netboot
|
echo "" > /sysroot/dev/.storage_netboot
|
||||||
fi
|
fi
|
||||||
|
|
||||||
BACKUP_FILE=$(ls -1 /sysroot/storage/.restore/*.tar 2>/dev/null | head -n 1)
|
|
||||||
|
|
||||||
if [ -f /sysroot/storage/.please_resize_me ]; then
|
|
||||||
INIT_UNIT="--unit=fs-resize.target"
|
|
||||||
elif [ -f /sysroot/storage/.cache/reset_oe -o -f /sysroot/storage/.cache/reset_xbmc ]; then
|
|
||||||
INIT_UNIT="--unit=factory-reset.target"
|
|
||||||
elif [ -f "$BACKUP_FILE" ]; then
|
|
||||||
INIT_UNIT="--unit=backup-restore.target"
|
|
||||||
elif [ -f /sysroot/storage/.rpi_flash_firmware ]; then
|
|
||||||
INIT_UNIT="--unit=rpi-flash-firmware.target"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# switch to new sysroot and start real init
|
# switch to new sysroot and start real init
|
||||||
exec /usr/bin/busybox switch_root /sysroot /usr/lib/systemd/systemd $INIT_ARGS $INIT_UNIT
|
exec /usr/bin/busybox switch_root /sysroot /usr/lib/systemd/systemd $INIT_ARGS
|
||||||
|
|
||||||
error "switch_root" "Error in initramfs. Could not switch to new root"
|
error "switch_root" "Error in initramfs. Could not switch to new root"
|
||||||
|
44
packages/sysutils/busybox/scripts/libreelec-target-generator
Executable file
44
packages/sysutils/busybox/scripts/libreelec-target-generator
Executable file
@ -0,0 +1,44 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
# Copyright (C) 2020-present Matthias Reichl <hias@horus.com>
|
||||||
|
|
||||||
|
EARLY_DIR="$2"
|
||||||
|
|
||||||
|
log() {
|
||||||
|
echo "libreelec-target-generator: $@" > /dev/kmsg
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ -z "$EARLY_DIR" ]; then
|
||||||
|
log "error: generator directory missing"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
TARGET=""
|
||||||
|
|
||||||
|
for arg in $(cat /proc/cmdline); do
|
||||||
|
case "$arg" in
|
||||||
|
textmode)
|
||||||
|
TARGET="textmode.target"
|
||||||
|
;;
|
||||||
|
installer)
|
||||||
|
TARGET="installer.target"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
BACKUP_FILE=$(ls -1 /storage/.restore/*.tar 2>/dev/null | head -n 1)
|
||||||
|
|
||||||
|
if [ -f /storage/.please_resize_me ]; then
|
||||||
|
TARGET="fs-resize.target"
|
||||||
|
elif [ -f /storage/.cache/reset_oe -o -f /storage/.cache/reset_xbmc ]; then
|
||||||
|
TARGET="factory-reset.target"
|
||||||
|
elif [ -f "$BACKUP_FILE" ]; then
|
||||||
|
TARGET="backup-restore.target"
|
||||||
|
elif [ -f /storage/.rpi_flash_firmware ]; then
|
||||||
|
TARGET="rpi-flash-firmware.target"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$TARGET" ]; then
|
||||||
|
ln -sT "/usr/lib/systemd/system/$TARGET" "$EARLY_DIR/default.target" 2>/dev/kmsg || log "error creating symlink to $TARGET: $?"
|
||||||
|
fi
|
Loading…
x
Reference in New Issue
Block a user