Using edk2-shell for UEFI shell

configs/releng/build.sh:
Instead of downloading UDK2018 based edk2 UEFI shell, use the Shell
binaries from the edk2-shell package.
This effectively makes the use of EFI shell v1 obsolete.

configs/releng/efiboot/loader/entries/uefi-shell-v*:
Renaming UEFI shell entries to match the packaged edk2-shell based UEFI
shell binaries.

configs/releng/build.sh:
Renaming the systemd-boot bootloader entries for UEFI shell (normal and
full version) to reflect their file names, which are derived from the
binary names in the edk2-shell package.
Copying the edk2-shell based UEFI shell binaries for normal efiboot and
.iso based "el-torito" efiboot mode.

docs/README.build:
Adding edk2-shell to the requirements in the documentation, as the
package is now used to provide UEFI shell.
This commit is contained in:
David Runge 2020-05-23 13:32:28 +02:00
parent ec5f5378c7
commit 2ce375cd01
No known key found for this signature in database
GPG Key ID: 7258734B41C31549
6 changed files with 14 additions and 14 deletions

View File

@ -160,17 +160,16 @@ make_efi() {
mkdir -p ${work_dir}/iso/loader/entries
cp ${script_path}/efiboot/loader/loader.conf ${work_dir}/iso/loader/
cp ${script_path}/efiboot/loader/entries/uefi-shell-v2-x86_64.conf ${work_dir}/iso/loader/entries/
cp ${script_path}/efiboot/loader/entries/uefi-shell-v1-x86_64.conf ${work_dir}/iso/loader/entries/
cp ${script_path}/efiboot/loader/entries/uefi-shell-x86_64.conf ${work_dir}/iso/loader/entries/
cp ${script_path}/efiboot/loader/entries/uefi-shell-full-x86_64.conf ${work_dir}/iso/loader/entries/
sed "s|%ARCHISO_LABEL%|${iso_label}|g;
s|%INSTALL_DIR%|${install_dir}|g" \
${script_path}/efiboot/loader/entries/archiso-x86_64-usb.conf > ${work_dir}/iso/loader/entries/archiso-x86_64.conf
# EFI Shell 2.0 for UEFI 2.3+
curl -o ${work_dir}/iso/EFI/shellx64_v2.efi https://raw.githubusercontent.com/tianocore/edk2/UDK2018/ShellBinPkg/UefiShell/X64/Shell.efi
# EFI Shell 1.0 for non UEFI 2.3+
curl -o ${work_dir}/iso/EFI/shellx64_v1.efi https://raw.githubusercontent.com/tianocore/edk2/UDK2018/EdkShellBinPkg/FullShell/X64/Shell_Full.efi
# edk2-shell based UEFI shell
cp /usr/share/edk2-shell/x64/Shell.efi ${work_dir}/iso/EFI/Shell_x64.efi
cp /usr/share/edk2-shell/x64/Shell_Full.efi ${work_dir}/iso/EFI/Shell_Full_x64.efi
}
# Prepare efiboot.img::/EFI for "El Torito" EFI boot mode
@ -197,15 +196,15 @@ make_efiboot() {
mkdir -p ${work_dir}/efiboot/loader/entries
cp ${script_path}/efiboot/loader/loader.conf ${work_dir}/efiboot/loader/
cp ${script_path}/efiboot/loader/entries/uefi-shell-v2-x86_64.conf ${work_dir}/efiboot/loader/entries/
cp ${script_path}/efiboot/loader/entries/uefi-shell-v1-x86_64.conf ${work_dir}/efiboot/loader/entries/
cp ${script_path}/efiboot/loader/entries/uefi-shell-x86_64.conf ${work_dir}/efiboot/loader/entries/
cp ${script_path}/efiboot/loader/entries/uefi-shell-full-x86_64.conf ${work_dir}/efiboot/loader/entries/
sed "s|%ARCHISO_LABEL%|${iso_label}|g;
s|%INSTALL_DIR%|${install_dir}|g" \
${script_path}/efiboot/loader/entries/archiso-x86_64-cd.conf > ${work_dir}/efiboot/loader/entries/archiso-x86_64.conf
cp ${work_dir}/iso/EFI/shellx64_v2.efi ${work_dir}/efiboot/EFI/
cp ${work_dir}/iso/EFI/shellx64_v1.efi ${work_dir}/efiboot/EFI/
cp ${work_dir}/iso/EFI/Shell_x64.efi ${work_dir}/efiboot/EFI/
cp ${work_dir}/iso/EFI/Shell_Full_x64.efi ${work_dir}/efiboot/EFI/
umount -d ${work_dir}/efiboot
}

View File

@ -0,0 +1,2 @@
title UEFI Shell (Full) x86_64
efi /EFI/Shell_Full_x64.efi

View File

@ -1,2 +0,0 @@
title UEFI Shell x86_64 v1
efi /EFI/shellx64_v1.efi

View File

@ -1,2 +0,0 @@
title UEFI Shell x86_64 v2
efi /EFI/shellx64_v2.efi

View File

@ -0,0 +1,2 @@
title UEFI Shell x86_64
efi /EFI/Shell_x64.efi

View File

@ -11,6 +11,7 @@ INDEX
** For mkarchiso script needs these packages (build host):
+ arch-install-scripts for pacstrap/arch-chroot
+ edk2-shell for UEFI shell
+ squashfs-tools for mksquashfs
+ libisoburn for xorriso
+ btrfs-progs for mkfs.btrfs (optional)