added EFI 32bit support via GRUB2

This commit is contained in:
maideii 2017-10-04 09:41:16 +08:00
parent f417959228
commit 8d501bbd3e
6 changed files with 106 additions and 2 deletions

View File

@ -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
}

View File

@ -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
}

71
packages/tools/grub/package.mk Executable file
View File

@ -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 <http://www.gnu.org/licenses/>.
################################################################################
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
}

View File

@ -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"

View File

@ -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

View File

@ -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