PXE Booting Surface Pro 3 to FOG Menu


  • Moderator

    In this document I’ll outline a successful setup to pxe boot the surface pro 3 (and I assume 4) using FOG and dnsmasq.

    For clarity this is not my content, I’m only reposting the content from other threads into a single document. This document is based on the successful results from this thread: https://forums.fogproject.org/topic/8964/surface-pro-3-ipxe-issues/20

    To set this up for the surface pros you will need to use either dnsmasq to create a dynamic pxe boot option, isc-dhcp linux dhcp server, or windows 2012 dhcp server. For this document I’m going to show you the dnsmasq route. To use dnsmasq here you will not enter any values in your primary dhcp server for dhcp options 66 {next server} or dhcp option 67 {boot file} those values will be supplied by dnsmasq. The only other caveat here is that the target computer and the FOG server running dnsmasq must be in the same broadcast domain (subnet) or the dnsmasq service will not hear the dhcp broadcast requests. There are ways to overcome this limitation but that is a bit beyond the scope of this document.

    The first thing you will need for this setup is to compile your own version of dnsmasq if the installed version on your FOG server is not 2.76. You can find the version of dnsmasq by using the following command dnsmasq -v. Compiling your own version is not complicated and is outlined in this document. https://forums.fogproject.org/topic/8725/compiling-dnsmasq-2-76-if-you-need-uefi-support

    Once you have dnsmasq compiled and installed then we need to work on the configuration file for dnsmasq.

    The configuration file contents go into /etc/dnsmasq.d/ltsp.conf In its simples configuration this is the content of that configuration file.

    port=0
    log-dhcp
    tftp-root=/tftpboot
    dhcp-no-override
    
    dhcp-vendorclass=BIOS,PXEClient:Arch:00000
    dhcp-vendorclass=UEFI32,PXEClient:Arch:00006
    dhcp-vendorclass=UEFIBC,PXEClient:Arch:00007
    dhcp-vendorclass=UEFI64,PXEClient:Arch:00009
    
    dhcp-boot=net:UEFI32,i386-efi/ipxe.efi,,x.x.x.x
    dhcp-boot=net:UEFIBC,ipxe7156.efi,,x.x.x.x
    dhcp-boot=net:UEFI64,ipxe.efi,,x.x.x.x
    dhcp-boot=undionly.kpxe,,x.x.x.x
    pxe-prompt="Booting FOG Client", 1
    
    dhcp-range=x.x.x.x,proxy
    

    For your setup you will want to replace the x.x.x.x with the IP address of your FOG server. I won’t go too deep in explinatiion of how the config file is setup (there are other thread that go into detail on this ref: https://forums.fogproject.org/topic/8726/advanced-dnsmasq-techniques). But when the patter matches architecture of type 7 in this line

    dhcp-vendorclass=UEFIBC,PXEClient:Arch:00007
    

    The ipxe file name of ipxe7156.efi is sent to the Surface Pro as the boot file to use. The way the current config file is setup all bios clients will get the file name of undionly.kpxe and all typically workstation uefi systems will get ipxe.efi. This is all managed dynamically on a per device bases.

    When your configuration file has been completely updated don’t forget to restart your dnsmasq service to pickup up the new settings. Also don’t forget you need to restart your dnsmasq server each time you make a change to the dnsmasq settings file.

    As I posted above you can get similar results with the isc-dhcp server for linux or with a windows 2012 dhcp server using filter rules.


  • Moderator


  • Moderator

    (place holder)


  • Moderator

    This post is deleted!

Log in to reply
 

460
Online

39.4k
Users

11.1k
Topics

105.4k
Posts

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