We've seen this elsewhere too, always on Sandybridge-based Dell Latitude
laptops, which Canoeboot doesn't support anyway (the above report is for
Libreboot, upon which Canoeboot is based), but:
Although we've only seen this thus far (as per user reports) on Intel
SandyBridge based Dell Latitude laptops, we advise:
**DO NOT use a ROM image where GRUB is the first payload. If you want to
use the GRUB payload, please use a ROM image with `seabios_` at the start
of the file name. Avoid images with `grub_` at the start of the file name.**
ROM images with `grubonly` in them should also be avoided; if you want GRUB
to be the first thing you see (without interruption), use a ROM image
with `seabios_` at the start of the file name, and `grubfirst` at the end;
these place a bootorder file in CBFS, so that SeaBIOS loads GRUB first, but
you can still press ESC to bring up the SeaBIOS boot select menu.
The error above, in the linked bug report, occurs on `grub_free()`
or `grub_realloc()` and could be caused by anything in GRUB; the user tested
on memtest86plus and got no errors, and SeaBIOS works; BIOS GRUB (from a distro)
also works, where GRUB doesn't need as many drivers; we suspect this may be
a use-after-free in a GRUB driver, or otherwise something writing to heap memory
wrongly. The bug is not yet known, only the symptom (the fatal error message).
Canoeboot releases after 20240510 will *only* (on x86) contain ROM images where
SeaBIOS is the first payload, without disabling the SeaBIOS menu (no `grubonly`). You'll still be able to use GRUB, either by pressing ESC for the boot
select menu, and/or using an image with `grubfirst` in the file name so that
SeaBIOS loads it first (while still permitting boot select via ESC keypress).
Canoeboot releases after 20240510 will *only* (on x86) contain ROM images where
SeaBIOS is the first payload, without disabling the SeaBIOS menu (no `grubonly`).
GRUB's code is vast, and complicated, so this policy change is permanent,
until GRUB can be well-audited (likely forked, with dead/legacy code removed).
SeaBIOS code is much smaller and more robust. Remember always: code equals bugs.
Flashprog
=========
**NOTE: Canoeboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 3 May 2024, which is a fork of flashrom.**
...
...
@@ -161,11 +209,45 @@ an option in the boot menu.
ROM images that have `seabios_withgrub` in the file name start with SeaBIOS
first, but also have GRUB available in the boot menu when you press ESC.
ROM images with this and `grubonly` in the image start SeaBIOS, but only load
GRUB from SeaBIOS and the SeaBIOS menu is disabled. Use these images if you
only want GRUB; they are provided on systems that only have VGA ROM-based
initialisation, usually discrete graphics cards on desktop machines.
Which systems are supported?
============================
[Refer to the hardware compatibility page](../hardware/)