配置bochs 2.4.1

本文是OS实验时本以为会用到发的帖子,结果实验环境已经配好,所以本文没有价值,仅作纪念。

1:首先在网上下载tar.gz的包,目前最新版是2.4.1 

解压到自己到目录。

2:我的机器之前装好了g++,没有装的话装一下:

sudo apt-get install g++

到此先不要编译,还要装一个图形界面:

sudo apt-get install xorg-dev 

3: 现在编译后make还会出错,具体的错误提示忘了,这看起来好像是代码有问题还是其他什么问题,我也没有为了装一个软件去看那么长的代码,并且也看不懂~,最后我的解决办法是改两个文件:
一个是/bochs/cpu/proc_ctrl.cc 大约从650~683行结束,修改为:
//--------------------------------------------------------------------------------------------------

#if BX_SUPPORT_VMX
VMexit_CR3_Write(i, val_32);
if (BX_CPU_THIS_PTR cr0.get_PG() && BX_CPU_THIS_PTR cr4.get_PAE() &&
        !long_mode())
{
    if (! CheckPDPTR(val_32))
    {
        BX_ERROR(("SetCR3(): PDPTR check failed !"));
        exception(BX_GP_EXCEPTION, 0, 0);
    }
}
SetCR3(val_32);
BX_INSTR_TLB_CNTRL(BX_CPU_ID, BX_INSTR_MOV_CR3, val_32);
break;
#endif
#if BX_CPU_LEVEL > 3
case 4: // CR4
#if BX_SUPPORT_VMX
val_32 = VMexit_CR4_Write(i, val_32);
if (BX_CPU_THIS_PTR cr0.get_PG() && (val_32 & (1<<5)) != 0 /* PAE */
        && !long_mode())
{
    if (! CheckPDPTR(BX_CPU_THIS_PTR cr3))
    {
        BX_ERROR(("SetCR4(): PDPTR check failed !"));
        exception(BX_GP_EXCEPTION, 0, 0);
    }
}
// Protected mode: #GP(0) if attempt to write a 1 to
// any reserved bit of CR4
if (! SetCR4(val_32))
    exception(BX_GP_EXCEPTION, 0, 0);
break;
#endif
#endif
default:
BX_ERROR(("MOV_CdRd: #UD - control register %d index out of range",
          i->nnn()));
exception(BX_UD_EXCEPTION, 0, 0);
}
}
//--------------------------------------------------------------------------------------------------
参考来源

另一个文件是/bochs/gdbstub.cc,这个文件在make的时候出现错误提示是那个什么Bit32u不能转为Bit8u还是什么东西的,具体的也忘了。
google了半天还是没法解决,后来想到最新版本是2.4.1,网上基本都是2.3.7到教程,既然 2.3.7没遇到这个问题,那么把2.4.1里面的这个文件替换为2.3.7的gdbstub.cc应该就可以解决,果然奏效!
这里可以找到这个文件2.3.7版本的源码。

4:改完这些,可以编译安装了。

./configure --enable-gdb-stub #google找到好多,参数比这个还长。我配置时候就这些参数就够了。
make
sudo make install

然后就能装上了。

装完 gcc-3.4后,试着编译下cms上面给的linux-0.11内核,然后就能在Bochs里面运行了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值