在bochs上运行OS返回错误

时间:2012-04-06 23:56:39

标签: bochs

我正在开发一个名为pintos的OS编程项目。它在命令pintos run nameOfProcess

之后在bochs上运行

这是我收到的错误消息

Writing command line to /tmp/eKW3NMXoGT.dsk...
squish-pty bochs -q
========================================================================
                     Bochs x86 Emulator 2.5.1.svn
             Built from SVN snapshot, after release 2.5.1
                  Compiled on Apr  6 2012 at 19:37:19
========================================================================
00000000000i[     ] reading configuration from bochsrc.txt
00000000000i[     ] installing x module as the Bochs GUI
00000000000i[     ] using log file bochsout.txt
Next at t=0
Writing command line to /tmp/eKW3NMXoGT.dsk...
squish-pty bochs -q
========================================================================
                     Bochs x86 Emulator 2.5.1.svn
             Built from SVN snapshot, after release 2.5.1
                  Compiled on Apr  6 2012 at 19:37:19
========================================================================
00000000000i[     ] reading configuration from bochsrc.txt
00000000000i[     ] installing x module as the Bochs GUI
00000000000i[     ] using log file bochsout.txt
Next at t=0
(0) [0x00000000fffffff0] f000:fff0 (unk. ctxt): (invalid)                 ; ffff
<bochs:1> fgets() returned ERROR.
debugger interrupt request was 0
(0).[0] [0x00000000fffffff0] f000:fff0 (unk. ctxt): (invalid)                 ; ffff
(0) [0x00000000fffffff0] f000:fff0 (unk. ctxt): (invalid)                 ; ffff
<bochs:1> fgets() returned ERROR.
debugger interrupt request was 0
(0).[0] [0x00000000fffffff0] f000:fff0 (unk. ctxt): (invalid)                 ; ffff

也是我的bochsrc.txt

romimage: file=$BXSHARE/BIOS-bochs-latest, address=0xe0000  
vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
boot: disk
cpu: ips=1000000
megs: 4
log: bochsout.txt
panic: action=fatal
clock: sync=none, time0=0
ata0-master: type=disk, path=/tmp/eKW3NMXoGT.dsk, mode=flat, cylinders=1, heads=16, spt=63, translation=none
com1: enabled=1, mode=term, dev=/dev/stdout

Bochs是在我的Ubuntu 11.04

上使用额外配置从源代码构建的

2 个答案:

答案 0 :(得分:4)

我遇到了同样的问题,我问了question on OSDev forum。 我使用file = $ BXSHARE / BIOS-bochs-legacy因为我需要64K BIOS。它无效:

  

romimage:file = $ BXSHARE / BIOS-bochs-legacy,address = 0xf0000

<。>在.bochsrc文件中。它没有“address = 0xf0000”部分。

尝试删除BIOS的起始地址:

  

romimage:file = $ BXSHARE / BIOS-bochs-latest,address = 0xe0000

离开:

  

romimage:file = $ BXSHARE / BIOS-bochs-latest

在你的bochsrc.txt

答案 1 :(得分:2)

安装qemu而不是bosch:

sudo apt-get install qemu

如果qemu的版本是最近的,那么你需要创建一个从“qemu-system-i386”到“qemu”的simbolyc链接

sudo ln -s /usr/bin/qemu-system-i386 /usr/bin/qemu

如果qemu的版本小于1.0,则不需要这样做。现在您可以使用qemu运行Pintos,例如:

pintos --qemu -- run alarm-multiple