PXE Booting Surface Pro 3 to FOG Menu
-
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-supportOnce 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.
-
This post is deleted! -
(place holder)
-