VirtualBox

FreeBSD 构建说明

https://freebsd.net.cn/doc/handbook/virtualization-host-virtualbox.html
https://wiki.freebsd.org/VirtualBox

FreeBSD 的构建说明正在随着 FreeBSD 移植工作的进展而完善。

如果您想为 FreeBSD 移植工作提供帮助,请加入 #vbox-dev IRC 频道,或向开发邮件列表发送邮件。

当前状态: FreeBSD 7.x 和 8-CURRENT 版本目前运行相当稳定。FreeBSD ports tree 中也已有一个移植版。

先决条件

您需要

  • GCC 3.2.3 或更高版本(GCC 4.0.x 系列除外)
    => 默认的 GCC 即可。
  • Yasm 0.6.2 或更高版本
    => /usr/ports/devel/yasm
  • as86(实模式汇编器,通常是 dev86bin86 软件包的一部分)
    => /usr/ports/devel/dev86
  • bcc(Bruce Evans C 编译器;通常是 dev86 软件包的一部分)
    => /usr/ports/devel/dev86(同上)
  • IASL(Intel ACPI 编译器)
    => 安装到 /usr/sbin/iasl 中的即可。
  • xsltproc(libxslt,XML 样式表处理器)
    => /usr/ports/textproc/libxslt
  • libxml2
    => /usr/ports/textproc/libxml2
  • libXcursor(支持访客中彩色鼠标指针所需)
    => 可能已安装,如果没有,请尝试 /usr/ports/x11/libXcursor
  • libpng
    => /usr/ports/graphics/png
  • libIDL
    => /usr/ports/devel/libIDL
  • libSDL
    => /usr/ports/devel/sdl12
  • mkisofs(仅在尚不支持添加功能时需要)
    => /usr/ports/sysutils/cdrtools
  • kBuildVirtualBox 源代码中提供的版本不适用于 FreeBSD 8-CURRENT)
    => /usr/ports/devel/kBuild
  • curl
    => /usr/ports/ftp/curl
  • libXmu
    => /usr/ports/x11-toolkits/libXmu
  • Qt 4.4.x
    => /usr/ports/x11-toolkits/qt4-gui, /usr/ports/net/qt4-network, /usr/ports/devel/qt4-moc, /usr/ports/net/qt4-uic, /usr/ports/net/qt4-rcc/usr/ports/net/qt4-linguist ;或使用 configure --disable-qt 配置

构建 VirtualBox

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

开关 --disable-hardening 不应用于构建用于重新分发或生产使用的软件包。

  1. 每当您想构建 VirtualBox 时,您都必须打开一个 shell 并加载生成的环境设置脚本 'env.sh',即执行:
    source ./env.sh
    
  1. 要构建发布包,请键入:
    kmk all
    
    这会在 out/freebsd.x86/release/bin/ 中生成所需的二进制文件。如果您想构建调试版本,请输入
    kmk BUILD_TYPE=debug
    
    如果您有多个 CPU 核心,kmk 将自动执行并行构建。

运行您的构建

您可以直接从构建目标目录(out/freebsd.x86/release/bin/)运行 VirtualBox。

您必须首先以 root 身份使用 kldload ./vboxdrv.ko 加载内核驱动程序。请确保您拥有 /dev/vboxdrv 的读写权限。

如果您进行了强化构建,请确保 setuid stubs 具有正确的权限

for f in VirtualBox VBoxHeadless VBoxSDL VBoxBFE VBoxNetDHCP VBoxNetAdpCtl; do
  chown root.root $f
  chmod 4511 $f
done

最后,您可以启动其中一个前端,例如:

LD_LIBRARY_PATH=. ./VirtualBox
上次修改 6 年前 最后修改于 2019/08/30 07:15:43 AM
注意: 查看 TracWiki 获取使用维基的帮助。

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