== New PXE build and usage process as of July 2019 == Note: OMF config is separate but similar, look at contents of "/etc/omf-expctl-5.4/services.yaml" === Overview of process === * Build 1. dependencies: 1. checkout git repo 1. ensure dependencies are installed (docker, make) 1. alternately, ssh to {{{buildvm1804-64.orbit-lab.org}}} and cd to {{{/opt/orbit-pxe}}} 1. run {{{ make build }}} to initialize environment, compile code 1. run {{{ make extract }}} to extract artifacts (initfs.gz, kernel, configs...) 1. run {{{ make publish-orbit-test}}} to push artifacts to orbit testing path 1. run {{{ make publish-orbit-prod}}} to push artifacts to orbit "real" path * Architecture 1. == Highlights == 1. PXE over http, instead of tftp 1. lpxelinux.0 instead of pxelinux.0 1. pxelinux.cfg supports urls, http:// etc. 1. find DHCP option to specify URL directly, instead of filename, more reliable bootstrap? 1. replace filename field with url 1. Support for EFI 1. New PXE image build procedure 1. Use of mkinitramfs == Client Features == Request list from dhcpdump for i5 NUC, UEFI {{{ TIME: 2016-04-12 10:48:59.621 IP: 0.0.0.0 (b8:ae:ed:7d:5f:80) > 255.255.255.255 (ff:ff:ff:ff:ff:ff) OP: 1 (BOOTPREQUEST) HTYPE: 1 (Ethernet) HLEN: 6 HOPS: 0 XID: b4683658 SECS: 12 FLAGS: 7f80 CIADDR: 0.0.0.0 YIADDR: 0.0.0.0 SIADDR: 0.0.0.0 GIADDR: 0.0.0.0 CHADDR: b8:ae:ed:7d:5f:80:00:00:00:00:00:00:00:00:00:00 SNAME: . FNAME: . OPTION: 53 ( 1) DHCP message type 1 (DHCPDISCOVER) OPTION: 57 ( 2) Maximum DHCP message size 1464 OPTION: 55 ( 35) Parameter Request List 1 (Subnet mask) 2 (Time offset) 3 (Routers) 4 (Time server) 5 (Name server) 6 (DNS server) 12 (Host name) 13 (Boot file size) 15 (Domainname) 17 (Root path) 18 (Extensions path) 22 (Maximum datagram reassembly size) 23 (Default IP TTL) 28 (Broadcast address) 40 (NIS domain) 41 (NIS servers) 42 (NTP servers) 43 (Vendor specific info) 50 (Request IP address) 51 (IP address leasetime) 54 (Server identifier) 58 (T1) 59 (T2) 60 (Vendor class identifier) 66 (TFTP server name) 67 (Bootfile name) 97 (UUID/GUID) 128 (???) 129 (???) 130 (???) 131 (???) 132 (???) 133 (???) 134 (???) 135 (???) OPTION: 97 ( 17) UUID/GUID 0066ffad1ee719ad .f...... 849831b8aeed7d5f ..1...}_ 80 . OPTION: 94 ( 3) Client NDI 010310 ... OPTION: 93 ( 2) Client System 0007 .. OPTION: 60 ( 32) Vendor class identifier PXEClient:Arch:00007:UNDI:003016 }}} ftp://download.intel.com/design/archives/wfm/downloads/pxespec.pdf DHCPOFFER must specify option 60.