Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 18 Sep 2013 17:39:25 GMT
From:      BSD Integration Components for Hyper-V <bsdic@microsoft.com>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/182210: Ports containing Hyper-V integration components for FreeBSD
Message-ID:  <201309181739.r8IHdPkZ081548@oldred.freebsd.org>
Resent-Message-ID: <201309181740.r8IHe0NN053608@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         182210
>Category:       ports
>Synopsis:       Ports containing Hyper-V integration components for FreeBSD
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Wed Sep 18 17:40:00 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator:     BSD Integration Components for Hyper-V
>Release:        9.1
>Organization:
Microsoft
>Environment:
FreeBSD freebsdonhyperv.org 9.1-RELEASE FreeBSD 9.1-RELEASE #0 r243825: Tue Dec  4 09:23:10 UTC 2012     root@farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  amd64

>Description:

>How-To-Repeat:

>Fix:


Patch attached with submission follows:

# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	hyperv-ic
#	hyperv-ic/pkg-descr
#	hyperv-ic/pkg-plist
#	hyperv-ic/Makefile
#	hyperv-ic/pkg-deinstall
#	hyperv-ic/distinfo
#	hyperv-ic/pkg-install
#
echo c - hyperv-ic
mkdir -p hyperv-ic > /dev/null 2>&1
echo x - hyperv-ic/pkg-descr
sed 's/^X//' >hyperv-ic/pkg-descr << '25efb91224a43d45fffdff064a69ca52'
XNAME
X     hyperv-ic -- Hyper-V Integration Components
X
XSYNOPSIS
X     The hyperv-ic provision a collection of kernel mode drivers and services
X     that enhance FreeBSD guest experience on Hyper-V.
X
XDESCRIPTION
X     The Hyper-V Integration Components include drivers and services that
X     improve functionality and performance of a FreeBSD guest operating system
X     running on Hyper-V. As of this writing, the hyperv-ic ports package
X     installs the following binaries:
X
X     a) hv_vmbus.ko - This is a loadable kernel module that provides a high
X     performance communication interface between the FreeBSD guest partition
X     and the Hyper-V root partition running Windows Server software. This mod-
X     ule is located under /boot/kernel/.
X
X     b) hv_storvsc.ko - This is a loadable kernel module that provides FreeBSD
X     guests with optimized access to physical storage devices.  This module is
X     located under /boot/kernel/.
X
X     c) hv_netvsc.ko - This is a loadable kernel module that provides FreeBSD
X     guests with optimized access to the physical network card.  This module
X     is located under /boot/kernel/.
X
X     d) hv_utils.ko - This is a loadable kernel module that provides FreeBSD
X     guests with timekeeping, heartbeat, console shutdown and key-value pair
X     functionality. This module is located under /boot/kernel/.
X
X     e) hv_ata_pci_disengage.ko - This is a loadable kernel module that dis-
X     ables the FreeBSD native ATA driver in order to avoid conflicts with the
X     hv_storvsc driver. This module is located under /boot/kernel/.
X
X     f) hv_kvp_daemon - This is a user mode daemon that communicates with the
X     hv_utils driver to manage user configurable metadata in the form of key
X     value pairs.  This daemon also allows the system administrator to read
X     and set IP addresses assigned to a FreeBSD guest. The daemon utilizes the
X     following collection of scripts stored under /usr/local/hyperv/scripts:
X     hv_get_dhcp_info
X     hv_get_dns_info
X     hv_set_ifconfig
X
X     The daemon is located under /usr/sbin/. The corresponding daemon script
X     named hv_kvpd is present under /etc/rc.d/.
X
XPRE-REQUISITE
X     Before you install hyperv-ic ports, please ensure that you have added
X     disk labels or UUIDs to all devices listed in fstab.
X
XSEE ALSO
X     hv_vmbus(4), hv_utils(4), hv_netvsc(4), hv_storvsc(4),
X     hv_ata_pci_disengage(4), hv_kvp_daemon(8)
X
XHISTORY
X     Support for hyperv-ic ports was first released in September 2013. The
X     ports were developed through a joint effort between Citrix Inc.,
X     Microsoft Corp. and Network Appliance Inc..
X
XAUTHORS
X     FreeBSD support for hyperv-ic was first added by Microsoft BSD
X     Integration Services Team <bsdic@microsoft.com>.
25efb91224a43d45fffdff064a69ca52
echo x - hyperv-ic/pkg-plist
sed 's/^X//' >hyperv-ic/pkg-plist << 'ae2305b65c9dbf7789f9d55dd252500c'
X@cwd /boot/kernel
Xhv_ata_pci_disengage.ko
Xhv_netvsc.ko
Xhv_storvsc.ko
Xhv_utils.ko
Xhv_vmbus.ko
X@cwd /usr/local/hyperv/scripts
Xhv_get_dhcp_info
Xhv_get_dns_info
Xhv_set_ifconfig
X@cwd /etc/rc.d
Xhv_kvpd
X@cwd /usr/sbin
Xhv_kvp_daemon
X@cwd /usr/share/man/man1
Xhyperv-ic.1.gz
X@cwd /usr/share/man/man4
Xhv_ata_pci_disengage.4.gz
Xhv_kvp.4.gz
Xhv_netvsc.4.gz
Xhv_storvsc.4.gz
Xhv_utils.4.gz
Xhv_vmbus.4.gz
X@cwd /usr/share/man/man8
Xhv_kvp_daemon.8.gz
ae2305b65c9dbf7789f9d55dd252500c
echo x - hyperv-ic/Makefile
sed 's/^X//' >hyperv-ic/Makefile << 'ab915107f78c05963c93866dff9180d1'
X# $FreeBSD$
X
XPORTNAME=	hyperv-ic
XPORTVERSION=	1.0
XCATEGORIES=	kld
XMASTER_SITES=	https://github.com/FreeBSDonHyper-V/Hyperv-Ports/raw/packages/hyperv-ic/
X
XMAINTAINER=	bsdic@microsoft.com
XCOMMENT=	Hyper-V Integration Components
X
XFETCH_ARGS=	-Fpr
X
XCC?=clang
XCXX?=clang++
XCPP?=clang-cpp
X
XONLY_FOR_ARCHS=	amd64 i386
X
X.include <bsd.port.pre.mk>
X
X.if ${OSVERSION} != 901000
XBROKEN=	Only for FreeBSD 9.1 Release
X.endif
X
Xpre-install:
X	@PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL
X
Xpost-install:
X	@PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
X
Xpost-deinstall:
X	@PKG_PREFIX=${PREFIX} ${SH} ${PKGDEINSTALL} ${PKGNAME} POST-DEINSTALL
X
X.include <bsd.port.post.mk>
ab915107f78c05963c93866dff9180d1
echo x - hyperv-ic/pkg-deinstall
sed 's/^X//' >hyperv-ic/pkg-deinstall << 'd96c615be4e82833d9962e829a1fc8f4'
X#!/bin/sh
X#
X# make deinstall or pkd_delete script 
X# cleans the hyperv labels
X#
X
Xif [ "$2" = "DEINSTALL" ]; then
X   test="/boot/loader.conf"
X
X   if [ -f $test ]; then
X   echo "===> File $test exists"
X   echo  "Removing Hyper-v drivers labels "
X   # Deleting hyperv driver names
X   sed -i".bak" '/Loader labels for Hyper-V driver/d' /boot/loader.conf
X   sed -i".bak" '/hv_vmbus_load/d' /boot/loader.conf
X   sed -i".bak" '/hv_utils_load/d' /boot/loader.conf
X   sed -i".bak" '/hv_storvsc_load/d' /boot/loader.conf
X   sed -i".bak" '/hv_netvsc_load/d' /boot/loader.conf
X   sed -i".bak" '/hv_ata_pci_disengage_load/d' /boot/loader.conf
X   else 
X   echo "===> File $test not found"
X   fi
X
Xecho "===> Removing kvp daemon label"
Xsed -i".bak" '/Labels for KVP daemon/d' /etc/rc.conf
Xsed -i".bak" '/hv_kvp_daemon_enable/d' /etc/rc.conf
X
Xfi
Xexit 0
d96c615be4e82833d9962e829a1fc8f4
echo x - hyperv-ic/distinfo
sed 's/^X//' >hyperv-ic/distinfo << '8c75fc298d62206188858e8f8db9031d'
XSHA256 (hyperv-ic-1.0.tar.gz) = 1b9f438d7a20160392c1975a3adbaf3cb8d4f3325590a7fe6bd1ef6b9c0dcd84
XSIZE (hyperv-ic-1.0.tar.gz) = 109773
8c75fc298d62206188858e8f8db9031d
echo x - hyperv-ic/pkg-install
sed 's/^X//' >hyperv-ic/pkg-install << 'de9ebe5ee976520640da45d75e8093e1'
X#!/bin/sh
X#
X# make install or pkg_add script
X# Checks labels/gptids for roots and swap partitions
X# adds hyperv labels in loader.conf 
X#
X
Xif [ "$2" = "PRE-INSTALL" ]; then
Xecho "===> Pre-install Check"
X
X#rootfs check
Xroot_flag=$(mount | awk '/ on \/ / { print $1 }' | cut -d / -f3-)
Xif [ "$root_flag" != "" ]; then
X   fs_test=$(glabel status | awk '{print $1}' | grep $root_flag)
X   if [ "$fs_test" == "" ]; then
X      echo " xxx rootfs Label/gptid missing in fstab"  
X   fi
Xelse 
X   echo " xxx rootfs Label/gptid missing in fstab"
Xfi
X
X#swap check
Xswap_flag=$(grep swap /etc/fstab | awk '{print $1}' | cut -d / -f3-)
Xif [ "$swap_flag" != "" ]; then
X   sw_test=$(glabel status | awk '{print $1}' | grep $swap_flag)
X   if [ "$sw_test" == "" ]; then
X      echo " xxx swap Label/gptid missing in fstab"  
X   fi
Xelse   
X   echo " xxx swap Label/gptid missing in fstab "
Xfi
X
Xif [ "$fs_test" != "" -a  "$sw_test" != "" ]; then
X   echo "===> Labels/gptids Found"
X   echo "===> Hyper-V Installation Continues"
X   else
X   echo "===> Labels/gptids Not found"
X   echo "===> Hyper-V Installation Aborted"
X   echo "===> Refer to Disk UUID section in README document"
X   echo "===> Please refer the Prerequisites page and complete all steps" 
X   echo "WWW: https://github.com/FreeBSDonHyper-V/Hyperv-Ports/wiki/Prerequisites " 
X   exit -1 
Xfi
X
X# KVP - Directories Check
X
Xecho "===> Checking KVP directories" 
Xkvp_dir="/usr/local/hyperv/"
Xkvp_dir_scripts="/usr/local/hyperv/scripts"
X
Xif [ -d $kvp_dir ]; then
X   if [ -d $kvp_dir_scripts ]; then
X      echo " ### KVP Directories present " 
X   else 
X      echo " ### Creating $kvp_dir_scripts directory "
X      mkdir /usr/local/hyperv/scripts
X   fi
Xelse 
X   echo " xxx KVP directories not found"
X   echo " ### Creating KVP  directories "
X   mkdir /usr/local/hyperv
X   mkdir /usr/local/hyperv/scripts
Xfi
X
Xelse if [ "$2" = "POST-INSTALL" ]; then
X   test="/boot/loader.conf"
X
X   if [ -f $test ]; then
X      echo "===> File $test exists"
X      echo "Adding for Hyper-v drivers"
X
X      # Deleting hyperv driver names
X      sed -i".bak" '/Loader labels for Hyper-V driver/d' /boot/loader.conf
X      sed -i".bak" '/hv_vmbus_load/d' /boot/loader.conf
X      sed -i".bak" '/hv_utils_load/d' /boot/loader.conf
X      sed -i".bak" '/hv_storvsc_load/d' /boot/loader.conf
X      sed -i".bak" '/hv_netvsc_load/d' /boot/loader.conf
X      sed -i".bak" '/hv_ata_pci_disengage_load/d' /boot/loader.conf
X
X      #hyperv driver names
X      echo  "# Loader labels for Hyper-V drivers -do not modify" >> /boot/loader.conf
X      echo  "hv_vmbus_load=\"YES\"" >> /boot/loader.conf
X      echo  "hv_utils_load=\"YES\""  >> /boot/loader.conf
X      echo  "hv_storvsc_load=\"YES\""  >> /boot/loader.conf
X      echo  "hv_netvsc_load=\"YES\""  >> /boot/loader.conf
X      echo  "hv_ata_pci_disengage_load=\"YES\""  >> /boot/loader.conf
X
X   else
X      echo "===> File $test does not exists"
X      echo " Adding File $test and Hyper-V driver labels"
X      #hyperv driver names
X      echo  "# Loader labels for Hyper-V drivers -do not modify" >> /boot/loader.conf
X      echo  "hv_vmbus_load=\"YES\"" >> /boot/loader.conf
X      echo  "hv_utils_load=\"YES\""  >> /boot/loader.conf
X      echo  "hv_storvsc_load=\"YES\""  >> /boot/loader.conf
X      echo  "hv_netvsc_load=\"YES\""  >> /boot/loader.conf
X      echo  "hv_ata_pci_disengage_load=\"YES\""  >> /boot/loader.conf
X   fi
X
X# KVP - daemon label
Xecho "===> Adding kvp daemon label" 
Xsed -i".bak" '/Labels for KVP daemon/d' /etc/rc.conf
Xsed -i".bak" '/hv_kvp_daemon_enable/d' /etc/rc.conf
Xecho  "# Labels for KVP daemon -do not modify" >> /etc/rc.conf
Xecho  "hv_kvp_daemon_enable=\"YES\"" >> /etc/rc.conf
X
Xfi
Xfi
Xexit 0
de9ebe5ee976520640da45d75e8093e1
exit



>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201309181739.r8IHdPkZ081548>