diff options
Diffstat (limited to 'sys-freebsd/virtio-kmod')
-rw-r--r-- | sys-freebsd/virtio-kmod/Manifest | 1 | ||||
-rw-r--r-- | sys-freebsd/virtio-kmod/files/pkg-message | 22 | ||||
-rw-r--r-- | sys-freebsd/virtio-kmod/metadata.xml | 8 | ||||
-rw-r--r-- | sys-freebsd/virtio-kmod/virtio-kmod-0.228301-r1.ebuild | 71 |
4 files changed, 102 insertions, 0 deletions
diff --git a/sys-freebsd/virtio-kmod/Manifest b/sys-freebsd/virtio-kmod/Manifest new file mode 100644 index 00000000000..68b19044ae0 --- /dev/null +++ b/sys-freebsd/virtio-kmod/Manifest @@ -0,0 +1 @@ +DIST virtio-0.228301.tar.gz 47262 SHA256 022b05ce98a88096aacc331fb7ba122d935432a87100fcba6a3b3d7e9e9aa0d6 diff --git a/sys-freebsd/virtio-kmod/files/pkg-message b/sys-freebsd/virtio-kmod/files/pkg-message new file mode 100644 index 00000000000..6b628d3de91 --- /dev/null +++ b/sys-freebsd/virtio-kmod/files/pkg-message @@ -0,0 +1,22 @@ +To use these modules, add loading lines in /boot/loader.conf: + +virtio_load="YES" +virtio_pci_load="YES" +virtio_blk_load="YES" +if_vtnet_load="YES" +virtio_balloon_load="YES" + +Also, edit fstab and make openrc start vtnet0 instead of em0: + +# sed -i.bak -Ee 's|/dev/ada?|/dev/vtbd|' /etc/fstab +# mv /etc/init.d/em0 /etc/init.d/vtnet0 + +and enable virtio devices in host's domain.xml: + +- <target dev='hda' bus='ide'/> ++ <target dev='vda' bus='virtio'/> +... +- <model type='e1000'/> +- <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> ++ <model type='virtio'/> ++ <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> diff --git a/sys-freebsd/virtio-kmod/metadata.xml b/sys-freebsd/virtio-kmod/metadata.xml new file mode 100644 index 00000000000..e63e3c3865d --- /dev/null +++ b/sys-freebsd/virtio-kmod/metadata.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer> + <email>ryao@gentoo.org</email> + <name>Richard Yao</name> + </maintainer> +</pkgmetadata> diff --git a/sys-freebsd/virtio-kmod/virtio-kmod-0.228301-r1.ebuild b/sys-freebsd/virtio-kmod/virtio-kmod-0.228301-r1.ebuild new file mode 100644 index 00000000000..80ee893f92e --- /dev/null +++ b/sys-freebsd/virtio-kmod/virtio-kmod-0.228301-r1.ebuild @@ -0,0 +1,71 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=4 + +inherit bsdmk flag-o-matic + +DESCRIPTION="Virtio drivers from FreeBSD Ports' emulators/virtio-kmod" +HOMEPAGE="http://www.freshports.org/emulators/virtio-kmod/" +SRC_URI="mirror://freebsd/ports/local-distfiles/kuriyama/virtio-${PV}.tar.gz" + +SLOT="0" +KEYWORDS="~x86-fbsd ~amd64-fbsd" +IUSE="custom-cflags +debug" +LICENSE="BSD-2" + +DEPEND=">=sys-freebsd/freebsd-sources-8.2 + app-arch/cpio" +RDEPEND="" + +QA_TEXTRELS="*" +RESTRICT="strip" +S="${WORKDIR}" + +NEEDSUBDIRS="conf contrib dev/pci geom kern net netinet netinet6 sys tools vm + x86 i386 amd64" + +src_unpack() { + default + CPIO_ARGS="-dump" + + # When hardlinks are possible, use them to avoid copies when FEATURES=userpriv + test $UID != 0 && export CPIO_ARGS+=l + + cd /usr/src/sys/ + for d in $NEEDSUBDIRS; do + find $d ! -name @ | cpio --quiet "${CPIO_ARGS}" "${WORKDIR}" + done + +} + +src_compile() { + + use debug && export DEBUG_FLAGS="-g" + use custom-cflags || strip-flags + append-cflags "-I${WORKDIR}" + + cd "${WORKDIR}/modules/virtio" + mkmake SYSDIR="${WORKDIR}" LDFLAGS="$(raw-ldflags)" || die "mkmake failed" + +} + +src_install() { + # Upstream does not provide an install target + dodir /boot/modules + cp "${WORKDIR}"/modules/virtio/*/*.ko{,.symbols} "${ED}/boot/modules" +} + +pkg_postinst() { + # Update linker.hints file + /usr/sbin/kldxref "${EPREFIX}/boot/modules" + + # Print message from FreeBSD Ports + elog "$(cat "${FILESDIR}/pkg-message")" +} + +pkg_postrm() { + # Update linker.hints file + /usr/sbin/kldxref "${EPREFIX}/boot/modules" +} |