From a743087593a5fd5b33e2650591cada09929c27a6 Mon Sep 17 00:00:00 2001 From: Kalpesh Panchal Date: Fri, 10 Nov 2023 20:59:59 +0000 Subject: [PATCH] package/memtest86: bump to version 6.20 - bumped package version to 6.20 - as 6.20 prebuilt version is not available on same download site but source code is released at https://github.com/memtest86plus/memtest86plus/releases so updated mk file to download source from git release - prebuilt binary not found in 6.20 package and also README.md does not mention any toolchain limitation for compilation so added source build command depending on 32-bit or 64-bit x86 target. - corrected License file name - installed memtest binaries to image folder like other bootable images(grub , kernel) are copied. - updated config help as per package README.md Signed-off-by: Kalpesh Panchal Signed-off-by: Abhishek Anand Signed-off-by: Brandon Maier [yann.morin.1998@free.fr: - fix check-package errors - fix hash file - better install commands ] Signed-off-by: Yann E. MORIN --- package/memtest86/Config.in | 33 +++++++++++++++++++++++++------- package/memtest86/memtest86.hash | 4 ++-- package/memtest86/memtest86.mk | 29 +++++++++++++++++++++------- 3 files changed, 50 insertions(+), 16 deletions(-) diff --git a/package/memtest86/Config.in b/package/memtest86/Config.in index 79c0161020..c9a8cf749f 100644 --- a/package/memtest86/Config.in +++ b/package/memtest86/Config.in @@ -14,14 +14,33 @@ config BR2_PACKAGE_MEMTEST86 back again and verifies whether the result of the read is the same as what was written to memory. - Memtest86+ will only work on 32-bit or 64-bit x86 targets. - It boots as an i486 program and autodetects hardware. It can - be added to the grub2 boot menu by adding the following - lines to the bottom of /boot/grub/grub.cfg - note the use of - linux16. + Memtest86+ will only work on 32-bit or 64-bit x86 targets. It + boots and autodetects hardware. Refer README.md for boot + options. - menuentry "Memtest86+" { - linux16 /boot/memtest86+.bin + It can be loaded and run either directly by a PC BIOS (legacy + or UEFI) or via an intermediate bootloader that supports the + Linux 16-bit, 32-bit, 64-bit, or EFI handover boot protocol. + + It can be added to the grub2 boot menu by adding the following + lines to the bottom of grub.cfg + + Example for legacy BIOS using the Linux 16-bit boot protocol, + with built-in support for USB keyboards or running on a serial + line: + + menuentry "Start Memtest86+ (USB keyboards)" { + linux16 /boot/memtest.bin keyboard=both + } + menuentry "Start Memtest86+ (serial line)" { + linux16 /boot/memtest.bin console=ttyS0,115200 + } + + Or for UEFI BIOS using the Linux 32-bit or 64-bit boot + protocols, using USB keyboard: + + menuentry "Start Memtest86+ (USB keyboards)" { + linux /EFI/BOOT/memtest.efi keyboard=both } Other boot loaders will have similar requirements. diff --git a/package/memtest86/memtest86.hash b/package/memtest86/memtest86.hash index 559ae0ac6c..695e6a234b 100644 --- a/package/memtest86/memtest86.hash +++ b/package/memtest86/memtest86.hash @@ -1,3 +1,3 @@ # locally computed using sha256sum -sha256 142127b7953fbd829b1057fb64a78d3340c2b771484230a7347e94530a0d9039 memtest86+-5.01.tar.gz -sha256 2e15e2174b86640d7fbfcb62b51d9182062d9db71d66a46e5b01d736c68150ea README +sha256 463b2db66128e45c96be76136272e2ee940f1319804b1b88cc2ef04edccd01d8 memtest86-6.20.tar.gz +sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE diff --git a/package/memtest86/memtest86.mk b/package/memtest86/memtest86.mk index eb071cc29d..c0f85755fe 100644 --- a/package/memtest86/memtest86.mk +++ b/package/memtest86/memtest86.mk @@ -4,15 +4,30 @@ # ################################################################################ -MEMTEST86_VERSION = 5.01 -MEMTEST86_SOURCE = memtest86+-$(MEMTEST86_VERSION).tar.gz -MEMTEST86_SITE = http://www.memtest.org/download/$(MEMTEST86_VERSION) +MEMTEST86_VERSION = 6.20 +MEMTEST86_SITE = $(call github,memtest86plus,memtest86plus,v$(MEMTEST86_VERSION)) MEMTEST86_LICENSE = GPL-2.0 -MEMTEST86_LICENSE_FILES = README +MEMTEST86_LICENSE_FILES = LICENSE +MEMTEST86_INSTALL_IMAGES = YES +MEMTEST86_INSTALL_TARGET = NO -# memtest86+ is sensitive to toolchain changes, use the shipped binary version -define MEMTEST86_INSTALL_TARGET_CMDS - $(INSTALL) -m 0755 -D $(@D)/precomp.bin $(TARGET_DIR)/boot/memtest86+.bin +ifeq ($(BR2_i386),y) +MEMTEST86_BUILD_DIR = build32 +else +ifeq ($(BR2_x86_64),y) +MEMTEST86_BUILD_DIR = build64 +endif +endif + +define MEMTEST86_BUILD_CMDS + $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D)/$(MEMTEST86_BUILD_DIR) +endef + +define MEMTEST86_INSTALL_IMAGES_CMDS + $(foreach ext, bin efi, \ + $(INSTALL) -m 0755 -D $(@D)/$(MEMTEST86_BUILD_DIR)/memtest.$(ext) \ + $(BINARIES_DIR)/memtest.$(ext) + ) endef $(eval $(generic-package))