# Clean out any prior object files from a previous Make
# This Directory may not have come from this host
echo "running make clean - this will take a while..."
make clean 1>"$0.clean.log" 2>"$0.clean.errors.log"
echo Done clean
echo ==================================
if ! grep "__FIRMWARE_EFI64__" core/include/fs.h >/dev/null 2>&1
then
echo "Adding #define __FIRMWARE_EFI64__ to core/include/fs.h"
sed -i -e "s/^#define FS_H/a#define __FIRMWARE_EFI64__/" core/include/fs.h
else
echo "#define __FIRMWARE_EFI64__ alread exists in core/include/fs.h"
fi
echo "running make - this will take a while..."
make install 1>"$0.log" 2>"$0.errors.log"
echo "make done"
echo ==================================
echo " For debugging you can look at the file"
echo " $VERSION/$0.log - for the make log"
if [ -s "$VERSION/$0.errors.log" ]
then
echo ==================================
echo "Errors detected - see $VERSION/$0.errors.log"
cat "$VERSION/$0.errors.log"
echo ==================================
else
echo "No errors"
fi
dhcp-boot=tag:x86PC,pxelinux.0
dhcp-match=set:X86-64_EFI,option:client-arch,6
dhcp-match=set:X86-64_EFI,option:client-arch,7
dhcp-match=set:X86-64_EFI,option:client-arch,9
dhcp-boot=tag:X86-64_EFI,syslinux64.efi
======================================================
# Make sure we have initial boot config files to populate the /tftpboot/pxes root folder
# This refer to pxelinux.cfg folder optionally updated above
echo =======================================
echo "Verifying existance of bios.cfg efi32.cfg efi64.cfg in /tftpboot/pxes folder"
for i in bios.cfg efi32.cfg efi64.cfg
do
if [ ! -f "/tftpboot/pxes/$i" ]
then
echo "creating /tftpboot/pxes/$i"
rsync -a -x -H "pxe/$i" "/tftpboot/pxes/"
else
echo "have /tftpboot/pxes/$i"
fi
done
# ======================================================
# ======================================================
# Make sure we have BIOS EFI64 and EFI32 boot loaders under the /tftpboot/pxes root folder
echo "Update the PXE boot loaders and their respective config file under /tftpboot/pxes"
echo
# ======================================================
# ======================================================
# BIOS PXE boot support
echo =======================================
echo "updating BIOS level boot loaders"
# Remove old symlinks first
rm -f "/tftpboot/pxes/bios"
rm -f "/tftpboot/pxes/syslinux/syslinux"
# Notes: Special case: the syslinux folder is also the default bios folder with menu.c32 etc so just link it
ln -sf "/tftpboot/pxes/syslinux" "/tftpboot/pxes/bios"
# Notes: SYSLINUX already contains pxelinux.cfg folder - so no need to link here
# We need syslinux inside bios so we link it intol itself
# Adding this folder is not likely required - ends up linking to PXE/syslinux/syslinux - harmless
ln -sf "/tftpboot/pxes/syslinux" "/tftpboot/pxes/syslinux/syslinux"
cp -fp "/tftpboot/pxes/syslinux/pxelinux.0" "/tftpboot/pxes/pxelinux.0"
cp -fp "/tftpboot/pxes/syslinux/lpxelinux.0" "/tftpboot/pxes/lpxelinux.0"
# Patch pxelinux.0 with config file name
echo "updating BIOS loader /tftpboot/pxes/pxelinux.0"
pxelinux-options --after config-file "bios.cfg" "/tftpboot/pxes/pxelinux.0"
# ======================================================
# ======================================================
# 64Bit EFI PXE boot support
echo =======================================
echo "updating EFI64 level boot loaders"
rm -f "/tftpboot/pxes/efi64"
ln -sf "/tftpboot/pxes/syslinux/efi64/" "/tftpboot/pxes/efi64"
ln -sf "/tftpboot/pxes/pxelinux.cfg" "/tftpboot/pxes/efi64/pxelinux.cfg"
ln -sf "/tftpboot/pxes/syslinux/efi64/" "/tftpboot/pxes/efi64/syslinux"
cp -fp "/tftpboot/pxes/syslinux/efi64/syslinux.efi" "/tftpboot/pxes/syslinux64.efi"
cp -fp "/tftpboot/pxes/syslinux/efi64/ldlinux.e64" "/tftpboot/pxes/ldlinux.e64"
# Patch syslinux64.efi with config file name
echo "updating EFI64 loader /tftpboot/pxes/esyslinux64.efi"
pxelinux-options --after config-file "efi64.cfg" "/tftpboot/pxes/syslinux64.efi"
# ======================================================
# ======================================================
# 32Bit EFI PXE boot support
echo =======================================
echo "updating EFI32level boot loaders"
rm -f "/tftpboot/pxes/efi32"
ln -sf "/tftpboot/pxes/syslinux/efi32/" "/tftpboot/pxes/efi32"
ln -sf "/tftpboot/pxes/pxelinux.cfg" "/tftpboot/pxes/efi32/pxelinux.cfg"
ln -sf "/tftpboot/pxes/syslinux/efi32/" "/tftpboot/pxes/efi32/syslinux"
cp -fp "/tftpboot/pxes/syslinux/efi32/syslinux.efi" "/tftpboot/pxes/syslinux32.efi"
cp -fp "/tftpboot/pxes/syslinux/efi32/ldlinux.e32" "/tftpboot/pxes/ldlinux.e32"
# Patch syslinux32.efi with config file name
echo "updating EFI32 loader /tftpboot/pxes/esyslinux32.efi"
pxelinux-options --after config-file "efi32.cfg" "/tftpboot/pxes/syslinux32.efi"
echo
# ======================================================
# ======================================================
# List each boot loder config file name to verify updates
echo =======================================
echo Listing patches to PXE boot loaders
pxelinux-options --list "/tftpboot/pxes/pxelinux.0"
pxelinux-options --list "/tftpboot/pxes/syslinux64.efi"
pxelinux-options --list "/tftpboot/pxes/syslinux32.efi"
# ======================================================
| I | Attachment | History | Action | Size | Date | Who | Comment |
|---|---|---|---|---|---|---|---|
| |
configplus.tgz | r1 | manage | 534.5 K | 2018-06-28 - 13:32 | MikeGore | Expanded configuration files for Multiarch PXE boot envirponment from cs-tech1 |
| |
configs.tgz | r1 | manage | 532.3 K | 2018-06-28 - 10:39 | MikeGore | Example configuration files for Multiarch PXE boot envirponment |
| |
dnsmasq.conf | r1 | manage | 2.2 K | 2018-06-28 - 10:50 | MikeGore | example /etc/dnsmasq.conf file for dnsmasq |