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