152 lines
7.3 KiB
Text
152 lines
7.3 KiB
Text
21 Supported boot targets
|
|
*************************
|
|
|
|
X86 support is summarised in the following table. "Yes" means that the
|
|
kernel works on the given platform, "crashes" means an early kernel
|
|
crash which we hope will be fixed by concerned kernel developers. "no"
|
|
means GRUB doesn't load the given kernel on a given platform.
|
|
"headless" means that the kernel works but lacks console drivers (you
|
|
can still use serial or network console). In case of "no" and "crashes"
|
|
the reason is given in footnote.
|
|
BIOS Coreboot
|
|
BIOS chainloading yes no (1)
|
|
NTLDR yes no (1)
|
|
Plan9 yes no (1)
|
|
Freedos yes no (1)
|
|
FreeBSD bootloader yes crashes (1)
|
|
32-bit kFreeBSD yes crashes (5)
|
|
64-bit kFreeBSD yes crashes (5)
|
|
32-bit kNetBSD yes crashes (1)
|
|
64-bit kNetBSD yes crashes
|
|
32-bit kOpenBSD yes yes
|
|
64-bit kOpenBSD yes yes
|
|
Multiboot yes yes
|
|
Multiboot2 yes yes
|
|
32-bit Linux (legacy protocol) yes no (1)
|
|
64-bit Linux (legacy protocol) yes no (1)
|
|
32-bit Linux (modern protocol) yes yes
|
|
64-bit Linux (modern protocol) yes yes
|
|
32-bit XNU yes ?
|
|
64-bit XNU yes ?
|
|
32-bit EFI chainloader no (2) no (2)
|
|
64-bit EFI chainloader no (2) no (2)
|
|
Appleloader no (2) no (2)
|
|
|
|
Multiboot Qemu
|
|
BIOS chainloading no (1) no (1)
|
|
NTLDR no (1) no (1)
|
|
Plan9 no (1) no (1)
|
|
FreeDOS no (1) no (1)
|
|
FreeBSD bootloader crashes (1) crashes (1)
|
|
32-bit kFreeBSD crashes (5) crashes (5)
|
|
64-bit kFreeBSD crashes (5) crashes (5)
|
|
32-bit kNetBSD crashes (1) crashes (1)
|
|
64-bit kNetBSD yes yes
|
|
32-bit kOpenBSD yes yes
|
|
64-bit kOpenBSD yes yes
|
|
Multiboot yes yes
|
|
Multiboot2 yes yes
|
|
32-bit Linux (legacy protocol) no (1) no (1)
|
|
64-bit Linux (legacy protocol) no (1) no (1)
|
|
32-bit Linux (modern protocol) yes yes
|
|
64-bit Linux (modern protocol) yes yes
|
|
32-bit XNU ? ?
|
|
64-bit XNU ? ?
|
|
32-bit EFI chainloader no (2) no (2)
|
|
64-bit EFI chainloader no (2) no (2)
|
|
Appleloader no (2) no (2)
|
|
|
|
ia32 EFI amd64 EFI
|
|
BIOS chainloading no (1) no (1)
|
|
NTLDR no (1) no (1)
|
|
Plan9 no (1) no (1)
|
|
FreeDOS no (1) no (1)
|
|
FreeBSD bootloader crashes (1) crashes (1)
|
|
32-bit kFreeBSD headless headless
|
|
64-bit kFreeBSD headless headless
|
|
32-bit kNetBSD crashes (1) crashes (1)
|
|
64-bit kNetBSD yes yes
|
|
32-bit kOpenBSD headless headless
|
|
64-bit kOpenBSD headless headless
|
|
Multiboot yes yes
|
|
Multiboot2 yes yes
|
|
32-bit Linux (legacy protocol) no (1) no (1)
|
|
64-bit Linux (legacy protocol) no (1) no (1)
|
|
32-bit Linux (modern protocol) yes yes
|
|
64-bit Linux (modern protocol) yes yes
|
|
32-bit XNU yes yes
|
|
64-bit XNU yes (4) yes
|
|
32-bit EFI chainloader yes no (3)
|
|
64-bit EFI chainloader no (3) yes
|
|
Appleloader yes yes
|
|
|
|
ia32 IEEE1275
|
|
BIOS chainloading no (1)
|
|
NTLDR no (1)
|
|
Plan9 no (1)
|
|
FreeDOS no (1)
|
|
FreeBSD bootloader crashes (1)
|
|
32-bit kFreeBSD crashes (5)
|
|
64-bit kFreeBSD crashes (5)
|
|
32-bit kNetBSD crashes (1)
|
|
64-bit kNetBSD ?
|
|
32-bit kOpenBSD ?
|
|
64-bit kOpenBSD ?
|
|
Multiboot ?
|
|
Multiboot2 ?
|
|
32-bit Linux (legacy protocol) no (1)
|
|
64-bit Linux (legacy protocol) no (1)
|
|
32-bit Linux (modern protocol) ?
|
|
64-bit Linux (modern protocol) ?
|
|
32-bit XNU ?
|
|
64-bit XNU ?
|
|
32-bit EFI chainloader no (2)
|
|
64-bit EFI chainloader no (2)
|
|
Appleloader no (2)
|
|
|
|
1. Requires BIOS
|
|
2. EFI only
|
|
3. 32-bit and 64-bit EFI have different structures and work in
|
|
different CPU modes so it's not possible to chainload 32-bit
|
|
bootloader on 64-bit platform and vice-versa
|
|
4. Some modules may need to be disabled
|
|
5. Requires ACPI
|
|
|
|
PowerPC, IA64 and Sparc64 ports support only Linux. MIPS port
|
|
supports Linux and multiboot2.
|
|
|
|
21.1 Boot tests
|
|
===============
|
|
|
|
As you have seen in previous chapter the support matrix is pretty big
|
|
and some of the configurations are only rarely used. To ensure the
|
|
quality bootchecks are available for all x86 targets except EFI
|
|
chainloader, Appleloader and XNU. All x86 platforms have bootcheck
|
|
facility except ieee1275. Multiboot, multiboot2, BIOS chainloader,
|
|
ntldr and freebsd-bootloader boot targets are tested only with a fake
|
|
kernel images. Only Linux is tested among the payloads using Linux
|
|
protocols.
|
|
|
|
Following variables must be defined:
|
|
|
|
GRUB_PAYLOADS_DIR directory containing the required kernels
|
|
GRUB_CBFSTOOL cbfstool from Coreboot package (for coreboot
|
|
platform only)
|
|
GRUB_COREBOOT_ROM empty Coreboot ROM
|
|
GRUB_QEMU_OPTS additional options to be supplied to QEMU
|
|
|
|
Required files are:
|
|
|
|
kfreebsd_env.i386 32-bit kFreeBSD device hints
|
|
kfreebsd.i386 32-bit FreeBSD kernel image
|
|
kfreebsd.x86_64, same from 64-bit kFreeBSD
|
|
kfreebsd_env.x86_64
|
|
knetbsd.i386 32-bit NetBSD kernel image
|
|
knetbsd.miniroot.i386 32-bit kNetBSD miniroot.kmod.
|
|
knetbsd.x86_64, same from 64-bit kNetBSD
|
|
knetbsd.miniroot.x86_64
|
|
kopenbsd.i386 32-bit OpenBSD kernel bsd.rd image
|
|
kopenbsd.x86_64 same from 64-bit kOpenBSD
|
|
linux.i386 32-bit Linux
|
|
linux.x86_64 64-bit Linux
|
|
|