下载bochs

当前版本:2.6.11

下载地址:https://sourceforge.net/projects/bochs/files/bochs/2.6.11/bochs-2.6.11.tar.gz

下载命令:

wget https://sourceforge.net/projects/bochs/files/bochs/2.6.11/bochs-2.6.11.tar.gz

安装

解压

tar zxvf bochs-2.6.11.tar.gz

配置

./configure --prefix=/home/wxer/opt/bochs --with-x11 --with-wx --enable-debugger --enable-disasm --enable-all-optimizations --enable-readline --enable-long-phy-address --enable-ltdl-install --enable-idle-hack --enable-plugins --enable-a20-pin --enable-x86-64 --enable-smp --enable-cpu-level=6 --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-debugger-gui --enable-iodebug --enable-logging --enable-assert-checks --enable-fpu --enable-vmx=2 --enable-svm --enable-3dnow --enable-alignment-check --enable-monitor-mwait --enable-avx --enable-evex --enable-x86-debugger --enable-pci --enable-usb --enable-voodoo

编译

make

出现如下错误

make[1]: 进入目录“/home/wxer/os_dev/bochs/bochs-2.6.11/bx_debug”
g++ -c -I.. -I./.. -I../instrument/stubs -I./../instrument/stubs -I. -I./. -g -O2 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -pthread   dbg_main.cpp -o dbg_main.o
In file included from dbg_main.cpp:28:
dbg_main.cpp: In function ‘void bx_dbg_tlb_lookup(bx_lin_address)’:
../cpu/cpu.h:383:28: error: invalid use of ‘this’ in non-member function383 | #  define BX_CPU_THIS_PTR  this->|                            ^~~~
../cpu/tlb.h:62:32: note: in expansion of macro ‘BX_CPU_THIS_PTR’62 | #define BX_ITLB_INDEX_OF(lpf) (BX_CPU_THIS_PTR ITLB.get_index_of(lpf))|                                ^~~~~~~~~~~~~~~
dbg_main.cpp:1497:18: note: in expansion of macro ‘BX_ITLB_INDEX_OF’1497 |   Bit32u index = BX_ITLB_INDEX_OF(laddr);|                  ^~~~~~~~~~~~~~~~
../cpu/cpu.h:383:28: error: invalid use of ‘this’ in non-member function383 | #  define BX_CPU_THIS_PTR  this->|                            ^~~~
../cpu/tlb.h:59:37: note: in expansion of macro ‘BX_CPU_THIS_PTR’59 | #define BX_DTLB_INDEX_OF(lpf, len) (BX_CPU_THIS_PTR DTLB.get_index_of((lpf), (len)))|                                     ^~~~~~~~~~~~~~~
dbg_main.cpp:1501:11: note: in expansion of macro ‘BX_DTLB_INDEX_OF’1501 |   index = BX_DTLB_INDEX_OF(laddr, 0);|           ^~~~~~~~~~~~~~~~
make[1]: *** [Makefile:67:dbg_main.o] 错误 1
make[1]: 离开目录“/home/wxer/os_dev/bochs/bochs-2.6.11/bx_debug”
make: *** [Makefile:330:bx_debug/libdebug.a] 错误 2

解决方法:

参考: 写一下bochs 2.6.11安装过程中的bug

Description: Fix the build with SMP enabled
Origin: https://sourceforge.net/p/bochs/code/13778/Index: bochs/bx_debug/dbg_main.cc
===================================================================
--- bochs/bx_debug/dbg_main.cc  (revision 13777)
+++ bochs/bx_debug/dbg_main.cc   (working copy)
@@ -1494,11 +1494,11 @@{char cpu_param_name[16];-  Bit32u index = BX_ITLB_INDEX_OF(laddr);        //这一行改成下面一行
+  Bit32u index = BX_CPU(dbg_cpu)->ITLB.get_index_of(laddr);sprintf(cpu_param_name, "ITLB.entry%d", index);bx_dbg_show_param_command(cpu_param_name, 0);-  index = BX_DTLB_INDEX_OF(laddr, 0);      //同理
+  index = BX_CPU(dbg_cpu)->DTLB.get_index_of(laddr);sprintf(cpu_param_name, "DTLB.entry%d", index);bx_dbg_show_param_command(cpu_param_name, 0);}

这个修改后,还会有如下错误

make: *** 没有规则可制作目标“misc/bximage.cc”,由“misc/bximage.o” 需求。 停止。

解决方法:

cp misc/bximage.cpp misc/bximage.cc
cp iodev/hdimage/hdimage.cpp iodev/hdimage/hdimage.cc
cp iodev/hdimage/vmware3.cpp iodev/hdimage/vmware3.cc
cp iodev/hdimage/vmware4.cpp iodev/hdimage/vmware4.cc
cp iodev/hdimage/vpc-img.cpp iodev/hdimage/vpc-img.cc
cp iodev/hdimage/vbox.cpp iodev/hdimage/vbox.cc

安装

make install

接着在HOME目录下的.bashrc文件中添加安装的bochs所在目录

...
export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
export PATH=~/bin/repo:$PATH
export PATH=~/opt/bochs/bin:$PATH

Ubuntu 20.04下bochs安装相关推荐

  1. linux :YOLO5配置(ubuntu 20.04 下安装运行yolov5)

    ubuntu 20.04 下安装运行yolov5 新建文件夹,安装python 安装 python-pip: 克隆YOLOv5Git code 配置YOLO环境 安装yolov5: ubuntu 20 ...

  2. ubuntu 20.04 下安装使用clash for windows

    ubuntu 20.04 下安装使用clash for windows (最简单版本) - jjjzzzqqq - 博客园

  3. ccpd文件名转成xml_在Deepin V20/Ubuntu 20.04下安装佳能LBP2900+打印机的方法

    本文为你介绍在Deepin V20系统下安装佳能LBP2900+打印机的方法,同样的方法也适用在Ubuntu 20.04下,但在Ubuntu下需要安装canberra-gtk-module. 在Dee ...

  4. 在Ubuntu 20.04下安装 ROOT cern

    在Ubuntu 20.04下安装 ROOT cern Step1 安装必要库 Step2 安装ROOT本身 方法1:下载预编译软件包安装(Bianary Distributions) 方法2:CMAK ...

  5. ubuntu 20.04 下安装easyconnect记录

    最近需要在linux下连接公司内网,试了下主要有一下两个问题: 1.easyconnect在ubuntu20下无法打开: 2.在解决第一个问题后在easyconnect登陆过程中闪退. 解决方案主要参 ...

  6. 在笔记本上安装 linux系统--Ubuntu 20.04(实体机安装而非虚拟机)

    在笔记本上安装 linux系统–Ubuntu 20.04(实体机安装而非虚拟机) 一.刻录操作系统镜像到U盘 Ubuntu有详细的操作说明(5分钟左右能看完)大概如下 Create a bootabl ...

  7. Ubuntu 20.04.3 LTS安装rabbitvcs svn图形化客户端和简单实用

    如果想在Linux环境下使用图形化界面的SVN客户端软件,那么RabbitVCS绝对是首选,可以媲美Windows环境下用的TortoiseSVN,甚至连操作都基本一样,所以强烈推荐给各位童鞋.  R ...

  8. Ubuntu 20.04 下Fabric V2.2.0 和 V1.1.0 运行及配置说明(均可运行)

    ubuntu 20.04 下Fabric V2.2.0 和 V1.1.0 运行及配置说明 ubuntu 20.04 下Fabric运行及配置说明 注:本文是对 <hyperledger/fabr ...

  9. Ubuntu 20.04常见软件安装

    Ubuntu 20.04常见软件安装 安装系统 20.04 系统 制作启动盘后直接安装系统 具体安装可以参考Ubuntu 20.04安装指导 https://blog.csdn.net/weixin_ ...

最新文章

  1. 循序渐进学Oracle之索引、权限、角色
  2. Spring学习总结(2)——Spring的常用注解
  3. 成功解决AttributeError: module ‘seaborn‘ has no attribute ‘lvplot‘
  4. Invalid connection string format, a valid format is: host:port:sid
  5. android 服务自动结束,Android服务自动停止
  6. 永久把linux系统chrome的user agent 改成win10系统的
  7. mysql客户端centos离线安装_mysql离线安装部署centos
  8. 苹果公布第三财季财报:大中华区依然是伤心地
  9. (转)word2vec前世今生
  10. 使用hbase时常见问题解决方法
  11. 抖音打破了传统互联网的商业逻辑
  12. jquery匹配不区分大小写_jQuery实现contains方法不区分大小写的方法教程
  13. android-ImageView显示选择本地图片或拍照
  14. 捷联惯导系统学习4.3(静基座误差)
  15. 达梦8数据库安装教程
  16. codebook 背景减除
  17. 零基础可不可以学前端?我来告诉你
  18. 正版授权WiFi大师4.0.5 专业版流量主小程序源码部署教程
  19. 8个酷炫的GitHub技巧
  20. 【夜读】一个人最积极的生活状态

热门文章

  1. 深入浅出内存管理-- 伙伴系统(buddy system)
  2. java在退出前释放资源,【java】手动释放资源问题
  3. SmartDraw2008破解
  4. 蓝桥杯开发板硬件资源和考点
  5. 动手学深度学习第二版 Ubuntu import os os.makedirs(os.path.join(‘..‘, ‘data‘), exist_ok=True)data_f报错
  6. nero 9 制作DVD MTV 光盘
  7. asterisk 参数
  8. 复习C语言随笔 十二
  9. 微软认证考试心得:微软认证考试的几种形式
  10. LRU(Least Recently Used)缓存淘汰策略算法