• Thanks - will try this tomorrow when I’m back in work.

    If I manage to get it working, will this then boot up the fog menu or will I need to enter some command in the iPXE shell to load fog? If so, what will I need to enter?



  • Try making a 32-bit EFI bootfile with a script that only has these contents:



    If that doesn’t work either, make a 64-bit one with the same script.

    One of those should bring you to an iPXE shell.

  • Morning,

    I’ve tried again using the modified ipxe.efi file created from the website - When I set that as the bootfile and boot up the Surface Pro 3 I get…

    Checking Media Presence…
    Media Present…
    Start PXE over IPv4

    It flicks then to saying

    Downloading NBP file… (this appears for a second or two)

    Then moves onto

    Checking Media Presence…
    Media Present…
    Start PXE over IPv6

    Before continuing to boot up the Surface Pro 3.

    I don’t get any Fog Menu



  • I’m hoping that once you make a 32-bit bootfile that it’ll work. Unless you already have…

  • Thanks - I’ll give this another shot - but I tried this a few days back after reading your earlier post and couldn’t get it to work!

  • Do this:

    [SIZE=13px][INDENT]Go here:


    Advanced - EFI PXE Bootstrap 32-bit

    Check these boxes:

    [URL=‘http://www.ipxe.org/buildcfg/PARAM_CMD’][FONT=Arial][COLOR=#000000]PARAM_CMD[/COLOR][/FONT][/URL][FONT=Arial][COLOR=#000000], Form parameter commands [/COLOR][/FONT]
    [URL=‘http://www.ipxe.org/buildcfg/CONSOLE_CMD’][FONT=Arial][COLOR=#000000]CONSOLE_CMD[/COLOR][/FONT][/URL][FONT=Arial][COLOR=#000000], Console command [/COLOR][/FONT]
    [URL=‘http://www.ipxe.org/buildcfg/CPUID_SETTINGS’][FONT=Arial][COLOR=#000000]CPUID_SETTINGS[/COLOR][/FONT][/URL][FONT=Arial][COLOR=#000000], CPUID settings[/COLOR][/FONT]

    And paste this script in the script box (Replace x.x.x.x with your FOG server’s IP or hostname):


    cpuid --ext 29 && set arch i386 ||
    param mac0 ${net0/mac}
    param arch ${arch}
    param product ${product}
    param manufacturer ${product}
    param ipxever ${version}
    param filename ${filename}
    isset ${net1/mac} && param mac1 ${net1/mac} || goto bootme
    isset ${net2/mac} && param mac2 ${net2/mac} || goto bootme
    chain [url]http://x.x.x.x/fog/service/ipxe/boot.php##params[/url]

    Click Proceed, and voila! Copy the new EFI bootfile to your /tftpboot folder and give it a whirl![/INDENT][/SIZE]
    [SIZE=11px] [/SIZE]

  • Developer

  • I’m really sorry Tom, are you able to guide me to what I should be doing exactly to achieve what you say. I’m not too familiar with the background workings of Linux.



  • okay, Matt, can you attempt upgrading to SVN? The command line you’re missing (causing your boot problem) is initrd=init.xz. This is corrected for in SVN, though I am aware of some issues potentially with the init and am working hard to try correcting them.

  • We are running FOG Version 1.2.0 on Ubuntu 12:10



  • What version of fog?

  • OK,

    I originally tried using the ipxe.efi which failed to boot the surface to the fog menu,

    I then tried the snp.efi which booted to a very basic looking menu, I tried to register the host and I get the message:-

    i8042: Can’t read CTR while initializing i8042
    usb usb2-port1: couldn’t allocate usb_device
    Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0)
    Kernel Offset: 0x0 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffff9fffffff)
    —[ end of Kernal panic - not syncing: VFS: Unable to mount fs on unknown-block(1,0)

    I’ve also tried changing the bootfile to snponly.efi and get the same error as above.



  • Just tried with the file supplied in the link and it still won’t boot to the Fog menu - I get downloading NBP? File…

    Then blips saying successful and then continues to load up Windows.

  • Sorry Tom,

    Where do I find the latest ipxe files to install?



  • I’m just at a loss. have you tried the current ipxe files?

  • Did you manage to get the surface’s to boot into FOG using the official Microsoft USB LAN Adaptor or only the docking station?

    I’ve created a modified EFI Bootfile as mentioned above and added it into the tftpboot folder on the fog server, and changed the boot file to use in DHCP, but I can’t get it to boot up into Fog.

    It loads up the PXE boot very quickly and a message about downloading an image but then it goes and continues to load up the surface into Windows.



  • You’ll have to add one of them to FOG’s list of hosts, deploy your image, then replace the LAN adapter’s MAC with the Surface’s wireless MAC. Rinse and repeat until done.

    I had to do this with over 500 tablets/10 LAN adapters a few months back…blah.

  • I’m about to deploy 40 Surface Pro 3 devices into the school I work at - so I’m glad I’ve picked up on this thread - We have purchased only 1 Microsoft USB Surface LAN Adaptor - Will we have issue within FOG - as potentially every Surface will have the same MAC address - or do we only configure 1 of the surfaces within the console and then use this same machine in FOG to deploy to all the Tablets that are using the same USB LAN Connector?



  • Hell yes! You’re very welcome. Cheers!

    I recommend keeping a backup or two of the custom bootfile you made. That way anytime you update to the latest SVN of FOG you can copy it right back into /tftpboot post-upgrade.