29.2. 关于 [U]EFI x86_64 支持的通用说明

EFI 和 UEFI 这两个术语在本文档中可以互换使用。

虽然下面的工具 _不是_ 构建内核所必需的,但下面列出了具有 EFI 固件和规范的 x86_64 平台所需的引导加载程序支持和相关工具。

  1. UEFI 规范:http://www.uefi.org

  2. 在 UEFI x86_64 平台上引导 Linux 内核需要引导加载程序支持。 可以使用具有 x86_64 支持的 Elilo。

  3. 带有 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 内存映射