summaryrefslogtreecommitdiff
path: root/doc/pxechn.txt
blob: 6b5b99c31ee0e3eb8f7445950387853de5b71280 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
= pxechn.c32(1) =
:doctype: manpage
:author: Gene Cumm
:email: gene.cumm@gmail.com
:revdate: 2012-06-01


== NAME ==
pxechn.c32 - Chainboot to new NBP


== SYNOPSIS ==
*pxechn.c32* [-h | --help | -?]
*pxechn.c32* -r 'FILE'
*pxechn.c32* 'FILE' ['OPTIONS']


== DESCRIPTION ==
Chainboot to a new NBP (Network Boot Program) 'FILE' with options to adjust PXE packet #3 (PXENV_PACKET_TYPE_CACHED_REPLY) to alter end behavior.  'FILE' may be a filename, an IP::FN ( 192.168.1.1::path/to/file.0 ), or URL.  'FILE' is parsed to adjust the DHCP 'sname' field/option 66 and 'file' field/option 67.
// but these may be override-able in the future.


== OPTIONS ==
*-c* 'CONFIG'::
    PXELINUX config file (DHCP Option 209).

// *-f* 'MOD'::
//     Force behavior specified by 'MOD'
//
// *-g* 'HOST'::
//     Set DHCP gateway/relay.  Parsed by pxe_dns().
//
*-h*, *--help*, *-?*::
    Print usage information; invalid options will also cause this.

// *-n*::
//     Use native methods, ignoring underlying gPXE/iPXE.
// 
// *-N*::
//     Use non-native methods to utilize gPXE/iPXE (if available).
//
*-o* 'OPT.TYPE=VALUE'::
    Specify a generic option.  'OPT' is in 'DECIMAL INPUT' format (below).  'TYPE' specifies the output type and input syntax.  'b'yte, 'w'ord(2B), 'l'ong(4B), 'q'uad(8B), character 's'tring and colon-separated he'x' string (case insensitive; bytes must have 2 digits and each byte must be separated).  byte, word, long and quad input values must meet criteria for 'DECIMAL INPUT'

*-p* 'PATH'::
    PXELINUX path (DHCP Option 210).

*-r*::
    Call the PXE stack with PXENV_RESTART_TFTP.  _Must_ be the only option and before 'FILE'.

*-S*::
    Set sip based on sname field/option 66 (by direct IP if a period-delimited address or otherwise DNS).

*-t* 'SECONDS'::
    PXELINUX timeout (DHCP Option 211).

// *-u*::
//     Copy UUID (Option 97) if found in packet #1

*-w*::
    wait after loading before booting for user input.

*-W*::
    Enable WDS (Windows Deployment Services) - specific options.  'FILE' (or its overrides for DHCP fields siaddr and file) must point at the WDS server.
    *NOTE:* As of 2012-05-31, there is a known issue with gPXE/iPXE, at least with undionly.kkpxe.
// It appears as if wdsnbp.com walks memory to find a PXE stack


== DECIMAL INPUT ==
All parameters that are defaulted to decimal format are processed by *strtoul*(3) with a base of 0 which allows alternate formats and finds a suitable non-space separating character.


== EXAMPLES ==
pxechn.c32 http://myhost.dom.loc/path/nbp.0 -c myconfig
	Load nbp.0 and set PXELINUX config (option 209).

pxechn.c32 gpxelinux.0 -p http://10.1.1.4/tftp/ -w -c myconfig -o 15.s=domain.loc -o 6.x=0A:01:01:02:ac:17:4D:Ec -
	Load gpxelinux.0 from the current directory, set prefix, wait to execute, set first config, set the domain name and 2 domain name servers (case mixed to show insensitivity; 10.1.1.2 and 172.23.77.236).

pxechn.c32 gpxelinux.0 -p http://10.1.1.4/tftp/ -w -X A012345678 -x 197:00d0de00
pxechn.c32 gpxelinux.0 -p http://10.1.1.4/tftp/ -w -X A012:3456:78 -x 197:00-d0-de-00
	Both of these are equivalent.  Load gpxelinux.0 (relative to the current directory and not altering sname/option 66), set the PXELINUX path prefix, wait after loading, set option 160 to 0x12 0x34 0x56 0x78, and option 197 to 0x00 0xD0 0xDE 0x00.

pxechn.c32 10.1.1.8:boot\x86\wdsnbp.com -W
pxechn.c32 10.1.1.4:boot\x86\wdsnbp.com -W -o 66.x=0a:01:01:08 -S
	These are similar but not identical.  Load wdsnbp.com (first example from 10.1.1.8 and the second from 10.1.1.4) but point the packets at 10.1.1.8 for use with WDS.  DHCP Option 66 will be placed in DHCP field sname when there's room.  -S decodes this to an IPv4 address.


== NOTES ==
Please note that some NBPs may ignore packet #3 by either not examining it at all or by issuing its own DHCP DISCOVER/REQUEST, negating all DHCP field/option modifications by pxechn.c32, including Microsoft Windows Server 2008R2 WDS's wdsnbp.com.

URL specifications in 'FILE' that include user/password before the host will currently cause the siaddr field to not be set properly.

The non-space constraint is due to how Syslinux variants parse the command line as of 2012-05-31.


== AUTHOR ==
{author} <{email}>


== COPYRIGHT ==
Copyright \(C) 2012 {author}. Free use of this software is granted under
the terms of the GNU General Public License (GPL).