On 12.07.2018 17:41, Paul Dufresne wrote:
I spent many hours trying to figure out what is going wrong when running Nova on my Optiplex 745 machine.
I have figure out that the computer would reboot unless I commented out: In si.cpp constructor, the TRACE line have to be commented out.
This should not happen nor necessary to comment it out, as long as you did not enable TRACE_SYSCALL (which is by default off).
Id pd.cpp constructor, the Mtrr::init(); have to be commented out.
Also, to see what is going on on the screen, in: genode/tool/run/boot_dir/nova, I have removed novga from: #proc kernel_output { } { return "novga serial" } This allow to see some info on the screen.
My 2 CPUS are shown on the screen. But that's the last thing that is shown. It looks like the schedule call at the end of bootstrap.cpp does not seems to kick in. I am unsure where is the code that is supposed to be run from there... or/and why it is not run.
Check, whether the timer interrupt (local APIC) is working on your CPUs. If they are not, the scheduling will not work properly.
You may try to add "spinner" to the kernel commandline. This gives you some diagnostic information about all kind of events and interrupts coming in (see chapter "Console" at the end in contrib/nova-<hash>/src/kernel/nova/doc/specification.pdf)
Another commandline option is "keyb", which gives you (if the keyb interrupt is working properly) on each "c" key press additional information on the vga screen and/or serial.
Good luck,