赵炯老师的《Linux内核完全注释》一书由于成书较早,其第17章实验环境配置中的配置文件有些老,在Ubuntu18.04下不能直接运行。这里记录下需要修改的地方。
安装bochs及运行
sudo apt install bochs # ubuntu18.04 安装的是bochs2.6
sudo apt install bochs-x
下载赵炯老师书上的sls linux 代码,解压后进入文件夹打开终端,运行bochs
命令,当终端询问配置文件名时输入bochsrc.bxrc
,回车直到终端出现
<bochs:1>
输入 c 即可启动动系统。
问题及解决方法
问题1: bochsrc.bxrc:36: vgaromimage directive malformed.
将bochsrc.bxrc第36行:
vgaromimage: $BXSHARE\VGABIOS-elpin-2.40
修改为:
vgaromimage: file=$BXSHARE/VGABIOS-elpin-2.40
问题2: dlopen failed for module ‘floppy_command_delay’: file not found
将第281行注释掉:
#floppy_command_delay: 50000
问题3: dlopen failed for module ‘ips’: file not found
将303行:
ips: 4000000
修改为:
cpu: count=1, ips=4000000
问题4: couldn’t open ROM image file ‘/usr/share/bochs\BIOS-bochs-latest’
这是由于赵炯是在Windows下配置的,显然路径里有个斜杠反了。将第12行
romimage: file=$BXSHARE\BIOS-bochs-latest, address=0xf0000
修改为
romimage: file=$BXSHARE/BIOS-bochs-latest
address也要去掉。低版本的bochs才需要这个限制
问题5: could not open ROM image file ‘/usr/share/bochs/VGABIOS-ELPIN-2.40’
进入/usr/share/bochs/
目录,发现该目录下只有一个VGABIOS-lgpl-latest
,因此修改配置文件第37行即可:
vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
运行linux-0.12
赵炯老师的http://www.oldlinux.org/网站上也可以下载到linux-0.12的镜像和配置文件。该配置文件可以直接运行无需修改:
bochs -f bochsrc-0.12-hd.bxrc