From 9d391c092570909a9631c514600d2588b2cd5310 Mon Sep 17 00:00:00 2001 From: Jonathan Liu Date: Sat, 3 Dec 2022 20:56:18 +1100 Subject: Add Memtest86+ to x86_64 UEFI GRUB boot menu Implements #203. --- CHANGELOG.rst | 1 + archiso/mkarchiso | 11 +++++++++++ configs/releng/grub/grub.cfg | 5 +++++ configs/releng/packages.x86_64 | 1 + 4 files changed, 18 insertions(+) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 0e9d737..5115cb1 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -7,6 +7,7 @@ Changelog Added ----- +- Add Memtest86+ to x86_64 UEFI GRUB boot menu. Changed ------- diff --git a/archiso/mkarchiso b/archiso/mkarchiso index caeb21e..9b917ab 100755 --- a/archiso/mkarchiso +++ b/archiso/mkarchiso @@ -712,6 +712,14 @@ _make_bootmode_uefi-x64.grub.esp() { mcopy -i "${efibootimg}" "${pacstrap_dir}/usr/share/edk2-shell/x64/Shell_Full.efi" ::/shellx64.efi fi + # Add other aditional/extra files to ${install_dir}/boot/ + if [[ -e "${pacstrap_dir}/boot/memtest86+/memtest.efi" ]]; then + install -m 0644 -- "${pacstrap_dir}/boot/memtest86+/memtest.efi" "${isofs_dir}/${install_dir}/boot/memtest.efi" + install -d -m 0755 -- "${isofs_dir}/${install_dir}/boot/licenses/memtest86+/" + install -m 0644 -- "${pacstrap_dir}/usr/share/licenses/common/GPL2/license.txt" \ + "${isofs_dir}/${install_dir}/boot/licenses/memtest86+/" + fi + _msg_info "Done! GRUB set up for UEFI booting successfully." } @@ -997,6 +1005,9 @@ _validate_requirements_bootmode_uefi-x64.grub.esp() { if [[ ! " ${pkg_list[*]} " =~ ' edk2-shell ' ]]; then _msg_info "'edk2-shell' is not in the package list. The ISO will not contain a bootable UEFI shell." fi + if [[ ! " ${pkg_list[*]} " =~ ' memtest86+-efi ' ]]; then + _msg_info "Validating '${bootmode}': 'memtest86+-efi' is not in the package list. Memory testing will not be available from GRUB." + fi } _validate_requirements_bootmode_uefi-x64.grub.eltorito() { diff --git a/configs/releng/grub/grub.cfg b/configs/releng/grub/grub.cfg index 43fad0e..79ea2d2 100644 --- a/configs/releng/grub/grub.cfg +++ b/configs/releng/grub/grub.cfg @@ -46,6 +46,11 @@ menuentry "Arch Linux install medium with speakup screen reader (x86_64, UEFI)" if [ "${grub_platform}" == "efi" ]; then if [ "${grub_cpu}" == "x86_64" ]; then + menuentry "Run Memtest86+ (RAM test)" --class memtest86 --class gnu --class tool { + set gfxpayload=800x600,1024x768 + search --fs-uuid --no-floppy --set=root --label %ARCHISO_LABEL% + linux /%INSTALL_DIR%/boot/memtest.efi + } menuentry "UEFI Shell" { insmod chain search --no-floppy --set=root --label %ARCHISO_LABEL% diff --git a/configs/releng/packages.x86_64 b/configs/releng/packages.x86_64 index 02ef538..5771920 100644 --- a/configs/releng/packages.x86_64 +++ b/configs/releng/packages.x86_64 @@ -60,6 +60,7 @@ man-pages mc mdadm memtest86+ +memtest86+-efi mkinitcpio mkinitcpio-archiso mkinitcpio-nfs-utils -- cgit v1.2.3-54-g00ecf