VirtualBox

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
    
  • 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
    
  • PATH 必须包含以下目录:
    • /usr/sfw/bin - 用于 gcc 和相关工具。
    • /usr/ccs/bin - 用于 ar 和其他工具。
  • LD_LIBRARY_PATH 必须包含以下目录:
    • /usr/sfw/lib - 用于 gcc 和相关工具。
    • /usr/ccs/lib - 用于 ar 和其他工具。

构建 VirtualBox

  1. 切换到 VirtualBox 源代码根目录并执行配置脚本
    `./configure --disable-hardening`
    

如果它找到所需的一切,将创建一个名为 'AutoConfig.kmk' 的文件,其中包含您系统上各种工具的路径。此外,它还将创建一个名为 env.sh 的环境设置脚本。此步骤只需执行一次(如果您的构建工具设置发生变化,您可能需要重复此操作,但请记住两个输出文件都将被覆盖)。

  1. 每当您想构建 VirtualBox 时,您都必须打开一个 shell 并加载生成的环境设置脚本 'env.sh',即执行:
    source ./env.sh
    
  1. 要构建发布包,请键入:
    kmk all
    
    这将在 out/solaris.x86/release/bin/ 中生成所需的二进制文件。如果您想构建调试版本,请键入:
    kmk BUILD_TYPE=debug
    
  1. 如果您进行了强化构建(即,您在配置时省略了 --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
最后修改 4 年前 最后修改于 2021/02/03 下午 04:27:39
注意: 查看 TracWiki 获取使用维基的帮助。

© 2025 Oracle 支持 隐私 / 请勿出售我的信息 使用条款 商标政策 自动化访问礼仪