##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
- 新建虚拟机,如图
- 设置虚拟内存
- 为虚拟机创建一块虚拟硬盘。选择“现在创建虚拟硬盘”,并单击“创建”。
- 基础配置完毕,显示如下界面。
-
设置–>存储–>控制器–>属性,选择已经下载的镜像
-
启动虚拟机直接进入安装
- 安装完毕,进行网络配置 注:大多数朋友选择配置静态编辑网络配置文件进行静态IP配置,但由于操作复杂,而且配置难度比较大,下面教大家用一个简便的操作。
- 点击全局工具
- 配置了主机网络管理器之后,我们需要打开虚拟机,点击图中的配置! 配置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远程登录
- 进入进入 /etc/ssh/ 目录 cd /etc/ssh/
- 修改 sshd_config 文件 vim sshd_config 将 PermitRootLogin Prohibit-password 注释,新添加:PermitRootLogin yes
sudo service ssh restart
用root账户连接,成功!!
xshell 登陆成功,首要的第一件事就是修改镜像网络,因为众所周知的原因,国内访问国外的网站很卡,经常被墙,需要修改国内的镜像网站!
- 备份
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
- 更新
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
- 运行 sudo install gcc
- apt-get install build-essential 安装依赖项
- (1) 出现
- 1 “ERROR: X windows gui was selected, but X windows libraries were not found.
- 解决办法:
- 1 sudo apt-get install libx11-dev xserver-xorg-dev xorg-dev
- (2) 出现
- 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).”
- 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)
- 解决办法:
- 1 sudo apt-get install libgtk2.0-dev
- (3)
- 1 checking for C compiler default output file name… configure: error: C compiler cannot create executables
- 解决方法:
- 1 apt-get install libc6-dev
- (4)
- 1 configure: error: C++ preprocessor “/lib/cpp” fails sanity check
- 解决方法:
- 1 apt-get install build-essential
- (5)
- 1 X windows gui was selected, but X windows libraries were not found.
- 解决方法:参照04年课程论坛上的解决方法,配置的时候加上–with-nogui(不过后来试了,改成apt-get install xorg-dev也行 )
- 问题6:
- install: 无法获取”./bochsdbg” 的文件状态(stat): 没有该文件或目录
- 解决办法:需要在make后,将bochs拷贝一份,命名为bochsdbg
- [thornbird@thornbird bochs-2.4]$cp bochs bochsdbg
- 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