grub payload warning

Signed-off-by: Leah Rowe <info@minifree.org>
master
Leah Rowe 2024-05-27 12:02:00 +01:00
parent 72aa276b21
commit 66aeddb1bc
1 changed files with 82 additions and 0 deletions

View File

@ -3,6 +3,54 @@ title: Installation instructions
x-toc-enable: true x-toc-enable: true
... ...
**GRUB payload warning**
====================
Firstly, it should be stated: in almost all cases, GRUB works just fine, on
all of the machines that we test, but as of 26 May 2024 we got the error
report:
See: <https://codeberg.org/libreboot/lbmk/issues/216>
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) **NOTE: Canoeboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 3 May 2024, which is a fork of flashrom.** 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 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. 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? Which systems are supported?
============================ ============================
[Refer to the hardware compatibility page](../hardware/) [Refer to the hardware compatibility page](../hardware/)
Intel GbE MAC address (IFD-based systems)
=====================================================================
You can change the MAC address in flash, on these machines. See:
[nvmutil documentation](nvmutil.md)
The MAC address is stored in a region of the boot flashed called *GbE NVM*
which is short for *gigabit ethernet non-volatile memory*. Refer to the
following article:
For GM45/ICH9M systems (e.g. ThinkPad X200/T400, Dell Latitude E6400), see:
[ich9utils documentation](ich9utils.md) (you can also use nvmutil, see link
above)
Canoeboot puts a default MAC address in the available ROM images, but this is
a generic MAC address and it's identical on every ROM image. Technically, you
can use it but if you encounter other Canoeboot users on the same ethernet
switch, using the same physical network as you, you will encounter a MAC
address conflict.
NOTE: R500 thinkpads do not have an Intel gigabit ethernet NIC, so on that
laptop you can just flash the default ROM and you do not have to worry.
There are also some Intel X4X platforms that use an ICH10 southbridge,
supported in Canoeboot, but these are flashed in a *descriptorless* setup,
which means that the MAC address is irrelevant (either there will be an Intel
PHY module that is now unusable, and you use an add-on card, or it doesn't use
an Intel PHY module and the onboard NIC is usable).
Install via host CPU (internal flashing) Install via host CPU (internal flashing)
======================================== ========================================