以下是 Bochs 3.0 configure 脚本的核心编译参数详解,按功能分类说明其用途、默认值及对 Bochs 行为的影响(结合你提供的参数列表):
一、基础功能与构建选项
| 参数 | 用途说明 | 默认值 |
|---|---|---|
--disable-option-checking | 忽略未识别的 --enable/--with 选项(避免因拼写错误报错) | 否(启用) |
--disable-FEATURE | 禁用某个功能(等价于 --enable-FEATURE=no) | - |
--enable-FEATURE[=ARG] | 启用某个功能(可选参数 ARG,如 --enable-plugins=yes) | - |
--enable-static-link | 静态链接所有库(减少依赖,但增大二进制体积) | 否(禁用) |
--enable-static[=PKGS] | 构建静态库(而非共享库),PKGS 指定哪些组件静态编译 | 否(禁用) |
--enable-shared[=PKGS] | 构建共享库(默认),PKGS 指定哪些组件共享编译 | 是(启用) |
--enable-fast-install[=PKGS] | 优化安装速度(减少安装时的文件复制) | 否(禁用) |
--enable-ltdl-install | 安装 libltdl(动态加载库,用于插件系统) | 否(禁用) |
二、核心模拟功能
| 参数 | 用途说明 | 默认值 |
|---|---|---|
--enable-idle-hack | 启用 Roland Mainz 的“空闲hack”(优化 CPU 空闲状态模拟,提升性能) | 否(禁用) |
--enable-plugins | 启用插件系统(支持动态加载设备驱动,如网络、存储插件) | 否(禁用) |
--enable-a20-pin | 编译 A20 地址线支持(x86 系统的关键内存保护功能) | 是(启用) |
--enable-x86-64 | 支持 x86-64 指令集模拟(默认仅支持 32 位 x86) | 否(禁用) |
--enable-smp | 支持 SMP(对称多处理)配置(模拟多核 CPU) | 否(禁用) |
--enable-cpu-level | 选择模拟的 CPU 级别(3-6,越高支持更多指令) | 6(最高) |
--enable-long-phy-address | 支持物理地址扩展(PAE,用于模拟大内存系统) | 否(禁用) |
--enable-large-ramfile | 支持大 RAM 文件(>2GB 的虚拟内存镜像) | 是(启用) |
三、性能优化
| 参数 | 用途说明 | 默认值 |
|---|---|---|
--enable-repeat-speedups | 启用重复指令加速(优化循环指令的执行效率) | 否(禁用) |
--enable-fast-function-calls | 启用快速函数调用(减少函数调用的开销) | 否(禁用) |
--enable-handlers-chaining | 启用事件处理链(优化中断/异常处理的性能) | 否(禁用) |
--enable-trace-linking | 启用跟踪链接优化(加速符号解析和调试信息加载) | 否(禁用) |
--enable-all-optimizations | 启用所有性能优化(可能牺牲部分兼容性) | 否(禁用) |
四、调试与日志
| 参数 | 用途说明 | 默认值 |
|---|---|---|
--enable-debugger | 编译 Bochs 内部调试器(提供更底层的调试功能) | 否(禁用) |
--enable-debugger-gui | 编译内部调试器的 GUI 界面(需配合图形界面使用) | 否(禁用) |
--enable-gdb-stub | 启用 GDB 存根(支持通过 GDB 远程调试 Bochs 虚拟机) | 否(禁用) |
--enable-iodebug | 启用 I/O 接口的调试器支持(调试设备驱动) | 是(启用,若调试器开启) |
--enable-logging | 启用日志记录(生成 bochs.log 记录运行状态) | 是(启用) |
--enable-stats | 启用统计信息收集(记录 CPU/内存/IO 使用率) | 是(启用) |
--enable-assert-checks | 启用 BX_ASSERT 断言检查(调试时验证内部状态,需调试器开启) | 是(启用,若调试器开启) |
五、CPU 与指令集
| 参数 | 用途说明 | 默认值 |
|---|---|---|
--enable-fpu | 启用 FPU(浮点单元)模拟(支持浮点运算指令) | 是(启用) |
--enable-vmx | 启用 VMX(Intel 虚拟化扩展)模拟(支持硬件虚拟化) | 否(禁用,需指定 --enable-vmx=1/2) |
--enable-svm | 启用 SVM(AMD 安全虚拟机)模拟(支持 AMD 虚拟化) | 否(禁用) |
--enable-avx | 支持 AVX 指令集模拟(高级矢量扩展) | 否(禁用) |
--enable-evex | 支持 EVEX 前缀和 AVX-512 扩展(新一代矢量指令) | 否(禁用) |
--enable-amx | 支持 AMX(矩阵扩展)指令模拟 | 否(禁用) |
六、设备与外设支持
| 参数 | 用途说明 | 默认值 |
|---|---|---|
--enable-pci | 启用 i440FX PCI 主桥支持(现代 PC 的核心总线) | 是(启用) |
--enable-pcidev | 启用 PCI 主机设备映射(将主机设备暴露给虚拟机) | 否(禁用,Linux 下需额外配置) |
--enable-usb | 启用 UHCI USB 控制器支持(基础 USB 1.1) | 否(禁用) |
--enable-usb-ohci | 启用 OHCI USB 控制器支持(兼容更多设备) | 否(禁用) |
--enable-usb-xhci | 启用 XHCI USB 3.0 控制器支持 | 否(禁用) |
--enable-ne2000 | 启用 NE2000 网络适配器模拟(经典以太网设备) | 否(禁用) |
--enable-e1000 | 启用 Intel e1000 网络适配器模拟(现代千兆网卡) | 否(禁用) |
--enable-sb16 | 启用 Sound Blaster 16 声卡模拟 | 否(禁用) |
--enable-es1370 | 启用 ES1370 声卡模拟 | 否(禁用) |
--enable-gameport | 启用标准 PC 游戏端口模拟(连接游戏手柄/操纵杆) | 是(启用,若依赖插件) |
--enable-cdrom | 启用低级 CD-ROM 支持(读取 CD 镜像) | 是(启用) |
七、图形与用户界面
| 参数 | 用途说明 | 默认值 |
|---|---|---|
--enable-x | 启用 X11 图形界面(旧版参数,Bochs 3.x 已逐步弃用) | 否(禁用) |
--enable-sdl | 启用 SDL 图形界面(跨平台图形支持) | 否(禁用) |
--enable-gtk | 启用 GTK 图形界面(Linux 桌面环境友好) | 否(禁用) |
--enable-null-plugin | 启用 null 插件(禁用图形输出,纯命令行模式) | 否(禁用,需手动启用) |
编译建议
若需纯命令行调试(GDB)、禁用图形界面,编译时可考虑进行如下配置:
sudo ./configure --with-wx --enable-static --enable-shared --enable-fast-install --enable-ltdl-install --enable-idle-hack --enable-plugins --enable-a20-pin --enable-x86-64 --enable-cpu-level=6 --enable-long-phy-address --enable-large-ramfile --enable-repeat-speedups --enable-fast-function-calls --enable-handlers-chaining --enable-trace-linking --enable-configurable-msrs --enable-show-ips --enable-cpp --enable-gdb-stub --enable-iodebug --enable-all-optimizations --enable-readline --enable-instrumentation --enable-logging --enable-stats --enable-assert-checks --enable-fpu --enable-vmx --enable-svm --enable-3dnow --enable-alignment-check --enable-monitor-mwait --enable-perfmon --enable-memtype --enable-avx --enable-evex --enable-x86-debugger --enable-pci --enable-pcidev --enable-usb --enable-usb-ohci --enable-usb-xhci --enable-ne2000 --enable-pnic --enable-e1000 --enable-raw-serial --enable-clgd54xx --enable-voodoo --enable-cdrom --enable-sb16 --enable-es1370 --enable-gameport --enable-busmouse --enable-docbook --enable-xpm --enable-static-link --enable-configurable-msrs --enable-amx --enable-x86-debugger --enable-geforce --enable-cdaudio --enable-memtype --disable-smp --with-all-libs
每次重新编译安装时,建议在 执行完 configure 操作后,执行 make clean 和 sudo rm -r -f /usr/local/share/bochs/keymaps 操作,以免上次的编译安装结果影响到本次的编译安装效果。
sudo rm -r -f /usr/local/share/bochs/keymaps
sudo make clean
sudo make
sudo make install
在进行 make 编译操作时,可能会出现报错情况,例如 缺少一些扩展名为 .cc 的文件,这些缺失的文件,通常可以使用 同名 的 .cpp 文件 复制黏贴 获得,例如:
cp ./misc/bximage.cpp ./misc/bximage.cc
cp ./misc/bxhub.cpp ./misc/bxhub.cc
cp ./iodev/hdimage/hdimage.cpp ./iodev/hdimage/hdimage.cc
cp ./iodev/hdimage/vbox.cpp ./iodev/hdimage/vbox.cc
cp ./iodev/hdimage/vmware4.cpp ./iodev/hdimage/vmware4.cc
cp ./iodev/hdimage/vmware3.cpp ./iodev/hdimage/vmware3.cc
cp ./iodev/hdimage/vpc.cpp ./iodev/hdimage/vpc.cc
cp ./iodev/network/netutil.cpp ./iodev/network/netutil.cc
注意,在每次安装报错后,一般需要重新执行 make clean 和 rm -r -f /usr/local/share/bochs/keymaps 操作,之后再重新进行 make 和 make install 。
sudo make && sudo make install 也可以达到 make 和 make install 两条命令的效果,分开执行,是笔者的个人习惯。
bochs 3.0 dev 版本 的 源码文件,一般可考虑通过下面的 github项目链接 访问 :
bochs-emu/Bochs: Bochs - Cross Platform x86 Emulator Project
总结
Bochs 3.0 的 configure 参数高度模块化,通过组合这些参数可定制 Bochs 的功能(如图形支持、调试能力、设备模拟)。
Bochs 3.0编译参数详解

493

被折叠的 条评论
为什么被折叠?



