Steven Shiau
2013-Sep-16 06:57 UTC
[syslinux] One DHCP/PXE config for BIOS, EFI32, and EFI64 clients?
Dear all, I'd like to have a DHCP/PXE server for different arch of clients, i.e. BIOS, EFI32, and EFI64 clients. As described here: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=720589 What Daniel has proposed (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=720589#10) should work, i.e. Using a file called pxelinux.cfg/bios containing the following 2 lines: ==============================PATH bios/ INCLUDE /pxelinux.cfg/default ==============================will solve this problem. However, with the following line specified in dhcpd.conf: ==============================option pxelinux.configfile "pxelinux.cfg/bios"; ==============================then only the config file pxelinux.cfg/default will be used. Those file names like: pxelinux.cfg/01-88-99-aa-bb-cc-dd pxelinux.cfg/C000025B pxelinux.cfg/C000025 pxelinux.cfg/C00002 pxelinux.cfg/C0000 pxelinux.cfg/C000 pxelinux.cfg/C00 pxelinux.cfg/C0 pxelinux.cfg/C won't be loaded if I want to use some specific config file for some machine. So, is there any method that I can make it so that those config files based on MAC address and IP address could be loaded? Thanks in advance. Steven. -- Steven Shiau <steven _at_ nchc org tw> <steven _at_ stevenshiau org> National Center for High-performance Computing, Taiwan. http://www.nchc.org.tw Public Key Server PGP Key ID: 4096R/47CF935C Fingerprint: 0240 1FEB 695D 7112 62F0 8796 11C1 12DA 47CF 935C
Ady
2013-Sep-19 17:02 UTC
[syslinux] One DHCP/PXE config for BIOS, EFI32, and EFI64 clients?
> Dear all, > I'd like to have a DHCP/PXE server for different arch of clients, i.e. > BIOS, EFI32, and EFI64 clients. > As described here: > http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=720589 > What Daniel has proposed > (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=720589#10) should > work, i.e. Using a file called pxelinux.cfg/bios containing the > following 2 lines: > ==============================> PATH bios/ > INCLUDE /pxelinux.cfg/default > ==============================> will solve this problem. > However, with the following line specified in dhcpd.conf: > ==============================> option pxelinux.configfile "pxelinux.cfg/bios"; > ==============================> then only the config file pxelinux.cfg/default will be used. Those file > names like: > pxelinux.cfg/01-88-99-aa-bb-cc-dd > pxelinux.cfg/C000025B > pxelinux.cfg/C000025 > pxelinux.cfg/C00002 > pxelinux.cfg/C0000 > pxelinux.cfg/C000 > pxelinux.cfg/C00 > pxelinux.cfg/C0 > pxelinux.cfg/C > > won't be loaded if I want to use some specific config file for some machine. > > So, is there any method that I can make it so that those config files > based on MAC address and IP address could be loaded? > Thanks in advance. > > Steven.There might be an alternative (and possibly others too): let the user select the appropriate firmware from within pxelinux.cfg/default. So, keep using the same method you used in previous versions, instead of selecting the Syslinux cfg / firmware from the DHCP snippet that Daniel posted. If you actually get to pxelinux.cfg/default (as you probably used to when you were not selecting a specific machine), _then_ you choose the firmware. Try something similar to the following (I haven't tested it myself). # pxelinux.cfg/default # -------------------- PROMPT 1 SAY ************************************ SAY * Type "bios", "efi32", or "efi64" * SAY ************************************ DISPLAY message.txt # message.txt is optional e.g for initial help LABEL bios CONFIG /pxelinux.cfg/bios.cfg # Note: Daniel used "pxelinux.cfg/bios" # instead of my "pxelinux.cfg/bios.cfg" LABEL efi32 CONFIG /pxelinux.cfg/efi32.cfg # Note: Daniel used "pxelinux.cfg/efi32" # instead of my "pxelinux.cfg/efi32.cfg" LABEL efi64 CONFIG /pxelinux.cfg/efi64.cfg # Note: Daniel used "pxelinux.cfg/efi64" # instead of my "pxelinux.cfg/efi64.cfg" # ____________________ # pxelinux.cfg/bios.cfg # --------------------- PATH /bios/ INCLUDE /pxelinux.cfg/common_config_files.cfg # The pxelinux.cfg/common_config_files.cfg # is what Daniel used in his pxelinux.cfg/default. # _____________________ # pxelinux.cfg/efi32.cfg # ---------------------- PATH /efi32/ INCLUDE /pxelinux.cfg/common_config_files.cfg # The pxelinux.cfg/common_config_files.cfg # is what Daniel used in his pxelinux.cfg/default. # ______________________ # pxelinux.cfg/efi64.cfg # ---------------------- PATH /efi64/ INCLUDE /pxelinux.cfg/common_config_files.cfg # The pxelinux.cfg/common_config_files.cfg # is what Daniel used in his pxelinux.cfg/default. # ______________________ If in the future someone creates some c32 module that would be capable of identifying the corresponding adequate firmware (and then choosing a label accordingly), then the user would not need to select it manually. Hopefully, someone else might suggest other alternatives. Regards, Ady.
Ady
2013-Sep-19 18:34 UTC
[syslinux] One DHCP/PXE config for BIOS, EFI32, and EFI64 clients?
> There might be an alternative (and possibly others too): let the user > select the appropriate firmware from within pxelinux.cfg/default. > > So, keep using the same method you used in previous versions, instead > of selecting the Syslinux cfg / firmware from the DHCP snippet that > Daniel posted. > > If you actually get to pxelinux.cfg/default (as you probably used to > when you were not selecting a specific machine), _then_ you choose > the firmware. >While re-reading my own email, I realized that I wasn't clear enough.>From the DHCP, you would still need to "select" the specificbootloader according to the firmware. What I meant was, not to select a firmware-specific cfg file ( pxelinux.cfg/bios ; pxelinux.cfg/efi32 ; pxelinux.cfg/efi64 ) from the DHCP, but to leave it as "usual" (defaulting to pxelinux.cfg/default), as you probably used to. So, when I said "_then_ you choose the firmware", what I actually meant is "_then_ you select the respective cfg file". The /pxelinux.cfg/default and the rest of the cfg files I suggested are still relevant. I hope I expressed myself more clearly this time. Regards, Ady.
Jeffrey Hutzelman
2013-Sep-25 17:44 UTC
[syslinux] One DHCP/PXE config for BIOS, EFI32, and EFI64 clients?
On Mon, 2013-09-16 at 14:57 +0800, Steven Shiau wrote:> So, is there any method that I can make it so that those config files > based on MAC address and IP address could be loaded? > Thanks in advance.Yes; you can configure your DHCP server to hand out different values for the pxelinux.configfile option to specific clients, matching on MAC address or a variety of other conditions. Of course, this means that the config file for that machine will need to know what firmware to expect and thus what path to set. -- Jeffrey T. Hutzelman (N3NHS) <jhutz+ at cmu.edu> Sr. Research Systems Programmer School of Computer Science - Research Computing Facility Carnegie Mellon University - Pittsburgh, PA
Steven Shiau
2013-Sep-26 07:39 UTC
[syslinux] One DHCP/PXE config for BIOS, EFI32, and EFI64 clients?
On 09/26/2013 01:44 AM, Jeffrey Hutzelman wrote:> Yes; you can configure your DHCP server to hand out different values for > the pxelinux.configfile option to specific clients, matching on MAC > address or a variety of other conditions. Of course, this means that > the config file for that machine will need to know what firmware to > expect and thus what path to set.Hi Jeffrey, Thanks. I think what the solution is as I mentioned in the thread beginning, http://www.syslinux.org/archives/2013-September/020848.html Or did I miss something? My actual idea is, is that possible we could have an option, even with: ==============================option pxelinux.configfile "pxelinux.cfg/bios"; ==============================this option still lets pxelinux still honor the rules: pxelinux.cfg/01-88-99-aa-bb-cc-dd pxelinux.cfg/C000025B pxelinux.cfg/C000025 pxelinux.cfg/C00002 pxelinux.cfg/C0000 pxelinux.cfg/C000 pxelinux.cfg/C00 pxelinux.cfg/C0 pxelinux.cfg/C pxelinux.cfg/default If such an option exists, it will be very useful because one DHCP/PXE config could for all BIOS, EFI32, and EFI64 clients. Thanks in advance. Steven. -- Steven Shiau <steven _at_ nchc org tw> <steven _at_ stevenshiau org> National Center for High-performance Computing, Taiwan. http://www.nchc.org.tw Public Key Server PGP Key ID: 4096R/47CF935C Fingerprint: 0240 1FEB 695D 7112 62F0 8796 11C1 12DA 47CF 935C