IPXE.EFI does not load USB network adapters
-
Hi there,
after several successful imaging tasks, I’m stuck with a notebook that has no onboard LAN Adapter. IPXE.EFI is loading successfully, but then the network adapter that has loaded IPXE.EFI will not get active:iPXE 1.21.1+ (gcf534)… (Brand new recompiled today)
Waiting for link-up on net0…
DHCP failed.Using the iPXE shell, I found out, that the network adapter is not detected (I used another notebook with an onboard NIC, but booted from USB. Same behavior, but I could see, that theonly adpater that was found after loading IPXE.EFI was the onboard adapter, not the USB.
Then I cloned the IPXE github repository directly and compiled the IPXE.EFI from scratch. This time the IPXE.EFI is connecting the network adapter, but I get into an endless loop:
Next server: (correct ip address)
Filename: ipxe.efi
tftp://(ip-addess)/ipxe.efi… ok
iPXE.efi: 1041408 bytes [EFI]
iPXE initialising devices…
file:autoexec.ipxe… Not found
file:/autoexec.ipxe… Not found…
And the back to:
iPXE 1.21.1+ (gcf534)… -
I found the solution for this issue here: https://forums.fogproject.org/topic/17997/booting-uefi-only-devices-with-usb-network-adapters-problem-and-solution
-
Just follow these steps:
Replace the following files (I used the default installation):/root/fogproject/utils/FOGiPXE/buildipxe.sh /root/ipxe/src/config/usb.hthen fire:
/root/fogproject/utils/FOGiPXE/buildipxe.shand finally copy the files to the target folder:
cp -r /root/fogproject/packages/ftp/* /tftpboot -
@FlorianLenz I did all these steps and it worked with normal USB adapters, but with USB-C-Ethernet adapters does not work, could you help me out?
(It could be important to know this type-c adapter have 1 HDMI port and 3 normal usb ports) -
@FlorianLenz , I used your steps from this and the other forum post. It seems to work on my “HP USB-C Dock G5,” but not on my “HP USB-C to RJ45 Adapter G2.”
Which is weird, because the G2 adapter has PXE boot and MAPT compatibility.When i boot with my G2 adapter its showing the following:
Start PXE over IPv4 Station IP address is (ip) server IP address is (ip) NBP filename is ipxe.efi NBP filesize is 1164288 Bytes Downloading NBP file... NBP file downloaded successfully. iPXE initialising devices... autoexec.ipxe... Not found (https://ipxe.org/2d12618e) iPXE 1.21.1+ (g9486) Features: DNS FTP HTTP HTTPS iSCSI NFS TFTP VLAN SRP AoE EFI Menu Configuring (net0 (0C:37:96.....)) . . .From there, it just gets stuck for a bit, then the laptop shuts off and boots back to the original OS.
Do you have any idea how to resolve this? -
@CoNickt @avh2025
Not all usb ethernet adapters are created equal. I would usually say to just bite the bullet and get the vendor specific adapter but it looks like you already did that. I have usb and usb-c adapters that work fine but different uefi firmwares behave differently. i.e. Microsoft surface just has to have its surface branded adapter for native boot to work. HP will work sometimes with the dell or lenovo pxe capable usb-c adapters. We also recently got 2 different hp laptop models where one had to use snponly.efi and the other was fine with ipxe.efi. I maintain a table of models and which adapters work with what we have. Lots of things do just work once you have a collection of usb adapters. Unfortunately, it’s an issue of hardware vendors adding proprietary limitations, but luckily between fog and ipxe you can typically get it working pretty smooth.Generally if you’re able to pxe boot though, it should find the adapter within pxe. It could be a case of it being too “new” an adapter that requires a different driver not in ipxe. In that case though, I would try using
snponly.efias it may have different behavior with less things loaded in the pxe side. It may also be a driver or setting needed in ipxe that could be handled in a custom compile of ipxe, there’s some info on that here https://docs.fogproject.org/en/latest/compile_ipxe_binariesIt’s also possible to use a tool such as rEFInd to get to a uefi cli console. If you load the ipxe.efi and or snponly.efi and then if you can obtain them the efi driver for the adapter you can do a
fs0:to enter the usb disk (it may befs1:orfs2:you gottalson each disk to find the right one) thenload usb-network-driver.efithenipxe.efito ensure the usb network driver is loaded in the efi for that session and then boot direct to the pxe file which will start the fog network boot. It’s a bit of a hassle but it usually works for me when all else fails. I have an old startech usb 2 ethernet adapter I do this with. This has worked universally but it’s not an ideal solution, but can be poc that it can be done on any device.I hope my rant was helpful.