• Hi, everyone.

    I’ve read through a few other posts and thought I should create a new thread. ([url]http://fogproject.org/forum/threads/ipxe-boot-issue-with-realtek-rtl8153.10507/[/url])

    I’m having issues getting iPXE to load only on the Yoga 12.5 with the USB dongles that Lenovo supplied (USB RTL8153) I’m finding that iPXE displays a blank screen as soon as iPXE loads and says iPXE initializing devices and the screen goes blank. All the other laptops are working fine, just this Yoga.

    Some background: I no longer have DNSMasq working due to our over arching education switching over to the new version of Windows Deployment services and using Proxy DHCP no longer lets network boot on our main network. So I have resorted to using a USB key with iPXE when using the normal network.

    Our Imaging station in the office has a second network setup for PXE booting but even trying with this displays a blank screen as soon as iPXE displays iPXE initializing devices .

    I even tried booting iPXE with USB with no USB network adapter plugged in and I am getting the same blank screen.

    I’m just wondering if anyone else has had this happen? or might know any bios settings I will need to change.

    SecureBoot is disabled
    and legacy boot is enabled.


  • Moderator

    I just talked to someone on the iPXE IRC channel and got some helpful information. The RTL8153 should be supported as both the USB NIC and iPXE support ECM! Please try enable more debugging to see what’s going on ‘DEBUG=usb,xhci,usbnet,usbhub’…

    And there is another (old) thread here: [url]http://fogproject.org/forum/threads/realtek-8153-usb-network-adapter.10302/[/url]

    I suppose you’ve set ‘Legacy only’ in BIOS…

  • Moderator

    From what I could find on the net so far you won’t be able to get iPXE running with this in a rush.

    Maybe you are able to use pxelinux without chainloading ipxe.krn but you’ll have to re-think and probably re-write part of the booting process for those machines…

    I just tried this:

    1. Make pxelinux.0.old the binary that gets loaded by the client after netboot (either by renaming/linking it or by changing DHCP settings).
    2. Create a directory /<your-tftp-dir>/pxelinux.cfg and a file called /<your-tftp-dir>/pxelinux.cfg/default:
      [CODE]DEFAULT fog64
      LABEL fog32
      LINUX http://<fog-server-ip>/fog/service/ipxe/bzImage32
      APPEND initrd=http://<fog-server-ip>/fog/service/ipxe/init_32.xz
      LABEL fog64
      LINUX http://<fog-server-ip>/fog/service/ipxe/bzImage
      APPEND initrd=http://<fog-server-ip>/fog/service/ipxe/init.xz[/CODE]
    3. Try booting and see if the linux kernel is being loaded! Works for me.
      If it does work for you too you can go ahead and customize this to make if work. You could use DHCP user classes to hand over to pxelinux for this clients and use ipxe for your other clients.

    Here are some more options you’ll need to APPEND to the kernel options:
    [CODE]root=/dev/ram0 rw ramdisk_size=127000 keymap= web=<fog-server-ip>/fog/ consoleblank=0 loglevel=4 mac=<client-mac-address> ftp=<fog-server-ip> storage=<fog-server-ip>:/images/ storageip=<fog-server-ip> osid=<your-os-id> loglevel=4 consoleblank=0 irqpoll hostname=<client-hostname> chkdsk=0 img=<your-image-name> imgType=<your-image-type_mpa|mps…> imgPartitionType=all imgid=<your-image-id> imgFormat= type=down[/CODE]
    Not sure which of those you really need. I just copied them from my testing SVN system. Might be different for FOG 1.2.0…

    I don’t think that you’ll be able to integrate this altogether as I can’t think of a way to make pxelinux load the boot.php and all that stuff. But at least you should be able to image those clients I suppose! Please let us know if this is working for you or if you need further hints.

  • Moderator

    Possible similar thread on the iPXE forums?
    [QUOTE][B][SIZE=11px][FONT=Verdana][COLOR=#000000]RE: X1 Gen1 Carbons hang when trying to get a DHCP address through the embedded script[/COLOR][/FONT][/SIZE][/B]

    [SIZE=13px][FONT=Verdana][COLOR=#000000]I just answered the following on IRC: If you’re using UEFI mode, you shouldn’t be using undionly.kpxe, you should be using either ipxe.efi or snp.efi. If you’re trying to get a USB NIC to work then you should definitely be using ipxe.efi as I’m going to assume that your USB NIC doesn’t have a PXE ROM, thus snp.efi is useless (because there is no existing SNP/NII driver loaded which iPXE can use).[/COLOR][/FONT][/SIZE][/QUOTE]


  • I for the life of me cannot get the kkpxe or kpxe working at all. Chainloading the ipxe.krn also doesn’t help because as you said I don’t think the drivers are working for my particular Lenovo dongles.
    I’m currently going to test clonezilla. Kind of frustrating as pxelinux.0 works perfect 😉
    At this stage I haven’t even thought about how to add a serial cable to debug it as I need to roll these devices out very shortly and I am dreading using SCCM as it is so slow.

    Thanks again.

  • Moderator

    On some of our Macs I had issues with ‘prompt’ ipxe command. I simply used ‘shell’ just by itself to get an ipxe shell…
    AFAIK the difference between undionly.ext and ipxe.ext is that ipxe uses real network drivers whereas undionly uses the UNDI interface to talk to the network card. Seams like you need real drivers with your USB card. So far I wasn’t successful when trying to find out which driver ipxe probably will use for RTL8153…
    Can you attach a serial cable to that client?? iPXE debugging with a serial line will give you a lot more information about what is going on…

  • Just to let you know what I’ve found is that after building another ipxe.kkpxe and building in the console break command e.g.
    [CODE]prompt --key 0x02 --timeout 1000 Press Ctrl-B for the iPXE command line… && shell ||
    [/CODE] I’m finding that the driver doesn’t even seem to be loading at all which would obviously cause an issue 😉
    I’ll keep poking around.

  • Just got a little further thanks. Now switched my bench over to booting ipxe with default fog settings. And this works on our Dells. I’m using the [url]https://svn.code.sf.net/p/freeghost/code/trunk/packages/tftp/ipxe.kkpxe[/url].
    Works fine on my dell laptops loading the fog menu perfectly.

    I’ll have a read through those again. As it seems to just be fairly complex supporting USB Ethernet devices.
    Just wondering what the difference between my Yoga/ethernet device is and others that seem to have it working?
    If I figure it out I’ll let you know 🙂

    Thanks again.

    This is where it freezes now by the way:

  • Moderator

    I guess you’d have to ask on ipxe mailinglist or IRC channel (!) as those guys know a lot more about the ipxe internals than we do. We tried but just too tough the problem you have. Let us know about if you can get it fixed or not. I really hope you can!

    You’ve seen this I suppose: [url]http://www.johnwillis.com/2014/03/pxe-booting-using-usb-to-ethernet-dongle.html[/url] (maybe send him a message and ask about his experiences with RTL8153)

    Which iPXE binary do you use?? I read through the other thread again and again and it seams like a couple of people were able to get this working! At some point Tom wrote:
    [quote](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)[/Quote]

  • Same thing, just did a build with debug on xHCI and it spews out alot of red text but doesn’t seem to report anything.
    iPXE is reporting the network is unreachable when doing a debug with dhcp,tftp,http
    it doesn’t report anything else but again the screen goes instantly blank after it reports network unreachable.

    So this is what leads me to think the driver isn’t loading correctly for the lenovo USB3 Ethernet adapter.

  • I was using the latest version of iPXE that I built on my fog server previously as well as ones from Rom-o-matic
    I’m not sure it even has anything to do with FOG yet as it seems to go blank before it even loads a DHCP address.

    I’ve tried chainloading from pxelinux which works for all of our other laptops but this leaves me with the same blank screen.
    I’ve also used the ipxe.krn from [url]https://mastacontrola.com/ipxe/latest/[/url]

    I’ll try building with debug and testing.

  • Moderator

    Or try Toms great tutorial on building iPXE from source and add debugging: [url]http://fogproject.org/forum/threads/build-ipxe-from-source.10152/[/url]

    [CODE]make … DEBUG=dhcp,tftp,http[/CODE]

  • What ipxe ISO are you using? More recent versions of ipxe have included usb drives, but I know yogas were capable of booting before. This sounds to me like some of the parameters fog is using is not loaded on the USB key though. That or the exit and sanboot exit types aren’t liked by ipxe. If you’re using ipxe usb to just get to fog, you can change the exit type to grub and see if that helps you out.