New port: net/ipxe
iPXE is the leading open source network boot firmware. It provides a full PXE implementation enhanced with additional features such as: * boot from a web server via HTTP * boot from an iSCSI SAN * boot from a Fibre Channel SAN via FCoE * boot from an AoE SAN * boot from a wireless network * boot from a wide-area network * boot from an Infiniband network * control the boot process with a script WWW: http://ipxe.org PR: 207166 Submitted by: Tobias Kortkamp <t@tobik.me>
This commit is contained in:
parent
f5346b84ad
commit
0bb35451a1
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=409900
7 changed files with 167 additions and 0 deletions
|
@ -253,6 +253,7 @@
|
|||
SUBDIR += ipsorc
|
||||
SUBDIR += ipsumdump
|
||||
SUBDIR += ipsvd
|
||||
SUBDIR += ipxe
|
||||
SUBDIR += irrd
|
||||
SUBDIR += isboot-kmod
|
||||
SUBDIR += isc-dhcp41-client
|
||||
|
|
88
net/ipxe/Makefile
Normal file
88
net/ipxe/Makefile
Normal file
|
@ -0,0 +1,88 @@
|
|||
# Created by: Guerkan Karaman <gk.freebsd@googlemail.com>
|
||||
# $FreeBSD$
|
||||
|
||||
# With helpful hints from net/gpxe
|
||||
|
||||
PORTNAME= ipxe
|
||||
PORTVERSION= 20160213
|
||||
CATEGORIES= net
|
||||
|
||||
MAINTAINER= t@tobik.me
|
||||
COMMENT= Open source network boot firmware
|
||||
|
||||
LICENSE= GPLv2
|
||||
|
||||
BUILD_DEPENDS= ${LOCALBASE}/share/syslinux/bios/core/isolinux.bin:${PORTSDIR}/sysutils/syslinux \
|
||||
bash:${PORTSDIR}/shells/bash \
|
||||
mkisofs:${PORTSDIR}/sysutils/cdrtools
|
||||
|
||||
USE_GITHUB= yes
|
||||
GH_PROJECT= ipxe
|
||||
# iPXE hasn't had a release since 2010.
|
||||
# See iPXE's FAQ at http://ipxe.org/faq
|
||||
#
|
||||
# Q: Which version of iPXE should I use?
|
||||
#
|
||||
# A: iPXE uses a rolling release model, in which every commit is intended
|
||||
# to be production-ready. You should always use the latest code.
|
||||
#
|
||||
GH_TAGNAME= 7ecfe7159f94193a666200a17057d4cd5981b850
|
||||
|
||||
USES= gmake perl5 shebangfix
|
||||
USE_GCC= yes
|
||||
MAKE_ARGS= PERL=${PERL} \
|
||||
CC=${CC} \
|
||||
HOST_CC=${CC} \
|
||||
ISOLINUX_BIN="${WRKSRC}/isolinux.bin" \
|
||||
LDLINUX_C32="${LOCALBASE}/share/syslinux/bios/com32/elflink/ldlinux/ldlinux.c32"
|
||||
WRKSRC_SUBDIR= src
|
||||
SHEBANG_FILES= util/geniso util/gensdsk
|
||||
|
||||
PLIST_FILES= %%DATADIR%%/ipxe.dsk \
|
||||
%%DATADIR%%/ipxe.usb \
|
||||
%%DATADIR%%/ipxe.iso \
|
||||
%%DATADIR%%/ipxe.pxe \
|
||||
%%DATADIR%%/ipxe.lkrn
|
||||
|
||||
SUB_FILES= pkg-message
|
||||
|
||||
.include <bsd.port.options.mk>
|
||||
|
||||
ONLY_FOR_ARCHS= amd64 i386
|
||||
ONLY_FOR_ARCHS_REASON= not yet ported to anything other than amd64/i386
|
||||
|
||||
.if ${ARCH} == "amd64"
|
||||
MAKE_ARGS+= ARCH=i386
|
||||
.endif
|
||||
|
||||
IPXE_EMBED?= # Allows embedding of iPXE start scripts
|
||||
.if ${IPXE_EMBED} != ""
|
||||
MAKE_ARGS+= EMBED="${IPXE_EMBED}"
|
||||
.endif
|
||||
|
||||
IPXE_TRUST?= # Path to the root certificates iPXE trusts
|
||||
.if ${IPXE_TRUST} != ""
|
||||
MAKE_ARGS+= TRUST="${IPXE_TRUST}"
|
||||
.endif
|
||||
|
||||
pre-everything::
|
||||
@${ECHO_MSG} "To build iPXE with an embedded script (path must be absolute):"
|
||||
@${ECHO_MSG} "make IPXE_EMBED=/path/to/ipxe/script install clean"
|
||||
@${ECHO_MSG}
|
||||
@${ECHO_MSG} "To build iPXE with new trusted root certificates"
|
||||
@${ECHO_MSG} "(see http://ipxe.org/crypto for more information):"
|
||||
@${ECHO_MSG} "make IPXE_TRUST=/path/to/ca1.crt,/path/to/ca2.crt"
|
||||
|
||||
pre-build:
|
||||
# ISO creation fails if isolinux.bin is read only
|
||||
${INSTALL} -m 644 ${LOCALBASE}/share/syslinux/bios/core/isolinux.bin ${WRKSRC}/isolinux.bin
|
||||
|
||||
do-install:
|
||||
@${MKDIR} ${STAGEDIR}${DATADIR}
|
||||
${INSTALL_DATA} ${WRKSRC}/bin/ipxe.dsk ${STAGEDIR}${DATADIR}
|
||||
${INSTALL_DATA} ${WRKSRC}/bin/ipxe.usb ${STAGEDIR}${DATADIR}
|
||||
${INSTALL_DATA} ${WRKSRC}/bin/ipxe.iso ${STAGEDIR}${DATADIR}
|
||||
${INSTALL_DATA} ${WRKSRC}/bin/ipxe.pxe ${STAGEDIR}${DATADIR}
|
||||
${INSTALL_DATA} ${WRKSRC}/bin/ipxe.lkrn ${STAGEDIR}${DATADIR}
|
||||
|
||||
.include <bsd.port.mk>
|
2
net/ipxe/distinfo
Normal file
2
net/ipxe/distinfo
Normal file
|
@ -0,0 +1,2 @@
|
|||
SHA256 (ipxe-ipxe-20160213-7ecfe7159f94193a666200a17057d4cd5981b850_GH0.tar.gz) = 81e5a199c179ea993368beca55b40f810dddf789c6da48bace72aae3d94a6aba
|
||||
SIZE (ipxe-ipxe-20160213-7ecfe7159f94193a666200a17057d4cd5981b850_GH0.tar.gz) = 3490722
|
33
net/ipxe/files/patch-config_general.h
Normal file
33
net/ipxe/files/patch-config_general.h
Normal file
|
@ -0,0 +1,33 @@
|
|||
--- config/general.h.orig 2016-02-12 14:04:51 UTC
|
||||
+++ config/general.h
|
||||
@@ -35,7 +35,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
|
||||
*/
|
||||
|
||||
#define NET_PROTO_IPV4 /* IPv4 protocol */
|
||||
-#undef NET_PROTO_IPV6 /* IPv6 protocol */
|
||||
+#define NET_PROTO_IPV6 /* IPv6 protocol */
|
||||
#undef NET_PROTO_FCOE /* Fibre Channel over Ethernet protocol */
|
||||
#define NET_PROTO_STP /* Spanning Tree protocol */
|
||||
|
||||
@@ -53,10 +53,10 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
|
||||
|
||||
#define DOWNLOAD_PROTO_TFTP /* Trivial File Transfer Protocol */
|
||||
#define DOWNLOAD_PROTO_HTTP /* Hypertext Transfer Protocol */
|
||||
-#undef DOWNLOAD_PROTO_HTTPS /* Secure Hypertext Transfer Protocol */
|
||||
+#define DOWNLOAD_PROTO_HTTPS /* Secure Hypertext Transfer Protocol */
|
||||
#undef DOWNLOAD_PROTO_FTP /* File Transfer Protocol */
|
||||
#undef DOWNLOAD_PROTO_SLAM /* Scalable Local Area Multicast */
|
||||
-#undef DOWNLOAD_PROTO_NFS /* Network File System Protocol */
|
||||
+#define DOWNLOAD_PROTO_NFS /* Network File System Protocol */
|
||||
|
||||
/*
|
||||
* SAN boot protocols
|
||||
@@ -136,7 +136,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
|
||||
//#define PXE_CMD /* PXE commands */
|
||||
//#define REBOOT_CMD /* Reboot command */
|
||||
//#define POWEROFF_CMD /* Power off command */
|
||||
-//#define IMAGE_TRUST_CMD /* Image trust management commands */
|
||||
+#define IMAGE_TRUST_CMD /* Image trust management commands */
|
||||
//#define PCI_CMD /* PCI commands */
|
||||
//#define PARAM_CMD /* Form parameter commands */
|
||||
//#define NEIGHBOUR_CMD /* Neighbour management commands */
|
25
net/ipxe/files/pkg-message.in
Normal file
25
net/ipxe/files/pkg-message.in
Normal file
|
@ -0,0 +1,25 @@
|
|||
The following files have been installed in %%DATADIR%%:
|
||||
|
||||
* ipxe.dsk: To create a bootable floppy run
|
||||
|
||||
dd if=%%DATADIR%%/ipxe.dsk of=/dev/fd0
|
||||
|
||||
where /dev/fd0 is your floppy drive. This will erase any data
|
||||
already on the disk.
|
||||
|
||||
* ipxe.usb: To create a bootable USB key run
|
||||
|
||||
dd if=%%DATADIR%%/ipxe.usb of=/dev/daX
|
||||
|
||||
where /dev/daX is your USB key, and is *not* a real hard disk on
|
||||
your system. This will erase any data already on the USB key.
|
||||
|
||||
* ipxe.iso: To create a bootable CD-ROM run
|
||||
|
||||
cdrecord %%DATADIR%%/ipxe.iso
|
||||
|
||||
to write the image to a blank CD.
|
||||
|
||||
* ipxe.pxe: For chainloading from a PXE ROM.
|
||||
|
||||
* ipxe.lkrn: For any boot manager that can boot Linux kernels.
|
6
net/ipxe/ipxestart.example
Normal file
6
net/ipxe/ipxestart.example
Normal file
|
@ -0,0 +1,6 @@
|
|||
#!ipxe
|
||||
# An example iPXE start script
|
||||
# To build iPXE with this script embedded build the port with:
|
||||
# make IPXE_EMBED=${PWD}/ipxestart.example
|
||||
ifconf
|
||||
chain https://boot.ipxe.org/demo/boot.php
|
12
net/ipxe/pkg-descr
Normal file
12
net/ipxe/pkg-descr
Normal file
|
@ -0,0 +1,12 @@
|
|||
iPXE is the leading open source network boot firmware. It provides a
|
||||
full PXE implementation enhanced with additional features such as:
|
||||
* boot from a web server via HTTP
|
||||
* boot from an iSCSI SAN
|
||||
* boot from a Fibre Channel SAN via FCoE
|
||||
* boot from an AoE SAN
|
||||
* boot from a wireless network
|
||||
* boot from a wide-area network
|
||||
* boot from an Infiniband network
|
||||
* control the boot process with a script
|
||||
|
||||
WWW: http://ipxe.org
|
Loading…
Reference in a new issue