Table of Contents

Burning gPXE into ROM

For a permanent deployment of gPXE, 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 update the expansion ROM.

A network card

The gPXE 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 gPXE ROM will become a permanent fixture of your network card; if you move the card to another machine then the gPXE ROM will be available in the new machine.

Network card Original Equipment Manufacturers (OEMs) can burn gPXE into their cards at the point of manufacture. There are no licensing fees for providing cards containing gPXE ROMs, but please be aware that you must comply with gPXE's GPL license terms.

Determining the PCI ID

Some expansion ROMs

To build a ROM image for your network card, you need to know the PCI vendor and device IDs for your card. The BIOS may check the PCI IDs embedded within the ROM image against the PCI IDs of the card; if they do not match then some BIOSes will ignore the ROM.

You can identify your card's PCI IDs using a tool such as lspci:

  [root@localhost]# lspci
  00:00.0 Host bridge: Intel 82865G/PE/P DRAM Controller
  00:01.0 PCI bridge: Intel 82865G/PE/P AGP Controller
  00:1d.0 USB Controller: Intel 82801EB/ER USB UHCI Controller
  00:1d.1 USB Controller: Intel 82801EB/ER USB UHCI Controller
  00:1e.0 PCI bridge: Intel 82801 PCI Bridge
  01:00.0 VGA compatible controller: ATI Radeon RV100
  02:00.0 Ethernet controller: D-Link System Inc DGE-528T

In this example, the network card is the last line of output, with the PCI bus:dev.fn number 02:00.0. To find the PCI vendor and device ID, use

  lspci -n -s 02:00.0

where 02:00.0 is the PCI bus:dev.fn number corresponding to your network card. You should see something like

  [root@localhost]# lspci -n -s 02:00.0
  02:00.0 Class 0200: 1186:4300 (rev 10)

Make a note of the vendor and device IDs (1186 and 4300 respectively in the above example).

Building the ROM image

Download gPXE and build a ROM image:

  cd gpxe/src
  make bin/11864300.rom

An expansion ROM

where 1186 and 4300 are the PCI vendor and device IDs for your network card. Make a note of the ROM image file (bin/11864300.rom in the above example).

Burning the image into ROM

To burn the image file into ROM, you will need to use a utility specific to your network card. Instructions are available for: