Skip to contentSkip to conversation

Grub2 and Memtest86+

Buildroot Steve Kenton 2 participants 4 messages Jan 29, 2015 – Feb 3, 2015

lore
Share & tools
lore
#0 lore raw

I've been tinkering with adding memtest86+ V4.20 to the grub2 menu for my x86 target. It's straight forward.

The questions, is there interest in this and how to do this only for x86 targets. I've not dug into how the boot loaders are handled, yet, but it's apparently different from regular packages. Is there anyone who keeps track on the grub2 boot loader in buildroot?

Modify ~boot/grub2/grub.cfg to add the memtest entry and download the memtest86+ source tarball and then copy/rename the shipped precomp.bin file file to /boot/memtest86+.bin (It's a bootable 486 binary)

set default="0"
set timeout="5"

menuentry "Buildroot" {
linux /boot/bzImage root=/dev/sda1 console=tty1 quiet splash=silent
}

menuentry "Memtest86+" {
	linux16 /boot/memtest86+.bin
}

Steve Kenton

#1 lore raw

Dear Steve Kenton,

Quoted 8 lines · Steve Kenton

I've been tinkering with adding memtest86+ V4.20 to the grub2 menu for my x86 target. It's straight forward.

The questions, is there interest in this and how to do this only for x86 targets. I've not dug into how the boot loaders are handled, yet, but it's apparently different from regular packages. Is there anyone who keeps track on the grub2 boot loader in buildroot?

I'm not sure I can say I "keep track of grub2", but I did add the package last year.

Quoted 8 lines

Modify ~boot/grub2/grub.cfg to add the memtest entry and download the memtest86+ source tarball and then copy/rename the shipped precomp.bin file file to /boot/memtest86+.bin (It's a bootable 486 binary)

set default="0"
set timeout="5"

Quoted 7 lines

menuentry "Buildroot" {
linux /boot/bzImage root=/dev/sda1 console=tty1 quiet splash=silent
}

menuentry "Memtest86+" {
	linux16 /boot/memtest86+.bin
}

What I would suggest is to add a package for memtest86 in Buildroot, have it install the appropriate binary in /boot, and in its Config.in help text, indicate how to add it to the Grub menu.

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#2 lore raw
Quoted 6 lines · Thomas Petazzoni

Dear Steve Kenton,

Quoted 3 lines · Steve Kenton

I've been tinkering with adding memtest86+ V4.20 to the grub2 menu for my x86 target. It's straight forward.

Quoted 9 lines
Quoted 5 lines

The questions, is there interest in this and how to do this only for x86 targets. I've not dug into how the boot loaders are handled, yet, but it's apparently different from regular packages. Is there anyone who keeps track on the grub2 boot loader in buildroot?

I'm not sure I can say I "keep track of grub2", but I did add the package last year.

In my experimenting with grub2 it looks like it is leaking in host information. Here is a fragment from grub-install which is installed in ~host/usr/sbin.

When it tries to run other scripts like grub-mkimage it looks in /usr because of the prefix. At least when the host versions were not reachble I got an error about command not found. Does grub2 need to be configured with a prefix other than /usr since it's run on the host and not the target?

Steve Kenton

prefix="/usr"
exec_prefix="/usr"
datarootdir="${prefix}/share"
sbindir="${exec_prefix}/sbin"
bindir="${exec_prefix}/bin"
libdir="${exec_prefix}/lib"
sysconfdir="/etc"
PACKAGE_NAME=GRUB
PACKAGE_TARNAME=grub
PACKAGE_VERSION=2.00

export TEXTDOMAIN=grub
export TEXTDOMAINDIR="${datarootdir}/locale"

host_os=linux-gnu
source_dir=
target=
datadir="${datarootdir}"
if [ "x$pkgdatadir" = x ]; then

    pkgdatadir="${datadir}/grub"

fi
localedir="${datarootdir}/locale"

self="basename $0"

grub_mkimage="${bindir}/echo grub-mkimage | sed ${transform}" grub_probe="${sbindir}/echo grub-probe | sed ${transform}" grub_editenv="${bindir}/echo grub-editenv | sed ${transform}" grub_mkrelpath="${bindir}/echo grub-mkrelpath | sed ${transform}"

#3 lore raw
Quoted 6 lines · Steve Kenton
Quoted 1 line

In my experimenting with grub2 it looks like it is leaking in host information. Here is a fragment from grub-install which is installed in ~host/usr/sbin.

When it tries to run other scripts like grub-mkimage it looks in /usr because of the prefix. At least when the host versions were not reachble

I should say Ubuntu build host versions were not reachable to be clear

Steve

Quoted 3 lines

I got an error about command not found. Does grub2 need to be configured with a prefix other than /usr since it's run on the host and not the target?