Hi Guys, I am trying to place kdrive to run on QEMU but I'm facing some problems.
First I applied the patch on QEMU to accept bios.bin with more than 256KB, I update this info on wiki page: http://www.linuxbios.org/QEMU_Build_Tutorial
Then compiled a minimal linux kernel with rootfs inside and tested it in qemu:
qemu -kernel tinyxmatchbox.img -hda /dev/null
Note: tinyxmatchbox.img is just one bzImage with rootfs inside, then I don't need -hda pointing the any disc.
It run fine like in my video in youtube. You can test it just downloading: http://lbdistro.sourceforge.net/files/tinyxmatchbox.img and executing the above command.
Then I converted this image to ELF: mkelfImage --append="console=tty0" tinyxmatchbox.img linux.elf
Then compiled LinuxBIOSv3 using this linux.elf. I need active the LZMA compression because linux.elf size is about 1.99MB.
Everything goes fine, but when I try to execute qemu using the bios.bin (the file vgabios-cirrus.bin is at same directory as well) I receive this error:
$ qemu -L ~ -hda /dev/null qemu: fatal: Trying to execute code outside RAM or ROM at 0x31e1b77c
EAX=31e1b77c EBX=31c3b000 ECX=00000000 EDX=00000000 ESI=00090000 EDI=31c3b000 EBP=00100000 ESP=00090040 EIP=31e1b77c EFL=00000002 [-------] CPL=0 II=0 A20=1 SMM=0 HLT=0 ES =0018 00000000 ffffffff 00cf9300 CS =0010 00000000 ffffffff 00cf9a00 SS =0018 00000000 ffffffff 00cf9300 DS =0018 00000000 ffffffff 00cf9300 FS =0018 00000000 ffffffff 00cf9300 GS =0018 00000000 ffffffff 00cf9300 LDT=0000 00000000 0000ffff 00008000 TR =0000 00000000 0000ffff 00008000 GDT= 00091000 0000006f IDT= 00000000 00000000 CR0=00000011 CR2=00000000 CR3=00000000 CR4=00000000 CCS=00000004 CCD=31c3b000 CCO=EFLAGS FCW=037f FSW=0000 [ST=0] FTW=00 MXCSR=00001f80 FPR0=0000000000000000 0000 FPR1=0000000000000000 0000 FPR2=0000000000000000 0000 FPR3=0000000000000000 0000 FPR4=0000000000000000 0000 FPR5=0000000000000000 0000 FPR6=0000000000000000 0000 FPR7=0000000000000000 0000 XMM00=00000000000000000000000000000000 XMM01=00000000000000000000000000000000 XMM02=00000000000000000000000000000000 XMM03=00000000000000000000000000000000 XMM04=00000000000000000000000000000000 XMM05=00000000000000000000000000000000 XMM06=00000000000000000000000000000000 XMM07=00000000000000000000000000000000 Aborted (core dumped)
I searched about this error message. This is a generic error, but I can't found any solution. Some suggestion?
Cheers,
Alan