Index: net/ipxe/Makefile =================================================================== --- net/ipxe/Makefile +++ net/ipxe/Makefile @@ -3,6 +3,7 @@ PORTNAME= ipxe DISTVERSION= 20200314 +PORTREVISION= 1 CATEGORIES= net MAINTAINER= tobik@FreeBSD.org @@ -59,15 +60,20 @@ general:PING_CMD \ general:POWEROFF_CMD -OPTIONS_DEFINE= EFI ISO -OPTIONS_DEFAULT= EFI ISO +OPTIONS_DEFINE= EFI EFI_USB ISO +OPTIONS_DEFAULT= EFI EFI_USB ISO +EFI_USB_IMPLIES= EFI EFI_DESC= Create EFI image +EFI_USB_DESC= Create bootable EFI USB image ISO_DESC= Create bootable CD image _EFI_ARCHS= ${ARCH:Mamd64:S/amd64/x86_64/} i386 +_EFI_FLAVORS= ipxe snp snponly .for _arch in ${_EFI_ARCHS} -EFI_PLIST_FILES+= ${DATADIR}/ipxe.efi-${_arch} +. for _efi_flavor in ${_EFI_FLAVORS} +EFI_PLIST_FILES+= ${DATADIR}/${_efi_flavor}.efi-${_arch} +. endfor .endfor ISO_BUILD_DEPENDS= ${LOCALBASE}/share/syslinux/bios/core/isolinux.bin:sysutils/syslinux \ @@ -77,6 +83,12 @@ LDLINUX_C32="${LOCALBASE}/share/syslinux/bios/com32/elflink/ldlinux/ldlinux.c32" ISO_ALL_TARGET= bin/ipxe.iso +EFI_USB_DEPENDS= mformat:emulators/mtools\ + bash:shells/bash +.for _arch in ${_EFI_ARCHS} +EFI_USB_PLIST_FILES+= ${DATADIR}/ipxe-efi-${_arch}.usb +.endfor + .include # Add user supplied build configuration after port options etc have @@ -105,16 +117,30 @@ do-build-EFI-on: .for _arch in ${_EFI_ARCHS} - ${DO_MAKE_BUILD} ARCH=${_arch} -C ${WRKSRC} bin-${_arch}-efi/ipxe.efi +. for _efi_flavor in ${_EFI_FLAVORS} + ${DO_MAKE_BUILD} ARCH=${_arch} -C ${WRKSRC} bin-${_arch}-efi/${_efi_flavor}.efi +. endfor .endfor +do-build-EFI_USB-on: +.for _arch in ${_EFI_ARCHS} + ${DO_MAKE_BUILD} ARCH=${_arch} -C ${WRKSRC} bin-${_arch}-efi/ipxe.usb +.endfor + do-install: @${MKDIR} ${STAGEDIR}${DATADIR} cd ${WRKSRC} && ${INSTALL_DATA} ${ALL_TARGET} ${STAGEDIR}${DATADIR} do-install-EFI-on: .for _arch in ${_EFI_ARCHS} - ${INSTALL_DATA} ${WRKSRC}/bin-${_arch}-efi/ipxe.efi ${STAGEDIR}${DATADIR}/ipxe.efi-${_arch} +. for _efi_flavor in ${_EFI_FLAVORS} + ${INSTALL_DATA} ${WRKSRC}/bin-${_arch}-efi/${_efi_flavor}.efi ${STAGEDIR}${DATADIR}/${_efi_flavor}.efi-${_arch} +. endfor +.endfor + +do-install-EFI_USB-on: +.for _arch in ${_EFI_ARCHS} + ${INSTALL_DATA} ${WRKSRC}/bin-${_arch}-efi/ipxe.usb ${STAGEDIR}${DATADIR}/ipxe-efi-${_arch}.usb .endfor .include Index: net/ipxe/files/pkg-message.in =================================================================== --- net/ipxe/files/pkg-message.in +++ net/ipxe/files/pkg-message.in @@ -9,8 +9,12 @@ - ipxe.lkrn for any boot manager that can boot Linux kernels - ipxe.pxe for chainloading from a PXE ROM - ipxe.usb for creating a bootable USB key +- ipxe-efi-{i386,x86_64}.usb for creating a bootable EFI USB key - undionly.kpxe for chainloading from a PXE ROM; contains only the UNDI drivers +- snponly.efi-* similar to undionly, but uses SNP/NII, should + only find and boot the specific NIC device it was chained from +- snp.efi-* same as snponly but tries to boot all devices - {8086100f,808610d3,10222000,15ad07b0}.rom for replacing the VMware PXE ROM. See http://ipxe.org/howto/vmware for more information.