Hi my friends, I feel that is very important to inform this list about my efforts and also receive an important feedback. We really feel that getting the things below to work on qemu will be an important step for LinuxBIOS, since people who do not have access to proper hardware will be able to test it and contribute in some ways. I haven't had success yet but this is what I got.
I am going to detail all the steps I've taken up to now. Preparing Images: 1- My first step create 2 qcow disk images, one for win2k(2G) and another one for winXP(3G), I followed these instructions:
http://www.hermann-uwe.de/blog/howto-install-windows-xp-in-debian-using-qemu 2- I installed a small version of Fedora in these images and of course grub in the MBR.
Preparing linuxbios: 1- My first step was to patch the as86 compiler. 2- Executed Makefile with make in the ADLO directory 3- Edited the payload option in the Config.lb file within qemu-i386 directory of LinuxBIOS to point to the payload generated by ADLO. 4- Run make and copied qemu-bios.rom to my home as bios.bin 5- Copied the vgabios-cirrus.bin to the same directory above. 6- Ran the following command : qemu -L ~ 2k_linux.cow -no-kqemu -serial stdio
With win2k got the following output: LinuxBIOS-2.0.0-OpenBIOS Wed May 2 19:21:12 BRT 2007 starting... Copying LinuxBIOS to RAM. Jumping to LinuxBIOS. LinuxBIOS-2.0.0-OpenBIOS Wed May 2 19:21:12 BRT 2007 booting... Enumerating buses... Finding PCI configuration type. PCI: Using configuration type 1 PCI_DOMAIN: 0000 enabled PCI: pci_scan_bus for bus 00 PCI: 00:00.0 [8086/1237] enabled PCI: 00:01.0 [8086/7000] enabled PCI: 00:01.1 [8086/7010] enabled PCI: 00:01.3 [8086/7113] enabled PCI: 00:02.0 [1013/00b8] enabled PCI: 00:03.0 [10ec/8029] enabled PCI: pci_scan_bus returning with max=000 done Allocating resources... Reading resources... Done reading resources. Setting resources... I would set ram size to 0x20000 Kbytes PCI: 00:01.1 20 <- [0x0000001400 - 0x000000140f] io PCI: 00:02.0 10 <- [0x00fc000000 - 0x00fdffffff] prefmem PCI: 00:02.0 14 <- [0x00fe000000 - 0x00fe000fff] mem PCI: 00:03.0 10 <- [0x0000001000 - 0x00000010ff] io Done setting resources. Done allocating resources. Enabling resources... PCI: 00:00.0 subsystem <- 00/00 PCI: 00:00.0 cmd <- 140 PCI: 00:01.0 subsystem <- 00/00 PCI: 00:01.0 cmd <- 147 PCI: 00:01.1 cmd <- 141 PCI: 00:01.3 cmd <- 140 PCI: 00:02.0 cmd <- 143 PCI: 00:03.0 cmd <- 141 done. Initializing devices... Root Device init PCI: 00:00.0 init PCI: 00:01.0 init PCI: 00:01.1 init PCI: 00:01.3 init PCI: 00:02.0 init PCI: 00:03.0 init Devices initialized Copying IRQ routing tables to 0xf0000...done. Verifing copy of IRQ routing tables at 0xf0000...done Checking IRQ routing table consistency... check_pirq_routing_table() - irq_routing_table located at: 0x000f0000 done. Moving GDT to 0x500...ok Adjust low_table_end from 0x00000530 to 0x00001000 Adjust rom_table_end from 0x000f0400 to 0x00100000 Wrote linuxbios table at: 00000530 - 00000b68 checksum cf09
Welcome to elfboot, the open sourced starter. January 2002, Eric Biederman. Version 1.3
rom_stream: 0xfffc0000 - 0xfffeffff Found ELF candidate at offset 0 header_offset is 0 Try to load at offset 0x0 New segment addr 0x7c00 size 0x10400 offset 0x100 filesize 0x10400 (cleaned up) New segment addr 0x7c00 size 0x10400 offset 0x100 filesize 0x10400 Loading Segment: addr: 0x0000000007fdfc00 memsz: 0x000000000000e400 filesz: 0x000000000000e400 Loading Segment: addr: 0x0000000000016000 memsz: 0x0000000000002000 filesz: 0x0000000000002000 Jumping to boot code at 0x7c00 $Revision: 1.163 $ $Date: 2006/07/07 16:10:37 $ Bochs BIOS - build: 06/23/99 $Revision: 1.163 $ $Date: 2006/07/07 16:10:37 $ Options:
ata0-0: PCHS=4063/16/63 translation=lba LCHS=1015/64/63 ata0 master: QEMU HARDDISK ATA-7 Hard-Disk (2000 MBytes) ata1 master: QEMU CD-ROM ATAPI-4 CD-Rom/DVD-Rom
Booting from Hard Disk... int13_harddisk function 4Bh unsupported, returns fail int13_harddisk: function 41, unmapped device for ELDL=81 int13_harddisk: function 08, unmapped device for ELDL=81 *** int 15h function AX=00C0, BX=0000 not yet supported! *** int 15h function AX=5300, BX=0000 not yet supported! *** int 15h function AX=5304, BX=0000 not yet supported! int13_harddisk function 4Bh unsupported, returns fail int13_harddisk function 4Bh unsupported, returns fail int13_harddisk function 4Bh unsupported, returns fail int13_harddisk function 4Bh unsupported, returns fail *** int 15h function AX=5300, BX=0000 not yet supported! int13_harddisk: function 15, unmapped device for ELDL=81
When I pressed some keyboard keys I got the following:
KBD: int09h_handler(): unknown scancode read: 0x72! KBD: int09h_handler(): unknown scancode read: 0x72! KBD: int09h_handler(): unknown scancode read: 0x75! KBD: int09h_handler(): unknown scancode read: 0x75! KBD: int09h_handler(): unknown scancode read: 0x74! KBD: int09h_handler(): unknown scancode read: 0x74
After I closer look I found out taht most of these problems were due to GRUB interupts.
PS: Both images work fine with: qemu 2k_linux.cow -no-kqemu -serial stdio
I appreciate any suggestion,