Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 13 Apr 2010 18:37:19 +0900
From:      "Daisuke Aoyama" <aoyama@peach.ne.jp>
To:        <freebsd-emulation@freebsd.org>
Subject:   VirtualBox 3.1.6 does not work under i386 kernel
Message-ID:  <CF76818C99FD42EBB1A79E147C507A7D@artemis>

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

[-- Attachment #1 --]
I am working on making VirtualBox 3.1.6 after releasing FreeNAS 0.7.1.
I found VirtualBox 3.1.6 does not work under i386 kernel.
It seems PNG library is not used correctly in VBoxC.so.
However, I don't know how to correct it by smart way.
Also I cannot test it under X11.

Could you test my patch under X11 + i386 kernel?
Before patch, you will get like this:
----------------------------------------------------------------------
[aoyama@freenas225 ~]$ VBoxManage list vms
Sun VirtualBox Command Line Management Interface Version 3.1.6_OSE
(C) 2005-2010 Sun Microsystems, Inc.
All rights reserved.

ERROR: failed to create a session object!
ERROR: code NS_ERROR_FACTORY_NOT_REGISTERED (0x80040154) - Class not
registered (extended info not available)
Most likely, the VirtualBox COM server is not running or failed to start.
----------------------------------------------------------------------

After patch, you should be able to use VirtualBox 3.1.6.

How to use the patch? Extract all of patches and make.

# cd /usr/ports/emulators/virtualbox-ose
# tar xvf /path/to/vboxvnc-20100211.tar.gz
# tar xvf /path/to/vboxint18-20100310.tar.gz
# tar xvf /path/to/vboxvnc-316-png-Makefile.tar.gz

Run make config, and make.

If you want my tested kernel/environment, you can get it from:
http://sourceforge.net/projects/freenas/files/stable/0.7.1/

Previous mails:
http://lists.freebsd.org/pipermail/freebsd-emulation/2010-February/007409.html
http://lists.freebsd.org/pipermail/freebsd-emulation/2010-March/007540.html
http://lists.freebsd.org/pipermail/freebsd-emulation/2010-April/007630.html

Thanks,
Daisuke Aoyama

[-- Attachment #2 --]
Makefile000644 000000 000000 00000020773 11360777210 012632 0ustar00rootwheel000000 000000 # New ports collection makefile for:	virtualbox-ose
# Date created:		2009-05-02
# Whom:			Bernhard Froehlich <decke@bluelife.at>
#
# $FreeBSD: ports/emulators/virtualbox-ose/Makefile,v 1.20 2010/04/03 10:44:09 roam Exp $
#

PORTNAME=	virtualbox-ose
DISTVERSION=	3.1.6
PORTREVISION=	2
CATEGORIES=	emulators
MASTER_SITES=	http://tmp.chruetertee.ch/ \
		http://freebsd.unixfreunde.de/sources/ \
		http://disasterarea.chruetertee.ch/ \
		http://mirror.4bit.ws/ \
		http://dlc.sun.com/virtualbox/${VBOX_GUEST_VER}/:guestadditions
DISTFILES=	VirtualBox-${DISTVERSION}-OSE${EXTRACT_SUFX} ${GADISTFILES}
EXTRACT_ONLY=	VirtualBox-${DISTVERSION}-OSE${EXTRACT_SUFX}

#for discussion please use emulation@FreeBSD.org
MAINTAINER=	vbox@FreeBSD.org
COMMENT=	A general-purpose full virtualizer for x86 hardware

BUILD_DEPENDS=	yasm:${PORTSDIR}/devel/yasm \
		as86:${PORTSDIR}/devel/dev86 \
		xsltproc:${PORTSDIR}/textproc/libxslt \
		kmk:${PORTSDIR}/devel/kBuild
LIB_DEPENDS=	png.6:${PORTSDIR}/graphics/png \
		xslt.2:${PORTSDIR}/textproc/libxslt \
		curl.6:${PORTSDIR}/ftp/curl
RUN_DEPENDS=	/boot/modules/vboxdrv.ko:${PORTSDIR}/emulators/virtualbox-ose-kmod

WRKSRC=		${WRKDIR}/VirtualBox-${PORTVERSION}_OSE
ONLY_FOR_ARCHS=	i386 amd64
USE_GNOME=	libidl
USE_BZIP2=	yes
USE_PYTHON=	yes
USE_PYDISTUTILS=	easy_install
PYDISTUTILS_PKGNAME=	vboxapi
PYDISTUTILS_PKGVERSION=	1.0
PYDISTUTILS_NOEGGINFO=	yes

HAS_CONFIGURE=	yes
CONFIGURE_ARGS+=--with-gcc="${CC}" --with-g++="${CXX}"
USE_LDCONFIG=	${PREFIX}/lib/virtualbox

CONFLICTS=	bcc-[0-9]* virtualbox-ose-devel-3* virtualbox-ose-additions-3* virtualbox-ose-additions-devel-3*

VBOXGROUP?=	vboxusers
VBOXGID?=	920
VBOX_FRONTENDS=	VBoxHeadless
VBOX_GUEST_VER=	${PORTVERSION}

SUB_FILES=	pkg-install

SUB_LIST=	PREFIX=${PREFIX} \
		VBOXGROUP=${VBOXGROUP} \
		VBOXGID=${VBOXGID}

OPTIONS=	QT4 "Build with QT4 Frontend" on \
		DEBUG "Build with debugging symbols" off \
		GUESTADDITIONS "Build with Guest Additions" off \
		DBUS "Build with D-Bus and HAL support" on \
		PULSEAUDIO "Build with PulseAudio" off \
		X11 "Build with X11 support" on \
		NLS "Native language support" on \
		LIBVNC "Build with LibVNCServer support" on

.include <bsd.port.options.mk>

PLIST_SUB+=	PYTHON_VER=${PYTHON_VER} \
		PYTHON_VERU=${PYTHON_VER:S/./_/} \
		GUEST_VER=${VBOX_GUEST_VER}

KMK_BUILDTYPE=	release
KMK_CONFIG=	VBOX_LIBPATH_X11=${LOCALBASE} VBOX_FREEBSD_SRC=${SRC_BASE}/sys
KMK_FLAGS=

.if defined(WITHOUT_QT4) && !defined(WITHOUT_NLS)
BROKEN=		NLS support requires QT4 frontend. Run 'make config' again!
.endif

.if defined(WITHOUT_X11) && !defined(WITHOUT_QT4)
BROKEN=		QT4 frontend requires X11 support. Run 'make config' again!
.endif

.if defined(WITH_LIBVNC)
LIB_DEPENDS+=	vncserver:${PORTSDIR}/net/libvncserver
.endif

.if !defined(WITHOUT_X11)
USE_SDL=	sdl
USE_XORG=	xcursor xmu inputproto
VBOX_FRONTENDS+=VBoxBFE VBoxSDL
PLIST_SUB+=	X11=""
.else
CONFIGURE_ARGS+=--build-headless
PLIST_SUB+=	X11="@comment "
.endif

.if !defined(WITHOUT_QT4)
USE_QT_VER=	4
QT_NONSTANDARD=	yes
QT_COMPONENTS=	gui network moc_build uic_build rcc_build linguist
INSTALLS_ICONS=	yes
VBOX_FRONTENDS+=VirtualBox VBoxTestOGL
PLIST_SUB+=	QT4=""
.else
CONFIGURE_ARGS+=--disable-qt4
PLIST_SUB+=	QT4="@comment "
.endif

.if defined(WITH_GUESTADDITIONS)
GUESTADDITIONS=	VBoxGuestAdditions_${VBOX_GUEST_VER}.iso
GADISTFILES=	${GUESTADDITIONS}:guestadditions
RESTRICTED=	for personal use only
RESTRICTED_FILES=	${GUESTADDITIONS}
FETCH_ARGS=	-pRr
PLIST_SUB+=	GUESTADDITIONS=""
.else
PLIST_SUB+=	GUESTADDITIONS="@comment "
.endif

.if defined(WITH_DEBUG)
KMK_FLAGS+=	BUILD_TYPE=debug
KMK_BUILDTYPE=	debug
.endif

.if !defined(WITHOUT_DBUS)
LIB_DEPENDS+=	dbus-1.3:${PORTSDIR}/devel/dbus
.else
CONFIGURE_ARGS+=--disable-dbus
.endif

.if !defined(WITH_PULSEAUDIO)
CONFIGURE_ARGS+=--disable-pulse
.else
LIB_DEPENDS+=	pulse.0:${PORTSDIR}/audio/pulseaudio
.endif

.if !defined(WITHOUT_NLS)
PLIST_SUB+=	NLS=""
.else
PLIST_SUB+=	NLS="@comment "
.endif

.if ${OSVERSION} < 700000
BROKEN=	Does not compile on FreeBSD 6.X
.endif

.if ${ARCH} == i386
KMK_ARCH=	freebsd.x86
PLIST_SUB+=	I386=""
.else
KMK_ARCH=	freebsd.${ARCH}
PLIST_SUB+=	I386="@comment "
.endif

.include <bsd.port.pre.mk>

pre-everything::
.if ${ARCH} == "amd64"
.if !exists(/usr/lib32)
	@${ECHO} 'Requires 32-bit libraries installed under /usr/lib32.'
	@${ECHO} 'Do: cd /usr/src; make build32 install32; ldconfig -v -m -R /usr/lib32'
	@${FALSE}
.endif
.endif

post-patch:
	@${ECHO} 'VBOX_PATH_APP_PRIVATE_ARCH = ${PREFIX}/lib/virtualbox' > ${WRKSRC}/LocalConfig.kmk
	@${ECHO} 'VBOX_PATH_SHARED_LIBS = ${PREFIX}/lib/virtualbox' >> ${WRKSRC}/LocalConfig.kmk
	@${ECHO} 'VBOX_WITH_RUNPATH = ${PREFIX}/lib/virtualbox' >> ${WRKSRC}/LocalConfig.kmk
	@${ECHO} 'VBOX_PATH_APP_PRIVATE = ${DATADIR}' >> ${WRKSRC}/LocalConfig.kmk
	@${ECHO} 'VBOX_PATH_APP_DOCS = ${DOCSDIR}' >> ${WRKSRC}/LocalConfig.kmk
	@${ECHO} 'VBOX_WITH_INSTALLER = 1' >> ${WRKSRC}/LocalConfig.kmk
	@${ECHO} 'VBOX_WITH_VBOXDRV = ' >> ${WRKSRC}/LocalConfig.kmk
	@${ECHO} 'VBOX_WITH_NETFLT = 1' >> ${WRKSRC}/LocalConfig.kmk
	@${ECHO} 'VBOX_WITH_NETADP = ' >> ${WRKSRC}/LocalConfig.kmk
	@${ECHO} 'VBOX_WITH_TESTCASES=' >> ${WRKSRC}/LocalConfig.kmk
.if defined(WITH_LIBVNC)
	@${ECHO} 'VBOX_WITH_LIBVNC = 1' >> ${WRKSRC}/LocalConfig.kmk
.endif
	@${ECHO} 'SDK_VBOX_LIBPNG_INCS = ${PREFIX}/include/libpng' >> ${WRKSRC}/LocalConfig.kmk
	@${ECHO} 'SDK_VBOX_LIBPNG_LIBS = png' >> ${WRKSRC}/LocalConfig.kmk
.if defined(WITHOUT_X11)
	@${ECHO} 'VBOX_WITH_X11_ADDITIONS=' >> ${WRKSRC}/LocalConfig.kmk
.endif
	@${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \
		${WRKSRC}/Config.kmk ${WRKSRC}/configure \
		${WRKSRC}/kBuild/units/qt3.kmk ${WRKSRC}/kBuild/units/qt4.kmk \
		${WRKSRC}/kBuild/sdks/LIBSDL.kmk \
		${WRKSRC}/src/libs/xpcom18a4/python/gen_python_deps.py
	@${REINPLACE_CMD} -e 's|\$$KBUILDDIR_BIN/kmk_sed|${PREFIX}/bin/kmk_sed|g' ${WRKSRC}/configure

pre-build:
	@${REINPLACE_CMD} -e 's|/bin/bash|/bin/sh|' \
		${WRKSRC}/env.sh

do-build:
	cd ${WRKSRC} && ${SH} env.sh && ${KMK_CONFIG} ${LOCALBASE}/bin/kmk ${KMK_FLAGS}

do-install:
	${MKDIR} ${DATADIR}
	(cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/sdk/bindings/xpcom && ${COPYTREE_SHARE} "idl samples" ${DATADIR})

	${MKDIR} ${PREFIX}/include/virtualbox
	(cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/sdk/bindings/xpcom/include && ${COPYTREE_SHARE} "*" ${PREFIX}/include/virtualbox)

	${MKDIR} ${PREFIX}/lib/virtualbox
	(cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin && ${COPYTREE_SHARE} "*.so *.gc *.r0 components" ${PREFIX}/lib/virtualbox)

.if !defined(WITHOUT_NLS)
	${MKDIR} ${DATADIR}/nls
	(cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/obj/VirtualBox/qtnls && ${COPYTREE_SHARE} "*.qm" ${DATADIR}/nls)
.endif

	${MKDIR} ${PREFIX}/bin
.for f in VBoxManage VBoxNetAdpCtl VBoxNetDHCP VBoxSVC VBoxXPCOMIPCD ${VBOX_FRONTENDS}
	${INSTALL_PROGRAM} ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/${f} ${PREFIX}/lib/virtualbox/
	${LN} -sf ${PREFIX}/lib/virtualbox/${f} ${PREFIX}/bin/
.endfor

.for f in VBoxNetAdpCtl VBoxNetDHCP ${VBOX_FRONTENDS}
	${CHMOD} 4511 ${PREFIX}/lib/virtualbox/${f}
.endfor

.for f in VBoxManage VBoxSVC VBoxXPCOMIPCD
	${CHMOD} 0711 ${PREFIX}/lib/virtualbox/${f}
.endfor

.if defined(WITH_GUESTADDITIONS)
	${MKDIR} ${PREFIX}/lib/virtualbox/additions
	${INSTALL_DATA} ${DISTDIR}/${GUESTADDITIONS} ${PREFIX}/lib/virtualbox/additions/
	${LN} -sf ${PREFIX}/lib/virtualbox/additions/${GUESTADDITIONS} ${PREFIX}/lib/virtualbox/additions/VBoxGuestAdditions.iso
.endif

	cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/sdk/installer && \
	VBOX_INSTALL_PATH="${PREFIX}/lib/virtualbox" ${PYTHON_CMD} vboxapisetup.py install

	@${MKDIR} ${PYTHON_SITELIBDIR}
	(cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/sdk/bindings/xpcom/python && ${COPYTREE_SHARE} "*" ${PYTHON_SITELIBDIR})
	${PYTHON_CMD} -mcompileall ${PYTHON_SITELIBDIR}/xpcom/

post-install:
	@${SETENV} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL

.for f in VBoxManage VBoxNetDHCP VBoxSVC VBoxXPCOMIPCD ${VBOX_FRONTENDS}
	${CHOWN} root:${VBOXGROUP} ${PREFIX}/lib/virtualbox/${f}
.endfor

	@${FIND} ${DATADIR} -type d -print0 | ${XARGS} -0 ${CHMOD} 755
	@${FIND} ${PREFIX}/include/virtualbox -type d -print0 | ${XARGS} -0 ${CHMOD} 755
	@${FIND} ${PREFIX}/lib/virtualbox -type d -print0 | ${XARGS} -0 ${CHMOD} 755

.if !defined(WITHOUT_QT4)
	${MKDIR} ${PREFIX}/share/icons/hicolor/48x48/apps/
	${INSTALL_DATA} ${WRKSRC}/src/VBox/Frontends/VirtualBox/images/OSE/VirtualBox_48px.png ${PREFIX}/share/icons/hicolor/48x48/apps/VBox.png
	${MKDIR} ${PREFIX}/share/applications/
	${INSTALL_DATA} ${WRKSRC}/src/VBox/Installer/solaris/virtualbox.desktop ${PREFIX}/share/applications/virtualbox.desktop
.endif
	@${CAT} ${PKGMESSAGE}

.include <bsd.port.post.mk>

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