Solaris 构建说明
VirtualBox 的 Solaris 移植版本正在开发中,本页面也是如此。当前页面只是 GNU/Linux 版本的一个编辑版本。
先决条件
您需要
- Solaris 11 是构建 VirtualBox 的推荐版本。
- 推荐使用 GCC 3.4.3+,可通过 Oracle 的 IPS/pkg(5) 仓库获取,参见下一项。
- 使用以下方式安装以下软件包:
# pkg install SUNWgcc SUNWsvn SUNWhea FSWxorg-headers SUNWgnome-common-devel SUNWaudh SUNWusbu \ SUNWugenu SUNWugen SUNWagph SUNWcurl SUNWxorg-mesa SUNWj6dev SUNWj6dvx header-math
- IASL (Intel ACPI 编译器)。这目前已包含在 VirtualBox 源代码树中。
来源:http://www.intel.com/technology/iapc/acpi/downloads.htm
- xsltproc (libxslt, XML 样式表处理器)。Solaris 自带。
来源:http://xmlsoft.org/XSLT/downloads.html
- libIDL。Solaris 自带。
来源:http://ftp.gnome.org/pub/gnome/sources/libIDL/
- libSDL 1.2.x。Solaris 自带。
来源:http://libsdl.org/download-1.2.php
- libXcursor。Solaris 自带。
来源:http://ftp.x.org/pub/individual/lib/libXcursor-1.1.9.tar.bz2
- Yasm 1.3。Solaris 自带,软件包名称为
developer/yasm
。
来源:http://www.tortall.net/projects/yasm/wiki/Download
- libxml2。Solaris 自带。
- libxslt。Solaris 自带。
- Qt 4.7.4。您需要自行构建。
来源:ftp://ftp.trolltech.com/qt/source/qt-everywhere-opensource-src-4.7.4.tar.gz
确保 QTDIR 环境变量指向 Qt 安装路径,并且可以找到共享库。
配置示例(不包括针对不常见包含位置的-I
选项)./configure -v -platform solaris-g++-64 -thread -shared -stl -largefile -tablet -sm -disable-sql \ -qt-imgfmt-jpeg -qt-imgfmt-png -qt-imgfmt-mng -qt-libjpeg -qt-libpng -qt-libmng -qt-zlib \ -prefix /opt/vboxose-qt \ -I/usr/include \ -I/usr/X11/include \ -I/usr/X11/share/include \ -I/usr/sfw/include
- 可选:Java SE 6 JDK,仅当您需要构建 Java API 绑定(包括 webservice 和 XPCOM)时才需要。可从以下网址获取二进制文件:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
- 可选:Doxygen 1.6.0+。
http://www.sunfreeware.com/programlistintel10.html#doxygen
- PATH 必须包含以下目录:
/usr/sfw/bin
- 用于 gcc 和相关工具。/usr/ccs/bin
- 用于 ar 和其他工具。
- LD_LIBRARY_PATH 必须包含以下目录:
/usr/sfw/lib
- 用于 gcc 和相关工具。/usr/ccs/lib
- 用于 ar 和其他工具。
构建 VirtualBox
- 切换到 VirtualBox 源代码根目录并执行配置脚本
`./configure --disable-hardening`
如果它找到所需的一切,将创建一个名为 'AutoConfig.kmk' 的文件,其中包含您系统上各种工具的路径。此外,它还将创建一个名为
env.sh
的环境设置脚本。此步骤只需执行一次(如果您的构建工具设置发生变化,您可能需要重复此操作,但请记住两个输出文件都将被覆盖)。
- 每当您想构建 VirtualBox 时,您都必须打开一个 shell 并加载生成的环境设置脚本 'env.sh',即执行:
source ./env.sh
- 要构建发布包,请键入:
kmk all
这将在out/solaris.x86/release/bin/
中生成所需的二进制文件。如果您想构建调试版本,请键入:kmk BUILD_TYPE=debug
- 如果您进行了强化构建(即,您在配置时省略了 --disable-hardened 开关),您必须手动设置一些符号链接,才能从 bin/ 目录启动虚拟机。
cd out/solaris.amd64/release/bin/components ln -s ../VBoxDDU.so . ln -s ../VBoxREM.so . ln -s ../VBoxRT.so . ln -s ../VBoxVMM.so . ln -s ../VBoxXPCOM.so .
运行您的构建
您可以直接从构建目标目录 (out/solaris.x86/release/bin/
) 运行 VirtualBox。但首先,您必须安装 VirtualBox 内核模块。有一个脚本 src/VBox/HostDrivers/Support/solaris/mod.sh
可以为您完成此操作。它要求您安装 sudo 或以 root 身份运行。
或者,您可以执行以下操作:
cd out/solaris.amd64/release/bin
每次驱动文件和 .conf 文件(如果有)更改时,您都需要将它们复制到相应的位置。当前驱动程序包括 vboxdrv
(主主机驱动程序)、vboxflt
(桥接和仅主机网络过滤器)、vboxnet
(仅主机网络适配器)、vboxusbmon
(USB 监视器)、vboxusb
(USB 客户端)。
/platform/i86pc/kernel/drv/ (32-bit drivers and .conf files) /platform/i86pc/kernel/drv/amd64 (64-bit drivers)
然后以 root/sudo 身份运行:
vboxconfig.sh --setupdrivers
vboxconfig 脚本仅(重新)加载在适当位置找到的驱动程序(别忘了复制 ".conf" 文件)。
如果您进行了 强化构建,请确保 setuid 存根具有正确的权限。
for f in VirtualBox VBoxHeadless VBoxSDL VBoxBFE VBoxNetDHCP VBoxNetAdpCtl; do chown root:bin $f chmod 4511 $f done
最后,您可以启动其中一个前端,例如:
./VirtualBox
注意: 查看 TracWiki 获取使用维基的帮助。