This is an old revision of the document!


Driver FAQ

How do I check if a network card is supported?

When a PCI network card is detected, its PCI ID is used to identify it and choose an appropriate driver. Each network card driver has a list of PCI IDs it supports.

The format of a PCI ID is VVVV:DDDD, where the VVVV field is called the Vendor ID and the DDDD field is called the Device ID.

  1. Find out the PCI ID of the network card:
    • On Linux using lspci -nn. Look for Ethernet controller.
    • In gPXE using show net0/busid. Ignore for first byte, e.g. busid 01:10:ec:81:39 → PCI ID 10ec:8139.
  2. Check if there is a gPXE driver for this PCI ID:
    • Ask gpxebot on #etherboot IRC like this: gpxebot: lspci 10ec:8139.
    • Search the gPXE source code for the Device ID, looking for lines of code like this:
PCI_ROM(0x10ec, 0x8139, "rtl8139", "Realtek 8139", 0),

What if there is no driver for my network card?

If there is no native gPXE driver for a network card, there are two choices:

  1. Develop a driver or extend an existing driver to support the network card.
  2. Use the generic UNDI driver, which works for many use cases but is not equivalent to a native driver.

Before falling back to the UNDI driver, speak with the developers about the effort required to add native driver support for the network card. Sometimes there is already a native driver and it simply needs a line added with the PCI ID of the network card.

There are developers in the community who do paid driver development work and can help you add support for new network cards. Ask on the mailing list.

Can open source Linux or BSD drivers be used with gPXE?

No. Although the gPXE driver API is similar to the Linux API, drivers are not compatible at the source or binary level. Open source drivers can be used as a starting point for developing gPXE drivers. This is especially useful for network cards where no datasheet is available from the vendor.

How can I use the UNDI driver if there is no native driver?

Why write native drivers if UNDI works with every network card?


QR Code
QR Code faq:drivers (generated for current page)