Date: Thu, 24 Sep 2015 10:28:58 +0000 (UTC) From: Kurt Jaeger <pi@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r397686 - in head/net: . isboot-kmod isboot-kmod/files Message-ID: <201509241028.t8OASwdg071561@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: pi Date: Thu Sep 24 10:28:58 2015 New Revision: 397686 URL: https://svnweb.freebsd.org/changeset/ports/397686 Log: New port: net/isboot-kmod This installs Daisuke Aoyama's isboot kernel module, which allows booting FreeBSD directly from an iSCSI root disk. If your BIOS supports iSCSI you may configure your target settings in the BIOS and boot directly. If not, you may PXE boot using software that contains iSCSI support such as iPXE. The module reads the iSCSI Boot Firmware Table (IBFT) to configure the network and re-attach the volume once the kernel begins execution. WWW: http://shell.peach.ne.jp/aoyama/archives/2115 (Japanese) PR: 203294 Submitted by: John Nielsen <john@jnielsen.net> Added: head/net/isboot-kmod/ head/net/isboot-kmod/Makefile (contents, props changed) head/net/isboot-kmod/distinfo (contents, props changed) head/net/isboot-kmod/files/ head/net/isboot-kmod/files/patch-iscsi.c (contents, props changed) head/net/isboot-kmod/files/pkg-message.in (contents, props changed) head/net/isboot-kmod/pkg-descr (contents, props changed) Modified: head/net/Makefile Modified: head/net/Makefile ============================================================================== --- head/net/Makefile Thu Sep 24 09:48:17 2015 (r397685) +++ head/net/Makefile Thu Sep 24 10:28:58 2015 (r397686) @@ -248,6 +248,7 @@ SUBDIR += ipsumdump SUBDIR += ipsvd SUBDIR += irrd + SUBDIR += isboot-kmod SUBDIR += isc-dhcp41-client SUBDIR += isc-dhcp41-relay SUBDIR += isc-dhcp41-server Added: head/net/isboot-kmod/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net/isboot-kmod/Makefile Thu Sep 24 10:28:58 2015 (r397686) @@ -0,0 +1,28 @@ +# $FreeBSD$ + +PORTNAME= isboot-kmod +PORTVERSION= 0.2.10 +CATEGORIES= net +MASTER_SITES= http://www.peach.ne.jp/archives/isboot/ +DISTNAME= isboot-${PORTVERSION} + +MAINTAINER= john@jnielsen.net +COMMENT= Kernel module enabling iSCSI boot + +LICENSE= BSD2CLAUSE + +USES= kmod uidfix +SUB_FILES= pkg-message +WRKSRC_SUBDIR= src +PLIST_FILES= ${KMODDIR}/isboot.ko +PORTDOCS= README + +OPTIONS_DEFINE= DOCS VIMAGE +VIMAGE_DESC= Build for a kernel with 'options VIMAGE' +VIMAGE_CFLAGS= -DVIMAGE + +post-install-DOCS-on: + ${MKDIR} ${STAGEDIR}${DOCSDIR} + cd ${WRKDIR}/${DISTNAME} && ${INSTALL_MAN} ${PORTDOCS} ${STAGEDIR}${DOCSDIR} + +.include <bsd.port.mk> Added: head/net/isboot-kmod/distinfo ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net/isboot-kmod/distinfo Thu Sep 24 10:28:58 2015 (r397686) @@ -0,0 +1,2 @@ +SHA256 (isboot-0.2.10.tar.gz) = b801708256f789e1032f7be2db79f886919fddb7b9b26ec1835f68a8237c3b48 +SIZE (isboot-0.2.10.tar.gz) = 30268 Added: head/net/isboot-kmod/files/patch-iscsi.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net/isboot-kmod/files/patch-iscsi.c Thu Sep 24 10:28:58 2015 (r397686) @@ -0,0 +1,56 @@ +--- iscsi.c.orig 2015-09-23 05:51:43 UTC ++++ iscsi.c +@@ -1036,24 +1036,30 @@ isboot_append_param(pdu_t *pp, char *for + return (n); + } + +-#if __FreeBSD_version >= 1000050 ++#if __FreeBSD_version < 1000050 ++static void ++isboot_free_mbufext(void *p, void *optarg) ++#endif ++#if __FreeBSD_version >= 1000050 && __FreeBSD_version < 1100000 ++#define EXT_FREE_OK 0 + static int + isboot_free_mbufext(struct mbuf *m, void *p, void *optarg) +-#else ++#endif ++#if __FreeBSD_version >= 1100000 + static void +-isboot_free_mbufext(void *p, void *optarg) ++isboot_free_mbufext(struct mbuf *m, void *p, void *optarg) + #endif + { + + ISBOOT_TRACE("isboot_free_mbufext\n"); + if (p == NULL) +-#if __FreeBSD_version >= 1000050 ++#if __FreeBSD_version >= 1000050 && __FreeBSD_version < 1100000 + return (EXT_FREE_OK); + #else + return; + #endif + isboot_free_mext(p); +-#if __FreeBSD_version >= 1000050 ++#if __FreeBSD_version >= 1000050 && __FreeBSD_version < 1100000 + return (EXT_FREE_OK); + #endif + } +@@ -1072,7 +1078,7 @@ isboot_xmit_pdu(struct isboot_sess *sess + + sizeof(pp->hdr_dig) > MHLEN) { + panic("AHS=%d is too large", pp->ahs_len); + } +- MGETHDR(mh, M_TRYWAIT, MT_DATA); ++ MGETHDR(mh, M_WAITOK, MT_DATA); + mh->m_pkthdr.rcvif = NULL; + memcpy(mh->m_data, &pp->ipdu, ISCSI_BHS_LEN); + mh->m_len = ISCSI_BHS_LEN; +@@ -1099,7 +1105,7 @@ isboot_xmit_pdu(struct isboot_sess *sess + /* allocate external buffer and add it to mbuf */ + ds_dd = isboot_malloc_mext(ISCSI_ALIGN(pp->ds_len) + + sizeof(pp->ds_dig)); +- MGET(md, M_TRYWAIT, MT_DATA); ++ MGET(md, M_WAITOK, MT_DATA); + #if __FreeBSD_version >= 800016 + MEXTADD(md, (caddr_t)ds_dd, (ISCSI_ALIGN(pp->ds_len) + + sizeof(pp->ds_dig)), Added: head/net/isboot-kmod/files/pkg-message.in ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net/isboot-kmod/files/pkg-message.in Thu Sep 24 10:28:58 2015 (r397686) @@ -0,0 +1,5 @@ +Remember to have the module loaded at boot by adding the following to +/boot/loader.conf: + isboot_load="YES" + +See %%DOCSDIR%%/README for additional information. Added: head/net/isboot-kmod/pkg-descr ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net/isboot-kmod/pkg-descr Thu Sep 24 10:28:58 2015 (r397686) @@ -0,0 +1,9 @@ +This installs Daisuke Aoyama's isboot kernel module, which allows +booting FreeBSD directly from an iSCSI root disk. If your BIOS +supports iSCSI you may configure your target settings in the BIOS +and boot directly. If not, you may PXE boot using software that +contains iSCSI support such as iPXE. The module reads the iSCSI +Boot Firmware Table (IBFT) to configure the network and re-attach +the volume once the kernel begins execution. + +WWW: http://shell.peach.ne.jp/aoyama/archives/2115 (Japanese)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201509241028.t8OASwdg071561>