2015-08-05 20:02:04
来 源
中存储网
Ubuntu
众所周知Apt-get安装的bochs是不带调试功能的,必须通过源码编译加上--enable-debugger才行。 现在Ubuntu源上的bochs版本是2.4.6,但是bochs网站已经发布了2.5.1,因此我们直接编译安装bochs2.5.1。 编译源码 从http://bochs.sourceforge.net/ 下载最新的源

众所周知Apt-get安装的bochs是不带调试功能的,必须通过源码编译加上--enable-debugger才行。

现在Ubuntu源上的bochs版本是2.4.6,但是bochs网站已经发布了2.5.1,因此大家直接编译安装bochs2.5.1。

编译源码
从http://bochs.sourceforge.net/ 下载最新的源码并解压
./configure --with-x11 --with-wx --enable-debugger --enable-disasm --enable-all-optimizations --enable-readline --enable-long-phy-address --enable-debugger-gui
一旦是64位系统上编译bochs,一定要加上--enable-long-phy-address选项,否则运行中会出现bochs exception(): 3rd (13) exception with no resolution, shutdown status is
make
$cp bochs bochsdbg,编译没有产生bochsdbg,所以这里手动拷贝一份
sudo make install

编译bochs源码报错的处理
checking for C compiler default output file name… configure: error: C compiler cannot create       executables
sudo apt-get install  build-essential libc6-dev
ERROR: X windows gui was selected, but X windows libraries were not found.
sudo apt-get install xorg-dev libgtk2.0-dev
install: cannot stat `./bios/VGABIOS*':
在源码的bios目录下(/xxxx/bochs-2.5.1/bios),建立符号链接ln -s /usr/share/vgabios/vgabios.bin VGABIOS-lgpl-latest
undefined reference to 'XStringToKeysym'
configure时加上--with-x11,--with-x11 --with-wx --enable-debugger --enable-disasm --enable-all-optimizations --enable-readline --enable-long-phy-address --enable-debugger-gui
一旦configure时,提示--with-wx有问题,sudo apt-get install libwxgtk2.8-dev libx11-xcb-dev

源码make install以后,再通过sudo apt-get install bochs安装普通bochs

普通安装的bochs在/usr/bin/bochs,而源码安装的在/usr/local/bin/bochs,/usr/local/bin在PATH中的优先级比/usr/bin高,因此每次执行bochs实际执行的是源码安装的那个,大家可以把/usr/local/bin/bochs重命名。
这样保证大家执行bochs时是普通安装的,执行bochsdbg是源码安装的。

源码安装使用中遇到的问题
(.:7444): Gtk-WARNING **: Unable to locate theme engine in module_path: "pixmap",
sudo apt-get install gtk2-engines-pixbuf  解决
使用过程中死机(-_-!)
config_interface和display_library注释掉
或者config_interface = textconfig,display_library=x, options="gui_debug" ,总之别用wx

bochs2.5.1配置相关文件的样本是源码目录下的.bochsrc。

声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。