把 iPXE 烧录到 ROM¶
对于 iPXE 的永久部署,你可以把它烧录到网卡的扩展 ROM 中,替代网卡原有的传统 PXE ROM。大多数现代网卡把扩展 ROM 存储在闪存中,并且大多数厂商会提供让你重新刷写扩展 ROM 的工具。

iPXE ROM 会在 BIOS 启动菜单中显示为一个启动设备。有些 BIOS 不在启动菜单中显示具体设备,而是显示"Boot from LAN"(从 LAN 启动)之类的通用选项。如果启动菜单和 BIOS 配置菜单中都没有这样的条目,并且 iPXE 没有自动启动,你可能需要使用 NONPNP_HOOK_INT19 构建时选项。
iPXE ROM 将成为网卡的永久组成部分;如果你把网卡移到另一台机器上,iPXE ROM 在新机器上也可用。
网卡原始设备制造商(OEM)可以在生产时把 iPXE 烧录到他们的网卡中。提供包含 iPXE ROM 的网卡不收取许可费用,但请注意,你必须遵守 iPXE 的 GPL 许可条款。最简单的做法是把你的代码树发布到 http://git.ipxe.org 上,包括你所做的任何代码或配置更改。要以这种方式安排发布你的代码树,请联系 vendor-support@ipxe.org。
构建 ROM 镜像¶
你需要为你的特定网卡构建一个 iPXE ROM 镜像。为此,你需要知道相关的 PCI 厂商 ID 和设备 ID。你可以使用 lspci -nn 查找网卡的相关 ID:
[user@machine ~]# lspci -nn
00:00.0 Host bridge [0600]: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge [8086:7190] (rev 03)
00:01.0 PCI bridge [0604]: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge [8086:7191] (rev 03)
...
00:0d.0 Ethernet controller [0200]: 3Com Corporation 3c900B-TPO Etherlink XL [Cyclone] [10b7:9004] (rev 04)
/^^^^^^^^^
this is the PCI vendor and device ID _/
...
在这个例子中,我们看到 PCI 厂商 ID 是 10b7,PCI 设备 ID 是 9004。现在你可以使用如下命令为网卡构建 iPXE ROM:
make bin/vvvvdddd.rom
其中 vvvv 和 dddd 是网卡的 PCI 厂商 ID 和设备 ID。对于上面的例子,PCI 厂商 ID 为 10b7、PCI 设备 ID 为 9004,你应该使用:
make bin/10b79004.rom
记下 ROM 镜像文件(在上面的例子中是 bin/10b79004.rom)。
把镜像烧录到 ROM¶

要把镜像文件烧录到闪存中,你需要使用专门支持你的网卡的工具。厂商通常会为他们的网卡提供这样的工具(通常只有 DOS 可执行文件)。你也可以考虑使用 flashrom,它是一个支持多种网卡和芯片的通用刷写工具。这里有更详细的介绍。
针对以下适配器有单独的说明: