Hp Elitebook x360 G2 Boot Problems



  • I’m giving FOG a try because our current imaging solution is unable to boot on our new Elitebook x360s but I’m having roughly the same issues with FOG.

    I have FOG setup using DNSMASQ 2.76 and have finally gotten UEFI devices network booting to the server.

    When the x360 attempts to boot I get the following…

    Could not select: Exec format error (http://ipxe.org/2e008081)
    Could not boot: Exec format error (http://ipxe.org/2e008081)
    

    I’ve searched around and tried a few different things to get this to work to no avail.

    This is my current ltsp.conf:

    port=0
    
    log-dhcp
    
    tftp-root=/tftpboot
    
    dhcp-vendorclass=BIOS,PXEClient:Arch:00000
    dhcp-vendorclass=UEFI32,PXEClient:Arch:00006
    dhcp-vendorclass=UEFI,PXEClient:Arch:00007
    dhcp-vendorclass=UEFI64,PXEClient:Arch:00009
    
    dhcp-boot=net:UEFI32,i386-efi/ipxe.efi,,xxx.xxx.xxx.xxx
    dhcp-boot=net:UEFI,ipxe.efi,,xxx.xxx.xxx.xxx
    dhcp-boot=net:UEFI64,ipxe.efi,,xxx.xxx.xxx.xxx
    dhcp-boot=net:BIOS,undionly.kpxe,,xxx.xxx.xxx.xxx
    
    # PXE menu.  The first part is the text displayed to the user.  The second is the timeout, in seconds.
    pxe-prompt="Press F8 for boot menu", 10
    
    # The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,
    # Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI
    # This option is first and will be the default if there is no input from the user.
    # PXEClient:Arch:00000
    pxe-service=X86PC, "Boot BIOS PXE", undionly
    # PXEClient:Arch:00007
    pxe-service=BC_EFI, "Boot UEFI PXE-BC", ipxe.efi
    # PXEClient:Arch:00009
    pxe-service=X86-64_EFI, "Boot UEFI PXE-64", ipxe.efi
    
    dhcp-range=xxx.xxx.xxx.xxx,proxy,255.240.0.0
    

    I’m hoping someone on here could point me in the right direction on how to get this working as we are dreading setting up 80+ of these without a networked imaging solution. Any help is greatly appreciated!


  • Developer

    @Crixx Did you get to take a picture of the error yet?


  • Developer

    @crixx said in Hp Elitebook x360 G2 Boot Problems:

    While snp.efi does let us boot and image the machine, it is far from perfect. As I stated below, none of the other utilities in the boot menu work. While the ability to register the host, run memtest, ect aren’t critical, it’s not what I would say ‘Ideal’ functionality is.

    From your other messages to me it sounded like all was working with snp.efi. Sorry for that. It’s very weird that imaging would work but register would not. Both are booting the exact same kernel just handing over different kernel command line options. Could you please take a new picture of the error you see using snp.efi?


  • Moderator

    @crixx The x360 was released in early Apr 2017.

    FOG does rely on other FOSS projects that make FOG possible. One important one is iPXE. Those guys in the iPXE project are really good and are constantly changing / upgrading the iPXE kernel as new hardware is released.

    I would expect one or both things to happen here.

    1. HP will release a firmware fix that will enable ipxe.efi to boot correctly.
    2. The iPXE devs will get their hands on one of these x360s and figure out what’s wrong with their kernel.

    So I see this (snp.efi) as a stop gap measure until one of the two are updated.



  • @Sebastian-Roth
    While snp.efi does let us boot and image the machine, it is far from perfect. As I stated below, none of the other utilities in the boot menu work. While the ability to register the host, run memtest, ect aren’t critical, it’s not what I would say ‘Ideal’ functionality is.

    Also please don’t take that as a Dig at FOG, you, or the support that you’ve provided me, which I very much appreciate. The fact that I can image these at all is going to be a huge time saver.


  • Developer

    @crixx said in Hp Elitebook x360 G2 Boot Problems:

    In the future hopefully either fog or our existing imaging solution will have better support for these new model HP’s.

    Better?!? What better can it get than FOG PXE booting and imaging the machines? All the different iPXE binaries are good. There is none better than the other. What works for a particular machine is just good.



  • @george1421
    Sorry for the delay. Had some other non imaging related things to take care of the past few days.

    Unfortunately the UUID is completely different for each of the three machines that I tested.

    It is alright though as setting everything to boot using snp.efi for now is fine. We are just looking for a solution to image this specific model of machines right now and it is unlikely that we will move all of our machines over to using fog for imaging as it would mean throwing out many hours of work and customization put into our existing system.

    In the future hopefully either fog or our existing imaging solution will have better support for these new model HP’s.


  • Moderator

    @sebastian-roth said in Hp Elitebook x360 G2 Boot Problems:

    If snp.efi is working for you, then just use this for those clients.

    Since the OP is using dnsmasq we might be able to do this automatically. It does require a little detective work with dnsmasq. I’m hoping the uuid for this class of computers is populated and consistent for this hardware.

    @crixx if you can pxe boot one of these HP computers then look in the dnsmasq log for a uuid value. Record that and the pxe boot another one of these computers. Then please post the results here and we can work up a filter for you.

    Ref: https://forums.fogproject.org/topic/8726/advanced-dnsmasq-techniques


  • Developer

    @Crixx Ok, thanks for clarifying! If snp.efi is working for you, then just use this for those clients. Use DHCP classes if other clients don’t like snp.efi and need ipxe.efi for booting I’d say.
    Although it would be interesting to figure out why ipxe.efi does not like this particular RTL8153 chip. Most probably it’s some kind of issue that arises from a combination of the elitebook UEFI firmware and this particular USB NIC adapter. Sure we could try to make iPXE to work around this but using snp.efi is just as good and does not cost us time. All those different binaries are good to use as long as they work for you.



  • @Sebastian-Roth

    I was able to boot and image using snp.efi. Using ipxe.efi everything in the menu throws errors, including image deployment.

    Here are the pictures of the two commands that you asked me to run
    ifstat:
    0_1501535005720_ifstat.jpg

    imgstat:
    0_1501535028094_imgstat.jpg


  • Developer

    @crixx When iPXE throws you back to the shell (as seen in the picture) can you please run the following two commands and post another picture here:

    iPXE> ifstat
    ...
    iPXE> imgstat
    ...
    

  • Developer

    @crixx Which FOG menu item did you select that gave you the error we see on the picture? The menu code you posted looks pretty good to me - almost identical to what I get here except the FOG server IP. So my guess about the kernel line missing was wrong.

    This is really strange. You say that you are able to image but not use any of the items from the FOG menu?! When you image then the boot.php is just delivering a different iPXE code to the client. This code looks pretty much the same as if you’d select “System Information” from the menu - just calling it with different parameters:

    kernel bzImage32 loglevel=4 initrd=init_32.xz ...
    imgfetch init_32.xz
    boot
    

    So I can’t really believe it runs into that error when selecting a menu item but things go fine when you schedule a task to image that client. I am not saying it’s impossible but I can’t get my head around it yet.

    Driver for the RTL8153/2 USB NICs has been in iPXE for quite some time. Lots of (FOG) people have used it. But hey, not every USB NIC based on this particular chip is the same.


  • Moderator

    @tom-elliott OK I stand here a bit red faced. I missed that this was in iPXE still. Too many threads, and not enough extra brain cells to pay attention all the time.


  • Senior Developer

    @george1421 The driver is already compiled with this item. That said, ipxe might not have the driver for it. So Kernel is not the problem here, it’s the iPXE Drivers that’s the issue.


  • Moderator

    Interesting. That ID translates to a Realtek RTL8153

    A quick trip to the realtek store: http://www.realtek.com.tw/DOWNLOADS/downloadsView.aspx?Langid=1&PNid=13&PFid=56&Level=5&Conn=4&DownTypeID=3&GetDown=false shows us this for a driver.

    0_1501513844676_Realtek_8153.png

    FOS Is currently running 4.11 as its kernel. So (Mr. Kernel Guy, you know who I mean), does this mean that the realtek driver won’t compile under 4.11 or they only tested it up to 4.8? Is that something that can be integrated into the FOS kernel for a small fee?



  • @Sebastian-Roth We are using the USB-C to RJ45 Adapters that came with the devices (HP Model# RTL8153-03). I do have some usb to rj45 adapters from other companies that I could try out as well if it will make any difference although they don’t always play nice with pxe booting.

    The hardware ID for the adapter is:

    USB\VID_0BDA&PID_8153&REV_3000
    

    The text output from the URL with one of the x360 mac addresses is:

    #!ipxe
    set fog-ip 172.20.0.136
    set fog-webroot fog
    set boot-url http://${fog-ip}/${fog-webroot}
    cpuid --ext 29 && set arch x86_64 || set arch i386
    goto get_console
    :console_set
    colour --rgb 0x00567a 1 ||
    colour --rgb 0x00567a 2 ||
    colour --rgb 0x00567a 4 ||
    cpair --foreground 7 --background 2 2 ||
    goto MENU
    :alt_console
    cpair --background 0 1 ||
    cpair --background 1 2 ||
    goto MENU
    :get_console
    console --picture http://172.20.0.136/fog/service/ipxe/bg.png --left 100 --right 80 && goto console_set || goto alt_console
    :MENU
    menu
    colour --rgb 0x00567a 0 ||
    cpair --foreground 1 1 ||
    cpair --foreground 0 3 ||
    cpair --foreground 4 4 ||
    item --gap Host is registered as testx360system!
    item --gap -- -------------------------------------
    item fog.local Boot from hard disk
    item fog.memtest Run Memtest86+
    item fog.keyreg Update Product Key
    item fog.deployimage Deploy Image
    item fog.multijoin Join Multicast Session
    item fog.quickdel Quick Host Deletion
    item fog.sysinfo Client System Information (Compatibility)
    choose --default fog.local --timeout 3000 target && goto ${target}
    :fog.local
    sanboot --no-describe --drive 0x80 || goto MENU
    :fog.memtest
    kernel memdisk initrd=memtest.bin iso raw
    initrd memtest.bin
    boot || goto MENU
    :fog.keyreg
    login
    params
    param mac0 ${net0/mac}
    param arch ${arch}
    param username ${username}
    param password ${password}
    param keyreg 1
    isset ${net1/mac} && param mac1 ${net1/mac} || goto bootme
    isset ${net2/mac} && param mac2 ${net2/mac} || goto bootme
    :fog.deployimage
    login
    params
    param mac0 ${net0/mac}
    param arch ${arch}
    param username ${username}
    param password ${password}
    param qihost 1
    isset ${net1/mac} && param mac1 ${net1/mac} || goto bootme
    isset ${net2/mac} && param mac2 ${net2/mac} || goto bootme
    :fog.multijoin
    login
    params
    param mac0 ${net0/mac}
    param arch ${arch}
    param username ${username}
    param password ${password}
    param sessionJoin 1
    isset ${net1/mac} && param mac1 ${net1/mac} || goto bootme
    isset ${net2/mac} && param mac2 ${net2/mac} || goto bootme
    :fog.quickdel
    login
    params
    param mac0 ${net0/mac}
    param arch ${arch}
    param username ${username}
    param password ${password}
    param delhost 1
    isset ${net1/mac} && param mac1 ${net1/mac} || goto bootme
    isset ${net2/mac} && param mac2 ${net2/mac} || goto bootme
    :fog.sysinfo
    kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=127000 web=172.20.0.136/fog/ consoleblank=0 rootfstype=ext4 storage=172.20.0.136:/images/ storageip=172.20.0.136 loglevel=4 mode=sysinfo
    imgfetch init_32.xz
    boot || goto MENU
    :bootme
    chain -ar http://172.20.0.136/fog/service/ipxe/boot.php##params ||
    goto MENU
    autoboot
    

    Thanks for all your help with this!


  • Developer

    @Crixx Sorry that I didn’t ask earlier but I keep forgetting myself: What kind of USB ethernet adapter do you use with this device(s)? We need to know this as it is part of the equation and plays a major role. Please bootup windows, open the device driver management, right click the USB ethernet adapter and select properties. Go to the details tab and select “Hardware IDs” from the dropdown. Please post the full (top most) hawrdware ID string here in the forums (copy&paste!). See here on where to find the information.

    Thanks for testing the debug binary and posting the picture. Please do so for all the issues you run into. More often than not there is an important detail that we would miss. In this case I have a feeling that the iPXE menu is not generating properly and I wouldn’t have thought about this if I wouldn’t have seen the picture myself. Why do I think it’s not generating right? Because I only see boot.php... ok and init.xz... ok but no bzImage... ok. It looks as if iPXE is just missing the information on what image/kernel to chainload next and therefore can’t go ahead.

    Please open the URL http://172.20.0.136/fog/service/ipxe/boot.php?mac=01:02:03:04:05:06 from any client PC which is able to reach the FOG web interface. Instead of mac=01:02:03:04:05:06 use the MAC address of one particular client that is having an issue. Post the full text output you see here in the forum! Make sure there is no task scheduled before doing this as it sounds like iPXE code generation for tasking is working properly.



  • @Sebastian-Roth @george1421

    snp.efi boots and lets us image with EFI. I’ve just successfully deployed an EFI win10 image using snp.efi. Nothing in else in the fog menu works however.

    I’ve tried the debug efi binary you provided and this is the result when I attempt to do anything from the fog menu
    0_1501257274395_efi_debug_boot.jpg


  • Moderator

    @crixx Ideally we’d like to get this working with iPXE, with Sebastian’s help we should be able to get things working.
    If debugging iPXE fails, we do have a fall back method to boot FOS from a usb drive. There are a few caveats to do it this way, but it is an option. Lets try to discover what hardware the iPXE kernel is having issues with first.


  • Developer

    @Crixx Have you tried snp.efi or snponly.efi yet?

    As well I compiled and uploaded a debug enabled (DEBUG=efi_image) iPXE binary for you to test here. Please post a picture of the debug messages on screen.


Log in to reply
 

445
Online

38994
Users

10714
Topics

101705
Posts

Looks like your connection to FOG Project was lost, please wait while we try to reconnect.