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
 | |
| 
 |