From 8d501bbd3e2ba30d1853ab56e7568b1c30913b35 Mon Sep 17 00:00:00 2001 From: maideii Date: Wed, 4 Oct 2017 09:41:16 +0800 Subject: [PATCH 1/6] added EFI 32bit support via GRUB2 --- .../tools/grub/config/grub-postinstall.cfg | 8 +++ packages/tools/grub/config/grub.cfg | 21 ++++++ packages/tools/grub/package.mk | 71 +++++++++++++++++++ packages/tools/installer/package.mk | 2 +- packages/tools/installer/scripts/installer | 4 +- scripts/mkimage | 2 + 6 files changed, 106 insertions(+), 2 deletions(-) create mode 100644 packages/tools/grub/config/grub-postinstall.cfg create mode 100644 packages/tools/grub/config/grub.cfg create mode 100755 packages/tools/grub/package.mk diff --git a/packages/tools/grub/config/grub-postinstall.cfg b/packages/tools/grub/config/grub-postinstall.cfg new file mode 100644 index 0000000000..08429f7dc5 --- /dev/null +++ b/packages/tools/grub/config/grub-postinstall.cfg @@ -0,0 +1,8 @@ +GRUB_SAVEDEFAULT=true +set timeout="0" +set default="0" + +menuentry "LibreELEC"{ + search --set -f /KERNEL + linux /KERNEL boot=LABEL=System disk=LABEL=Storage quiet +} diff --git a/packages/tools/grub/config/grub.cfg b/packages/tools/grub/config/grub.cfg new file mode 100644 index 0000000000..e85f819b19 --- /dev/null +++ b/packages/tools/grub/config/grub.cfg @@ -0,0 +1,21 @@ +set timeout="5" +set default="3" +menuentry "LibreELEC Boot Menu"{ + set +} +menuentry ' '{ + set +} +menuentry "1. Installer"{ + search --set -f /KERNEL + linux /KERNEL boot=LABEL=LIBREELEC installer quiet tty vga=current +} + +menuentry "2. Live"{ + search --set -f /KERNEL + linux /KERNEL boot=LABEL=LIBREELEC live quiet tty vga=current +} +menuentry "3. Portable"{ + search --set -f /KERNEL + linux /KERNEL boot=LABEL=LIBREELEC disk=UUID=132e735c-fc99-4639-8138-c8db4f7698b5 portable quiet +} diff --git a/packages/tools/grub/package.mk b/packages/tools/grub/package.mk new file mode 100755 index 0000000000..bc5440e2c4 --- /dev/null +++ b/packages/tools/grub/package.mk @@ -0,0 +1,71 @@ +################################################################################ +# This file is part of LibreELEC - https://libreelec.tv +# Copyright (C) 2016-present Team LibreELEC +# +# LibreELEC is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# LibreELEC is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with LibreELEC. If not, see . +################################################################################ + +PKG_NAME="grub" +PKG_VERSION="2.02" +PKG_ARCH="x86_64" +PKG_LICENSE="GPLv3" +PKG_SITE="https://www.gnu.org/software/grub/index.html" +PKG_URL="http://git.savannah.gnu.org/cgit/grub.git/snapshot/$PKG_NAME-$PKG_VERSION.tar.gz" +PKG_DEPENDS_TARGET="toolchain flex freetype:host" +PKG_SECTION="tools" +PKG_SHORTDESC="GNU GRUB is a Multiboot boot loader." +PKG_LONGDESC="GNU GRUB is a Multiboot boot loader that was derived from GRUB, the GRand Unified Bootloader, which was originally designed and implemented by Erich Stefan Boleyn" + +PKG_IS_ADDON="no" +PKG_AUTORECONF="no" + +PKG_CONFIGURE_OPTS_TARGET="--target=i386-pc-linux \ + --disable-nls \ + --with-platform=efi" + + unset CFLAGS + unset CPPFLAGS + unset CXXFLAGS + unset LDFLAGS + +pre_configure_target() { + unset CPP + strip_lto + cd $PKG_BUILD + ./autogen.sh +} + +make_target() { + make CC=$CC \ + AR=$AR \ + RANLIB=$RANLIB \ + CFLAGS="-I$SYSROOT_PREFIX/usr/include -fomit-frame-pointer -D_FILE_OFFSET_BITS=64" \ + LDFLAGS="-L$SYSROOT_PREFIX/usr/lib" +} + +makeinstall_target() { + cd $PKG_BUILD/grub-core + $PKG_BUILD/grub-mkimage -d . -o bootia32.efi -O i386-efi -p /EFI/BOOT \ + boot chain configfile ext2 fat linux search \ + efi_gop efi_uga gettext gzio part_gpt \ + loadenv loadbios memrw + + mkdir -p $INSTALL/usr/share/grub + cp -P $PKG_BUILD/grub-core/bootia32.efi $INSTALL/usr/share/grub + cp -P $PKG_DIR/config/grub-postinstall.cfg $INSTALL/usr/share/grub/grub.cfg + + mkdir -p $TOOLCHAIN/share/grub + cp -P $PKG_BUILD/grub-core/bootia32.efi $TOOLCHAIN/share/grub + cp -P $PKG_DIR/config/grub.cfg $TOOLCHAIN/share/grub +} diff --git a/packages/tools/installer/package.mk b/packages/tools/installer/package.mk index 0e7d54116f..5b7242afe0 100644 --- a/packages/tools/installer/package.mk +++ b/packages/tools/installer/package.mk @@ -22,7 +22,7 @@ PKG_ARCH="any" PKG_LICENSE="GPL" PKG_SITE="http://libreelec.tv/" PKG_URL="" -PKG_DEPENDS_TARGET="toolchain busybox newt parted e2fsprogs syslinux" +PKG_DEPENDS_TARGET="toolchain busybox newt parted e2fsprogs syslinux grub" PKG_SECTION="tools" PKG_SHORTDESC="installer: LibreELEC.tv Install manager" PKG_LONGDESC="LibreELEC.tv Install manager to install the system on any disk" diff --git a/packages/tools/installer/scripts/installer b/packages/tools/installer/scripts/installer index 4858d4bd9c..7c4a0c0ed0 100755 --- a/packages/tools/installer/scripts/installer +++ b/packages/tools/installer/scripts/installer @@ -275,7 +275,9 @@ do_install_quick() { 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 - fi + cp /usr/share/grub/bootia32.efi $TMPDIR/part1/EFI/BOOT + cp /usr/share/grub/grub.cfg $TMPDIR/part1/EFI/BOOT + fi sync # umount system partition, remove mountpoint diff --git a/scripts/mkimage b/scripts/mkimage index 6ff5b5e367..804606edb0 100755 --- a/scripts/mkimage +++ b/scripts/mkimage @@ -163,6 +163,8 @@ EOF mmd EFI EFI/BOOT mcopy $TOOLCHAIN/share/syslinux/bootx64.efi ::/EFI/BOOT mcopy $TOOLCHAIN/share/syslinux/ldlinux.e64 ::/EFI/BOOT + mcopy $TOOLCHAIN/share/grub/bootia32.efi ::/EFI/BOOT + mcopy $TOOLCHAIN/share/grub/grub.cfg ::/EFI/BOOT mcopy "$LE_TMP"/syslinux.cfg ::/EFI/BOOT elif [ "$BOOTLOADER" = "bcm2835-bootloader" ]; then # create bootloader configuration From ccf8fddc1e79250fb7cbc605dd206445fcdec46d Mon Sep 17 00:00:00 2001 From: maideii Date: Wed, 4 Oct 2017 10:50:26 +0800 Subject: [PATCH 2/6] added EFI 32bit support via GRUB2 omit tab indentation --- packages/tools/grub/package.mk | 10 +++++----- packages/tools/installer/scripts/installer | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/tools/grub/package.mk b/packages/tools/grub/package.mk index bc5440e2c4..adbbd8e1b6 100755 --- a/packages/tools/grub/package.mk +++ b/packages/tools/grub/package.mk @@ -31,8 +31,8 @@ PKG_IS_ADDON="no" PKG_AUTORECONF="no" PKG_CONFIGURE_OPTS_TARGET="--target=i386-pc-linux \ - --disable-nls \ - --with-platform=efi" + --disable-nls \ + --with-platform=efi" unset CFLAGS unset CPPFLAGS @@ -57,9 +57,9 @@ make_target() { makeinstall_target() { cd $PKG_BUILD/grub-core $PKG_BUILD/grub-mkimage -d . -o bootia32.efi -O i386-efi -p /EFI/BOOT \ - boot chain configfile ext2 fat linux search \ - efi_gop efi_uga gettext gzio part_gpt \ - loadenv loadbios memrw + boot chain configfile ext2 fat linux search \ + efi_gop efi_uga gettext gzio part_gpt \ + loadenv loadbios memrw mkdir -p $INSTALL/usr/share/grub cp -P $PKG_BUILD/grub-core/bootia32.efi $INSTALL/usr/share/grub diff --git a/packages/tools/installer/scripts/installer b/packages/tools/installer/scripts/installer index 7c4a0c0ed0..f696fa596c 100755 --- a/packages/tools/installer/scripts/installer +++ b/packages/tools/installer/scripts/installer @@ -275,8 +275,8 @@ do_install_quick() { 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 /usr/share/grub/bootia32.efi $TMPDIR/part1/EFI/BOOT - cp /usr/share/grub/grub.cfg $TMPDIR/part1/EFI/BOOT + cp /usr/share/grub/bootia32.efi $TMPDIR/part1/EFI/BOOT + cp /usr/share/grub/grub.cfg $TMPDIR/part1/EFI/BOOT fi sync From c268754d0d270fecb6e573949aa519f0cf9d6173 Mon Sep 17 00:00:00 2001 From: maideii Date: Tue, 10 Oct 2017 11:31:49 +0800 Subject: [PATCH 3/6] added EFI 32bit support via GRUB2-expanded all the config with variables --- packages/sysutils/busybox/scripts/init | 22 +++++++++++++++++ .../tools/grub/config/grub-postinstall.cfg | 8 ------- packages/tools/grub/config/grub.cfg | 21 ---------------- packages/tools/grub/package.mk | 6 ++--- packages/tools/installer/scripts/installer | 11 +++++++-- scripts/mkimage | 24 +++++++++++++++++-- 6 files changed, 55 insertions(+), 37 deletions(-) delete mode 100644 packages/tools/grub/config/grub-postinstall.cfg delete mode 100644 packages/tools/grub/config/grub.cfg diff --git a/packages/sysutils/busybox/scripts/init b/packages/sysutils/busybox/scripts/init index 69170c6986..fa870e2a87 100755 --- a/packages/sysutils/busybox/scripts/init +++ b/packages/sysutils/busybox/scripts/init @@ -53,6 +53,7 @@ RUN_FSCK="yes" RUN_FSCK_DISKS="" SYSLINUX_DEFAULT="" + GRUB_DEFAULT="" NBD_DEVS="0" FLASH_FREE_MIN="5" @@ -153,6 +154,13 @@ portable) SYSLINUX_DEFAULT="run" ;; + grub_live) + LIVE=yes + GRUB_DEFAULT="\"Live\"" + ;; + grub_portable) + GRUB_DEFAULT="\"Run\"" + ;; overlay) OVERLAY=yes ;; @@ -716,6 +724,20 @@ fi fi fi + + if [ -n "$GRUB_DEFAULT" -a -f /flash/grub.cfg ]; then + if grep -q "^menuentry $GRUB_DEFAULT" /flash/grub.cfg; then + crnt_default="$(awk '/^set default/ {print substr($2,9,19)}' /flash/grub.cfg)" + if [ ! "$crnt_default" = "$GRUB_DEFAULT" ]; then + progress "Updating /flash/grub.cfg [$crnt_default -> $GRUB_DEFAULT]" + + mount -o remount,rw /flash + sed -i "s/^set default=.*/set default=$GRUB_DEFAULT/" /flash/grub.cfg + [ -f /flash/EFI/BOOT/grub.cfg ] && cp /flash/grub.cfg /flash/EFI/BOOT/grub.cfg + mount -o remount,ro /flash + fi + fi + fi } check_out_of_space() { diff --git a/packages/tools/grub/config/grub-postinstall.cfg b/packages/tools/grub/config/grub-postinstall.cfg deleted file mode 100644 index 08429f7dc5..0000000000 --- a/packages/tools/grub/config/grub-postinstall.cfg +++ /dev/null @@ -1,8 +0,0 @@ -GRUB_SAVEDEFAULT=true -set timeout="0" -set default="0" - -menuentry "LibreELEC"{ - search --set -f /KERNEL - linux /KERNEL boot=LABEL=System disk=LABEL=Storage quiet -} diff --git a/packages/tools/grub/config/grub.cfg b/packages/tools/grub/config/grub.cfg deleted file mode 100644 index e85f819b19..0000000000 --- a/packages/tools/grub/config/grub.cfg +++ /dev/null @@ -1,21 +0,0 @@ -set timeout="5" -set default="3" -menuentry "LibreELEC Boot Menu"{ - set -} -menuentry ' '{ - set -} -menuentry "1. Installer"{ - search --set -f /KERNEL - linux /KERNEL boot=LABEL=LIBREELEC installer quiet tty vga=current -} - -menuentry "2. Live"{ - search --set -f /KERNEL - linux /KERNEL boot=LABEL=LIBREELEC live quiet tty vga=current -} -menuentry "3. Portable"{ - search --set -f /KERNEL - linux /KERNEL boot=LABEL=LIBREELEC disk=UUID=132e735c-fc99-4639-8138-c8db4f7698b5 portable quiet -} diff --git a/packages/tools/grub/package.mk b/packages/tools/grub/package.mk index adbbd8e1b6..44bfaab16d 100755 --- a/packages/tools/grub/package.mk +++ b/packages/tools/grub/package.mk @@ -58,14 +58,12 @@ makeinstall_target() { cd $PKG_BUILD/grub-core $PKG_BUILD/grub-mkimage -d . -o bootia32.efi -O i386-efi -p /EFI/BOOT \ boot chain configfile ext2 fat linux search \ - efi_gop efi_uga gettext gzio part_gpt \ - loadenv loadbios memrw + efi_gop efi_uga part_gpt gzio \ + gettext loadenv loadbios memrw mkdir -p $INSTALL/usr/share/grub cp -P $PKG_BUILD/grub-core/bootia32.efi $INSTALL/usr/share/grub - cp -P $PKG_DIR/config/grub-postinstall.cfg $INSTALL/usr/share/grub/grub.cfg mkdir -p $TOOLCHAIN/share/grub cp -P $PKG_BUILD/grub-core/bootia32.efi $TOOLCHAIN/share/grub - cp -P $PKG_DIR/config/grub.cfg $TOOLCHAIN/share/grub } diff --git a/packages/tools/installer/scripts/installer b/packages/tools/installer/scripts/installer index f696fa596c..86485f0983 100755 --- a/packages/tools/installer/scripts/installer +++ b/packages/tools/installer/scripts/installer @@ -268,6 +268,13 @@ do_install_quick() { 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 @@ -275,9 +282,9 @@ do_install_quick() { 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 - cp /usr/share/grub/grub.cfg $TMPDIR/part1/EFI/BOOT - fi + fi sync # umount system partition, remove mountpoint diff --git a/scripts/mkimage b/scripts/mkimage index 804606edb0..8ce3d815e2 100755 --- a/scripts/mkimage +++ b/scripts/mkimage @@ -147,7 +147,25 @@ LABEL run APPEND boot=UUID=$UUID_SYSTEM disk=UUID=$UUID_STORAGE portable quiet EOF + cat << EOF > "$LE_TMP"/grub.cfg +set timeout="25" +set default="Installer" +menuentry "Installer" { + search --set -f /KERNEL + linux /KERNEL boot=UUID=$UUID_SYSTEM installer quiet tty vga=current +} +menuentry "Live" { + search --set -f /KERNEL + linux /KERNEL boot=UUID=$UUID_SYSTEM grub_live quiet tty vga=current +} +menuentry "Run" { + search --set -f /KERNEL + linux /KERNEL boot=UUID=$UUID_SYSTEM disk=UUID=$UUID_STORAGE grub_portable quiet +} +EOF + mcopy "$LE_TMP/syslinux.cfg" :: + mcopy "$LE_TMP/grub.cfg" :: # install extlinux echo "image: installing extlinux to part1..." @@ -164,8 +182,8 @@ EOF mcopy $TOOLCHAIN/share/syslinux/bootx64.efi ::/EFI/BOOT mcopy $TOOLCHAIN/share/syslinux/ldlinux.e64 ::/EFI/BOOT mcopy $TOOLCHAIN/share/grub/bootia32.efi ::/EFI/BOOT - mcopy $TOOLCHAIN/share/grub/grub.cfg ::/EFI/BOOT mcopy "$LE_TMP"/syslinux.cfg ::/EFI/BOOT + mcopy "$LE_TMP"/grub.cfg ::/EFI/BOOT elif [ "$BOOTLOADER" = "bcm2835-bootloader" ]; then # create bootloader configuration echo "image: creating bootloader configuration..." @@ -300,10 +318,12 @@ fi # bootloader dd if="$DISK" of="${DISK/img/tmp}" bs=1M >"$SAVE_ERROR" 2>&1 || show_error # change syslinux default to 'run' echo "image: modifying fs on part1 for open virtual appliance..." - sed -i "/DEFAULT/ s/installer/run/" "$LE_TMP"/syslinux.cfg + sed -i "/DEFAULT/ s/installer/run/" "$LE_TMP"/syslinux.cfg "$LE_TMP"/grub.cfg # 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"/grub.cfg ::/EFI/BOOT + $TOOLCHAIN/bin/mcopy -i $LE_TMP/part1.fat -o "$LE_TMP"/grub.cfg :: sync # merge modified part1 back to tmp disk image echo "image: merging part1 back to open virtual appliance..." From 03ec8f3048a72828dc1707a552f0044150f2d632 Mon Sep 17 00:00:00 2001 From: maideii Date: Tue, 10 Oct 2017 11:38:52 +0800 Subject: [PATCH 4/6] added EFI 32bit support via GRUB2 - indentation mistake --- scripts/mkimage | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/mkimage b/scripts/mkimage index 8ce3d815e2..5aef3cd308 100755 --- a/scripts/mkimage +++ b/scripts/mkimage @@ -322,7 +322,7 @@ fi # bootloader # 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"/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 # merge modified part1 back to tmp disk image From 7121db0b95b38dd5b3e0c956ce055e31d54cab2f Mon Sep 17 00:00:00 2001 From: maideii Date: Wed, 11 Oct 2017 10:48:56 +0800 Subject: [PATCH 5/6] added EFI 32bit support via GRUB2 - fixed Virtual config --- scripts/mkimage | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/mkimage b/scripts/mkimage index 5aef3cd308..9cd8bcab32 100755 --- a/scripts/mkimage +++ b/scripts/mkimage @@ -318,7 +318,8 @@ fi # bootloader dd if="$DISK" of="${DISK/img/tmp}" bs=1M >"$SAVE_ERROR" 2>&1 || show_error # change syslinux default to 'run' echo "image: modifying fs on part1 for open virtual appliance..." - sed -i "/DEFAULT/ s/installer/run/" "$LE_TMP"/syslinux.cfg "$LE_TMP"/grub.cfg + sed -i "/DEFAULT/ s/installer/run/" "$LE_TMP"/syslinux.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 $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 :: From 7def0a79dc38a9d49d81eae27cee76e0cbc415b8 Mon Sep 17 00:00:00 2001 From: maideii Date: Thu, 12 Oct 2017 08:40:08 +0800 Subject: [PATCH 6/6] added EFI 32bit support via GRUB2-updated busybox init config --- packages/sysutils/busybox/scripts/init | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/sysutils/busybox/scripts/init b/packages/sysutils/busybox/scripts/init index fa870e2a87..3ccc261ea1 100755 --- a/packages/sysutils/busybox/scripts/init +++ b/packages/sysutils/busybox/scripts/init @@ -156,10 +156,10 @@ ;; grub_live) LIVE=yes - GRUB_DEFAULT="\"Live\"" + GRUB_DEFAULT="Live" ;; grub_portable) - GRUB_DEFAULT="\"Run\"" + GRUB_DEFAULT="Run" ;; overlay) OVERLAY=yes @@ -708,7 +708,7 @@ } # Make last bootloader label (installer, live, run etc.) as the new default - update_syslinux() { + update_bootmenu() { local crnt_default if [ -n "$SYSLINUX_DEFAULT" -a -f /flash/syslinux.cfg ]; then @@ -725,14 +725,14 @@ fi fi - if [ -n "$GRUB_DEFAULT" -a -f /flash/grub.cfg ]; then - if grep -q "^menuentry $GRUB_DEFAULT" /flash/grub.cfg; then + if [ -n "\"$GRUB_DEFAULT\"" -a -f /flash/grub.cfg ]; then + if grep -q "^menuentry \"$GRUB_DEFAULT\"" /flash/grub.cfg; then crnt_default="$(awk '/^set default/ {print substr($2,9,19)}' /flash/grub.cfg)" - if [ ! "$crnt_default" = "$GRUB_DEFAULT" ]; then - progress "Updating /flash/grub.cfg [$crnt_default -> $GRUB_DEFAULT]" + if [ ! "$crnt_default" = "\"$GRUB_DEFAULT\"" ]; then + progress "Updating /flash/grub.cfg [$crnt_default -> \"$GRUB_DEFAULT\"]" 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/grub.cfg [ -f /flash/EFI/BOOT/grub.cfg ] && cp /flash/grub.cfg /flash/EFI/BOOT/grub.cfg mount -o remount,ro /flash fi @@ -1060,7 +1060,7 @@ load_modules \ check_disks \ mount_flash \ - update_syslinux \ + update_bootmenu \ load_splash \ mount_storage \ check_update \