memtest: Support arch-specific and EFI memtest86+ 6.00
- BIOS: Final filename doesn't change (memtest), but now uses a
64-bit version on amd64.
- EFI: Now included as memtest.efi; 32-bit on i386, 64-bit on amd64.
As it's GRUB-only, we can test for the existence of memtest.efi
(6.00+ only) in GRUB itself.
- Add @MEMTEST_DIR@ to facilitate directory-based testing in GRUB.
This expands upon the previous MVP commit
15e78a3eec
.
This commit is contained in:
parent
15e78a3eec
commit
1d6f6dd178
|
@ -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}|" \
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue