grub: Supported kernels

 
 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