mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-28 13:16:41 +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="yes"
|
||||||
RUN_FSCK_DISKS=""
|
RUN_FSCK_DISKS=""
|
||||||
SYSLINUX_DEFAULT=""
|
SYSLINUX_DEFAULT=""
|
||||||
|
GRUB_DEFAULT=""
|
||||||
|
|
||||||
NBD_DEVS="0"
|
NBD_DEVS="0"
|
||||||
FLASH_FREE_MIN="5"
|
FLASH_FREE_MIN="5"
|
||||||
@ -153,6 +154,13 @@
|
|||||||
portable)
|
portable)
|
||||||
SYSLINUX_DEFAULT="run"
|
SYSLINUX_DEFAULT="run"
|
||||||
;;
|
;;
|
||||||
|
grub_live)
|
||||||
|
LIVE=yes
|
||||||
|
GRUB_DEFAULT="\"Live\""
|
||||||
|
;;
|
||||||
|
grub_portable)
|
||||||
|
GRUB_DEFAULT="\"Run\""
|
||||||
|
;;
|
||||||
overlay)
|
overlay)
|
||||||
OVERLAY=yes
|
OVERLAY=yes
|
||||||
;;
|
;;
|
||||||
@ -716,6 +724,20 @@
|
|||||||
fi
|
fi
|
||||||
fi
|
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() {
|
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
|
cd $PKG_BUILD/grub-core
|
||||||
$PKG_BUILD/grub-mkimage -d . -o bootia32.efi -O i386-efi -p /EFI/BOOT \
|
$PKG_BUILD/grub-mkimage -d . -o bootia32.efi -O i386-efi -p /EFI/BOOT \
|
||||||
boot chain configfile ext2 fat linux search \
|
boot chain configfile ext2 fat linux search \
|
||||||
efi_gop efi_uga gettext gzio part_gpt \
|
efi_gop efi_uga part_gpt gzio \
|
||||||
loadenv loadbios memrw
|
gettext loadenv loadbios memrw
|
||||||
|
|
||||||
mkdir -p $INSTALL/usr/share/grub
|
mkdir -p $INSTALL/usr/share/grub
|
||||||
cp -P $PKG_BUILD/grub-core/bootia32.efi $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
|
mkdir -p $TOOLCHAIN/share/grub
|
||||||
cp -P $PKG_BUILD/grub-core/bootia32.efi $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 "LABEL linux" >> $TMPDIR/part1/extlinux.conf
|
||||||
echo " KERNEL /KERNEL" >> $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 " 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
|
# uefi boot / hybrid mode
|
||||||
if [ "$UEFI" = "1" ]; then
|
if [ "$UEFI" = "1" ]; then
|
||||||
mv $TMPDIR/part1/extlinux.conf $TMPDIR/part1/syslinux.cfg
|
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 $TMPDIR/part1/syslinux.cfg $TMPDIR/part1/EFI/BOOT
|
||||||
cp /usr/share/syslinux/bootx64.efi $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/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/bootia32.efi $TMPDIR/part1/EFI/BOOT
|
||||||
cp /usr/share/grub/grub.cfg $TMPDIR/part1/EFI/BOOT
|
fi
|
||||||
fi
|
|
||||||
sync
|
sync
|
||||||
|
|
||||||
# umount system partition, remove mountpoint
|
# umount system partition, remove mountpoint
|
||||||
|
@ -147,7 +147,25 @@ LABEL run
|
|||||||
APPEND boot=UUID=$UUID_SYSTEM disk=UUID=$UUID_STORAGE portable quiet
|
APPEND boot=UUID=$UUID_SYSTEM disk=UUID=$UUID_STORAGE portable quiet
|
||||||
EOF
|
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/syslinux.cfg" ::
|
||||||
|
mcopy "$LE_TMP/grub.cfg" ::
|
||||||
|
|
||||||
# install extlinux
|
# install extlinux
|
||||||
echo "image: installing extlinux to part1..."
|
echo "image: installing extlinux to part1..."
|
||||||
@ -164,8 +182,8 @@ 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 $TOOLCHAIN/share/grub/grub.cfg ::/EFI/BOOT
|
|
||||||
mcopy "$LE_TMP"/syslinux.cfg ::/EFI/BOOT
|
mcopy "$LE_TMP"/syslinux.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
|
||||||
echo "image: creating 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
|
dd if="$DISK" of="${DISK/img/tmp}" bs=1M >"$SAVE_ERROR" 2>&1 || show_error
|
||||||
# change syslinux default to 'run'
|
# change syslinux default to 'run'
|
||||||
echo "image: modifying fs on part1 for open virtual appliance..."
|
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
|
# 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 ::/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 ::
|
||||||
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