From f3969485cf66c401740c57a84f7bde17b06f07a6 Mon Sep 17 00:00:00 2001 From: hpa Date: Tue, 27 Feb 2001 22:50:33 +0000 Subject: [PATCH] Rename pxelinux.bin to pxelinux.0 to match common PXE server conventions. --- Makefile | 8 +++++--- NEWS | 7 +++++++ pxelinux.doc | 56 ++++++++++++++++++++++++++++++++++++++++---------------- 3 files changed, 52 insertions(+), 19 deletions(-) diff --git a/Makefile b/Makefile index 0e8f25c..6a48839 100644 --- a/Makefile +++ b/Makefile @@ -34,11 +34,12 @@ VERSION = $(shell cat version) # SOURCES = ldlinux.asm syslinux.asm syslinux.c copybs.asm \ pxelinux.asm pxe.inc mbr.asm -BTARGET = bootsect.bin ldlinux.sys ldlinux.bin ldlinux.lst pxelinux.bin mbr.bin +BTARGET = bootsect.bin ldlinux.sys ldlinux.bin ldlinux.lst pxelinux.0 mbr.bin ITARGET = syslinux.com syslinux copybs.com DOCS = COPYING NEWS README TODO *.doc OTHER = Makefile bin2c.pl now.pl genstupid.pl keytab-lilo.pl version \ sys2ansi.pl +OBSOLETE = pxelinux.bin all: $(BTARGET) $(ITARGET) ls -l $(BTARGET) $(ITARGET) @@ -60,8 +61,8 @@ ldlinux.bin: ldlinux.asm $(NASM) -f bin -dVERSION="'$(VERSION)'" -dDATE_STR="'$(DATE)'" -dHEXDATE="$(HEXDATE)" -l ldlinux.lst -o ldlinux.bin ldlinux.asm perl genstupid.pl < ldlinux.lst -pxelinux.bin: pxelinux.asm - $(NASM) -f bin -dVERSION="'$(VERSION)'" -dDATE_STR="'$(DATE)'" -dHEXDATE="$(HEXDATE)" -l pxelinux.lst -o pxelinux.bin pxelinux.asm +pxelinux.0: pxelinux.asm + $(NASM) -f bin -dVERSION="'$(VERSION)'" -dDATE_STR="'$(DATE)'" -dHEXDATE="$(HEXDATE)" -l pxelinux.lst -o pxelinux.0 pxelinux.asm bootsect.bin: ldlinux.bin dd if=ldlinux.bin of=bootsect.bin bs=512 count=1 @@ -104,6 +105,7 @@ install: all tidy: rm -f syslinux.lst copybs.lst *.o *_bin.c stupid.* pxelinux.lst + rm -f $(OBSOLETE) clean: tidy rm -f $(ITARGET) diff --git a/NEWS b/NEWS index 0ae785b..791ceb5 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,13 @@ Starting with 1.47, changes marked with SYSLINUX/PXELINUX apply to that specific program only; other changes apply to both. +Changes in 1.53: + * PXELINUX: Rename pxelinux.bin to pxelinux.0, to match what + most PXE servers seem to expect. + * PXELINUX: Update the docs to outline how to work with the + kano.org.uk pxe server daemon. A more complete example + setup still needs to be written. + Changes in 1.52: * PXELINUX: Fix bugs introduced by new A20 code. (SYSLINUX has also been changed for code consistency reasons, but I'm diff --git a/pxelinux.doc b/pxelinux.doc index 7c425d2..3ba2b60 100644 --- a/pxelinux.doc +++ b/pxelinux.doc @@ -29,7 +29,7 @@ explains the differences. On the TFTP server, create the directory "/tftpboot", and copy the following files to it: - pxelinux.bin - from the SYSLINUX distribution + pxelinux.0 - from the SYSLINUX distribution any kernel or initrd images you want to boot @@ -51,7 +51,7 @@ search for its config file on the boot server in the following way: C00002, C0000, C000, C00, C0, C, and default, in that order. It should be noted that all filename references are relative to the -directory pxelinux.bin lives in (usually /tftpboot). PXELINUX +directory pxelinux.0 lives in (usually /tftpboot). PXELINUX generally requires that filenames (including any relative path) are 31 characters or shorter in length. @@ -103,20 +103,23 @@ workarounds for this bug: ++++ SETTING UP THE DHCP SERVER ++++ The PXE protocol uses a very complex set of extensions to DHCP or -BOOTP. Some PXE implementations can be coaxed to operate with a -normal DHCP server; unfortunately so far no "magic bullet" which works -with all PXE implementations work. +BOOTP. The best is probably to set up a "PXE boot server" on port +4011 of your TFTP server; a free PXE boot server is available at: -The best one currently known, using ISC dhcp 2.0 dhcpd.conf syntax: + http://www.kano.org.uk/projects/pxe/ + +With such a boot server defined, you should be able to use the +following DHCP set up, using ISC dhcp 2.0 dhcpd.conf syntax: allow booting; allow bootp; - filename "/tftpboot/pxelinux.bin" ; + # PXE-specific configuration directives... + option dhcp-class-identifier "PXEClient"; - option vendor-encapsulated-options 09:0f:80:00:0c:4e:65:74:77:6f:72:6b:20:62:6f:6f:74:0a:07:00:50:72:6f:6d:70:74:06:01:02:08:03:80:00:00:47:04:80:00:00:00:ff; - next-server ; - # server-identifier ; # Illegal! See below + next-server ; + + # Standard configuration directives... option domain-name ""; option subnet-mask ; @@ -131,6 +134,27 @@ The best one currently known, using ISC dhcp 2.0 dhcpd.conf syntax: fixed-address ; } + +Some PXE implementations can be coaxed to operate with a normal DHCP +server; unfortunately so far no "magic bullet" which works with all +PXE implementations work. + +The best one currently known, using ISC dhcp 2.0 dhcpd.conf syntax: + + allow booting; + allow bootp; + + # PXE-specific configuration directives... + + filename "/tftpboot/pxelinux.0" ; + option dhcp-class-identifier "PXEClient"; + option vendor-encapsulated-options 09:0f:80:00:0c:4e:65:74:77:6f:72:6b:20:62:6f:6f:74:0a:07:00:50:72:6f:6d:70:74:06:01:02:08:03:80:00:00:47:04:80:00:00:00:ff; + next-server ; + # server-identifier ; # Illegal! See below + + # Standard configuration directives... + # Same as above + However, some PXE implementations will only work this way if the "dhcp-class-identifier" and "vendor-encapsulated-options" are *not* present. Intel Boot Client 3.0 and later are known to fall into this @@ -142,12 +166,12 @@ will do this if you specify the -s (secure) option; this is recommended), you most likely should not include the /tftpboot prefix. If the DHCP and TFTP servers are not on the same machine, you are -supposed to set up a DHCP server on port 4011 on the TFTP server; this -is the "PXE boot server", which uses the DHCP protocol. If this is -not possible, you can try adding the directive "server-identifier -;" Unfortunately this is a violation of DHCP -protocol, but some PXE implementations do not accept the next-server -directive without it or the "boot server". +supposed to set up a PXE boot server (see above) on port 4011 on the +TFTP server; the "PXE boot server" is basically a modified DHCP server +on a nonstandard port. If this is not possible, you can try adding +the directive "server-identifier ;" Unfortunately this is +a violation of DHCP protocol, but some PXE implementations do not +accept the next-server directive without it or the "boot server". I have successfully booted an Intel N440BX ("Nightshade") motherboard with onboard Ethernet and "Intel LANDesk(R) Service Agent II version -- 2.7.4