Hi Norman,
Björn told me about your problem because I write my Belegarbeit using a Framework which includes Bochs. I was not able to reproduce your exact error, but since I have experienced faults at the same stage of booting when I started with Bochs, my workaround might at least be worth a try.
Using your setup, my Bochs instance hung up instead of reporting a double fault, but then again, everything worked when I disabled the PCI bridge. So maybe
pci: enabled=0
in bochsrc or even omitting the --enable-pci parameter while configuring might help in your case. In general, I experienced that compiling Bochs with less configuration parameters usually produces a better emulator.
Regards,
Martin
Am 29.04.2012 08:36, schrieb Björn Döbel:
Hi,
Kannst Du dem Norman helfen?
Björn
-------- Original-Nachricht -------- Betreff: Running Fiasco.OC in Bochs Datum: Sat, 28 Apr 2012 21:14:37 +0200 Von: Norman Feskenorman.feske@genode-labs.com An: l4-hackers@os.inf.tu-dresden.de
Hello,
for tracing/profiling purposes, I'd like to run Genode on Fiasco.OC in Bochs. My prior attempts with the OKL4 and Pistachio kernels went fine. However, when booting the setup with Fiasco.OC, I get the following kernel message right at the start:
Freeing init code/data: 28672 bytes (7 pages)
DOUBLE FAULT! EAX=ec7ff000 ESI=00000000 DS=0023 EBX=fcdcf000 EDI=fcdcf170 ES=0023 ECX=ec7ff000 EBP=f0060100 GS=0043 EDX=ec7ff000 ESP=fcdcffbc SS=0010 ESP0=00000000 EFL=00200246 EIP=f006592c CS=0008 Return reboots, "k" tries to enter the L4 kernel debugger...
Has anyone successfully used Fiasco.OC with Bochs before? If yes, I would very much appreciate a known-good starting point for experimentation.
For reference, I am using the following kernel configuration:
https://raw.github.com/genodelabs/genode/master/base-foc/config/x86_32.kerne...
My 'bochsrc' file looks as follows:
display_library: x romimage: file=/usr/local/share/bochs/BIOS-bochs-latest megs: 128 com1: enabled=1, mode=file, dev=serial.out boot: cdrom ata0-master: type=cdrom, path=var/run/demo.iso, status=inserted mouse: enabled=1, type=imps2 log: ./bochs.out panic: action=fatal vgaromimage: file=/usr/local/share/bochs/VGABIOS-lgpl-latest vga: extension=vbe pci: enabled=1, chipset=i440fx, slot1=pcivga
The Bochs version is the official release 2.5.1 configured with the following arguments:
--with-x11 --enable-plugins --enable-pci --enable-clgd54xx
Regards Norman
Hi Martin,
Using your setup, my Bochs instance hung up instead of reporting a double fault, but then again, everything worked when I disabled the PCI bridge. So maybe
pci: enabled=0
thanks a lot - your hint was spot-on! With PCI being disabled, the kernel starts up successfully.
Even though this tweak renders any attempt to use graphics futile (since our VESA driver scans the PCI bus for the VGA card), the remaining setup is actually sufficient to pursue the experiments that I had in mind.
Thanks again and good luck with your student research project. :-)
Cheers Norman
l4-hackers@os.inf.tu-dresden.de