环境准备工作
有一台win10的笔记本,调试想选择在Linux环境下,选择配置虚拟机,然后安装bochs调试内核
需要准备的软件:
- VirtualBox和增加工具包
- 安装CentOS 6.8minimal
- 设置CentOS的网卡,使之能上网
- 用yum安装开发工具和GNOME
- 安装bochs
- 进入GNOME,在GNOME中运行bochs
虚拟机
CentOS配置
- 虚拟机设置中连接方式为NAT
- 因为安装的CentOS是minimal版本,所以网卡没有默认设置为启动
1
2
3
4
5
6
7
8
9
10
11
12
13vi /etc/sysconfig/network-scripts/ifcfg-eth0
修改:
ONBOOT="yes"
MM_Controlled="no"
# ifconfig eth0 192.168.0.2 netmask 255.255.255.0 //修改ip地址、子网掩码
# route add default gw 192.168.0.1 dev eth0 //修改网关
# hostname centos //修改计算机名
# service network restart //重启网络
# ping 192.168.1.1 //ping网关应正常
# ping www.163.com //ping外网应正常
保证能上外网
需要的编译软件
1 | # yum groupinstall "Development Tools" //gcc, gcc-c++等常用软件都会装上 |
安装Gnome
1 | # yum grouplist |more //察看Gnome安装包的名称 |
编译安装bochs
我是下载了bochs-2.6.7.tar.gz的包通过虚拟机的共享目录转到CentOS下,然后在linux下操作
1 | ./configure --prefix=/data/bochs/ --enable-debugger --enable-disasm |
bochs运行报错
遇到两个错误:
- PANIC ../share/doc/bochs/bochsrc-sample.txt:187: cpu directive malformed.
解决的办法: 配置里面的CPU cpu: model=core2_penryn_t9600目前bochs不支持,需要找支持的CPU
1 | ./bochs -help cpu |
- PANIC bochsrc.txt:917: Bochs is not compiled with lowlevel sound support
声卡不支持,那先不需要声卡,把配置中的声卡先去掉不用
从硬盘启动
这个报错跟上面的不一样,接下来要从启动盘启动,没有找到磁盘,接下来需要我们制作启动盘了。
制作启动盘
执行 bximage 按照步骤可以制作一个启动盘,假如制作的启动盘为 hd30M.img
修改配置如下1
2
3
4
5# 设置硬盘
ata0: enabled=1,ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
# 启动盘信息
ata0-master: type=disk, path="/data/bochs/hd30M.img", mode=flat
再次启动:
出现这用错误的原因是因为我们现在的硬盘还只是一个空的硬盘,没有任何数据,又如何能够运行呢,CPU一下就跑没影了。
Next
接下来我们要加上这个启动设备,拉起内核。期待… :-)