--- grub.d/39_memtest +++ grub.d/39_memtest @@ -77,3 +77,25 @@ find /boot -name "memtest-*.bin" -printf "$FMT\\n" | while read memtest ; do EOF done + +find /boot -name "elf-memtest-*" -printf "$FMT\\n" | while read memtest ; do + prepare_boot_cache= + echo "Found ELF memtest binary: $memtest" >&2 + + basename=`basename $memtest` + dirname=`dirname $memtest` + if [ "$dirname" = "." ]; then dirname=""; fi + + version=`echo $basename | sed -e "s,^[^0-9]*-,,g"` + + printf "menuentry \"Memtest86+-$version (ELF)\" {\n" + if [ -z "${prepare_boot_cache}" ]; then + prepare_boot_cache="$(prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} | sed -e "s/^/\t/")" + fi + printf '%s\n' "${prepare_boot_cache}" + echo " knetbsd $dirname/$basename" + cat << EOF +} +EOF + +done