Linux上Bochs的安装和配置

下载Bochs最新版
编译安装Bochs
configure
  • 配置configure工具,生成Makefile

    ./configure --with-x11 --with-wx --enable-plugins --enable-debugger --enable-debugger-gui --enable-readline --enable-cpp --enable-idle-hack --enable-cpu-level=6 --enable-x86-64 --enable-smp --enable-vmx=2 --enable-svm --enable-avx --enable-x86-debugger --enable-monitor-mwait --enable-configurable-msrs --enable-long-phy-address --enable-repeat-speedups --enable-fast-function-calls --enable-trace-linking --enable-ltdl-install --enable-assert-checks --enable-3dnow --enable-evex --enable-usb --enable-voodoo
    
  • 若提示缺少gccccclg++等则安装即可

  • 如提示缺少configure命令,则使用chmod 764 configre改变文件属性即可

  • 提示The readline library was disabled because it was not found,安装libreadline-dev即可

  • 提示handlers-chaining speedups are not supported with internal debugger or gdbstub yet

    此时参考官方文档,去除--enable-handlers-chaining

  • 提示WARNING: Bochs for wxWidgets cannot be compiled here, disabling it

    此时安装libwxbase3.0-dev库和libwxgtk3.0-gtk3-dev

  • 提示Package gdk-3.0 was not found in the pkg-config search path。安装libgtk-3-dev

  • 参考X windows libraries?? (narkive.com)

Make
  • 执行make命令

  • 找不到config.h头文件和osdep.h头文件

    分析可得,此时bx_debug文件夹内的debug.h文件找不到config.h文件和osdep.h文件,经查看,这两个文件都在bochs-2.7目录下,移入bx_debug目录即可或者更改debug.h中的路径。其他缺少的头文件可使用类似方式解决。

    c - Gtk can’t find “” - Stack Overflow

  • make: *** 没有规则可制作目标“misc/bximage.cc”,由“misc/bximage.o” 需求。 停止。出现类似问题,只需要找到文件,将其后缀由cpp改为cc

make install
  • 执行sudo make install命令即可。
检测安装结果
  • 执行bochs命令,出现如下结果则表示安装成功

配置Bochs
  • 为将要调试的操作系统配置虚拟硬件环境。此环境通过bochsrc描述,默认此文件所在目录为/etc/bochs-init/。当运行bochs时默认读取当前工作目录下的bochsrc文件。

  • 配置信息

    # configuration file generated by Bochs 
    plugin_ctrl: unmapped=1, biosdev=1, speaker=1, extfpuirq=1, parallel=1, serial=1, iodebug=1 
    config_interface: textconfig 
    display_library: x 
    romimage: file=/usr/local/share/bochs/BIOS-bochs-latest
    vgaromimage: file=/usr/local/share/bochs/VGABIOS-lgpl-latest
    boot: floppy 
    floppy_bootsig_check: disabled=0 
    floppya: type=1_44, 1_44="boot.img", status=inserted, write_protected=0 
    ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14 
    ata0-master: type=none 
    ata0-slave: type=none 
    ata1: enabled=1, ioaddr1=0x170, ioaddr2=0x370, irq=15 
    ata1-master: type=none 
    ata1-slave: type=none 
    ata2: enabled=0 
    ata3: enabled=0 
    pci: enabled=1, chipset=i440fx 
    vga: extension=vbe, update_freq=5 
    cpu: count=1:1:1, ips=4000000, quantum=16, model=bx_generic, reset_on_triple_fault=1, cpuid_limit_winnt=0, ignore_bad_msrs=1, mwait_is_nop=0, msrs="msrs.def"
    cpuid: x86_64=1,level=6, mmx=1, sep=1, simd=avx512, aes=1, movbe=1, xsave=1, apic=x2apic, sha=1, movbe=1, adx=1, xsaveopt=1, avx_f16c=1, avx_fma=1, bmi=bmi2, 1g_pages=1, pcid=1, fsgsbase=1, smep=1, smap=1, mwait=1, vmx=1 
    cpuid: family=6, model=0x1a, stepping=5, vendor_string="GenuineIntel", brand_string="Intel(R) Core(TM) i7-4770 CPU (Haswell)" 
    print_timestamps: enabled=0 
    debugger_log: - 
    magic_break: enabled=0 
    port_e9_hack: enabled=0 
    private_colormap: enabled=0 
    clock: sync=none, time0=local, rtc_sync=0 
    log: - 
    logprefix: %t%e%d 
    debug: action=ignore 
    info: action=report 
    error: action=report 
    panic: action=ask 
    keyboard: type=mf, serial_delay=250, paste_delay=100000, user_shortcut=none 
    mouse: type=ps2, enabled=0, toggle=ctrl+mbutton 
    speaker: enabled=1, mode=system 
    parport1: enabled=1, file=none 
    parport2: enabled=0 
    com1: enabled=1, mode=null 
    com2: enabled=0 
    com3: enabled=0 
    com4: enabled=0 
    
    megs: 2048
    

    参考官方文档bochs: The Open Source IA-32 Emulation Project (New Bochs Documentation) (sourceforge.io)

  • 配置完成后运行bochs,出错及处理如下

    • bochs: cannot connect to X server,此时是因为本地机器不支持X11转发。
测试
  • 使用bximage制作1.44MB软盘

  • 下载Linux早期版本的bochs镜像文件。此处选择bootroot-0.11-040928.zip下载,解压后如下。其中bootroot-0.11即为此处要用的软盘镜像文件。下载地址Linux Bochs镜像下载

  • bootimage-0.11写入到boot.img

    dd if=bootroot-0.11 of=boot.img
    

  • 运行bochssudo bochs。出现如下界面,即为正确。


参考
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值