使用的软件:Oracle VM VirtualBox
使用的虚拟机:Ubuntu 14.04
下载工具:bochs、bximage、nasm、build-essential、libx11-dev、libxrandr-dev、libsdl1.2-dev、vgabios
按照本文进行配置相关版本,有80%的概率成功,剩下20%可能是电脑不同,出现的问题不包含在本文内。
1.安装在实验机上安装virtualbox,安装ubuntu并配置开发环境
参考链接:https://blog.csdn.net/ChaoChao66666/article/details/125670795
2.建立虚拟机与主机之间的共享连接,以便传送文件
参考链接:https://blog.csdn.net/weixin_51343683/article/details/120924203
进入终端,输入命令:
sudo mkdir /mnt/share
sudo mount -t vboxsf sharename /mnt/share
(其中sharename为刚刚设置的共享文件夹名字)
然后在主机上将需要共享的文件放入共享文件夹中。
在虚拟机中输入命令:ls /mnt/share
即可查看所共享的文件。
3.Ubuntu换源,这里更换的是阿里云
参考链接:https://blog.csdn.net/u011374791/article/details/106988255
4.安装bochs并配置相关环境
使用老师发的压缩包bochs-2.6.9.tar.gz,网友们可自行去bochs官网下载,这里需要在虚拟机中解压,解压命令:
tar -zxvf bochs-2.6.9.tar.gz
解压生成文件夹bochs-2.6.9,在该文件夹下打开终端(打不开就使用终端命令进入该文件夹),输入如下命令: (失败的话加个sudo su)
./configure --enable-debugger --enable-disasm
make
make install
然后依次安装build-essential、libx11-dev、libxrandr-dev、libsdl1.2-dev、vgabios、bximage。
编辑bochsrc配置文件:
1.###############################################################
2.# Configuration file for Bochs
3.###############################################################
4.# how much memory the emulated machine will have
5.megs: 32
6.# filename of ROM images
7.romimage: file=/usr/share/bochs/BIOS-bochs-latest
8.vgaromimage: file=/usr/share/bochs/VGABIOS-lgpl-latest
9.# what disk images will be used
10.floppya: 1_44=a.img, status=inserted
11.# choose the boot disk.
12.boot: floppy
13.# where do we send log messages?
14.log: bochsout.txt
15.# disable the mouse
16.mouse: enabled=0
5.编辑boot.asm,并使用nasm进行汇编
首先安装nasm:sudo apt-get install nasm
,将boot.asm编译成boot.bin,命令:
nasm boot.asm -o boot.bin
6.制作一个软盘a.img并导入boot.bin
终端输入:bximage
,回车。
创建好软盘之后,修改bochsrc文件,如果a.img,boot.asm,boot.bin以及bochsrc均在同一个文件夹内,则floppya不用修改为完整路径下的a.img,使用bochs时只需要在该文件夹下打开终端运行bochs -f bochsrc即可,否则需要写出a.img的完整路径。
将boot.bin导入软盘中:
dd if=boot.bin of=a.img bs=512 count=1 conv=notrunc
7.bochs执行(一波三折!!!)
在上述文件夹下输入命令:bochs -f bochsrc
,回车。
发现报错了,解决方法:
sudo apt-get install bochs-x
再次执行bochs -f bochsrc
,依然报错,提示无法打开boot.bin和a.img文件,如下图,文件被上锁(此时a.img我已解锁)
使用命令解锁,参考链接:https://blog.csdn.net/weixin_44260459/article/details/122713532
修改完权限后,再次执行bochs -f bochsrc
,还是报错(如下图)
这次报错的问题是缺少相关软件bochs-sdl以及bochsrc文件中缺少该句:display_library: sdl
注:如果想要运行bochs时出现6个菜单选项,可以调试等等,上面那行要删去。
之后再次执行bochs -f bochsrc
,成功!!!
8.总结
最后整理出正确的bochsrc文件:(最后一行可删去)
1.###############################################################
2.# Configuration file for Bochs
3.###############################################################
4.# how much memory the emulated machine will have
5.megs: 32
6.# filename of ROM images
7.romimage: file=/usr/share/bochs/BIOS-bochs-latest
8.vgaromimage: file=/usr/share/bochs/VGABIOS-lgpl-latest
9.# what disk images will be used
10.floppya: 1_44=a.img, status=inserted
11.# choose the boot disk.
12.boot: floppy
13.# where do we send log messages?
14.log: bochsout.txt
15.# disable the mouse
16.mouse: enabled=0
17.display_library:sdl
以及需要配置的所有软件命令:
sudo apt-get install nasm
sudo apt-get install bximage
sudo apt-get install build-essential
sudo apt-get install libx11-dev
sudo apt-get install libxrandr-dev
sudo apt-get install libsdl1.2-dev
sudo apt-get install vgabios
sudo apt-get install bochs-x
制作不易,还望点赞收藏支持一下小编(哼唧唧)