• Recent
    • Unsolved
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    IPXE.EFI does not load USB network adapters

    Scheduled Pinned Locked Moved Hardware Compatibility
    6 Posts 4 Posters 498 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      FlorianLenz
      last edited by

      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)…

      1 Reply Last reply Reply Quote 1
      • F
        FlorianLenz
        last edited by

        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

        A 1 Reply Last reply Reply Quote 1
        • F
          FlorianLenz
          last edited by

          Just follow these steps:
          Replace the following files (I used the default installation):

          /root/fogproject/utils/FOGiPXE/buildipxe.sh
          /root/ipxe/src/config/usb.h
          

          then fire:

          /root/fogproject/utils/FOGiPXE/buildipxe.sh
          

          and finally copy the files to the target folder:

          cp -r /root/fogproject/packages/ftp/* /tftpboot
          
          1 Reply Last reply Reply Quote 0
          • A
            avh2025 @FlorianLenz
            last edited by

            @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)

            1 Reply Last reply Reply Quote 0
            • C
              CoNickt
              last edited by

              @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?

              JJ FullmerJ 1 Reply Last reply Reply Quote 0
              • JJ FullmerJ
                JJ Fullmer Testers @CoNickt
                last edited by

                @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.efi as 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_binaries

                It’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 be fs1: or fs2: you gotta ls on each disk to find the right one) then load usb-network-driver.efi then ipxe.efi to 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.

                Have you tried the FogApi powershell module? It's pretty cool IMHO
                https://github.com/darksidemilk/FogApi
                https://fogapi.readthedocs.io/en/latest/
                https://www.powershellgallery.com/packages/FogApi
                https://forums.fogproject.org/topic/12026/powershell-api-module

                1 Reply Last reply Reply Quote 0
                • 1 / 1
                • First post
                  Last post

                98

                Online

                12.4k

                Users

                17.5k

                Topics

                156.0k

                Posts
                Copyright © 2012-2025 FOG Project