Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Liu <net147@gmail.com>2022-12-03 20:56:18 +1100
committerJonathan Liu <net147@gmail.com>2022-12-03 20:56:18 +1100
commit9d391c092570909a9631c514600d2588b2cd5310 (patch)
treef8a7721c4c9bfbebcef12da96c5aa9a836a303fa
parent477294955a52874e167c33994dd99f9f3d60d912 (diff)
Add Memtest86+ to x86_64 UEFI GRUB boot menu
Implements #203.
-rw-r--r--CHANGELOG.rst1
-rwxr-xr-xarchiso/mkarchiso11
-rw-r--r--configs/releng/grub/grub.cfg5
-rw-r--r--configs/releng/packages.x86_641
4 files changed, 18 insertions, 0 deletions
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