UNSOLVED IPXE Boot Issue with Realtek RTL8153

  • Hello Everyone,

    Ill start with my setup
    FOG Version ([B]FOG 1.0.1[/B])
    OS Version ([B]Ubuntu 14.04[/B])

    I have updated the 64bit Kernel provided by the legendary Tom Elliot.

    Everything works flawlessly except for the new laptops purchased by the company. The problem is with the [B]Lenovo Yoga 12.5[/B]! It doesn’t have an Ethernet port so we purchased USB to Ethernet adapters ([B]Realtek RTL8153 Ethernet controller[/B]) supplied by Lenovo. [U]We are able to PXE boot the Lenovo’s[/U] with our old Ghost server but wanted to use them with FOG. The issue is that when we boot, iPXE is getting stuck on ‘iPXE Initialising Devices…’ (See attached image)

    Is it possible to disable iPXE with FOG 1.0.1 so that we can PXE (which seems to work with the Lenovo’s)?
    Is there an easy fix to this issue so that we can utilize iPXE booting?

    I appreciate any support on the issue.


  • Ok, After some more googling, I was able to find how to change to .kkpxe.
    I did this:
    sudo gedit /etc/dhcp/dhcp.conf
    and changed it in there
    after that I stopped and started the dhcp service.
    That certainly helped becuase now I get past the “initialising devices” hang-up.
    However, now it goes just a little farther and reboots.
    the last thing in the screen I see is
    then it reboots.
    Can anyone point where to go next?
    any key words I can google/search?

  • Edit the file /etc/dhcpd.conf and change the next-server to the IP address of your fog server.

    Change the filename to the boot file you want loaded.

  • @nweakland It depends on the distribution. Normally it’s just a conf file you’d change. You’ll see where it says undionly.kpxe and you’d just add the extra k.

  • Thank you Wayne, but my DHCP is handled by the FOG server.
    It’s all one unit.
    Would the same theory work?
    Modify the local DHCP server? How would I do that?

  • @nweakland

    If Windows Server handles your DHCP, then likely, all you need to do is modify your DHCP IPv4 Scope option 067 to undionly.kkpxe

  • Hello everyone.
    I think I may have the same problem here with the new Lenovo Yogo 12 and the realtek 8153 USB-Ethernet NIC.
    I get to
    iPXE initialising devices…
    and it hags there.
    In reading this post, it seems that I need to update my undionly.kpxe to undionly.kkpxe.
    My problem is I don’t even know what that means.
    I am VERY VERY green to linux command line manipulation.
    In fact, I was only able to get this working last year in the first place thanks to the wonderful patience and support from this community and Tom Elliott.
    But I have been using this server flawlessly for that entire year.
    I was able to update from 1.0.1 to 1.2.0 and then go do subversion to the newest. All of that seemed to go fine.
    Can anyone please help with directions on how to change the .kpxe to .kkpxe?
    Thanks in advance.

    Oh, I have Ubuntu 14.04 LTS 64 bit OS
    FOG 1.2
    FOG web gui reads 3735

  • Good reminder; I also need to report that HP Pro Book 440 G2 requires the boot file changed to undionly.kkpxe

  • Hey guys, I’m glad I found this thread. I just wanted to add here that changing the ipxe file to undionly.kkpxe works on HP Mini 2102 netbooks which run this chipset (FOG on CentOS 6.6 and FOG 1.2.0).

  • Developer

    [url]http://fogproject.org/wiki/index.php/WorkingDevices#Computers[/url]: Updated adding HP Probook 4520s as a working device with Fog 1.x.x and the undionly.kkpxe ipxe file.

  • FYI: undionly.kkpxe worked for me on HP Pro Book 4520s part WH333UT#ABA. I was getting the iPXE initializing stuck message with undionly.kpxe

  • Developer

    [quote=“Sam Wennerlund, post: 39423, member: 20713”]

    Also have tried adding the host to FOG first and it still is stuck at “iPXE initialising devices”[/quote]

    Have you tried the undionly.kkpxe
    Have you tried the ipxe.kpxe
    Have you tried the undionly.kpx.INTEL

    I would recommend giving one of these a shot.

  • struggling with this a bit, probably party because I’m more used to where things are in fog 0.32, am running a 1.2.0 now on Ubuntu.

    Ive tryed different kernels from the FOG management website, official and latest unofficial.

    Also have tried adding the host to FOG first and it still is stuck at “iPXE initialising devices”

  • [url]http://mastacontrola.com/init.gz[/url]

    This file is redesigned for what fix I did for the USB NIC’s.

    Replace your current init.gz with that of this one here.

    [code]sudo mv /tftpboot/fog/images/init.gz /tftpboot/fog/images/init_orig.gz[/code]
    sudo wget [url]http://mastacontrola.com/init.gz[/url] -O /tftpboot/fog/images/init.gz[/code]

    Words of Caution:

    1. I haven’t tested if this will even work, but from what I can tell it will. You’ll likely need one of my kernel’s to ensure support of the drivers needed are already loaded in the kernel: bzImage32
      [code]sudo mv /tftpboot/fog/kernel/bzImage /tftpboot/fog/kernel/bzImage_orig
      sudo wget https://svn.code.sf.net/p/freeghost/code/trunk/packages/web/service/ipxe/bzImage32 -O /tftpboot/fog/kernel/bzImage[/code]

    2. if you have customized the files in your init, you will need to port those in.

    For your yoga’s, the kernel arguments for the host you’re working with needs has_usb_nic=1. That should do it.

  • Tom,

    Any chance you could elaborate on what the issue is that you found? We’re still on a customized FOG 0.32, and while we will probably upgrade at some point, it’s going to take us a while. I was going to see if I could apply whatever you changed to our older version to see if we can image some of these Yoga tablets.

    Like stark325, if we add “iface eth0 inet dhcp” to /etc/networking/interfaces and then run “ifup eth0” it works (in debug mode), but if nothing else I’ll have to try and modify the imaging or boot script to check for Yoga models and do this.


  • While I didn’t realize it at the time,

    I figured out what the issue is/was with the dhcp problem.

    It’s now fixed and should work properly for you in 2417.

  • Did you press the [Enter] key?

    Also, yes, I’m sorry I didn’t inform or realize what you were on.

    Anything after I think 2389, you cannot revert back, at least not right now.


    Because I’ve moved all MAC addresses into a singular table. Revisions before this there were three mac tables.

  • I uploaded and downloaded images to several models with no problems. This is using the latest install (1.2.0) and upgrading to SVN 2414. I have a Lenovo Yoga with no ethernet port. Following the instructions above I get a black screen with a flashing cursor right after it asks me to unplug the USB adapter and stays like that permanently

    So I downgraded to SVN 2306 and imaging went much further with Capone but I get a black screen with the flashing cursor right after it checks the HDD.
    I can no longer manually register a host with this SVN.

    Sorry— I left work so I don’t have any log files to provide. I will probably reinstall FOG and go straight to 2306 and test it again.

    Any suggestions…

    I installed the latest kernel from the FOG Management site.
    This is on Ubuntu 12.04

    FOG Version 1.2.0 -> 2414 > 2306

  • Thanks Tom, had almost givin up on getting these Yoga’s to work in FOG.

  • All,

    I’ve been working extremely hard with this exact nic.

    I have a fix, though I consider it more a workaround at this point.

    SVN: 2306 has been pushed to correct for this.

    Basically, here’s how it works.

    If you have this, or any problematic dhcp receiving, USB nics, you will have to manually register the NIC and MAC before being able to do image/recieve dhcp. I will try seeing if there’s a way for iPXE to detect if the nic is USB style and pass the flag I’ve made up for this dynamically so registering hosts would work. That, or, how to disable usb subsystem entirely and re-enable it so the system thinks all usb items have been unplugged and plugged back in. (Maybe somebody already knows how to do this here?)

    The way it currently works.

    Update/install/upgrade to 2306 svn if you want to test this all out just as you normally do.

    Once done, go to the hosts in HostManagementPage. Click on the hosts that are using this/these nic(s).

    In the relevant host’s kernel arguments field add the flag:

    Boot the system into the tasking you need.

    (Also, you will need to use undionly.kkpxe for these NIC’s to work, though I don’t know if this is specific to the Yoga’s or the nic specifically)
    What does this do?

    It will prompt you you unplug and replug in the nic to your usb port. (YES PHYSICALLY-- maybe wait a second or two when unplugging to ensure the kernel actually removes the device?)

    Press enter when the nic is plugged back in.

    The system will sleep for 5 seconds to ensure the kernel has enough time to reload the device as if it’s brand new.

    Watch the success!!!