mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-24 11:16:51 +00:00
added EFI 32bit support via GRUB2-expanded all the config with variables
This commit is contained in:
parent
ccf8fddc1e
commit
c268754d0d
@ -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() {
|
||||
|
@ -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
|
||||
}
|
@ -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
|
||||
}
|
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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..."
|
||||
|
Loading…
x
Reference in New Issue
Block a user