Which pxe file to use
-
Is there some good documentation on which pxe file to use? I just realized from another post that there are some other vendor specific pxe files like intel.kpxe, and a realtek one, etc.
I have been trying to use ipxe.pxe, and when that fails (typically says out of memory on older mobos) the I use undionly.pxe . (The basic intro docs I found only listed those two.) However, honestly, I don’t fully understand the difference, or why I would want one over the other, or if I should be using an Intel pxe file with Intel NICs, etc.
My DHCP server let’s me set the pxe file for each MAC address individually if needed.
I am guessing this is really a case of if it works it’s fine, but I wondered if there was any reason to pick a particular pxe file, other than the fact that it boots OK and exits OK.
Also many motherboards seem to offer the UEFI option to net boot (Which usually works with the ipxe.pxe) as well as a older op ROM method, like with an Intel card. Any reason to use one over the other if they both work for a given setup? (I know some mobos only support the legacy ROM booting in CSM mode).
As an aside, but related note for anyone wishing to learn more I found this YouTube video very helpful in explaining UEFI for legacy ROM in sufficient detail to really know what was going on:
https://www.youtube.com/watch?v=G_qKrJPuAmg&t=503s
Thanks.
-
@Flyer The vendor specific boot loaders are more of a legacy use that addresses specific “glitches” in the hardware for old hardware.
The most common iPXE boot loaders are undionly.kpxe (for bios) and snp.efi/snponly.efi (for usefi). Just be aware you can not boot a bios bootloader (undionly.kpxe) on a uefi system unless CSM is enabled. But then CSM would boot in bios mode. The same is the case for snp.efi, it will not boot on a bios based computer.
Both undionly.kpxe and snponly.efi use the nic’s built in universal driver for network support (UNDI for bios and SNP for efi). This avoids needing a specific boot loader for each hardware nic intel, vs broadcom, vs realtek. These versions of the iPXE boot loader is what the FOG developers recommend because they are pretty much universal within the firmware families.
There is one other class of iPXE boot loaders, these are ipxe.kpxe and ipxe.efi. These boot loaders are more like an OS in that they have all of the most common network drivers built into the boot loader. These tend to be bigger and slightly slower to boot since they must test each driver to see if it loads (note it talks only a fraction of a second to test this). Up until just a few years ago the SNP driver was very immature (as compared to undi which has been around for 30 years and was very stable), the fog developers recommended ipxe.efi (boot loader with all drivers built in) over snp.efi/snponly.efi. But now the SNP driver in modern hardware is very good and stable, so the SNP boot loader is now recommended unless you have a UEFI computer older than about 5 years then ipxe.efi should be used.
-
@george1421 Thank you for the reply. I meant that I was using ipxe.efi (Not my mistyped ipxe.pxe above) for the newer machines. I selected that based on the info on this page, since I do not use the built in DHCP server:
https://docs.fogproject.org/en/latest/installation/network-setup/
Perhaps those docs are out of date?
So it sounds like I should configure the UEFI machines to use snp.efi/snponly.efi
(and fall back only if I have problems)??
Thanks.
-
@Flyer Yes that page might need to be updated to include references to snp.efi driver. If your hardware model is really new you have a better chance that snp will work well. If your hardware is older then ipxe.efi will work well. It takes the ipxe developers time to update iPXE to support the latest and greatest network drivers for the ipxe.efi boot loader. snp is built into the latest and greatest network boards from the factory.
-
@george1421 said in Which pxe file to use:
There is one other class of iPXE boot loaders, these are ipxe.kpxe and ipxe.efi.
From my memory it is mainly ipxe.pxe. But anyhow, your explanation is wonderful! May we borrow this text to update the docs?
Up until just a few years ago the SNP driver was very immature. […] But now the SNP driver in modern hardware is very good and stable, so the SNP boot loader is now recommended unless you have a UEFI computer older than about 5 years then ipxe.efi should be used.
@george1421 Good point! Should be update the default dhcpd.conf generated by the FOG installer as well?
@Flyer There is some more information on the difference between .pxe, .kpxe and .kkpxe in a dated wiki article (linking to an even more dated reference). We are in the process of updating the docs. Thanks for pointing this out.
-
@Sebastian-Roth said in Which pxe file to use:
Should be update the default dhcpd.conf generated by the FOG installer as well?
@george1421 What do you think?
-
@Sebastian-Roth I would think is OK. Can we comment out the ipxe.efi and leave it in the config, but then add the snponly.efi to the installer? As long as people are deploying contemporary computers snp is value, but if the fog tech has primarily an old fleet just being able to uncomment one and comment the other would be an easy instruction fix from a support standpoint.
-
@george1421 All those binaries are shipped with FOG and installed by default - see the list of ipxe binaries on github.
It’s more or less a question on which binary we make the default when generating the dhcpd.conf - which obviously not everyone is using anyway.