vmware + Centos7+linux内核版本3.10.0-1160.el7.x86_64+bochs-2.6.8
需要在root用户下,不是在root用户下加入sudo
sudo yum -y install gtk2 gtk2-devel
sudo yum -y install libXt libXt-devel
sudo yum -y install l libXpm libXpm-devel
sudo yum -y install SDL SDL-devel
sudo yum -y install l libXrandr-devel.x86_64
sudo yum -y install xorg-x11-server-devel
sudo yum -y install gcc
sudo yum -y install l gcc-c++
我的必须在虚拟机中重新下载bochs压缩包或者本机与虚拟机共享文件,copy到虚拟机中尝试几次均不成功,文件损坏。
下载地址 (https://udomain.dl.sourceforge.net/project/bochs/bochs/2.6.8/bochs-2.6.8.tar.gz)
解压安装包
sudo tar -zxvf bochs-2.6.8.tar.gz
创建新的目录去安装
bochs mkdir bochs
进入解压后的文件夹
cd bochs-2.6.8
安装配置环境
./configure --prefix=/root/Ytest/bochs --enable-debugger --enable-disasm --enable-iodebug --enable-x86-debugger --with-x --with-x11 LDFLAGS='-pthread'(/root/Ytest/替换为自己的路径)
编译
make
安装
make install
进入新创建的bochs文件夹 cd bochs
创建touch bochsrc.disk
,进入配置文件 vim bochsrc.disk 填入配置信息
megs : 32
romimage: file=/root/Ytest/bochs/share/bochs/BIOS-bochs-latest(路径替换)
vgaromimage: file=/root/Ytest/bochs/share/bochs/VGABIOS-lgpl-latest(路径替换)
boot: disk
log: bochs.out
mouse:enabled=0
keyboard:keymap=/root/Ytest/bochs/share/bochs/keymaps/x11-pc-us.map(路径替换)
ata0:enabled=1,ioaddr1=0x1f0,ioaddr2=0x3f0,irq=14
ata0-master: type=disk, path="hd60M.img", mode=flat,cylinders=121,heads=16,spt=63
#gdbstub:enabled=1,port=1234,text_base=0,data_base=0,bss_base=0
ESC键输入:wq
退出
创建磁盘
bin/bximage
输入参数
1
hd
flat
60
hd60M.img
编写测试代码 cd ..
(上一级目录)
创建mbr.s文件
touch mbr.s
进入
vim mbr.s
填入测试代码
SECTION MBR vstart=0x7c00
mov ax,0x0000
mov ss,ax
mov ax,0x7c00
mov sp,ax
mov ax,0x0600
mov bx,0x0700
mov cx,0x0000
mov dx,0x184f
int 0x10
mov ax,0x0300
mov bx,0x0000
int 0x10
mov ax,0x0000
mov es,ax
mov ax,message
mov bp,ax
mov ax,0x1301
mov bx,0x0007
mov cx,0x000c
int 0x10
jmp $
message db "Hello World!"
times 510-($-$$) db 0
db 0x55,0xaa
安装编译器
sudo yum -y install nasm
进行编译
nasm – o ytest mbr.s
写入磁盘(替换路径)
dd if=/root/Ytest/ytest of=/root/Ytest/bochs/hd60M.img bs=512 count=1 conv=notrunc
进入bochs
cd bochs
运行
bin/bochs -f bochsrc.disk
回车后输入字符c
就可以看见Hello world!(出现黑屏大概率没有输入字符c)
1、依赖环境安装时候出现‘
Another app is currently holding the yum lock; waiting for it to exit...
另一个应用程序是:PackageKit
内存: 27 M RSS (1.4 GB VSZ)
已启动: Fri Oct 22 15:27:32 2021 - 00:28之前
状态 :睡眠中,进程ID:13482
这是因为已经有一个yum进程已经在运行了,所以无法执行现在的操作,要结束这个进程
解决方案输入 rm -f /var/run/yum.pid
即可
2、make编译时出现无法获取“./bochsdbg”的文件状态(stat):没有改文件或者目录
解决方案:make编译之后,将bochs-2.6.8文件夹 copy一份,命名为bochsdbg即可。
3、启动bochs时出现No bootable device 错误
解决方案:大多数是由于硬盘问题。
1.查看是否忘记忘记创建硬盘了
2.查看创建硬盘时候路径是否写错(我的是这种情况)