@@ -43,6 +43,7 @@ RUN sed -i 's|//#define\tCONSOLE_FRAMEBUFFER|#define\tCONSOLE_FRAMEBUFFER|g' /bu
4343# Destination folder for compiled files
4444WORKDIR /ipxe/
4545
46+ # The following is too anticipate DHCP delays in the network
4647RUN echo -e '#!ipxe\n\n dhcp\n chain menu.ipxe' > /build/src/chain.ipxe
4748
4849# Compile embedded chain.ipxe for USB/ISO boot
@@ -54,12 +55,15 @@ RUN make -C /build/src/ bin/ipxe.lkrn EMBED=chain.ipxe -j8 && \
5455 cp /build/src/bin-x86_64-efi/ipxe.efi /ipxe/bin-x86_64-efi/ipxe.efi.chain && \
5556 make -C /build/src/ clean
5657
58+ # The following is too anticipate DHCP delays in the network
59+ RUN echo -e '#!ipxe\n\n dhcp\n chain ${filename}' > /build/src/chain.ipxe
60+
5761# Compile the files in "bin/"
5862ARG IPXE_BIN="bin/ipxe.dsk bin/ipxe.lkrn bin/ipxe.iso bin/ipxe.usb bin/ipxe.pxe bin/undionly.kpxe bin/rtl8139.rom bin/8086100e.mrom bin/80861209.rom bin/10500940.rom bin/10ec8139.rom bin/1af41000.rom bin/8086100f.mrom bin/808610d3.mrom bin/10222000.rom bin/15ad07b0.rom bin/3c509.rom bin/intel.rom bin/intel.mrom"
5963# _bin="bin/${IPXE_BIN// / bin\/}" \
6064RUN [ -z "${IPXE_BIN}" ] || ( \
6165 _bin="${IPXE_BIN}" \
62- && make -C /build/src/ ${_bin} -j8 \
66+ && make -C /build/src/ ${_bin} EMBED=chain.ipxe -j8 \
6367 && mkdir -p bin/ \
6468 && for file in ${_bin} ;do ln -v /build/src/${file} /ipxe/${file} ;done \
6569 )
@@ -69,7 +73,7 @@ ARG IPXE_EFI="bin-i386-efi/ipxe.efi bin-i386-efi/ipxe.usb bin-i386-efi/ipxe.efid
6973# _efi="bin-i386-efi/${IPXE_EFI// / bin-i386-efi\/}" \
7074RUN [ -z "${IPXE_EFI}" ] || ( \
7175 _efi="${IPXE_EFI}" \
72- && make -C /build/src/ ${_efi} -j8 \
76+ && make -C /build/src/ ${_efi} EMBED=chain.ipxe -j8 \
7377 && mkdir -p bin-i386-efi/ \
7478 && for file in ${_efi} ;do ln -v /build/src/${file} /ipxe/${file} ;done \
7579 )
@@ -79,7 +83,7 @@ ARG IPXE_EFI64="bin-x86_64-efi/ipxe.efi bin-x86_64-efi/ipxe.usb bin-x86_64-efi/i
7983# _efi64="bin-x86_64-efi/${IPXE_EFI64// / bin-x86_64-efi\/}" \
8084RUN [ -z "${IPXE_EFI64}" ] || ( \
8185 _efi64="${IPXE_EFI64}" \
82- && make -C /build/src/ ${_efi64} -j8 \
86+ && make -C /build/src/ ${_efi64} EMBED=chain.ipxe -j8 \
8387 && mkdir -p bin-x86_64-efi/ \
8488 && for file in ${_efi64} ;do ln -v /build/src/${file} /ipxe/${file} ;done \
8589 )
@@ -92,7 +96,7 @@ ARG IPXE_PCBIOS64="bin-x86_64-pcbios/8086100e.mrom bin-x86_64-pcbios/intel.rom b
9296# _bin64="bin-x86_64-pcbios/${IPXE_PCBIOS64// / bin-x86_64-pcbios\/}" \
9397RUN [ -z "${IPXE_PCBIOS64}" ] || ( \
9498 _bin64="${IPXE_PCBIOS64}" \
95- && make -C /build/src/ EXTRA_CFLAGS="-fno-pie" ${_bin64} -j8 \
99+ && make -C /build/src/ EXTRA_CFLAGS="-fno-pie" ${_bin64} EMBED=chain.ipxe -j8 \
96100 && mkdir -p bin-x86_64-pcbios/ \
97101 && for file in ${_bin64} ;do ln -v /build/src/${file} /ipxe/${file} ;done \
98102 )
@@ -129,12 +133,14 @@ WORKDIR /ipxe/
129133
130134# Compile the files in "bin-arm64-efi/"
131135SHELL ["/bin/bash" , "-c" ]
136+ # The following is too anticipate DHCP delays in the network
137+ RUN echo -e '#!ipxe\n\n dhcp\n chain \$ {67}' > /build/src/chain.ipxe
132138ARG IPXE_ARM_EFI64="bin-arm64-efi/ipxe.efi bin-arm64-efi/ipxe.usb bin-arm64-efi/snponly.efi"
133139# _arm64="bin-arm64-efi/${IPXE_ARM_EFI64// / bin-arm64-efi\/}" \
134140RUN [ -z "${IPXE_ARM_EFI64}" ] || ( \
135141 _arm64="${IPXE_ARM_EFI64}" \
136142 && PATH=${PATH}:/build/src/util/:/build/src/ \
137- && make CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64 -C /build/src/ ${_arm64} -j8 \
143+ && make CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64 -C /build/src/ ${_arm64} EMBED=chain.ipxe -j8 \
138144 && mkdir -p bin-arm64-efi/ \
139145 && for file in ${_arm64} ;do ln -v /build/src/${file} /ipxe/${file} ;done \
140146 )
0 commit comments