parent
72aa276b21
commit
66aeddb1bc
|
@ -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)
|
||||||
========================================
|
========================================
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue