mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-29 13:46:49 +00:00
busybox: init: mount squashfs early
to have a full set of binaries in the init process as early as possible it now mounts the squashfs direct after mounting /flash. there is also a hook /flash/post-sysroot.sh for custom scripting. i will use this e.g. for lvm2 and cryptsetup in the init process, because they are very big and i dont like them in initramfs.
This commit is contained in:
parent
28ecf8f4ac
commit
f44f964127
@ -15,6 +15,9 @@
|
|||||||
/usr/bin/busybox mkdir -p /sysroot
|
/usr/bin/busybox mkdir -p /sysroot
|
||||||
/usr/bin/busybox mkdir -p /storage
|
/usr/bin/busybox mkdir -p /storage
|
||||||
|
|
||||||
|
# temp mountpoint for updates
|
||||||
|
/usr/bin/busybox mkdir -p /update
|
||||||
|
|
||||||
# mount all needed special filesystems
|
# mount all needed special filesystems
|
||||||
/usr/bin/busybox mount -t devtmpfs devtmpfs /dev
|
/usr/bin/busybox mount -t devtmpfs devtmpfs /dev
|
||||||
/usr/bin/busybox mount -t proc proc /proc
|
/usr/bin/busybox mount -t proc proc /proc
|
||||||
@ -243,16 +246,29 @@ mount_part() {
|
|||||||
$MOUNT_CMD "$MOUNT_TARGET" "$2" "$3" "$4"
|
$MOUNT_CMD "$MOUNT_TARGET" "$2" "$3" "$4"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mount_sysroot() {
|
||||||
|
if [ "$SYSTEM_TORAM" = "yes" ]; then
|
||||||
|
cp /flash/$IMAGE_SYSTEM /dev/$IMAGE_SYSTEM
|
||||||
|
mount_part "/dev/$IMAGE_SYSTEM" "/sysroot" "ro,loop"
|
||||||
|
else
|
||||||
|
mount_part "/flash/$IMAGE_SYSTEM" "/sysroot" "ro,loop"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f /flash/post-sysroot.sh ]; then
|
||||||
|
. /flash/post-sysroot.sh
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# mount the specified SYSTEM file and output arch from /etc/os-release
|
# mount the specified SYSTEM file and output arch from /etc/os-release
|
||||||
get_project_arch() {
|
get_project_arch() {
|
||||||
mount_part "$1" "/sysroot" "ro,loop" || return
|
mount_part "$1" "/update" "ro,loop" || return
|
||||||
|
|
||||||
if [ -f /sysroot/etc/os-release ]; then
|
if [ -f /update/etc/os-release ]; then
|
||||||
. /sysroot/etc/os-release
|
. /update/etc/os-release
|
||||||
echo "${LIBREELEC_ARCH:-${OPENELEC_ARCH}}"
|
echo "${LIBREELEC_ARCH:-${OPENELEC_ARCH}}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
umount /sysroot
|
umount /update
|
||||||
}
|
}
|
||||||
|
|
||||||
# If the project/arch of current matches the upgrade, then it is considered compatible.
|
# If the project/arch of current matches the upgrade, then it is considered compatible.
|
||||||
@ -265,13 +281,13 @@ is_compatible() {
|
|||||||
if [ "${2}" = "${3}" ]; then
|
if [ "${2}" = "${3}" ]; then
|
||||||
result=0
|
result=0
|
||||||
else
|
else
|
||||||
mount_part "$1" "/sysroot" "ro,loop"
|
mount_part "$1" "/update" "ro,loop"
|
||||||
|
|
||||||
if [ -f /sysroot/usr/share/bootloader/canupdate.sh ]; then
|
if [ -f /update/usr/share/bootloader/canupdate.sh ]; then
|
||||||
sh /sysroot/usr/share/bootloader/canupdate.sh "${2}" "${3}" && result=0
|
sh /update/usr/share/bootloader/canupdate.sh "${2}" "${3}" && result=0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
umount /sysroot
|
umount /update
|
||||||
fi
|
fi
|
||||||
|
|
||||||
return ${result}
|
return ${result}
|
||||||
@ -341,9 +357,9 @@ update_bootloader() {
|
|||||||
local result
|
local result
|
||||||
|
|
||||||
export BOOT_ROOT="/flash"
|
export BOOT_ROOT="/flash"
|
||||||
export SYSTEM_ROOT="/sysroot"
|
export SYSTEM_ROOT="/update"
|
||||||
|
|
||||||
mount_part "/flash/$IMAGE_SYSTEM" "/sysroot" "ro,loop"
|
mount_part "/flash/$IMAGE_SYSTEM" "$SYSTEM_ROOT" "ro,loop"
|
||||||
|
|
||||||
if [ -f $SYSTEM_ROOT/usr/share/bootloader/update.sh ]; then
|
if [ -f $SYSTEM_ROOT/usr/share/bootloader/update.sh ]; then
|
||||||
StartProgress spinner "Updating Boot Files... "
|
StartProgress spinner "Updating Boot Files... "
|
||||||
@ -353,7 +369,7 @@ update_bootloader() {
|
|||||||
[ -n "${result}" ] && echo "${result}"
|
[ -n "${result}" ] && echo "${result}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
umount /sysroot
|
umount $SYSTEM_ROOT
|
||||||
}
|
}
|
||||||
|
|
||||||
load_modules() {
|
load_modules() {
|
||||||
@ -913,6 +929,7 @@ check_update() {
|
|||||||
else
|
else
|
||||||
update_file "Kernel" "$UPDATE_KERNEL" "/flash/$IMAGE_KERNEL"
|
update_file "Kernel" "$UPDATE_KERNEL" "/flash/$IMAGE_KERNEL"
|
||||||
fi
|
fi
|
||||||
|
umount /sysroot
|
||||||
update_file "System" "$UPDATE_SYSTEM" "/flash/$IMAGE_SYSTEM"
|
update_file "System" "$UPDATE_SYSTEM" "/flash/$IMAGE_SYSTEM"
|
||||||
update_bootloader
|
update_bootloader
|
||||||
do_cleanup
|
do_cleanup
|
||||||
@ -922,13 +939,6 @@ check_update() {
|
|||||||
prepare_sysroot() {
|
prepare_sysroot() {
|
||||||
progress "Preparing system"
|
progress "Preparing system"
|
||||||
|
|
||||||
if [ "$SYSTEM_TORAM" = "yes" ]; then
|
|
||||||
cp /flash/$IMAGE_SYSTEM /dev/$IMAGE_SYSTEM
|
|
||||||
mount_part "/dev/$IMAGE_SYSTEM" "/sysroot" "ro,loop"
|
|
||||||
else
|
|
||||||
mount_part "/flash/$IMAGE_SYSTEM" "/sysroot" "ro,loop"
|
|
||||||
fi
|
|
||||||
|
|
||||||
mount --move /flash /sysroot/flash
|
mount --move /flash /sysroot/flash
|
||||||
mount --move /storage /sysroot/storage
|
mount --move /storage /sysroot/storage
|
||||||
|
|
||||||
@ -1083,6 +1093,7 @@ for BOOT_STEP in \
|
|||||||
set_consolefont \
|
set_consolefont \
|
||||||
check_disks \
|
check_disks \
|
||||||
mount_flash \
|
mount_flash \
|
||||||
|
mount_sysroot \
|
||||||
cleanup_flash \
|
cleanup_flash \
|
||||||
update_bootmenu \
|
update_bootmenu \
|
||||||
load_splash \
|
load_splash \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user