Hello L4 Hackers,
here follows a description of what I did. My questions come to the end of the message. Sorry for the length, but I wanted to be clear.
perignan:/home/roux/qemu_try2>wget http://fabrice.bellard.free.fr/qemu/qemu-0.6.1.tar.gz perignan:/home/roux/qemu_try2>tar -xvzf qemu-0.6.1.tar.gz perignan:/home/roux/qemu_try2>cd qemu-0.6.1 perignan:/home/roux/qemu_try2/qemu-0.6.1>./configure --target-list=i386-softmmu --prefix=/home/roux/qemu_try2 Install prefix /home/roux/qemu_try2 BIOS directory /home/roux/qemu_try2/share/qemu binary directory /home/roux/qemu_try2/bin Manual directory /home/roux/qemu_try2/share/man ELF interp prefix /usr/gnemul/qemu-%M Source path /home/roux/qemu_try2/qemu-0.6.1 C compiler gcc make make host CPU i386 host big endian no target list i386-softmmu gprof enabled no static build no SDL support yes SDL static link yes mingw32 support no Adlib support no FMOD support no perignan:/home/roux/qemu_try2/qemu-0.6.1>make ... bulding output data ... everything was fine ... perignan:/home/roux/qemu_try2/qemu-0.6.1>make install ... install output data ... everything was fine ... perignan:/home/roux/qemu_try2/qemu-0.6.1>cd .. perignan:/home/roux/qemu_try2>wget http://os.inf.tu-dresden.de/L4/LinuxOnL4/demo-cd/demo-cd-0.1.iso.bz2 ... donwload ok ... perignan:/home/roux/qemu_try2>bunzip2 demo-cd-0.1.iso.bz2 perignan:/home/roux/qemu_try2>bin/qemu -cdrom demo-cd-0.1.iso -boot d -serial stdio Could not configure '/dev/rtc' to have a 1024 Hz timer. This is not a fatal error, but for better emulation accuracy either use a 2.6 host Linux kernel or type 'echo 1024 > /proc/sys/dev/rtc/max-user-freq' as root. ... a lot of output from l4 ...
Now, we are inside qemu, we just choose "L4Linux 2.6 from this cd [dope]". When linux is there, we try a: telnet 10.0.2.2 (10.0.2.2 is the address of the localhost, as set by qemu) inside the l4linux window, and we've got this: <3>bad: scheduling while atomic! [<00407efe>] dump_stack+0x1e/0x20 [<0061c3f0>] schedule+0x450/0x490 [<00401b16>] l4x_idle+0x196/0x1a0 [<004049c8>] cpu_idle+0x8/0x10 [<006d0719>] start_kernel+0x1f9/0x260 [<006d4571>] l4env_linux_startup+0x111/0x120 [<00015205>] 0x15205 [<00018198>] 0x18198 <3>bad: scheduling while atomic! [<00407efe>] dump_stack+0x1e/0x20 [<0061c3f0>] schedule+0x450/0x490 [<004022bf>] l4x_dispatch_message+0x79f/0x11b0 [<00000000>] 0x0 <3>bad: scheduling while atomic! [<00407efe>] dump_stack+0x1e/0x20 [<0061c3f0>] schedule+0x450/0x490 [<0040bb99>] sys_sched_yield+0x39/0x50 [<0044858a>] do_coredump+0xca/0x2b5 [<0041744a>] get_signal_to_deliver+0x29a/0x310 [<00406811>] do_signal+0x51/0x720 [<00401fbe>] l4x_dispatch_message+0x49e/0x11b0 [<00000000>] 0x0 <3>bad: scheduling while atomic! [<00407efe>] dump_stack+0x1e/0x20 [<0061c3f0>] schedule+0x450/0x490 [<0061c7b8>] schedule_timeout+0xa8/0xb0 [<0044f253>] do_select+0x363/0x370 [<0044f4d1>] sys_select+0x271/0x410 [<004024c7>] l4x_dispatch_message+0x9a7/0x11b0 [<00000000>] 0x0 <3>bad: scheduling while atomic! [<00407efe>] dump_stack+0x1e/0x20 [<0061c3f0>] schedule+0x450/0x490 [<0061c7b8>] schedule_timeout+0xa8/0xb0 [<0044f253>] do_select+0x363/0x370 [<0044f4d1>] sys_select+0x271/0x410 [<004024c7>] l4x_dispatch_message+0x9a7/0x11b0 [<00000000>] 0x0 <0>Kernel panic: Aiee, killing interrupt handler! <0>In interrupt handler - not syncing
This error message is not always the same, I once had: <3>bad: scheduling while atomic! [<00407efe>] dump_stack+0x1e/0x20 [<0061c3f0>] schedule+0x450/0x490 [<00401b16>] l4x_idle+0x196/0x1a0 [<004049c8>] cpu_idle+0x8/0x10 [<006d0719>] start_kernel+0x1f9/0x260 [<006d4571>] l4env_linux_startup+0x111/0x120 [<00015205>] 0x15205 [<00018198>] 0x18198 KERNEL: c.3 (tcb=c0301800) killed: Unhandled trap EAX 030ded40 EBX 00003293 ECX 00682f00 EDX 030ded48 ESI 00000000 EDI 00682f04 EBP 007d1f04 ESP 007d1f04 EIP 0040e27f EFLAGS 00003206 CS 001b SS 0023 DS 0023 ES 0023 FS 0023 GS 0043 trapno 6, error 00000000, from user mode
We have here: perignan:/home/roux/qemu_try2>uname -a Linux perignan 2.4.20-8smp #1 SMP Thu Mar 13 17:45:54 EST 2003 i686 i686 i386 GNU/Linux perignan:/home/roux/qemu_try2>gcc --version gcc (GCC) 3.2.2 20030222 (Red Hat Linux 3.2.2-5) My CPU is a Pentium 4 running at 3GHz, I've got 1GB of RAM. My X Window has a depth of 24, it's a TrueColor visual class.
If you need more informations to solve this, just tell me.
I would like to know: 1 - what's going on? I suspected some kind of weird IRQ firing because of the use of qemu, but as far as my investigations have told me, it doesn't seem to be that. I believed that one IRQ went to fast after a first one, so the linux was not yet out of the driver code, but the interrupts were enabled, thus crashing everything. I think I was wrong, no? 2 - how to solve this. What code/doc should I read to debug it, where to dig. I am a bit confused for now.
Thank you by advance for your help.
Best regards, Cedric.