summarylogtreecommitdiffstats
path: root/60_memtest86+
diff options
context:
space:
mode:
Diffstat (limited to '60_memtest86+')
-rw-r--r--60_memtest86+42
1 files changed, 42 insertions, 0 deletions
diff --git a/60_memtest86+ b/60_memtest86+
new file mode 100644
index 000000000000..7f63e0e045c6
--- /dev/null
+++ b/60_memtest86+
@@ -0,0 +1,42 @@
+#!/usr/bin/env bash
+########################################################
+# This script generates a memtest86+ entry on grub.cfg #
+# if memtest is installed on the system. #
+########################################################
+
+prefix="/usr"
+exec_prefix="${prefix}"
+datarootdir="/usr/share"
+datadir="${datarootdir}"
+sysconfdir="/etc"
+
+. "${datadir}/grub/grub-mkconfig_lib"
+
+. "${sysconfdir}/default/grub"
+
+MEMTEST86_IMAGE="/boot/memtest86+/memtest.bin"
+CLASS="--class memtest86 --class gnu --class tool"
+
+[[ -z "${GRUB_PLATFORM}" ]] && GRUB_PLATFORM="x86"
+
+check="--is-${GRUB_PLATFORM}-linux"
+
+# MEMTEST86_IMAGE="$(if grub_file_is_not_garbage "${MEMTEST86_IMAGE}" && "${grub_file}" ${check} "${MEMTEST86_IMAGE}" ; then echo -n "${MEMTEST86_IMAGE} " ; fi)"
+
+if [[ "${GRUB_PLATFORM}" == "x86" ]]; then
+ if [[ -e "${MEMTEST86_IMAGE}" ]] && is_path_readable_by_grub "${MEMTEST86_IMAGE}" ; then
+ ## image exists, create menu entry
+ echo "Found memtest86+ image: ${MEMTEST86_IMAGE}" >&2
+ _GRUB_MEMTEST_HINTS_STRING="$(${grub_probe} --target=hints_string ${MEMTEST86_IMAGE})"
+ _GRUB_MEMTEST_FS_UUID="$(${grub_probe} --target=fs_uuid ${MEMTEST86_IMAGE})"
+ _GRUB_MEMTEST_REL_PATH="$(make_system_path_relative_to_its_root ${MEMTEST86_IMAGE})"
+ cat << EOF
+if [ x\$grub_platform = xpc ]; then
+ menuentry "Memory Tester (memtest86+)" ${CLASS} {
+ search --fs-uuid --no-floppy --set=root ${_GRUB_MEMTEST_HINTS_STRING} ${_GRUB_MEMTEST_FS_UUID}
+ linux16 ${_GRUB_MEMTEST_REL_PATH} ${GRUB_CMDLINE_MEMTEST86}
+ }
+fi
+EOF
+ fi
+fi