Spike White
2014-Dec-09 18:24 UTC
[syslinux] Gene, great documentation on PXELINUX-Multi-Arch
Gene,
First off, great documentation on
http://www.syslinux.org/wiki/index.php/PXELINUX-Multi-Arch
You clearly lay out the various techniques.
Just last week, I presented a pxelinux talk to our local Linux meet-up
group. (I've given
this talk before.)
http://2014.texaslinuxfest.org/content/creating-legacy-efi-pxe-server-using-pxelinux.html
Apparently, I'm using the "distinct directory, symlink path"
technique.
Good to know.
You might want to document example distinct directory examples. To more
fully explain
each technique.
Here's my example "distinct directory, symlink path" setup:
.
??? bios
? ?? boot
? ? ??? centos/
? ? ? ??? 6.2/
? ? ? ??? x86_64/
? ? ? ??? initrd.img
? ? ? ??? vmlinuz
? ? ??? fedora/
? ? ??? initrd.img
? ? ??? vmlinuz
? ??? SplashP.png
? ??? graphics.conf
? ??? ldlinux.c32
? ??? libcom32.c32
? ??? libutil.c32
? ??? pxelinux.cfg
? ? ??? default
? ??? pxelinux.0
? ??? vesamenu.c32
??? efi.x64
??? boot -> ../bios/boot
??? SplashP.png -> ../bios/SplashP.png
??? graphics.conf -> ../bios/graphics.conf
??? ldlinux.e64
??? libcom32.c32
??? libutil.c32
??? pxelinux.cfg
? ??? default
??? syslinux.efi
??? vesamenu.c32
and here's an equivalent "distinct directory, common kernel path"
example:
.
?? boot
? ??? centos/
? ? ??? 6.2/
? ? ??? x86_64/
? ? ??? initrd.img
? ? ??? vmlinuz
? ??? fedora/
? ??? initrd.img
? ??? vmlinuz
??? SplashP.png
??? graphics.conf
?? bios
? ??? ldlinux.c32
? ??? libcom32.c32
? ??? libutil.c32
? ??? pxelinux.cfg
? ? ??? default
? ??? pxelinux.0
? ??? vesamenu.c32
??? efi.x64
??? ldlinux.e64
??? libcom32.c32
??? libutil.c32
??? pxelinux.cfg
? ??? default
??? syslinux.efi
??? vesamenu.c32
BTW, I'm a huge fan of the "distinct directory" techniques. Why?
Because
your DHCP server
has to set up different bootfile-name options anyway, for the various
clients. That is:
- a BIOS client has to boot pxelinux.0,
- a UEFI/32 client has to boot (32-bit) syslinux.efi and
- a UEFI/64 client has to boot (64-bit) syslinux.efi.
(In my talk, I document three different ISC syntaxes to configure your DHCP
server to do this.)
Since you have to do this effort anyway, it makes sense to provide a
relative path. For instance,
"bios/pxelinux.0" and "efi64/syslinux.efi". Then pxelinux
is automatically
using distinct dirs,
since all paths are relative to where pxelinux's NBP is found.
For my situation, in my pxelinux.cfg/default files my boot flags &
kickstart files are slightly
different between my BIOS & UEFI clients. So striving towards a common
config makes little sense.
I can reference a common graphics.conf and SplashP.png, but very little
else.
However, I totally agree with your approach of documenting common
config/common directory. This
technique may make sense for other scenarios.
I'm reading your "common directory distinct config", about
pxelinux-options. I see
http://www.syslinux.org/wiki/index.php/PXELINUX has a (very short!)
discussion of pxelinux-options
under the "hardcoded options" section.
Looked at the perl source code and makefile. Running pxelinux-options -h
make more sense as to what
it does. I see it patches pxelinux.0. Will it correctly patch
efi64/efi/syslinux.efi as well? (I
know it claims to).
Spike
Gene Cumm
2014-Dec-11 15:33 UTC
[syslinux] Gene, great documentation on PXELINUX-Multi-Arch
Thank you. I appreciate your thanks and feedback. Examples certainly would round it out more. Yes I've tested EFI64 after DHCP options successfully but failed on pre-DHCP options. --Gene On Dec 9, 2014 1:28 PM, "Spike White" <spikewhitetx at gmail.com> wrote:> Gene, > > First off, great documentation on > http://www.syslinux.org/wiki/index.php/PXELINUX-Multi-Arch > > You clearly lay out the various techniques. > > Just last week, I presented a pxelinux talk to our local Linux meet-up > group. (I've given > this talk before.) > > > > http://2014.texaslinuxfest.org/content/creating-legacy-efi-pxe-server-using-pxelinux.html > > Apparently, I'm using the "distinct directory, symlink path" technique. > Good to know. > > You might want to document example distinct directory examples. To more > fully explain > each technique. > > Here's my example "distinct directory, symlink path" setup: > > . > ??? bios > ? ?? boot > ? ? ??? centos/ > ? ? ? ??? 6.2/ > ? ? ? ??? x86_64/ > ? ? ? ??? initrd.img > ? ? ? ??? vmlinuz > ? ? ??? fedora/ > ? ? ??? initrd.img > ? ? ??? vmlinuz > ? ??? SplashP.png > ? ??? graphics.conf > ? ??? ldlinux.c32 > ? ??? libcom32.c32 > ? ??? libutil.c32 > ? ??? pxelinux.cfg > ? ? ??? default > ? ??? pxelinux.0 > ? ??? vesamenu.c32 > ??? efi.x64 > ??? boot -> ../bios/boot > ??? SplashP.png -> ../bios/SplashP.png > ??? graphics.conf -> ../bios/graphics.conf > ??? ldlinux.e64 > ??? libcom32.c32 > ??? libutil.c32 > ??? pxelinux.cfg > ? ??? default > ??? syslinux.efi > ??? vesamenu.c32 > > > and here's an equivalent "distinct directory, common kernel path" example: > > . > ?? boot > ? ??? centos/ > ? ? ??? 6.2/ > ? ? ??? x86_64/ > ? ? ??? initrd.img > ? ? ??? vmlinuz > ? ??? fedora/ > ? ??? initrd.img > ? ??? vmlinuz > ??? SplashP.png > ??? graphics.conf > ?? bios > ? ??? ldlinux.c32 > ? ??? libcom32.c32 > ? ??? libutil.c32 > ? ??? pxelinux.cfg > ? ? ??? default > ? ??? pxelinux.0 > ? ??? vesamenu.c32 > ??? efi.x64 > ??? ldlinux.e64 > ??? libcom32.c32 > ??? libutil.c32 > ??? pxelinux.cfg > ? ??? default > ??? syslinux.efi > ??? vesamenu.c32 > > BTW, I'm a huge fan of the "distinct directory" techniques. Why? Because > your DHCP server > has to set up different bootfile-name options anyway, for the various > clients. That is: > - a BIOS client has to boot pxelinux.0, > - a UEFI/32 client has to boot (32-bit) syslinux.efi and > - a UEFI/64 client has to boot (64-bit) syslinux.efi. > > (In my talk, I document three different ISC syntaxes to configure your DHCP > server to do this.) > > Since you have to do this effort anyway, it makes sense to provide a > relative path. For instance, > "bios/pxelinux.0" and "efi64/syslinux.efi". Then pxelinux is automatically > using distinct dirs, > since all paths are relative to where pxelinux's NBP is found. > > For my situation, in my pxelinux.cfg/default files my boot flags & > kickstart files are slightly > different between my BIOS & UEFI clients. So striving towards a common > config makes little sense. > I can reference a common graphics.conf and SplashP.png, but very little > else. > > However, I totally agree with your approach of documenting common > config/common directory. This > technique may make sense for other scenarios. > > I'm reading your "common directory distinct config", about > pxelinux-options. I see > http://www.syslinux.org/wiki/index.php/PXELINUX has a (very short!) > discussion of pxelinux-options > under the "hardcoded options" section. > > Looked at the perl source code and makefile. Running pxelinux-options -h > make more sense as to what > it does. I see it patches pxelinux.0. Will it correctly patch > efi64/efi/syslinux.efi as well? (I > know it claims to). > > Spike > _______________________________________________ > Syslinux mailing list > Submissions to Syslinux at zytor.com > Unsubscribe or set options at: > http://www.zytor.com/mailman/listinfo/syslinux