关于BOCHS轻量PC模拟器配置和辅助工具。
BOCHS是一个轻量级小型系统模拟器。它可以用来开发引导模块,测试系统。
BOCHS一开始上手不容易配置。
简单的配置
megs: 32 romimage: file=$BXSHARE/BIOS-bochs-latest vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest vga: extension=vbe, update_freq=15 floppya: 1_44=a.img, status=inserted #ata0-master: type=disk, mode=flat, path=10M.sample, cylinders=306, heads=4, spt=17 #ata0-slave: type=cdrom, path=D:, status=inserted #boot: cdrom, floppy, disk,network boot: a #log: bochsout.txt mouse: enabled=0 cpu: ips=15000000 pci: enabled=1, chipset=i440fx
megs 是模拟器需要的内存
模拟器需要两个固件模块
romimage 和 vgaromimage
BIOS模块和VGA显示模块
BOCHS这两个模块有多种组合选择。
VGA:
VGABIOS-lgpl-latest-cirrus
VGABIOS-lgpl-latest-cirrus-debug
VGABIOS-lgpl-latest
VGABIOS-lgpl-latest-debug
VGABIOS-lgpl-latest-banshee
VGABIOS-elpin-2.40
vgabios-cirrus.bin-1.13.0
BIOS:
bios.bin-1.14.0
bios.bin.elf-1.14.0
BIOS-bochs-latest
BIOS-bochs-legacy
BIOS-qemu-latest
vga: 这扩展可以是none,vbe,cirrus,voodoo
加软驱镜像,光驱,硬盘镜像
软驱镜像可以用bximage这个软件生成。
bximage 这个软件用法
建立新软驱或磁盘镜像
转换硬盘镜像到另一模式
调节硬盘镜像大小
添加“可撤消”恢复日志提交到基本映像
磁盘信息
注:redolog 文件是image文件的辅助
boot:这参数后面可以是盘符字母 a,b,c
在boot参数前可以挂光驱
ata0-slave: type=cdrom, path=D:, status=inserted
D:是实际光驱的盘符
光驱配置的一个例子:
# configuration file generated by Bochs config_interface: win32config display_library: win32, options="traphotkeys, autoscale" megs: 64 romimage: file=BIOS-bochs-legacy, options=fastboot vgaromimage: file=VGABIOS-lgpl-latest vga: extension=vbe, update_freq=15 floppya: 1_44=a.img, status=inserted floppyb: 1_44=b.img, status=inserted ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14 ata0-master: type=disk, path=new.img ata0-slave: type=cdrom, path=G:, status=inserted boot:cdrom,disk log:- logprefix: %t-%e-@%i-%d pci: enabled=1, chipset=i440fx print_timestamps: enabled=0 #magic_break: enabled=0 port_e9_hack: enabled=0 private_colormap: enabled=0 clock: sync=none, time0=local, rtc_sync=0 # no cmosimage # no loader keyboard: type=mf, serial_delay=250, paste_delay=100000, user_shortcut=none mouse: type=ps2, enabled=0, toggle=ctrl+mbutton sound: waveoutdrv=dummy, waveout=none, waveindrv=dummy, wavein=none, midioutdrv=dummy, midiout=none speaker: enabled=1, mode=sound, volume=15
光盘引导的蓝点linux 2.0
如果boot:network 这个网络引导的话,我们可以用bxhub.exe这个软件。
网卡参数要配好
ne2k: ioaddr=0x300, irq=3, mac=b0:c4:20:00:00:00, ethmod=win32, ethdev=\Device\NPF_{1107B65B-B8FE-452A-8014-F9924XXXXXX}
这个网卡参数可以用niclist.exe这个工具命令寻找。
这个是实际的网卡配置,如果想用虚拟网卡是不一样的,默认包没有这个插件或包含在其它版本中。ne2k的网卡配置是bochs的默认配置。
bxhub.exe 这个软件要在cmd命令行下使用,加上参数:
注:zjqpxe 这个目录是小小强网络工具箱的实用启动资料包。
bochsrc 的第一栏加
plugin_ctrl: ne2k=1
# configuration file generated by Bochs plugin_ctrl: ne2k=1 config_interface: win32config display_library: win32, options="traphotkeys, autoscale" megs: 64 romimage: file=BIOS-bochs-latest, options=fastboot vgaromimage: file=VGABIOS-lgpl-latest vga: extension=vbe, update_freq=15 floppya: 1_44=a.img, status=inserted floppyb: 1_44=b.img, status=inserted boot:network log:- logprefix: %t-%e-@%i-%d pci: enabled=1, chipset=i440fx print_timestamps: enabled=0 #magic_break: enabled=0 port_e9_hack: enabled=0 private_colormap: enabled=0 clock: sync=none, time0=local, rtc_sync=0 # no cmosimage # no loader ne2k: ioaddr=0x300, irq=3, mac=b0:c4:20:00:00:00, ethmod=win32, ethdev=\Device\NPF_{1107B65B-B8FE-452A-8014-F662480263F9} keyboard: type=mf, serial_delay=250, paste_delay=100000, user_shortcut=none mouse: type=ps2, enabled=0, toggle=ctrl+mbutton sound: waveoutdrv=dummy, waveout=none, waveindrv=dummy, wavein=none, midioutdrv=dummy, midiout=none speaker: enabled=1, mode=sound, volume=15
网卡配置如果没有网卡ROM还要有ROM,网卡的ROM分三大类,一个是netware网,一个是RPL(win95)网,一个是PXE(tftpd服务)网,这些ROM现在在某些网站收费,实际上,早期的NE2000卡驱动盘,还有R8139卡驱动盘包含ROM。有这些老驱动盘的人注意了。这些ROM现在是有价值的。
gPXE 在(http://git.etherboot.org/?p=gpxe.git)下载(gPXE)是共享免费的PXE模块,还有pxelinux.0。