Contenu
Voir la page pour GRUB dans le livre LFS.
Le paquet Grub contient un chargeur de démarrage, le GRand Unified Bootloader. Dans cette page il sera construit avec la prise en charge d'UEFI, qui n'était pas activée dans le GRUB construit dans LFS.
This package is known to build and work properly using an LFS 12.1 platform.
Téléchargement (HTTP) : https://ftp.gnu.org/gnu/grub/grub-2.12.tar.xz
Somme de contrôle MD5 : 60c564b1bdc39d8e43b3aab4bc0fb140
Taille du téléchargement : 6,4 Mo
Estimation de l'espace disque requis : 183 Mo
Estimation du temps de construction : 0,4 SBU (sur une LFS 64 bits, avec parallélisme = 4)
Données de polices unicode utilisées pour afficher le menu de GRUB
Téléchargement (HTTP) : https://unifoundry.com/pub/unifont/unifont-15.1.04/font-builds/unifont-15.1.04.pcf.gz
Somme de contrôle MD5 : 72f95e7ecb47a4c7ed610babe6959ead
Taille du téléchargement : 1,3 Mo
GCC (seulement requis si vous construisez sur une LFS 32 bits)
Consultez la page GCC-13.2.0 pour les informations sur le téléchargement.
efibootmgr-18 (exécution) et FreeType-2.13.2
Tout d'abord, installez les données de police en tant
qu'utilisateur root
:
mkdir -pv /usr/share/fonts/unifont && gunzip -c ../unifont-15.1.04.pcf.gz > /usr/share/fonts/unifont/unifont.pcf
Nettoyez les variables d'environnement qui peuvent affecter la construction :
unset {C,CPP,CXX,LD}FLAGS
N'essayez pas de « régler » ce paquet avec des drapeaux de compilation personnalisés : ce paquet est un chargeur d'amorçage, avec des opérations de bas-niveau dans le code source qui seront sans doute cassées par certaines optimisations agressives.
Ajoutez un fichier manquant de l'archive publiée :
echo depends bli part_gpt
> grub-core/extra_deps.lst
Si vous êtes sur une LFS 32 bits, préparez un compilateur 64 bits :
case $(uname -m) in i?86 )
tar xf ../gcc-13.2.0.tar.xz
mkdir gcc-13.2.0/build
pushd gcc-13.2.0/build
../configure --prefix=$PWD/../../x86_64-gcc \
--target=x86_64-linux-gnu \
--with-system-zlib \
--enable-languages=c,c++ \
--with-ld=/usr/bin/ld
make all-gcc
make install-gcc
popd
export TARGET_CC=$PWD/x86_64-gcc/bin/x86_64-linux-gnu-gcc
esac
Construisez GRUB avec les commandes suivantes :
./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-efiemu \ --enable-grub-mkfont \ --with-platform=efi \ --target=x86_64 \ --disable-werror && unset TARGET_CC && make
Ce paquet n'a pas de suite de tests qui fournisse des résultats intéressants.
Maintenant, en tant qu'utilisateur root
:
make install && mv -v /etc/bash_completion.d/grub /usr/share/bash-completion/completions
--enable-grub-mkfont
:
construit l'outil grub-mkfont pour générer le
fichier de polices pour le chargeur d'amorçage à partir des données
de police qu'on a installées.
Si vous n'avez pas installé la dépendance recommandée FreeType-2.13.2, il est possible d'omettre cette option et de construire GRUB. Cependant, si grub-mkfont n'est pas construit ou que les données de police unicode ne sont pas disponibles quand GRUB est construit, GRUB n'installera aucune police pour le chargeur d'amorçage. Le menu de démarrage de GRUB sera affiché avec une police grossière ou une plus petite portion de votre écran.
--with-platform=efi
:
s'assure de construire GRUB avec EFI activé.
--target=x86_64
:
s'assure de construire GRUP pour x86_64 même si vous construisez
sur une LFS 32 bits. La plupart des firmware sur x86_64 ne
prennent pas en charge les chargeurs d'amorçage en 32 bits.
--target=i386
: quelques
plateformes x86 32 bits prennent EFI en charge. En plus,
certaines plateformes x86_64 ont une implémentation EFI en
32 bits, mais ils sont très vieux et très rares. Utilisez ceci
au lieu de --target=x86_64
si vous êtes absolument
certain que LFS tourne sur un tel système.
On discute de comment utiliser GRUB pour rendre le système LFS amorçable sur une plateforme UEFI sur Utiliser GRUB pour paramétrer le processus de démarrage avec UEFI.
Voir la page pour GRUB dans le livre LFS.