mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-31 06:36:41 +00:00
Merge pull request #2689 from MilhouseVH/le90_init_sky42_patches
init: add sky42 enhancements/bug fixes
This commit is contained in:
commit
fe1d278963
@ -61,6 +61,9 @@ PROJECT_DIR="$ROOT/projects"
|
|||||||
. $PROJECT_DIR/$PROJECT/devices/$DEVICE/options
|
. $PROJECT_DIR/$PROJECT/devices/$DEVICE/options
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# projects can set KERNEL_NAME (kernel.img)
|
||||||
|
[ -z "$KERNEL_NAME" ] && KERNEL_NAME="KERNEL"
|
||||||
|
|
||||||
LINUX_DEPENDS="$PROJECT_DIR/$PROJECT/linux $PROJECT_DIR/$PROJECT/patches/linux $ROOT/packages/linux"
|
LINUX_DEPENDS="$PROJECT_DIR/$PROJECT/linux $PROJECT_DIR/$PROJECT/patches/linux $ROOT/packages/linux"
|
||||||
[ -n "$DEVICE" ] && LINUX_DEPENDS+=" $PROJECT_DIR/$PROJECT/devices/$DEVICE/linux $PROJECT_DIR/$PROJECT/devices/$DEVICE/patches/linux"
|
[ -n "$DEVICE" ] && LINUX_DEPENDS+=" $PROJECT_DIR/$PROJECT/devices/$DEVICE/linux $PROJECT_DIR/$PROJECT/devices/$DEVICE/patches/linux"
|
||||||
[ "$TARGET_ARCH" = "x86_64" ] && LINUX_DEPENDS+=" $ROOT/packages/linux-firmware/intel-ucode $ROOT/packages/linux-firmware/kernel-firmware"
|
[ "$TARGET_ARCH" = "x86_64" ] && LINUX_DEPENDS+=" $ROOT/packages/linux-firmware/intel-ucode $ROOT/packages/linux-firmware/kernel-firmware"
|
||||||
|
@ -93,7 +93,7 @@ pre_configure_target() {
|
|||||||
export BUILD_CC=$HOST_CC
|
export BUILD_CC=$HOST_CC
|
||||||
export OBJDUMP_FOR_HOST=objdump
|
export OBJDUMP_FOR_HOST=objdump
|
||||||
|
|
||||||
cat >config.cache <<EOF
|
cat >config.cache <<EOF
|
||||||
libc_cv_forced_unwind=yes
|
libc_cv_forced_unwind=yes
|
||||||
libc_cv_c_cleanup=yes
|
libc_cv_c_cleanup=yes
|
||||||
libc_cv_ssp=no
|
libc_cv_ssp=no
|
||||||
@ -101,13 +101,21 @@ libc_cv_ssp_strong=no
|
|||||||
libc_cv_slibdir=/usr/lib
|
libc_cv_slibdir=/usr/lib
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
echo "libdir=/usr/lib" >> configparms
|
cat >configparms <<EOF
|
||||||
echo "slibdir=/usr/lib" >> configparms
|
libdir=/usr/lib
|
||||||
echo "sbindir=/usr/bin" >> configparms
|
slibdir=/usr/lib
|
||||||
echo "rootsbindir=/usr/bin" >> configparms
|
sbindir=/usr/bin
|
||||||
echo "build-programs=yes" >> configparms
|
rootsbindir=/usr/bin
|
||||||
|
build-programs=yes
|
||||||
|
EOF
|
||||||
|
|
||||||
GLIBC_INCLUDE_BIN="getent ldd locale"
|
# binaries to install into target
|
||||||
|
GLIBC_INCLUDE_BIN="getent ldd locale"
|
||||||
|
|
||||||
|
# Generic "installer" needs localedef to define drawing chars
|
||||||
|
if [ "$PROJECT" = "Generic" ]; then
|
||||||
|
GLIBC_INCLUDE_BIN+=" localedef"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
post_makeinstall_target() {
|
post_makeinstall_target() {
|
||||||
@ -117,14 +125,7 @@ post_makeinstall_target() {
|
|||||||
# cleanup
|
# cleanup
|
||||||
# remove any programs we don't want/need, keeping only those we want
|
# remove any programs we don't want/need, keeping only those we want
|
||||||
for f in $(find $INSTALL/usr/bin -type f); do
|
for f in $(find $INSTALL/usr/bin -type f); do
|
||||||
fb="$(basename "${f}")"
|
listcontains "${GLIBC_INCLUDE_BIN}" "$(basename "${f}")" || rm -fr "${f}"
|
||||||
for ib in $GLIBC_INCLUDE_BIN; do
|
|
||||||
if [ "${ib}" == "${fb}" ]; then
|
|
||||||
fb=
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
[ -n "${fb}" ] && rm -rf ${f}
|
|
||||||
done
|
done
|
||||||
|
|
||||||
rm -rf $INSTALL/usr/lib/audit
|
rm -rf $INSTALL/usr/lib/audit
|
||||||
|
@ -114,7 +114,7 @@ sys_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 ]; 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
|
||||||
|
@ -1,23 +1,24 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# This file is part of OpenELEC - http://www.openelec.tv
|
# This file is part of LibreELEC - https://libreelec.tv
|
||||||
|
# Copyright (C) 2016-present Team LibreELEC
|
||||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||||
# Copyright (C) 2010-2011 Roman Weber (roman@openelec.tv)
|
# Copyright (C) 2010-2011 Roman Weber (roman@openelec.tv)
|
||||||
# Copyright (C) 2012 Yann Cézard (eesprit@free.fr)
|
# Copyright (C) 2012 Yann Cézard (eesprit@free.fr)
|
||||||
#
|
#
|
||||||
# OpenELEC is free software: you can redistribute it and/or modify
|
# LibreELEC is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
# the Free Software Foundation, either version 2 of the License, or
|
# the Free Software Foundation, either version 2 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# OpenELEC is distributed in the hope that it will be useful,
|
# LibreELEC is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
# create directories
|
# create directories
|
||||||
@ -45,8 +46,8 @@
|
|||||||
|
|
||||||
UPDATE_KERNEL="KERNEL"
|
UPDATE_KERNEL="KERNEL"
|
||||||
UPDATE_SYSTEM="SYSTEM"
|
UPDATE_SYSTEM="SYSTEM"
|
||||||
IMAGE_KERNEL="KERNEL"
|
IMAGE_KERNEL="/@KERNEL_NAME@"
|
||||||
IMAGE_SYSTEM="SYSTEM"
|
IMAGE_SYSTEM="/SYSTEM"
|
||||||
|
|
||||||
BOOT_STEP="start"
|
BOOT_STEP="start"
|
||||||
MD5_FAILED="0"
|
MD5_FAILED="0"
|
||||||
@ -58,7 +59,7 @@
|
|||||||
NBD_DEVS="0"
|
NBD_DEVS="0"
|
||||||
FLASH_FREE_MIN="5"
|
FLASH_FREE_MIN="5"
|
||||||
|
|
||||||
INSTALLED_MEMORY=`cat /proc/meminfo | grep 'MemTotal:' | awk '{print $2}'`
|
INSTALLED_MEMORY=$(cat /proc/meminfo | grep 'MemTotal:' | awk '{print $2}')
|
||||||
SYSTEM_TORAM_LIMIT=1024000
|
SYSTEM_TORAM_LIMIT=1024000
|
||||||
|
|
||||||
LIVE="no"
|
LIVE="no"
|
||||||
@ -147,6 +148,9 @@
|
|||||||
noram)
|
noram)
|
||||||
SYSTEM_TORAM=no
|
SYSTEM_TORAM=no
|
||||||
;;
|
;;
|
||||||
|
ramlimit=*)
|
||||||
|
SYSTEM_TORAM_LIMIT="${arg#*=}"
|
||||||
|
;;
|
||||||
live)
|
live)
|
||||||
LIVE=yes
|
LIVE=yes
|
||||||
SYSLINUX_DEFAULT="live"
|
SYSLINUX_DEFAULT="live"
|
||||||
@ -320,7 +324,7 @@
|
|||||||
|
|
||||||
mount_common "$NBD_DEV" "$2" "$3" "$4"
|
mount_common "$NBD_DEV" "$2" "$3" "$4"
|
||||||
|
|
||||||
NBD_DEVS=$(( ${NBD_DEVS} + 1 ))
|
NBD_DEVS=$(( NBD_DEVS + 1 ))
|
||||||
}
|
}
|
||||||
|
|
||||||
mount_nfs() {
|
mount_nfs() {
|
||||||
@ -473,7 +477,7 @@
|
|||||||
export BOOT_ROOT="/flash"
|
export BOOT_ROOT="/flash"
|
||||||
export SYSTEM_ROOT="/sysroot"
|
export SYSTEM_ROOT="/sysroot"
|
||||||
|
|
||||||
mount_part "/flash/$IMAGE_SYSTEM" "/sysroot" "ro,loop"
|
mount_part "/flash$IMAGE_SYSTEM" "/sysroot" "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 Bootloader... "
|
StartProgress spinner "Updating Bootloader... "
|
||||||
@ -670,6 +674,10 @@
|
|||||||
wakeonlan
|
wakeonlan
|
||||||
|
|
||||||
mount_part "$boot" "/flash" "ro,noatime"
|
mount_part "$boot" "/flash" "ro,noatime"
|
||||||
|
|
||||||
|
if [ -f /flash/post-flash.sh ] ; then
|
||||||
|
. /flash/post-flash.sh
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
mount_storage() {
|
mount_storage() {
|
||||||
@ -685,7 +693,7 @@
|
|||||||
|
|
||||||
if [ -n "$disk" ]; then
|
if [ -n "$disk" ]; then
|
||||||
if [ -n "$OVERLAY" ]; then
|
if [ -n "$OVERLAY" ]; then
|
||||||
OVERLAY_DIR=`cat /sys/class/net/eth0/address | tr -d :`
|
OVERLAY_DIR=$(cat /sys/class/net/eth0/address | tr -d :)
|
||||||
|
|
||||||
mount_part "$disk" "/storage" "rw,noatime"
|
mount_part "$disk" "/storage" "rw,noatime"
|
||||||
mkdir -p /storage/$OVERLAY_DIR
|
mkdir -p /storage/$OVERLAY_DIR
|
||||||
@ -700,7 +708,12 @@
|
|||||||
disk="$target/$OVERLAY_DIR,$options"
|
disk="$target/$OVERLAY_DIR,$options"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
mount_part "$disk" "/storage" "rw,noatime"
|
|
||||||
|
if [ -f /flash/mount-storage.sh ] ; then
|
||||||
|
. /flash/mount-storage.sh
|
||||||
|
else
|
||||||
|
mount_part "$disk" "/storage" "rw,noatime"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
# /storage should always be writable
|
# /storage should always be writable
|
||||||
mount -t tmpfs none /storage
|
mount -t tmpfs none /storage
|
||||||
@ -719,21 +732,21 @@
|
|||||||
|
|
||||||
mount -o remount,rw /flash
|
mount -o remount,rw /flash
|
||||||
sed -i "s/^DEFAULT .*/DEFAULT $SYSLINUX_DEFAULT/" /flash/syslinux.cfg
|
sed -i "s/^DEFAULT .*/DEFAULT $SYSLINUX_DEFAULT/" /flash/syslinux.cfg
|
||||||
[ -f /flash/EFI/BOOT/syslinux.cfg ] && cp /flash/syslinux.cfg /flash/EFI/BOOT/syslinux.cfg
|
rm -f /flash/EFI/BOOT/syslinux.cfg
|
||||||
mount -o remount,ro /flash
|
mount -o remount,ro /flash
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "\"$GRUB_DEFAULT\"" -a -f /flash/grub.cfg ]; then
|
if [ -n "$GRUB_DEFAULT" -a -f /flash/EFI/BOOT/grub.cfg ]; then
|
||||||
if grep -q "^menuentry \"$GRUB_DEFAULT\"" /flash/grub.cfg; then
|
if grep -q "^menuentry \"$GRUB_DEFAULT\"" /flash/EFI/BOOT/grub.cfg; then
|
||||||
crnt_default="$(awk '/^set default/ {print substr($2,9,19)}' /flash/grub.cfg)"
|
crnt_default="$(awk '/^set default/ {print substr($2,9,19)}' /flash/EFI/BOOT/grub.cfg)"
|
||||||
if [ ! "$crnt_default" = "\"$GRUB_DEFAULT\"" ]; then
|
if [ ! "$crnt_default" = "\"$GRUB_DEFAULT\"" ]; then
|
||||||
progress "Updating /flash/grub.cfg [$crnt_default -> \"$GRUB_DEFAULT\"]"
|
progress "Updating /flash/EFI/BOOT/grub.cfg [$crnt_default -> \"$GRUB_DEFAULT\"]"
|
||||||
|
|
||||||
mount -o remount,rw /flash
|
mount -o remount,rw /flash
|
||||||
sed -i "s/^set default=.*/set default=\"$GRUB_DEFAULT\"/" /flash/grub.cfg
|
sed -i "s/^set default=.*/set default=\"$GRUB_DEFAULT\"/" /flash/EFI/BOOT/grub.cfg
|
||||||
[ -f /flash/EFI/BOOT/grub.cfg ] && cp /flash/grub.cfg /flash/EFI/BOOT/grub.cfg
|
rm -f /flash/grub.cfg
|
||||||
mount -o remount,ro /flash
|
mount -o remount,ro /flash
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -785,9 +798,9 @@
|
|||||||
|
|
||||||
check_update() {
|
check_update() {
|
||||||
progress "Checking for updates"
|
progress "Checking for updates"
|
||||||
UPDATE_TAR=`ls -1 "$UPDATE_DIR"/*.tar 2>/dev/null | head -n 1`
|
UPDATE_TAR=$(ls -1 "$UPDATE_DIR"/*.tar 2>/dev/null | head -n 1)
|
||||||
UPDATE_IMG_GZ=`ls -1 "$UPDATE_DIR"/*.img.gz 2>/dev/null | head -n 1`
|
UPDATE_IMG_GZ=$(ls -1 "$UPDATE_DIR"/*.img.gz 2>/dev/null | head -n 1)
|
||||||
UPDATE_IMG=`ls -1 "$UPDATE_DIR"/*.img 2>/dev/null | head -n 1`
|
UPDATE_IMG=$(ls -1 "$UPDATE_DIR"/*.img 2>/dev/null | head -n 1)
|
||||||
|
|
||||||
if ! [ -f "$UPDATE_DIR/$UPDATE_KERNEL" -a -f "$UPDATE_DIR/$UPDATE_SYSTEM" ] &&
|
if ! [ -f "$UPDATE_DIR/$UPDATE_KERNEL" -a -f "$UPDATE_DIR/$UPDATE_SYSTEM" ] &&
|
||||||
! [ -f "$UPDATE_TAR" -o -f "$UPDATE_IMG_GZ" -o -f "$UPDATE_IMG" ]; then
|
! [ -f "$UPDATE_TAR" -o -f "$UPDATE_IMG_GZ" -o -f "$UPDATE_IMG" ]; then
|
||||||
@ -902,21 +915,24 @@
|
|||||||
# don't make temporary files but instead copy
|
# don't make temporary files but instead copy
|
||||||
# directly from mountpoint to /flash
|
# directly from mountpoint to /flash
|
||||||
UPDATE_DIR=$UPDATE_ROOT/.tmp/mnt
|
UPDATE_DIR=$UPDATE_ROOT/.tmp/mnt
|
||||||
if [ ! -b $IMAGE_KERNEL -o -z "@KERNEL_NAME@" ]; then
|
UPDATE_KERNEL="@KERNEL_NAME@"
|
||||||
UPDATE_KERNEL=$(basename $IMAGE_KERNEL)
|
|
||||||
else
|
|
||||||
UPDATE_KERNEL="@KERNEL_NAME@"
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
UPDATE_FILENAME="$UPDATE_DIR/$UPDATE_SYSTEM"
|
UPDATE_FILENAME="$UPDATE_DIR/$UPDATE_SYSTEM"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
sync
|
sync
|
||||||
|
|
||||||
if [ ! -f "$UPDATE_DIR/$UPDATE_KERNEL" -o ! -f "$UPDATE_DIR/$UPDATE_SYSTEM" ] ; then
|
if [ ! -b "$IMAGE_KERNEL" -a ! -f "/flash$IMAGE_KERNEL" ] || [ ! -f "/flash$IMAGE_SYSTEM" ]; then
|
||||||
echo "Missing ${UPDATE_KERNEL} or ${UPDATE_SYSTEM}!"
|
echo "Missing (target) ${IMAGE_KERNEL} or ${IMAGE_SYSTEM}!"
|
||||||
do_cleanup
|
do_cleanup
|
||||||
StartProgress countdown "Normal startup in 10s... " 10 "NOW"
|
StartProgress countdown "Normal startup in 30s... " 30 "NOW"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -f "$UPDATE_DIR/$UPDATE_KERNEL" -o ! -f "$UPDATE_DIR/$UPDATE_SYSTEM" ] ; then
|
||||||
|
echo "Missing (source) ${UPDATE_KERNEL} or ${UPDATE_SYSTEM}!"
|
||||||
|
do_cleanup
|
||||||
|
StartProgress countdown "Normal startup in 30s... " 30 "NOW"
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -963,7 +979,7 @@
|
|||||||
# Verify that the new upgrade is compatible with the current system - this should avoid creating
|
# Verify that the new upgrade is compatible with the current system - this should avoid creating
|
||||||
# non-booting systems after (for example) an RPi tar is incorrectly applied to an RPi2 system.
|
# non-booting systems after (for example) an RPi tar is incorrectly applied to an RPi2 system.
|
||||||
if [ ! -f "$UPDATE_ROOT/.nocompat" ]; then
|
if [ ! -f "$UPDATE_ROOT/.nocompat" ]; then
|
||||||
if ! check_is_compatible "$UPDATE_FILENAME" "/flash/$IMAGE_SYSTEM" "$UPDATE_DIR/$UPDATE_SYSTEM"; then
|
if ! check_is_compatible "$UPDATE_FILENAME" "/flash$IMAGE_SYSTEM" "$UPDATE_DIR/$UPDATE_SYSTEM"; then
|
||||||
do_cleanup
|
do_cleanup
|
||||||
StartProgress countdown "Normal startup in 60s... " 60 "NOW"
|
StartProgress countdown "Normal startup in 60s... " 60 "NOW"
|
||||||
return 0
|
return 0
|
||||||
@ -976,20 +992,20 @@
|
|||||||
|
|
||||||
# Disregard kernel size if it's a a block device, which is the case on Amlogic/WeTek devices
|
# Disregard kernel size if it's a a block device, which is the case on Amlogic/WeTek devices
|
||||||
if [ ! -b $IMAGE_KERNEL ]; then
|
if [ ! -b $IMAGE_KERNEL ]; then
|
||||||
OLD_KERNEL=$(stat -t "/flash/$IMAGE_KERNEL" | awk '{print $2}')
|
OLD_KERNEL=$(stat -t "/flash$IMAGE_KERNEL" | awk '{print $2}')
|
||||||
else
|
else
|
||||||
OLD_KERNEL="0"
|
OLD_KERNEL="0"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
OLD_SYSTEM=$(stat -t "/flash/$IMAGE_SYSTEM" | awk '{print $2}')
|
OLD_SYSTEM=$(stat -t "/flash$IMAGE_SYSTEM" | awk '{print $2}')
|
||||||
NEW_KERNEL=$(stat -t "$UPDATE_DIR/$UPDATE_KERNEL" | awk '{print $2}')
|
NEW_KERNEL=$(stat -t "$UPDATE_DIR/$UPDATE_KERNEL" | awk '{print $2}')
|
||||||
NEW_SYSTEM=$(stat -t "$UPDATE_DIR/$UPDATE_SYSTEM" | awk '{print $2}')
|
NEW_SYSTEM=$(stat -t "$UPDATE_DIR/$UPDATE_SYSTEM" | awk '{print $2}')
|
||||||
|
|
||||||
# old KERNEL+SYSTEM+free space - new KERNEL+SYSTEM must be higher than 5MB
|
# old KERNEL+SYSTEM+free space - new KERNEL+SYSTEM must be higher than 5MB
|
||||||
# at least 5MB free after update
|
# at least 5MB free after update
|
||||||
|
|
||||||
TMP_SIZE=$(($OLD_KERNEL+$OLD_SYSTEM+$FLASH_FREE-$NEW_KERNEL-$NEW_SYSTEM))
|
TMP_SIZE=$((OLD_KERNEL + OLD_SYSTEM + FLASH_FREE - NEW_KERNEL - NEW_SYSTEM))
|
||||||
FLASH_FREE_MIN=$(($FLASH_FREE_MIN*1024*1024))
|
FLASH_FREE_MIN=$((FLASH_FREE_MIN * 1024 * 1024))
|
||||||
|
|
||||||
if [ $TMP_SIZE -ge $FLASH_FREE_MIN ]; then
|
if [ $TMP_SIZE -ge $FLASH_FREE_MIN ]; then
|
||||||
echo "Checking size: OK"
|
echo "Checking size: OK"
|
||||||
@ -1012,9 +1028,9 @@
|
|||||||
if [ -b $IMAGE_KERNEL ]; then
|
if [ -b $IMAGE_KERNEL ]; then
|
||||||
update_partition "Kernel" "$UPDATE_KERNEL" "$IMAGE_KERNEL"
|
update_partition "Kernel" "$UPDATE_KERNEL" "$IMAGE_KERNEL"
|
||||||
else
|
else
|
||||||
update_file "Kernel" "$UPDATE_KERNEL" "/flash/$IMAGE_KERNEL"
|
update_file "Kernel" "$UPDATE_KERNEL" "/flash$IMAGE_KERNEL"
|
||||||
fi
|
fi
|
||||||
update_file "System" "$UPDATE_SYSTEM" "/flash/$IMAGE_SYSTEM"
|
update_file "System" "$UPDATE_SYSTEM" "/flash$IMAGE_SYSTEM"
|
||||||
update_bootloader
|
update_bootloader
|
||||||
do_cleanup
|
do_cleanup
|
||||||
do_reboot
|
do_reboot
|
||||||
@ -1024,10 +1040,10 @@
|
|||||||
progress "Preparing system"
|
progress "Preparing system"
|
||||||
|
|
||||||
if [ "$SYSTEM_TORAM" = "no" -o "$INSTALLED_MEMORY" -lt "$SYSTEM_TORAM_LIMIT" ]; then
|
if [ "$SYSTEM_TORAM" = "no" -o "$INSTALLED_MEMORY" -lt "$SYSTEM_TORAM_LIMIT" ]; then
|
||||||
mount_part "/flash/$IMAGE_SYSTEM" "/sysroot" "ro,loop"
|
mount_part "/flash$IMAGE_SYSTEM" "/sysroot" "ro,loop"
|
||||||
else
|
else
|
||||||
cp /flash/$IMAGE_SYSTEM /dev/$IMAGE_SYSTEM
|
cp /flash$IMAGE_SYSTEM /dev$IMAGE_SYSTEM
|
||||||
mount_part "/dev/$IMAGE_SYSTEM" "/sysroot" "ro,loop"
|
mount_part "/dev$IMAGE_SYSTEM" "/sysroot" "ro,loop"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mount --move /flash /sysroot/flash
|
mount --move /flash /sysroot/flash
|
||||||
@ -1035,7 +1051,7 @@
|
|||||||
|
|
||||||
if [ ! -d "/sysroot/usr/lib/kernel-overlays/base/lib/modules/$(uname -r)/" -a -f "/sysroot/usr/lib/systemd/systemd" ]; then
|
if [ ! -d "/sysroot/usr/lib/kernel-overlays/base/lib/modules/$(uname -r)/" -a -f "/sysroot/usr/lib/systemd/systemd" ]; then
|
||||||
echo ""
|
echo ""
|
||||||
echo "NEVER TOUCH boot= in extlinux.conf / cmdline.txt!"
|
echo "NEVER TOUCH boot= in syslinux.conf / cmdline.txt!"
|
||||||
echo "If you don't know what you are doing,"
|
echo "If you don't know what you are doing,"
|
||||||
echo "your installation is now broken."
|
echo "your installation is now broken."
|
||||||
echo ""
|
echo ""
|
||||||
@ -1109,7 +1125,7 @@
|
|||||||
INIT_UNIT="--unit=fs-resize.target"
|
INIT_UNIT="--unit=fs-resize.target"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
BACKUP_FILE=`ls -1 /sysroot/storage/.restore/??????????????.tar 2>/dev/null | head -n 1`
|
BACKUP_FILE=$(ls -1 /sysroot/storage/.restore/??????????????.tar 2>/dev/null | head -n 1)
|
||||||
if [ -f "$BACKUP_FILE" ] ; then
|
if [ -f "$BACKUP_FILE" ] ; then
|
||||||
INIT_UNIT="--unit=backup-restore.target"
|
INIT_UNIT="--unit=backup-restore.target"
|
||||||
fi
|
fi
|
||||||
|
@ -25,8 +25,8 @@
|
|||||||
# Default starting offset for system partition, in sectors (1 sector = 512B), eg. 2048
|
# Default starting offset for system partition, in sectors (1 sector = 512B), eg. 2048
|
||||||
PARTSIZE_SYSTEM_OFFSET="@SYSTEM_PART_START@"
|
PARTSIZE_SYSTEM_OFFSET="@SYSTEM_PART_START@"
|
||||||
|
|
||||||
# additional parameters to extlinux
|
# additional parameters to syslinux
|
||||||
EXTLINUX_PARAMETERS="@EXTLINUX_PARAMETERS@"
|
SYSLINUX_PARAMETERS="@SYSLINUX_PARAMETERS@"
|
||||||
|
|
||||||
# enable BIOS update function
|
# enable BIOS update function
|
||||||
BIOS_UPDATE="no"
|
BIOS_UPDATE="no"
|
||||||
|
@ -39,7 +39,7 @@ post_install() {
|
|||||||
cp ${FOUND_PATH} $INSTALL/etc
|
cp ${FOUND_PATH} $INSTALL/etc
|
||||||
sed -e "s/@SYSTEM_SIZE@/$SYSTEM_SIZE/g" \
|
sed -e "s/@SYSTEM_SIZE@/$SYSTEM_SIZE/g" \
|
||||||
-e "s/@SYSTEM_PART_START@/$SYSTEM_PART_START/g" \
|
-e "s/@SYSTEM_PART_START@/$SYSTEM_PART_START/g" \
|
||||||
-e "s/@EXTLINUX_PARAMETERS@/$EXTLINUX_PARAMETERS/g" \
|
-e "s/@SYSLINUX_PARAMETERS@/$SYSLINUX_PARAMETERS/g" \
|
||||||
-i $INSTALL/etc/installer.conf
|
-i $INSTALL/etc/installer.conf
|
||||||
|
|
||||||
enable_service installer.service
|
enable_service installer.service
|
||||||
|
@ -1,21 +1,22 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# This file is part of OpenELEC - http://www.openelec.tv
|
# This file is part of LibreELEC - https://libreelec.tv
|
||||||
|
# Copyright (C) 2016-present Team LibreELEC
|
||||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||||
#
|
#
|
||||||
# OpenELEC is free software: you can redistribute it and/or modify
|
# LibreELEC is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
# the Free Software Foundation, either version 2 of the License, or
|
# the Free Software Foundation, either version 2 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# OpenELEC is distributed in the hope that it will be useful,
|
# LibreELEC is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
# some DOCs:
|
# some DOCs:
|
||||||
@ -24,18 +25,18 @@
|
|||||||
# cat /proc/partitions | sed -n "s/\ *[0-9][0-9]*\ *[0-9][0-9]*\ *[0-9][0-9]*\ \([a-z]*\)$/\1/p"
|
# cat /proc/partitions | sed -n "s/\ *[0-9][0-9]*\ *[0-9][0-9]*\ *[0-9][0-9]*\ \([a-z]*\)$/\1/p"
|
||||||
|
|
||||||
# list all partitionnumbers from /dev/sda:
|
# list all partitionnumbers from /dev/sda:
|
||||||
# parted -m /dev/sda print |grep -v ^/dev |grep -v ^BYT | cut -f1 -d ":"
|
# parted -m /dev/sda print | grep -v ^/dev | grep -v ^BYT | cut -f1 -d ":"
|
||||||
|
|
||||||
# list device data from /dev/sda:
|
# list device data from /dev/sda:
|
||||||
# parted -m /dev/sda print |grep /dev/sda
|
# parted -m /dev/sda print | grep /dev/sda
|
||||||
|
|
||||||
# list mounted partitions:
|
# list mounted partitions:
|
||||||
# mount |grep ^/dev
|
# mount | grep ^/dev
|
||||||
|
|
||||||
# list modelnumber:
|
# list modelnumber:
|
||||||
# parted -m /dev/sda print |grep /dev/sda | cut -f7 -d ":" | sed "s/;//"
|
# parted -m /dev/sda print | grep /dev/sda | cut -f7 -d ":" | sed "s/;//"
|
||||||
# list size:
|
# list size:
|
||||||
# parted -m /dev/sda print |grep /dev/sda | cut -f2 -d ":"
|
# parted -m /dev/sda print | grep /dev/sda | cut -f2 -d ":"
|
||||||
|
|
||||||
# exclude mounted partitions
|
# exclude mounted partitions
|
||||||
# for i in `cat /proc/mounts | grep ^/dev/ | cut -f1 -d " " | sed "s/[0-9]//"`; do TEST="$TEST `echo "| grep -v $i"`"; done
|
# for i in `cat /proc/mounts | grep ^/dev/ | cut -f1 -d " " | sed "s/[0-9]//"`; do TEST="$TEST `echo "| grep -v $i"`"; done
|
||||||
@ -55,6 +56,36 @@ dbglg() {
|
|||||||
echo "" >> $LOGFILE
|
echo "" >> $LOGFILE
|
||||||
}
|
}
|
||||||
|
|
||||||
|
log_system_status() {
|
||||||
|
echo "# cat /proc/mounts"
|
||||||
|
cat /proc/mounts
|
||||||
|
echo
|
||||||
|
|
||||||
|
echo "# df"
|
||||||
|
df
|
||||||
|
echo
|
||||||
|
|
||||||
|
echo "# df -h"
|
||||||
|
df -h
|
||||||
|
echo
|
||||||
|
|
||||||
|
echo "# parted -s -m -l"
|
||||||
|
parted -s -m -l
|
||||||
|
echo
|
||||||
|
|
||||||
|
echo "# blkid"
|
||||||
|
blkid
|
||||||
|
echo
|
||||||
|
|
||||||
|
echo "# UEFI (if directory exists)"
|
||||||
|
ls -la /sys/firmware/efi
|
||||||
|
echo
|
||||||
|
|
||||||
|
echo "# Disk sizes (bytes)"
|
||||||
|
grep . /sys/block/*/size
|
||||||
|
echo
|
||||||
|
}
|
||||||
|
|
||||||
get_device_unmount() {
|
get_device_unmount() {
|
||||||
# get all unmounted devices
|
# get all unmounted devices
|
||||||
# usage: get_devices_unmount
|
# usage: get_devices_unmount
|
||||||
@ -65,15 +96,15 @@ get_device_unmount() {
|
|||||||
DEVICES=$(parted -s -m -l 2>/dev/null | grep -E '^/dev/sd|^/dev/mmcblk|^/dev/nvme' | grep -E -v '.?rpmb|.?boot?' | cut -f1 -d ":")
|
DEVICES=$(parted -s -m -l 2>/dev/null | grep -E '^/dev/sd|^/dev/mmcblk|^/dev/nvme' | grep -E -v '.?rpmb|.?boot?' | cut -f1 -d ":")
|
||||||
|
|
||||||
for i in $(cat /proc/mounts | grep -E '^/dev/sd' | cut -f1 -d " " | sed "s/[0-9].*$//"); do
|
for i in $(cat /proc/mounts | grep -E '^/dev/sd' | cut -f1 -d " " | sed "s/[0-9].*$//"); do
|
||||||
DEVICES=$(echo $DEVICES |sed -e "s|$i||")
|
DEVICES=$(echo $DEVICES | sed -e "s|$i||")
|
||||||
done
|
done
|
||||||
|
|
||||||
for i in $(cat /proc/mounts | grep -E '^/dev/mmcblk' | cut -f1 -d " " | sed "s/p.*$//"); do
|
for i in $(cat /proc/mounts | grep -E '^/dev/mmcblk' | cut -f1 -d " " | sed "s/p.*$//"); do
|
||||||
DEVICES=$(echo $DEVICES |sed -e "s|$i||")
|
DEVICES=$(echo $DEVICES | sed -e "s|$i||")
|
||||||
done
|
done
|
||||||
|
|
||||||
for i in $(cat /proc/mounts | grep -E '^/dev/nvme' | cut -f1 -d " " | sed "s/p.*$//"); do
|
for i in $(cat /proc/mounts | grep -E '^/dev/nvme' | cut -f1 -d " " | sed "s/p.*$//"); do
|
||||||
DEVICES=$(echo $DEVICES |sed -e "s|$i||")
|
DEVICES=$(echo $DEVICES | sed -e "s|$i||")
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -83,7 +114,7 @@ get_partition() {
|
|||||||
# uses: -
|
# uses: -
|
||||||
# provides: PARTITIONS
|
# provides: PARTITIONS
|
||||||
|
|
||||||
PARTITIONS=$(parted -s -m $1 print |grep -v ^/dev |grep -v BYT | cut -f1 -d ":")
|
PARTITIONS=$(parted -s -m $1 print | grep -v ^/dev | grep -v BYT | cut -f1 -d ":")
|
||||||
}
|
}
|
||||||
|
|
||||||
create_device_list() {
|
create_device_list() {
|
||||||
@ -102,6 +133,7 @@ create_device_list() {
|
|||||||
|
|
||||||
if [ "$DEVICES" = "" ]; then
|
if [ "$DEVICES" = "" ]; then
|
||||||
msg_no_device
|
msg_no_device
|
||||||
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
for i in $DEVICES; do
|
for i in $DEVICES; do
|
||||||
@ -110,6 +142,7 @@ create_device_list() {
|
|||||||
DEVICE_NAME=$(echo $DEVICE_MODEL ${DEVICE_SIZE} | sed 's/ /_/g')
|
DEVICE_NAME=$(echo $DEVICE_MODEL ${DEVICE_SIZE} | sed 's/ /_/g')
|
||||||
DEVICE_LIST="$DEVICE_LIST $i $DEVICE_NAME"
|
DEVICE_LIST="$DEVICE_LIST $i $DEVICE_NAME"
|
||||||
done
|
done
|
||||||
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
do_install_quick() {
|
do_install_quick() {
|
||||||
@ -118,218 +151,190 @@ do_install_quick() {
|
|||||||
MSG_MENU="\nUse the up/down arrows to select the device you wish to install to.\n\nPlease select a device:"
|
MSG_MENU="\nUse the up/down arrows to select the device you wish to install to.\n\nPlease select a device:"
|
||||||
MSG_CANCEL="Back"
|
MSG_CANCEL="Back"
|
||||||
|
|
||||||
create_device_list
|
create_device_list || return
|
||||||
|
|
||||||
whiptail --backtitle "$BACKTITLE" --cancel-button "$MSG_CANCEL" \
|
whiptail --backtitle "$BACKTITLE" --cancel-button "$MSG_CANCEL" \
|
||||||
$DIALOG_OPTIONS --title "$MSG_TITLE" --menu "$MSG_MENU" 20 50 5 \
|
$DIALOG_OPTIONS --title "$MSG_TITLE" --menu "$MSG_MENU" 20 50 5 \
|
||||||
$DEVICE_LIST 2> $TMPDIR/device_for_install
|
$DEVICE_LIST 2> $TMPDIR/device_for_install
|
||||||
|
[ $? -ne 0 ] && return
|
||||||
|
|
||||||
# now we must do everything
|
# now we must do everything
|
||||||
case $? in
|
INSTALL_DEVICE=$(cat "$TMPDIR/device_for_install")
|
||||||
0)
|
INSTALL_DEVICE_FULL=$(echo $DEVICE_LIST | sed "s|.*$INSTALL_DEVICE \([^ ]*\).*|$INSTALL_DEVICE \1|")
|
||||||
INSTALL_DEVICE=$(cat "$TMPDIR/device_for_install")
|
|
||||||
INSTALL_DEVICE_FULL=$(echo $DEVICE_LIST | sed "s|.*$INSTALL_DEVICE \([^ ]*\).*|$INSTALL_DEVICE \1|")
|
|
||||||
|
|
||||||
case $INSTALL_DEVICE in
|
case $INSTALL_DEVICE in
|
||||||
"/dev/mmcblk"*|"/dev/nvme"*)
|
"/dev/mmcblk"*|"/dev/nvme"*)
|
||||||
PART1="p1"
|
PART1="p1"
|
||||||
PART2="p2"
|
PART2="p2"
|
||||||
;;
|
|
||||||
*)
|
|
||||||
PART1="1"
|
|
||||||
PART2="2"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
prompt_gpt
|
|
||||||
prompt_backup_unpack
|
|
||||||
|
|
||||||
# check for confirmation (twice!)
|
|
||||||
MSG_TITLE="Confirmation before installing"
|
|
||||||
MSG_DETAIL="\nIf you continue the contents of the target disk will be wiped out:\n\n$INSTALL_DEVICE_FULL\n\n"
|
|
||||||
DIALOG_OPTIONS="--defaultno"
|
|
||||||
whiptail --backtitle "$BACKTITLE" --title "$MSG_TITLE" \
|
|
||||||
$DIALOG_OPTIONS --yesno "$MSG_DETAIL" 0 0
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
menu_main
|
|
||||||
fi
|
|
||||||
|
|
||||||
MSG_TITLE="Confirmation before installing"
|
|
||||||
MSG_DETAIL="\nThis is last chance to abort the installation!\n\nIf you continue the target disk will be wiped out:\n\n$INSTALL_DEVICE_FULL\n\n\n"
|
|
||||||
DIALOG_OPTIONS="--defaultno"
|
|
||||||
whiptail --backtitle "$BACKTITLE" --title "$MSG_TITLE" \
|
|
||||||
$DIALOG_OPTIONS --yesno "$MSG_DETAIL" 0 0
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
menu_main
|
|
||||||
fi
|
|
||||||
|
|
||||||
# start the progress bar (whiptail --gauge)
|
|
||||||
{
|
|
||||||
# remove all partitions
|
|
||||||
msg_progress_install "1" "Get all partitions $INSTALL_DEVICE"
|
|
||||||
get_partition $INSTALL_DEVICE
|
|
||||||
|
|
||||||
msg_progress_install "5" "Wiping disk $INSTALL_DEVICE"
|
|
||||||
dd if=/dev/zero of=$INSTALL_DEVICE bs=4096 count=1024 2>>$LOGFILE
|
|
||||||
|
|
||||||
# create 2 new partitions (first $PARTSIZE_SYSTEM, second rest)
|
|
||||||
msg_progress_install "7" "Creating label on $INSTALL_DEVICE"
|
|
||||||
if [ "$GPT" = "1" ]; then
|
|
||||||
parted -s $INSTALL_DEVICE mklabel gpt >> $LOGFILE 2>&1
|
|
||||||
else
|
|
||||||
parted -s $INSTALL_DEVICE mklabel msdos >> $LOGFILE 2>&1
|
|
||||||
fi
|
|
||||||
|
|
||||||
msg_progress_install "9" "Writing Master Boot Record on $INSTALL_DEVICE"
|
|
||||||
if [ "$GPT" = "1" ]; then
|
|
||||||
cat /usr/share/syslinux/gptmbr.bin > $INSTALL_DEVICE
|
|
||||||
else
|
|
||||||
cat /usr/share/syslinux/mbr.bin > $INSTALL_DEVICE
|
|
||||||
fi
|
|
||||||
|
|
||||||
partsize_system_start=$PARTSIZE_SYSTEM_OFFSET
|
|
||||||
partsize_system_end=$(((PARTSIZE_SYSTEM * 1024 * 1024 / 512) + partsize_system_start - 1))
|
|
||||||
partsize_storage_start=$((partsize_system_end + 1))
|
|
||||||
partsize_storage_end=-1024
|
|
||||||
|
|
||||||
msg_progress_install "10" "Creating partition on $INSTALL_DEVICE"
|
|
||||||
if [ "$UEFI" = "1" ]; then
|
|
||||||
parted -s $INSTALL_DEVICE unit s mkpart primary fat32 -- $partsize_system_start $partsize_system_end >> $LOGFILE 2>&1
|
|
||||||
else
|
|
||||||
parted -s $INSTALL_DEVICE unit s mkpart primary ext2 -- $partsize_system_start $partsize_system_end >> $LOGFILE 2>&1
|
|
||||||
fi
|
|
||||||
|
|
||||||
msg_progress_install "13" "Creating partition on $INSTALL_DEVICE"
|
|
||||||
parted -s $INSTALL_DEVICE unit s mkpart primary ext4 -- $partsize_storage_start $partsize_storage_end >> $LOGFILE 2>&1
|
|
||||||
|
|
||||||
msg_progress_install "16" "Setup bootflag on partition 1 of $INSTALL_DEVICE"
|
|
||||||
parted -s $INSTALL_DEVICE set 1 boot on >> $LOGFILE 2>&1
|
|
||||||
if [ "$GPT" = "1" ]; then
|
|
||||||
parted -s $INSTALL_DEVICE set 1 legacy_boot on >> $LOGFILE 2>&1
|
|
||||||
fi
|
|
||||||
|
|
||||||
msg_progress_install "20" "Tell the kernel we have a new partitiontable on $INSTALL_DEVICE"
|
|
||||||
partprobe $INSTALL_DEVICE >> $LOGFILE 2>&1
|
|
||||||
|
|
||||||
# create filesystem
|
|
||||||
msg_progress_install "23" "Creating filesystem on ${INSTALL_DEVICE}1"
|
|
||||||
if [ "$UEFI" = "1" ]; then
|
|
||||||
mkfs.vfat ${INSTALL_DEVICE}${PART1} >> $LOGFILE 2>&1
|
|
||||||
else
|
|
||||||
mke2fs -t ext4 -m 0 ${INSTALL_DEVICE}${PART1} >> $LOGFILE 2>&1
|
|
||||||
fi
|
|
||||||
|
|
||||||
msg_progress_install "25" "Set uuid and disklabel $DISKLABEL_SYSTEM on ${INSTALL_DEVICE}${PART1}"
|
|
||||||
if [ "$UEFI" = "1" ]; then
|
|
||||||
dosfslabel ${INSTALL_DEVICE}${PART1} $DISKLABEL_SYSTEM >> $LOGFILE 2>&1
|
|
||||||
else
|
|
||||||
tune2fs -U random -L $DISKLABEL_SYSTEM ${INSTALL_DEVICE}${PART1} >> $LOGFILE 2>&1
|
|
||||||
fi
|
|
||||||
|
|
||||||
msg_progress_install "28" "Creating filesystem on ${INSTALL_DEVICE}${PART2}"
|
|
||||||
mke2fs -t ext4 -m 0 ${INSTALL_DEVICE}${PART2} >> $LOGFILE 2>&1
|
|
||||||
|
|
||||||
msg_progress_install "30" "Set uuid and disklabel $DISKLABEL_STORAGE on ${INSTALL_DEVICE}${PART2}"
|
|
||||||
tune2fs -U random -L $DISKLABEL_STORAGE ${INSTALL_DEVICE}${PART2} >> $LOGFILE 2>&1
|
|
||||||
|
|
||||||
# mount system partition
|
|
||||||
msg_progress_install "35" "Creating $TMPDIR/part1"
|
|
||||||
mkdir -p $TMPDIR/part1 >> $LOGFILE 2>&1
|
|
||||||
|
|
||||||
msg_progress_install "40" "Mounting ${INSTALL_DEVICE}${PART1} to $TMPDIR/part1"
|
|
||||||
if [ "$UEFI" = "1" ]; then
|
|
||||||
mount -t vfat ${INSTALL_DEVICE}${PART1} $TMPDIR/part1 >> $LOGFILE 2>&1
|
|
||||||
else
|
|
||||||
mount -t ext4 ${INSTALL_DEVICE}${PART1} $TMPDIR/part1 >> $LOGFILE 2>&1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# installing extlinux
|
|
||||||
if [ "$UEFI" = "1" ]; then
|
|
||||||
msg_progress_install "50" "Installing syslinux to $TMPDIR/part1"
|
|
||||||
syslinux -i ${INSTALL_DEVICE}${PART1} >> $LOGFILE 2>&1
|
|
||||||
else
|
|
||||||
msg_progress_install "50" "Installing extlinux to $TMPDIR/part1"
|
|
||||||
extlinux -i $TMPDIR/part1 >> $LOGFILE 2>&1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# install system files
|
|
||||||
msg_progress_install "60" "Installing Kernel"
|
|
||||||
cp /flash/KERNEL $TMPDIR/part1 >> $LOGFILE 2>&1
|
|
||||||
|
|
||||||
msg_progress_install "65" "Installing System"
|
|
||||||
cp /flash/SYSTEM $TMPDIR/part1 >> $LOGFILE 2>&1
|
|
||||||
sync
|
|
||||||
|
|
||||||
# configuring bootloader
|
|
||||||
msg_progress_install "80" "Setup bootloader with boot label = $DISKLABEL_SYSTEM and disk label = $DISKLABEL_STORAGE"
|
|
||||||
echo "DEFAULT linux" > $TMPDIR/part1/extlinux.conf
|
|
||||||
echo "PROMPT 0" >> $TMPDIR/part1/extlinux.conf
|
|
||||||
echo " " >> $TMPDIR/part1/extlinux.conf
|
|
||||||
echo "LABEL linux" >> $TMPDIR/part1/extlinux.conf
|
|
||||||
echo " KERNEL /KERNEL" >> $TMPDIR/part1/extlinux.conf
|
|
||||||
echo " APPEND boot=LABEL=$DISKLABEL_SYSTEM disk=LABEL=$DISKLABEL_STORAGE $EXTLINUX_PARAMETERS quiet" >> $TMPDIR/part1/extlinux.conf
|
|
||||||
echo "set timeout=\"0\"" > $TMPDIR/part1/grub.cfg
|
|
||||||
echo "set default=\"LibreELEC\"" >> $TMPDIR/part1/grub.cfg
|
|
||||||
echo "" >> $TMPDIR/part1/grub.cfg
|
|
||||||
echo "menuentry \"LibreELEC\" {" >> $TMPDIR/part1/grub.cfg
|
|
||||||
echo " search --set -f /KERNEL" >> $TMPDIR/part1/grub.cfg
|
|
||||||
echo " linux /KERNEL boot=LABEL=$DISKLABEL_SYSTEM disk=LABEL=$DISKLABEL_STORAGE quiet" >> $TMPDIR/part1/grub.cfg
|
|
||||||
echo "}" >> $TMPDIR/part1/grub.cfg
|
|
||||||
# uefi boot / hybrid mode
|
|
||||||
if [ "$UEFI" = "1" ]; then
|
|
||||||
mv $TMPDIR/part1/extlinux.conf $TMPDIR/part1/syslinux.cfg
|
|
||||||
mkdir -p $TMPDIR/part1/EFI/BOOT
|
|
||||||
cp $TMPDIR/part1/syslinux.cfg $TMPDIR/part1/EFI/BOOT
|
|
||||||
cp /usr/share/syslinux/bootx64.efi $TMPDIR/part1/EFI/BOOT
|
|
||||||
cp /usr/share/syslinux/ldlinux.e64 $TMPDIR/part1/EFI/BOOT
|
|
||||||
cp $TMPDIR/part1/grub.cfg $TMPDIR/part1/EFI/BOOT
|
|
||||||
cp /usr/share/grub/bootia32.efi $TMPDIR/part1/EFI/BOOT
|
|
||||||
fi
|
|
||||||
sync
|
|
||||||
|
|
||||||
# umount system partition, remove mountpoint
|
|
||||||
msg_progress_install "85" "Unmount $TMPDIR/part1"
|
|
||||||
umount $TMPDIR/part1 >> $LOGFILE 2>&1
|
|
||||||
|
|
||||||
msg_progress_install "87" "Remove $TMPDIR/part1"
|
|
||||||
rmdir $TMPDIR/part1 >> $LOGFILE 2>&1
|
|
||||||
|
|
||||||
if [ "$BACKUP_UNPACK" = "1" ]; then
|
|
||||||
# mount storage partition
|
|
||||||
msg_progress_install "89" "Creating $TMPDIR/part2"
|
|
||||||
mkdir -p $TMPDIR/part2 >> $LOGFILE 2>&1
|
|
||||||
|
|
||||||
msg_progress_install "90" "Mounting ${INSTALL_DEVICE}${PART2} to $TMPDIR/part2"
|
|
||||||
mount -t ext4 ${INSTALL_DEVICE}${PART2} $TMPDIR/part2 >> $LOGFILE 2>&1
|
|
||||||
|
|
||||||
msg_progress_install "92" "Restoring backup"
|
|
||||||
[ -f /flash/backup.tar.bz2 ] && tar -xjf /flash/backup.tar.bz2 -C $TMPDIR/part2 >> $LOGFILE 2>&1
|
|
||||||
[ -f /flash/backup.zip ] && unzip -qq /flash/backup.zip -d $TMPDIR/part2 >> $LOGFILE 2>&1
|
|
||||||
sync
|
|
||||||
|
|
||||||
# umount system partition, remove mountpoint
|
|
||||||
msg_progress_install "97" "Unmount $TMPDIR/part2"
|
|
||||||
umount $TMPDIR/part2 >> $LOGFILE 2>&1
|
|
||||||
|
|
||||||
msg_progress_install "100" "Remove $TMPDIR/part2"
|
|
||||||
rmdir $TMPDIR/part2 >> $LOGFILE 2>&1
|
|
||||||
fi
|
|
||||||
} | whiptail --backtitle "$BACKTITLE" --gauge "Please wait while your system is being setup ..." 6 73 0
|
|
||||||
|
|
||||||
# install complete
|
|
||||||
MSG_TITLE="@DISTRONAME@ Install Complete"
|
|
||||||
MSG_DETAIL="You may now remove the install media and reboot.\n"
|
|
||||||
whiptail --backtitle "$BACKTITLE" --title "$MSG_TITLE" --msgbox "$MSG_DETAIL" 7 52
|
|
||||||
|
|
||||||
menu_main
|
|
||||||
;;
|
;;
|
||||||
1)
|
*)
|
||||||
menu_main
|
PART1="1"
|
||||||
;;
|
PART2="2"
|
||||||
255)
|
|
||||||
do_poweroff
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
prompt_gpt
|
||||||
|
prompt_backup_unpack
|
||||||
|
|
||||||
|
# check for confirmation (twice!)
|
||||||
|
MSG_TITLE="Confirmation before installing"
|
||||||
|
MSG_DETAIL="\nIf you continue the contents of the target disk will be wiped out:\n\n$INSTALL_DEVICE_FULL\n\n"
|
||||||
|
DIALOG_OPTIONS="--defaultno"
|
||||||
|
whiptail --backtitle "$BACKTITLE" --title "$MSG_TITLE" \
|
||||||
|
$DIALOG_OPTIONS --yesno "$MSG_DETAIL" 0 0
|
||||||
|
[ $? -ne 0 ] && return
|
||||||
|
|
||||||
|
MSG_TITLE="Confirmation before installing"
|
||||||
|
MSG_DETAIL="\nThis is last chance to abort the installation!\n\nIf you continue the target disk will be wiped out:\n\n$INSTALL_DEVICE_FULL\n\n\n"
|
||||||
|
DIALOG_OPTIONS="--defaultno"
|
||||||
|
whiptail --backtitle "$BACKTITLE" --title "$MSG_TITLE" \
|
||||||
|
$DIALOG_OPTIONS --yesno "$MSG_DETAIL" 0 0
|
||||||
|
[ $? -ne 0 ] && return
|
||||||
|
|
||||||
|
# start the progress bar (whiptail --gauge)
|
||||||
|
{
|
||||||
|
# remove all partitions
|
||||||
|
msg_progress_install "1" "Get all partitions $INSTALL_DEVICE"
|
||||||
|
get_partition $INSTALL_DEVICE
|
||||||
|
|
||||||
|
msg_progress_install "5" "Wiping disk $INSTALL_DEVICE"
|
||||||
|
dd if=/dev/zero of=$INSTALL_DEVICE bs=4096 count=1024 2>>$LOGFILE
|
||||||
|
|
||||||
|
# create 2 new partitions (first $PARTSIZE_SYSTEM, second rest)
|
||||||
|
msg_progress_install "7" "Creating label on $INSTALL_DEVICE"
|
||||||
|
if [ "$GPT" = "1" ]; then
|
||||||
|
parted -s $INSTALL_DEVICE mklabel gpt >> $LOGFILE 2>&1
|
||||||
|
else
|
||||||
|
parted -s $INSTALL_DEVICE mklabel msdos >> $LOGFILE 2>&1
|
||||||
|
fi
|
||||||
|
|
||||||
|
msg_progress_install "9" "Writing Master Boot Record on $INSTALL_DEVICE"
|
||||||
|
if [ "$GPT" = "1" ]; then
|
||||||
|
cat /usr/share/syslinux/gptmbr.bin > $INSTALL_DEVICE
|
||||||
|
else
|
||||||
|
cat /usr/share/syslinux/mbr.bin > $INSTALL_DEVICE
|
||||||
|
fi
|
||||||
|
|
||||||
|
partsize_system_start=$PARTSIZE_SYSTEM_OFFSET
|
||||||
|
partsize_system_end=$(((PARTSIZE_SYSTEM * 1024 * 1024 / 512) + partsize_system_start - 1))
|
||||||
|
partsize_storage_start=$((partsize_system_end + 1))
|
||||||
|
partsize_storage_end=-1024
|
||||||
|
|
||||||
|
msg_progress_install "10" "Creating partition on $INSTALL_DEVICE"
|
||||||
|
parted -s $INSTALL_DEVICE unit s mkpart primary fat32 -- $partsize_system_start $partsize_system_end >> $LOGFILE 2>&1
|
||||||
|
|
||||||
|
msg_progress_install "13" "Creating partition on $INSTALL_DEVICE"
|
||||||
|
parted -s $INSTALL_DEVICE unit s mkpart primary ext4 -- $partsize_storage_start $partsize_storage_end >> $LOGFILE 2>&1
|
||||||
|
|
||||||
|
msg_progress_install "16" "Setup bootflag on partition 1 of $INSTALL_DEVICE"
|
||||||
|
parted -s $INSTALL_DEVICE set 1 boot on >> $LOGFILE 2>&1
|
||||||
|
if [ "$GPT" = "1" ]; then
|
||||||
|
parted -s $INSTALL_DEVICE set 1 legacy_boot on >> $LOGFILE 2>&1
|
||||||
|
fi
|
||||||
|
|
||||||
|
msg_progress_install "20" "Tell the kernel we have a new partition table on $INSTALL_DEVICE"
|
||||||
|
partprobe $INSTALL_DEVICE >> $LOGFILE 2>&1
|
||||||
|
|
||||||
|
# create filesystem
|
||||||
|
msg_progress_install "23" "Creating filesystem on ${INSTALL_DEVICE}1"
|
||||||
|
mkfs.vfat ${INSTALL_DEVICE}${PART1} >> $LOGFILE 2>&1
|
||||||
|
|
||||||
|
msg_progress_install "25" "Set uuid and disklabel $DISKLABEL_SYSTEM on ${INSTALL_DEVICE}${PART1}"
|
||||||
|
dosfslabel ${INSTALL_DEVICE}${PART1} $DISKLABEL_SYSTEM >> $LOGFILE 2>&1
|
||||||
|
|
||||||
|
msg_progress_install "28" "Creating filesystem on ${INSTALL_DEVICE}${PART2}"
|
||||||
|
mke2fs -t ext4 -m 0 ${INSTALL_DEVICE}${PART2} >> $LOGFILE 2>&1
|
||||||
|
|
||||||
|
msg_progress_install "30" "Set uuid and disklabel $DISKLABEL_STORAGE on ${INSTALL_DEVICE}${PART2}"
|
||||||
|
tune2fs -U random -L $DISKLABEL_STORAGE ${INSTALL_DEVICE}${PART2} >> $LOGFILE 2>&1
|
||||||
|
|
||||||
|
UUID_SYSTEM="$(blkid --output udev ${INSTALL_DEVICE}${PART1} | grep ^ID_FS_UUID= | cut -d= -f2)"
|
||||||
|
UUID_STORAGE="$(blkid --output udev ${INSTALL_DEVICE}${PART2} | grep ^ID_FS_UUID= | cut -d= -f2)"
|
||||||
|
|
||||||
|
echo "" >> $LOGFILE
|
||||||
|
echo "UUID_SYSTEM : ${UUID_SYSTEM}" >> $LOGFILE
|
||||||
|
echo "UUID_STORAGE: ${UUID_STORAGE}" >> $LOGFILE
|
||||||
|
|
||||||
|
# mount system partition
|
||||||
|
msg_progress_install "35" "Creating $TMPDIR/part1"
|
||||||
|
mkdir -p $TMPDIR/part1 >> $LOGFILE 2>&1
|
||||||
|
|
||||||
|
msg_progress_install "40" "Mounting ${INSTALL_DEVICE}${PART1} to $TMPDIR/part1"
|
||||||
|
mount -t vfat ${INSTALL_DEVICE}${PART1} $TMPDIR/part1 >> $LOGFILE 2>&1
|
||||||
|
|
||||||
|
# installing syslinux
|
||||||
|
msg_progress_install "50" "Installing syslinux to $TMPDIR/part1"
|
||||||
|
syslinux -i ${INSTALL_DEVICE}${PART1} >> $LOGFILE 2>&1
|
||||||
|
|
||||||
|
# install system files
|
||||||
|
msg_progress_install "60" "Installing Kernel"
|
||||||
|
cp /flash/KERNEL $TMPDIR/part1 >> $LOGFILE 2>&1
|
||||||
|
|
||||||
|
msg_progress_install "65" "Installing System"
|
||||||
|
cp /flash/SYSTEM $TMPDIR/part1 >> $LOGFILE 2>&1
|
||||||
|
sync
|
||||||
|
|
||||||
|
# configuring bootloader
|
||||||
|
msg_progress_install "80" "Setup bootloader with boot label = $DISKLABEL_SYSTEM and disk label = $DISKLABEL_STORAGE"
|
||||||
|
mkdir -p $TMPDIR/part1/EFI/BOOT
|
||||||
|
cat << EOF > $TMPDIR/part1/syslinux.cfg
|
||||||
|
DEFAULT linux
|
||||||
|
PROMPT 0
|
||||||
|
|
||||||
|
LABEL linux
|
||||||
|
KERNEL /KERNEL
|
||||||
|
APPEND boot=UUID=$UUID_SYSTEM disk=UUID=$UUID_STORAGE $SYSLINUX_PARAMETERS quiet
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat << EOF > $TMPDIR/part1/EFI/BOOT/grub.cfg
|
||||||
|
set timeout="0"
|
||||||
|
set default="LibreELEC"
|
||||||
|
|
||||||
|
menuentry "LibreELEC" {
|
||||||
|
search --set -f /KERNEL
|
||||||
|
linux /KERNEL boot=UUID=$UUID_SYSTEM disk=UUID=$UUID_STORAGE quiet
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# uefi boot / hybrid mode
|
||||||
|
cp /usr/share/syslinux/bootx64.efi $TMPDIR/part1/EFI/BOOT
|
||||||
|
cp /usr/share/syslinux/ldlinux.e64 $TMPDIR/part1/EFI/BOOT
|
||||||
|
cp /usr/share/grub/bootia32.efi $TMPDIR/part1/EFI/BOOT
|
||||||
|
sync
|
||||||
|
|
||||||
|
# umount system partition, remove mountpoint
|
||||||
|
msg_progress_install "85" "Unmount $TMPDIR/part1"
|
||||||
|
umount $TMPDIR/part1 >> $LOGFILE 2>&1
|
||||||
|
|
||||||
|
msg_progress_install "87" "Remove $TMPDIR/part1"
|
||||||
|
rmdir $TMPDIR/part1 >> $LOGFILE 2>&1
|
||||||
|
|
||||||
|
if [ "$BACKUP_UNPACK" = "1" ]; then
|
||||||
|
# mount storage partition
|
||||||
|
msg_progress_install "89" "Creating $TMPDIR/part2"
|
||||||
|
mkdir -p $TMPDIR/part2 >> $LOGFILE 2>&1
|
||||||
|
|
||||||
|
msg_progress_install "90" "Mounting ${INSTALL_DEVICE}${PART2} to $TMPDIR/part2"
|
||||||
|
mount -t ext4 ${INSTALL_DEVICE}${PART2} $TMPDIR/part2 >> $LOGFILE 2>&1
|
||||||
|
|
||||||
|
msg_progress_install "92" "Restoring backup"
|
||||||
|
[ -f /flash/backup.tar.bz2 ] && tar -xjf /flash/backup.tar.bz2 -C $TMPDIR/part2 >> $LOGFILE 2>&1
|
||||||
|
[ -f /flash/backup.zip ] && unzip -qq /flash/backup.zip -d $TMPDIR/part2 >> $LOGFILE 2>&1
|
||||||
|
sync
|
||||||
|
|
||||||
|
# umount system partition, remove mountpoint
|
||||||
|
msg_progress_install "97" "Unmount $TMPDIR/part2"
|
||||||
|
umount $TMPDIR/part2 >> $LOGFILE 2>&1
|
||||||
|
|
||||||
|
msg_progress_install "100" "Remove $TMPDIR/part2"
|
||||||
|
rmdir $TMPDIR/part2 >> $LOGFILE 2>&1
|
||||||
|
fi
|
||||||
|
} | whiptail --backtitle "$BACKTITLE" --gauge "Please wait while your system is being setup ..." 6 73 0
|
||||||
|
|
||||||
|
# install complete
|
||||||
|
MSG_TITLE="@DISTRONAME@ Install Complete"
|
||||||
|
MSG_DETAIL="You may now remove the install media and reboot.\n"
|
||||||
|
whiptail --backtitle "$BACKTITLE" --title "$MSG_TITLE" --msgbox "$MSG_DETAIL" 7 52
|
||||||
}
|
}
|
||||||
|
|
||||||
msg_no_device() {
|
msg_no_device() {
|
||||||
@ -338,18 +343,6 @@ msg_no_device() {
|
|||||||
MSG_INFOBOX=" No devices were found. "
|
MSG_INFOBOX=" No devices were found. "
|
||||||
|
|
||||||
whiptail --backtitle "$BACKTITLE" --title "$MSG_TITLE" --msgbox "$MSG_INFOBOX" 9 73
|
whiptail --backtitle "$BACKTITLE" --title "$MSG_TITLE" --msgbox "$MSG_INFOBOX" 9 73
|
||||||
|
|
||||||
menu_main
|
|
||||||
}
|
|
||||||
|
|
||||||
msg_target_space() {
|
|
||||||
# show an error dialog for missing space
|
|
||||||
MSG_TITLE="TARGET SPACE"
|
|
||||||
MSG_INFOBOX="Not enough target space!\nInstallation aborted.\n"
|
|
||||||
|
|
||||||
whiptail --backtitle "$BACKTITLE" --title "$MSG_TITLE" --msgbox "$MSG_INFOBOX" 9 73
|
|
||||||
|
|
||||||
menu_main
|
|
||||||
}
|
}
|
||||||
|
|
||||||
msg_progress_install() {
|
msg_progress_install() {
|
||||||
@ -363,19 +356,11 @@ msg_progress_install() {
|
|||||||
echo XXX
|
echo XXX
|
||||||
}
|
}
|
||||||
|
|
||||||
msg_install_ready() {
|
|
||||||
# show a dialog that we have installed
|
|
||||||
MSG_TITLE="INFORMATION"
|
|
||||||
|
|
||||||
whiptail --backtitle "$BACKTITLE" --title "$MSG_TITLE" --msgbox " $1" 7 73
|
|
||||||
|
|
||||||
menu_main
|
|
||||||
}
|
|
||||||
|
|
||||||
prompt_gpt() {
|
prompt_gpt() {
|
||||||
GPT="0"
|
GPT="0"
|
||||||
UEFI="0"
|
UEFI="0"
|
||||||
# Get size in GB.
|
# Get size in GB.
|
||||||
|
# 2^41 bytes is the DOS limit (2199023255552 bytes, 2.2TB). Use GUID Partition Table.>= 2200GB
|
||||||
INSTALL_DEVICE_SIZE=$(($(cat /sys/block/${INSTALL_DEVICE#/dev/}/size)*512/1000/1000/1000))
|
INSTALL_DEVICE_SIZE=$(($(cat /sys/block/${INSTALL_DEVICE#/dev/}/size)*512/1000/1000/1000))
|
||||||
if [ "$INSTALL_DEVICE_SIZE" -ge 2200 ] 2>/dev/null; then
|
if [ "$INSTALL_DEVICE_SIZE" -ge 2200 ] 2>/dev/null; then
|
||||||
GPT="1"
|
GPT="1"
|
||||||
@ -416,18 +401,20 @@ out during the installation. \
|
|||||||
MSG_CANCEL="Close"
|
MSG_CANCEL="Close"
|
||||||
|
|
||||||
whiptail --backtitle "$BACKTITLE" --cancel-button "$MSG_CANCEL" \
|
whiptail --backtitle "$BACKTITLE" --cancel-button "$MSG_CANCEL" \
|
||||||
--title "$MSG_TITLE" --menu "$MSG_MENU" 18 73 3 \
|
--title "$MSG_TITLE" --menu "$MSG_MENU" 18 73 4 \
|
||||||
1 "Install @DISTRONAME@" \
|
1 "Install @DISTRONAME@" \
|
||||||
2 "Installation log" \
|
2 "View installation log" \
|
||||||
3 "Reboot" 2> $TMPDIR/mainmenu
|
3 "Save installation log" \
|
||||||
|
4 "Reboot" 2> $TMPDIR/mainmenu
|
||||||
|
|
||||||
case $? in
|
case $? in
|
||||||
0)
|
0)
|
||||||
ITEM_MAINMENU=$(cat "$TMPDIR/mainmenu")
|
ITEM_MAINMENU=$(cat "$TMPDIR/mainmenu")
|
||||||
case $ITEM_MAINMENU in
|
case $ITEM_MAINMENU in
|
||||||
1) do_install_quick; break;;
|
1) do_install_quick;;
|
||||||
2) logfile_show; break;;
|
2) logfile_show;;
|
||||||
3) do_reboot;
|
3) logfile_save;;
|
||||||
|
4) do_reboot;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
1)
|
1)
|
||||||
@ -441,8 +428,20 @@ out during the installation. \
|
|||||||
|
|
||||||
logfile_show() {
|
logfile_show() {
|
||||||
whiptail --textbox "$LOGFILE" 20 73 --scrolltext --backtitle "$BACKTITLE"
|
whiptail --textbox "$LOGFILE" 20 73 --scrolltext --backtitle "$BACKTITLE"
|
||||||
clear
|
}
|
||||||
menu_main
|
|
||||||
|
logfile_save() {
|
||||||
|
mount -o remount,rw /flash
|
||||||
|
|
||||||
|
mkdir -p $(dirname $LOGBACKUP)
|
||||||
|
cp $LOGFILE $LOGBACKUP
|
||||||
|
sync
|
||||||
|
|
||||||
|
mount -o remount,ro /flash
|
||||||
|
|
||||||
|
MSG_TITLE="@DISTRONAME@ Log Saved"
|
||||||
|
MSG_DETAIL="Log location: ${LOGBACKUP}\n"
|
||||||
|
whiptail --backtitle "$BACKTITLE" --title "$MSG_TITLE" --msgbox "$MSG_DETAIL" 7 52
|
||||||
}
|
}
|
||||||
|
|
||||||
do_reboot() {
|
do_reboot() {
|
||||||
@ -465,6 +464,7 @@ BACKTITLE="@DISTRONAME@ Installer - $OS_VERSION"
|
|||||||
|
|
||||||
TMPDIR="/tmp/installer"
|
TMPDIR="/tmp/installer"
|
||||||
LOGFILE="$TMPDIR/install.log"
|
LOGFILE="$TMPDIR/install.log"
|
||||||
|
LOGBACKUP="/flash/logs/$(date +%Y%m%d%H%M%S).log"
|
||||||
|
|
||||||
export COLORTERM="1"
|
export COLORTERM="1"
|
||||||
export NEWT_COLORS="$WHIPTAIL_COLORS"
|
export NEWT_COLORS="$WHIPTAIL_COLORS"
|
||||||
@ -477,6 +477,9 @@ mkdir -p $TMPDIR
|
|||||||
echo "@DISTRONAME@ Installer - $OS_VERSION started at:" > $LOGFILE
|
echo "@DISTRONAME@ Installer - $OS_VERSION started at:" > $LOGFILE
|
||||||
date >> $LOGFILE
|
date >> $LOGFILE
|
||||||
|
|
||||||
|
dbglg "System status"
|
||||||
|
log_system_status >> $LOGFILE 2>&1
|
||||||
|
|
||||||
# generate the en_US.UTF-8 locale to enable line drawing
|
# generate the en_US.UTF-8 locale to enable line drawing
|
||||||
mkdir -p $TMPDIR/locale
|
mkdir -p $TMPDIR/locale
|
||||||
localedef -i en_US -f UTF-8 $TMPDIR/locale/en_US.UTF-8
|
localedef -i en_US -f UTF-8 $TMPDIR/locale/en_US.UTF-8
|
||||||
|
@ -66,7 +66,6 @@ make_host() {
|
|||||||
|
|
||||||
makeinstall_host() {
|
makeinstall_host() {
|
||||||
mkdir -p $TOOLCHAIN/bin
|
mkdir -p $TOOLCHAIN/bin
|
||||||
cp bios/extlinux/extlinux $TOOLCHAIN/bin
|
|
||||||
cp bios/linux/syslinux $TOOLCHAIN/bin
|
cp bios/linux/syslinux $TOOLCHAIN/bin
|
||||||
cp bios/mtools/syslinux $TOOLCHAIN/bin/syslinux.mtools
|
cp bios/mtools/syslinux $TOOLCHAIN/bin/syslinux.mtools
|
||||||
|
|
||||||
@ -79,11 +78,9 @@ makeinstall_host() {
|
|||||||
|
|
||||||
makeinstall_target() {
|
makeinstall_target() {
|
||||||
mkdir -p $INSTALL/usr/bin
|
mkdir -p $INSTALL/usr/bin
|
||||||
cp bios/extlinux/extlinux $INSTALL/usr/bin
|
|
||||||
cp bios/linux/syslinux $INSTALL/usr/bin
|
cp bios/linux/syslinux $INSTALL/usr/bin
|
||||||
|
|
||||||
$STRIP $INSTALL/usr/bin/syslinux
|
$STRIP $INSTALL/usr/bin/syslinux
|
||||||
$STRIP $INSTALL/usr/bin/extlinux
|
|
||||||
|
|
||||||
mkdir -p $INSTALL/usr/share/syslinux
|
mkdir -p $INSTALL/usr/share/syslinux
|
||||||
cp bios/mbr/mbr.bin $INSTALL/usr/share/syslinux
|
cp bios/mbr/mbr.bin $INSTALL/usr/share/syslinux
|
||||||
|
@ -538,7 +538,7 @@ CONFIG_ATAGS=y
|
|||||||
CONFIG_ZBOOT_ROM_TEXT=0x0
|
CONFIG_ZBOOT_ROM_TEXT=0x0
|
||||||
CONFIG_ZBOOT_ROM_BSS=0x0
|
CONFIG_ZBOOT_ROM_BSS=0x0
|
||||||
# CONFIG_ARM_APPENDED_DTB is not set
|
# CONFIG_ARM_APPENDED_DTB is not set
|
||||||
CONFIG_CMDLINE="root=/dev/ram0 rdinit=/init BOOT_IMAGE=/kernel.img usbcore.autosuspend=-1"
|
CONFIG_CMDLINE="root=/dev/ram0 rdinit=/init usbcore.autosuspend=-1"
|
||||||
# CONFIG_CMDLINE_FROM_BOOTLOADER is not set
|
# CONFIG_CMDLINE_FROM_BOOTLOADER is not set
|
||||||
CONFIG_CMDLINE_EXTEND=y
|
CONFIG_CMDLINE_EXTEND=y
|
||||||
# CONFIG_CMDLINE_FORCE is not set
|
# CONFIG_CMDLINE_FORCE is not set
|
||||||
|
@ -619,7 +619,7 @@ CONFIG_ATAGS=y
|
|||||||
CONFIG_ZBOOT_ROM_TEXT=0x0
|
CONFIG_ZBOOT_ROM_TEXT=0x0
|
||||||
CONFIG_ZBOOT_ROM_BSS=0x0
|
CONFIG_ZBOOT_ROM_BSS=0x0
|
||||||
# CONFIG_ARM_APPENDED_DTB is not set
|
# CONFIG_ARM_APPENDED_DTB is not set
|
||||||
CONFIG_CMDLINE="root=/dev/ram0 rdinit=/init BOOT_IMAGE=/kernel.img usbcore.autosuspend=-1"
|
CONFIG_CMDLINE="root=/dev/ram0 rdinit=/init usbcore.autosuspend=-1"
|
||||||
# CONFIG_CMDLINE_FROM_BOOTLOADER is not set
|
# CONFIG_CMDLINE_FROM_BOOTLOADER is not set
|
||||||
CONFIG_CMDLINE_EXTEND=y
|
CONFIG_CMDLINE_EXTEND=y
|
||||||
# CONFIG_CMDLINE_FORCE is not set
|
# CONFIG_CMDLINE_FORCE is not set
|
||||||
|
@ -547,7 +547,7 @@ CONFIG_ATAGS=y
|
|||||||
CONFIG_ZBOOT_ROM_TEXT=0x0
|
CONFIG_ZBOOT_ROM_TEXT=0x0
|
||||||
CONFIG_ZBOOT_ROM_BSS=0x0
|
CONFIG_ZBOOT_ROM_BSS=0x0
|
||||||
# CONFIG_ARM_APPENDED_DTB is not set
|
# CONFIG_ARM_APPENDED_DTB is not set
|
||||||
CONFIG_CMDLINE="root=/dev/ram0 rdinit=/init BOOT_IMAGE=/zImage usbcore.autosuspend=-1"
|
CONFIG_CMDLINE="root=/dev/ram0 rdinit=/init usbcore.autosuspend=-1"
|
||||||
# CONFIG_CMDLINE_FROM_BOOTLOADER is not set
|
# CONFIG_CMDLINE_FROM_BOOTLOADER is not set
|
||||||
CONFIG_CMDLINE_EXTEND=y
|
CONFIG_CMDLINE_EXTEND=y
|
||||||
# CONFIG_CMDLINE_FORCE is not set
|
# CONFIG_CMDLINE_FORCE is not set
|
||||||
|
@ -475,7 +475,7 @@ CONFIG_ARM64_MODULE_CMODEL_LARGE=y
|
|||||||
#
|
#
|
||||||
# Boot options
|
# Boot options
|
||||||
#
|
#
|
||||||
CONFIG_CMDLINE="root=/dev/ram0 rdinit=/init BOOT_IMAGE=/Image usbcore.autosuspend=-1"
|
CONFIG_CMDLINE="root=/dev/ram0 rdinit=/init usbcore.autosuspend=-1"
|
||||||
# CONFIG_CMDLINE_FROM_BOOTLOADER is not set
|
# CONFIG_CMDLINE_FROM_BOOTLOADER is not set
|
||||||
CONFIG_CMDLINE_EXTEND=y
|
CONFIG_CMDLINE_EXTEND=y
|
||||||
# CONFIG_CMDLINE_FORCE is not set
|
# CONFIG_CMDLINE_FORCE is not set
|
||||||
|
@ -475,7 +475,7 @@ CONFIG_ARM64_MODULE_CMODEL_LARGE=y
|
|||||||
#
|
#
|
||||||
# Boot options
|
# Boot options
|
||||||
#
|
#
|
||||||
CONFIG_CMDLINE="root=/dev/ram0 rdinit=/init BOOT_IMAGE=/Image usbcore.autosuspend=-1"
|
CONFIG_CMDLINE="root=/dev/ram0 rdinit=/init usbcore.autosuspend=-1"
|
||||||
# CONFIG_CMDLINE_FROM_BOOTLOADER is not set
|
# CONFIG_CMDLINE_FROM_BOOTLOADER is not set
|
||||||
CONFIG_CMDLINE_EXTEND=y
|
CONFIG_CMDLINE_EXTEND=y
|
||||||
# CONFIG_CMDLINE_FORCE is not set
|
# CONFIG_CMDLINE_FORCE is not set
|
||||||
|
@ -547,7 +547,7 @@ CONFIG_ATAGS=y
|
|||||||
CONFIG_ZBOOT_ROM_TEXT=0x0
|
CONFIG_ZBOOT_ROM_TEXT=0x0
|
||||||
CONFIG_ZBOOT_ROM_BSS=0x0
|
CONFIG_ZBOOT_ROM_BSS=0x0
|
||||||
# CONFIG_ARM_APPENDED_DTB is not set
|
# CONFIG_ARM_APPENDED_DTB is not set
|
||||||
CONFIG_CMDLINE="root=/dev/ram0 rdinit=/init BOOT_IMAGE=/zImage usbcore.autosuspend=-1"
|
CONFIG_CMDLINE="root=/dev/ram0 rdinit=/init usbcore.autosuspend=-1"
|
||||||
# CONFIG_CMDLINE_FROM_BOOTLOADER is not set
|
# CONFIG_CMDLINE_FROM_BOOTLOADER is not set
|
||||||
CONFIG_CMDLINE_EXTEND=y
|
CONFIG_CMDLINE_EXTEND=y
|
||||||
# CONFIG_CMDLINE_FORCE is not set
|
# CONFIG_CMDLINE_FORCE is not set
|
||||||
|
@ -326,11 +326,6 @@ if [ "$1" = "release" -o "$1" = "mkimage" -o "$1" = "amlpkg" -o "$1" = "noobs" ]
|
|||||||
|
|
||||||
# create image files if requested
|
# create image files if requested
|
||||||
if [[ ( "$1" = "amlpkg" || "$1" = "noobs" || "$1" = "mkimage" ) && -n "$BOOTLOADER" ]]; then
|
if [[ ( "$1" = "amlpkg" || "$1" = "noobs" || "$1" = "mkimage" ) && -n "$BOOTLOADER" ]]; then
|
||||||
# projects can set KERNEL_NAME (kernel.img)
|
|
||||||
if [ -z "$KERNEL_NAME" ] ; then
|
|
||||||
KERNEL_NAME="KERNEL"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# INSTALL_SRC_DIR can be board specific
|
# INSTALL_SRC_DIR can be board specific
|
||||||
if [ -n "$DEVICE" -a -d "$PROJECT_DIR/$PROJECT/devices/$DEVICE/install" ]; then
|
if [ -n "$DEVICE" -a -d "$PROJECT_DIR/$PROJECT/devices/$DEVICE/install" ]; then
|
||||||
INSTALL_SRC_DIR="$PROJECT_DIR/$PROJECT/devices/$DEVICE/install"
|
INSTALL_SRC_DIR="$PROJECT_DIR/$PROJECT/devices/$DEVICE/install"
|
||||||
|
@ -1,21 +1,22 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# This file is part of OpenELEC - http://www.openelec.tv
|
# This file is part of LibreELEC - https://libreelec.tv
|
||||||
|
# Copyright (C) 2016-present Team LibreELEC
|
||||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||||
#
|
#
|
||||||
# OpenELEC is free software: you can redistribute it and/or modify
|
# LibreELEC is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
# the Free Software Foundation, either version 2 of the License, or
|
# the Free Software Foundation, either version 2 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# OpenELEC is distributed in the hope that it will be useful,
|
# LibreELEC is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
@ -172,10 +173,9 @@ menuentry "Run" {
|
|||||||
EOF
|
EOF
|
||||||
|
|
||||||
mcopy "$LE_TMP/syslinux.cfg" ::
|
mcopy "$LE_TMP/syslinux.cfg" ::
|
||||||
mcopy "$LE_TMP/grub.cfg" ::
|
|
||||||
|
|
||||||
# install extlinux
|
# install syslinux
|
||||||
echo "image: installing extlinux to part1..."
|
echo "image: installing syslinux to part1..."
|
||||||
syslinux.mtools --offset "$OFFSET" -i "$DISK"
|
syslinux.mtools --offset "$OFFSET" -i "$DISK"
|
||||||
|
|
||||||
# copy files
|
# copy files
|
||||||
@ -189,7 +189,6 @@ EOF
|
|||||||
mcopy $TOOLCHAIN/share/syslinux/bootx64.efi ::/EFI/BOOT
|
mcopy $TOOLCHAIN/share/syslinux/bootx64.efi ::/EFI/BOOT
|
||||||
mcopy $TOOLCHAIN/share/syslinux/ldlinux.e64 ::/EFI/BOOT
|
mcopy $TOOLCHAIN/share/syslinux/ldlinux.e64 ::/EFI/BOOT
|
||||||
mcopy $TOOLCHAIN/share/grub/bootia32.efi ::/EFI/BOOT
|
mcopy $TOOLCHAIN/share/grub/bootia32.efi ::/EFI/BOOT
|
||||||
mcopy "$LE_TMP"/syslinux.cfg ::/EFI/BOOT
|
|
||||||
mcopy "$LE_TMP"/grub.cfg ::/EFI/BOOT
|
mcopy "$LE_TMP"/grub.cfg ::/EFI/BOOT
|
||||||
elif [ "$BOOTLOADER" = "bcm2835-bootloader" ]; then
|
elif [ "$BOOTLOADER" = "bcm2835-bootloader" ]; then
|
||||||
# create bootloader configuration
|
# create bootloader configuration
|
||||||
@ -312,10 +311,8 @@ fi # bootloader
|
|||||||
sed -i "/DEFAULT/ s/installer/run/" "$LE_TMP"/syslinux.cfg
|
sed -i "/DEFAULT/ s/installer/run/" "$LE_TMP"/syslinux.cfg
|
||||||
sed -i "/set default=/s/\"Installer\"/\"Run\"/" "$LE_TMP"/grub.cfg
|
sed -i "/set default=/s/\"Installer\"/\"Run\"/" "$LE_TMP"/grub.cfg
|
||||||
# FIXME: an unalias should work here, but it does not; call mcopy directly
|
# FIXME: an unalias should work here, but it does not; call mcopy directly
|
||||||
$TOOLCHAIN/bin/mcopy -i $LE_TMP/part1.fat -o "$LE_TMP"/syslinux.cfg ::/EFI/BOOT
|
|
||||||
$TOOLCHAIN/bin/mcopy -i $LE_TMP/part1.fat -o "$LE_TMP"/syslinux.cfg ::
|
$TOOLCHAIN/bin/mcopy -i $LE_TMP/part1.fat -o "$LE_TMP"/syslinux.cfg ::
|
||||||
$TOOLCHAIN/bin/mcopy -i $LE_TMP/part1.fat -o "$LE_TMP"/grub.cfg ::/EFI/BOOT
|
$TOOLCHAIN/bin/mcopy -i $LE_TMP/part1.fat -o "$LE_TMP"/grub.cfg ::/EFI/BOOT
|
||||||
$TOOLCHAIN/bin/mcopy -i $LE_TMP/part1.fat -o "$LE_TMP"/grub.cfg ::
|
|
||||||
sync
|
sync
|
||||||
# merge modified part1 back to tmp disk image
|
# merge modified part1 back to tmp disk image
|
||||||
echo "image: merging part1 back to open virtual appliance..."
|
echo "image: merging part1 back to open virtual appliance..."
|
||||||
|
Loading…
x
Reference in New Issue
Block a user