29.2. 关于 [U]EFI x86_64 支持的通用说明¶
EFI 和 UEFI 这两个术语在本文档中可以互换使用。
虽然下面的工具 _不是_ 构建内核所必需的,但下面列出了具有 EFI 固件和规范的 x86_64 平台所需的引导加载程序支持和相关工具。
UEFI 规范:http://www.uefi.org
在 UEFI x86_64 平台上引导 Linux 内核需要引导加载程序支持。 可以使用具有 x86_64 支持的 Elilo。
带有 EFI/UEFI 固件的 x86_64 平台。
29.2.1. 机制¶
使用以下配置构建内核
CONFIG_FB_EFI=y CONFIG_FRAMEBUFFER_CONSOLE=y
如果需要 EFI 运行时服务,则应选择以下配置
CONFIG_EFI=y CONFIG_EFIVAR_FS=y or m # optional
在磁盘上创建一个 VFAT 分区
将以下内容复制到 VFAT 分区
具有 x86_64 支持的 elilo 引导加载程序、elilo 配置文件、第一步中构建的内核映像以及相应的 initrd。 有关构建 elilo 及其依赖项的说明,可以在 elilo sourceforge 项目中找到。
启动到 EFI shell 并调用 elilo,选择第一步中构建的内核映像。
如果某些或所有 EFI 运行时服务不起作用,您可以尝试以下内核命令行参数来关闭部分或全部 EFI 运行时服务。
- noefi
关闭所有 EFI 运行时服务
- reboot_type=k
关闭 EFI 重启运行时服务
如果 EFI 内存映射中有 E820 映射中没有的额外条目,您可以使用以下内核命令行参数将这些条目包含在内核可用的物理 RAM 内存映射中。
- add_efi_memmap
包含可用物理 RAM 的 EFI 内存映射