源码安装bochs 2.6.9

Bochs

Posted by BINBIN Blog on October 22, 2019

##bochs

这个安装bochs,当时在看Orange’S:一个操作系统的实现 去安装,书上提到的安装方法很老的,过时了,无法安装,我是从网上搜索和查看bochs手册慢慢摸索出来的!

首先bochs下载地址是:http://sourceforge.net/projects/bochs/files/bochs/

发现这个链接失效了,就把bochs 的文件上传到网盘了!

链接:https://pan.baidu.com/s/1WRvf_HuRDwcsx_bF_W1b_A 提取码:eimg

现在最新版本的是2.6.9!

我安装bochs是在虚拟机源码形式安装的!

我是使用Ubuntu desktop安装的,一定要安装带desktop的,bochs 需要调用x windows组件才能启动的!

安装unbuntu desktop就不说了,自己到Ubuntu网站直接下载,然后在虚拟机安装!

注意:Ubuntu 默认啥都不安装,所以gcc编译器的都要自己安装了!!

我把安装步骤都记录下来了!

基于VirtualBox安装Ubuntu 18.04.1 LTS

  1. 镜像地址下载 https://ubuntu.com/download/desktop

  1. 新建虚拟机,如图

  1. 设置虚拟内存

  1. 为虚拟机创建一块虚拟硬盘。选择“现在创建虚拟硬盘”,并单击“创建”。

  1. 基础配置完毕,显示如下界面。

  1. 设置–>存储–>控制器–>属性,选择已经下载的镜像

  2. 启动虚拟机直接进入安装

  1. 安装完毕,进行网络配置 注:大多数朋友选择配置静态编辑网络配置文件进行静态IP配置,但由于操作复杂,而且配置难度比较大,下面教大家用一个简便的操作。

  1. 点击全局工具

  1. 配置了主机网络管理器之后,我们需要打开虚拟机,点击图中的配置! 配置Ethernet,第一个默认不需要配置,只需要配置第二个,例如我的是enp0s8

至此网络配置完成!

使用XShell远程连接虚拟机

这个需要安装ssh!

sudo apt-get install openssh-server

PS: 默认安装时没有root,可以自己设置一下root sudo passwd root 切换到root的时候,输入 su 切换回普通账号,比如普通账号名称是test,就输入 ` su -test `.

xshell ,直接使用ssh协议!

注意,若用root 账号登陆失败,是因为Ubuntu默认禁止root远程登录

  1. 进入进入 /etc/ssh/ 目录 cd /etc/ssh/
  2. 修改 sshd_config 文件 vim sshd_config 将 PermitRootLogin Prohibit-password 注释,新添加:PermitRootLogin yes

sudo service ssh restart

用root账户连接,成功!!

xshell 登陆成功,首要的第一件事就是修改镜像网络,因为众所周知的原因,国内访问国外的网站很卡,经常被墙,需要修改国内的镜像网站!

  1. 备份 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

2.修改 sudo vim /etc/apt/sources.list 将source.list文件内容替换成下面的

deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse

  1. 更新 sudo apt-get update

注意使用xftp软件连接的时候,需要选择sftp! sudo apt-get install vsftpd

###源码bochs安装 这个要参照Orange’S:一个操作系统的实现 书籍安装!


tar vxzf bochs-20190421.tar.gz

cd bochs-20190421

./configure --enable-debugger --enable-disasm

make

sudo make install

若是卸载软件,在源码文件下下面执行


sudo make uninstall

链接:https://pan.baidu.com/s/19Em23CrR9yJ7WhAahz6T2Q 提取码:8aja

  1. 运行 sudo install gcc
  2. apt-get install build-essential 安装依赖项
  3. (1) 出现
  4. 1 “ERROR: X windows gui was selected, but X windows libraries were not found.
  5. 解决办法:
  6. 1 sudo apt-get install libx11-dev xserver-xorg-dev xorg-dev
  7. (2) 出现
  8. 1 “ERROR: pkg-config was not found, or unable to access the gtk+-2.0 package. Install pkg-config and the gtk+ development package, or disable the gui debugger, or the wxWidgets display library (whichever is being used).”
  9. 2 ERROR: pkg-config was not found, or unable to access the gtk+-2.0 package.Install pkg-config and the gtk+ development package,or disable the gui debugger, or the wxWidgets display library (whichever is being used)
  10. 解决办法:
  11. 1 sudo apt-get install libgtk2.0-dev
  12. (3)
  13. 1 checking for C compiler default output file name… configure: error: C compiler cannot create executables
  14. 解决方法:
  15. 1 apt-get install libc6-dev
  16. (4)
  17. 1 configure: error: C++ preprocessor “/lib/cpp” fails sanity check
  18. 解决方法:
  19. 1 apt-get install build-essential
  20. (5)
  21. 1 X windows gui was selected, but X windows libraries were not found.
  22. 解决方法:参照04年课程论坛上的解决方法,配置的时候加上–with-nogui(不过后来试了,改成apt-get install xorg-dev也行 )
  23. 问题6:
  24. install: 无法获取”./bochsdbg” 的文件状态(stat): 没有该文件或目录
  25. 解决办法:需要在make后,将bochs拷贝一份,命名为bochsdbg
  26. [thornbird@thornbird bochs-2.4]$cp bochs bochsdbg
  27. apt-get install build-essential

出现问题:用bochs运行生成的img报错:’keyboard_mapping’ is deprecated - use ‘keyboard’ option instead. 看了好多博客都没解决,好不容易遇到一个似乎能解决问题的博客,博主说看sample-txt发现keyboard配置有问题,没找到这个文件在哪,最后开大了,直接看官方文档,解决了 0_0 官方文档描述如下:

配置文件中的是:keyboard_mapping: enabled=0, map=/usr/share/bochs/keymaps/x11-pc-us.map 那就按着官方的来呗,改!!!! 解决方法:(我的bochs版本:2.6.9) 配置文件中keyboard_mapping改为:keyboard: keymap=/usr/share/bochs/keymaps/x11-pc-us.map (PS:把那行注释掉也能成功运行:) 不能在命令行启动bochs -f bochsrc ,显示不能链接x display 当时以为是要把后台程序干掉,bochs 自己才能连接,后来试了好多次都不行! 才想起来应该是在桌面上打开终端启动才行呢! 注意: 必须用管理员权限启动bochs 因为需要格式化之类,创建文件之类的都需要这些权限!

注意,书上提到挂载:

1 sudo mkdir/mnt/floppy
2 sudo mount -o loop pm.img /mnt/floppy
3 sudo cp test.com /mnt/floppy
4 sudo umount /mnt/floppy