diff --git a/scripts/build/binary_grub_cfg b/scripts/build/binary_grub_cfg index 1ead2c7a7..9af07a74c 100755 --- a/scripts/build/binary_grub_cfg +++ b/scripts/build/binary_grub_cfg @@ -231,7 +231,8 @@ else fi # Assembling memtest configuration -MEMTEST_BIN="/${INITFS}/memtest" +MEMTEST_DIR="/${INITFS}" +MEMTEST_BIN="${MEMTEST_DIR}/memtest" if [ -f "binary/${MEMTEST_BIN}" ]; then ENABLE_MEMTEST="true" MEMTEST="source /boot/grub/memtest.cfg" #for backwards compatibility @@ -261,6 +262,7 @@ sed -i \ -e "s|@APPEND_INSTALL@|${LB_BOOTAPPEND_INSTALL}|" \ -e "s|@ENABLE_INSTALL_MENU@|${ENABLE_INSTALL_MENU}|" \ -e "s|@ENABLE_MEMTEST@|${ENABLE_MEMTEST}|" \ + -e "s|@MEMTEST_DIR@|${MEMTEST_DIR}|" \ -e "s|@MEMTEST_BIN@|${MEMTEST_BIN}|" \ -e "s|@MEMTEST_VERSION@|${LB_MEMTEST}|" \ -e "s|@FLAVOUR_LIVE@|${FLAVOUR_LIVE}|" \ diff --git a/scripts/build/binary_memtest b/scripts/build/binary_memtest index 52636a942..4644fdd03 100755 --- a/scripts/build/binary_memtest +++ b/scripts/build/binary_memtest @@ -75,12 +75,20 @@ Install_packages case "${LB_MEMTEST}" in memtest86+) + case "${LB_ARCHITECTURE}" in + amd64) + _MEMTEST_ARCH=x64 + ;; + i386) + _MEMTEST_ARCH=x32 + ;; + esac case "${LB_BUILD_WITH_CHROOT}" in true) - [ -e "chroot/boot/${LB_MEMTEST}x32.bin" ] && _MEMTEST_BIN="${LB_MEMTEST}x32" + [ -e "chroot/boot/${LB_MEMTEST}${_MEMTEST_ARCH}.bin" ] && _MEMTEST_BIN="${LB_MEMTEST}${_MEMTEST_ARCH}" ;; false) - [ -e "/boot/${LB_MEMTEST}x32.bin" ] && _MEMTEST_BIN="${LB_MEMTEST}x32" + [ -e "/boot/${LB_MEMTEST}${_MEMTEST_ARCH}.bin" ] && _MEMTEST_BIN="${LB_MEMTEST}${_MEMTEST_ARCH}" ;; esac ;; @@ -104,10 +112,12 @@ mkdir -p "${DESTDIR}" case "${LB_BUILD_WITH_CHROOT}" in true) cp -a "chroot/boot/${_MEMTEST_BIN}.bin" "${DESTDIR}"/memtest + [ -e "chroot/boot/${_MEMTEST_BIN}.efi" ] && cp -a "chroot/boot/${_MEMTEST_BIN}.efi" "${DESTDIR}"/memtest.efi ;; false) cp -a "/boot/${_MEMTEST_BIN}.bin" "${DESTDIR}"/memtest + [ -e "/boot/${_MEMTEST_BIN}.efi" ] && cp -a "/boot/${_MEMTEST_BIN}.efi" "${DESTDIR}"/memtest.efi ;; esac diff --git a/share/bootloaders/grub-pc/grub.cfg b/share/bootloaders/grub-pc/grub.cfg index 4e993df86..5eb6b0c08 100644 --- a/share/bootloaders/grub-pc/grub.cfg +++ b/share/bootloaders/grub-pc/grub.cfg @@ -36,7 +36,7 @@ submenu 'Utilities...' --hotkey=u { source /boot/grub/theme.cfg # Memtest (if any) - if [ "${grub_platform}" = "pc" ] -a @ENABLE_MEMTEST@; then + if @ENABLE_MEMTEST@; then source /boot/grub/memtest.cfg fi diff --git a/share/bootloaders/grub-pc/memtest.cfg b/share/bootloaders/grub-pc/memtest.cfg index 454804bb0..7edee9ab5 100644 --- a/share/bootloaders/grub-pc/memtest.cfg +++ b/share/bootloaders/grub-pc/memtest.cfg @@ -1,3 +1,10 @@ -menuentry "Memory Diagnostic Tool (@MEMTEST_VERSION@)" --hotkey=m { - linux16 @MEMTEST_BIN@ -} +if [ "${grub_platform}" = "pc" ]; then + menuentry "Memory Diagnostic Tool (@MEMTEST_VERSION@)" --hotkey=m { + linux16 @MEMTEST_BIN@ + } +elif [ "${grub_platform}" = "efi" ] -a [ -e @MEMTEST_DIR@/memtest.efi ]; then + menuentry "Memory Diagnostic Tool (@MEMTEST_VERSION@)" --hotkey=m { + insmod chain + chainloader @MEMTEST_DIR@/memtest.efi + } +fi