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(实模式汇编器,通常是 dev86 或 bin86 软件包的一部分)
=>/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
- kBuild(VirtualBox 源代码中提供的版本不适用于 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
- 进入源代码的根目录并执行 configure 脚本
./configure --disable-hardening
如果它找到所需的一切,将创建一个名为 'AutoConfig.kmk' 的文件,其中包含您系统上各种工具的路径。此外,它还将创建一个名为env.sh
的环境设置脚本。此步骤只需执行一次(如果您的构建工具设置发生变化,您可能需要重复此操作,但请记住这两个输出文件都将被覆盖)。
开关 --disable-hardening 不应用于构建用于重新分发或生产使用的软件包。
- 每当您想构建 VirtualBox 时,您都必须打开一个 shell 并加载生成的环境设置脚本 'env.sh',即执行:
source ./env.sh
- 要构建发布包,请键入:
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
注意: 查看 TracWiki 获取使用维基的帮助。