For a permanent deployment of iPXE, you can burn it into your network card's expansion ROM, as a replacement for the card's legacy PXE ROM. Most modern network cards store their expansion ROMs in flash memory, and most manufacturers will provide a utility to allow you to reflash the expansion ROM.
The iPXE ROM will show up as a boot device in the BIOS boot menu. Some BIOSes do not show specific devices in the boot menu, but instead show a generic option such as “Boot from LAN”.
The iPXE ROM will become a permanent fixture of your network card; if you move the card to another machine then the iPXE ROM will be available in the new machine.
Network card Original Equipment Manufacturers (OEMs) can burn iPXE into their cards at the point of manufacture. There are no licensing fees for providing cards containing iPXE ROMs, but please be aware that you must comply with iPXE's GPL license terms. The easiest way to do this is by publishing your tree on http://git.ipxe.org, including any code or configuration changes that you make. To arrange to publish your tree in this way, please contact email@example.com.
You will need to build an iPXE ROM image for your specific network card. For this, you need to know the relevant PCI vendor and device IDs. First, identify the PCI
bus:device.fn address of your network card using
[root@machine ~]# lspci 00:00.0 Host bridge: Intel Corporation 4 Series Chipset DRAM Controller 00:02.0 VGA controller: Intel Chipset Integrated Graphics Controller ... 00:19.0 Ethernet controller: Intel 82567LM-3 Gigabit Network Connection ^^^^^^^ \_ this is the PCI bus:device.fn address ...
and then discover the vendor and device IDs of your network card using
[root@machine ~]# lspci -n -s 00:19.0 00:19.0 0200: 8086:10de (rev 02) ^^^^^^^^^ \_ these are the vendor and device IDs
In this example, we see that the PCI vendor ID is 8086 and the PCI device ID is 10de. You can now build an iPXE ROM for your network card using:
where vvvv and dddd are the PCI vendor and device IDs of your network card. For the above example, with a PCI vendor ID of 8086 and a PCI device ID of 10de, you would use:
Make a note of the ROM image file (bin/808610de.rom in the above example).