I am trying to boot LinuxBIOS using qemu with VGA support. I have got both V2 & V3 to boot with a FILO payload and the linux test disk image from QEMU website using the -nographic option.
I can boot the disk image using qemu and the bios & vgabios it came with.
I cannot get it to come up with either V2 or V3. I have tried copying the vgabios.bin image to a local directory and then booting qemu with the -L ./ option. I see the initial QEMu messages a blank screen appears that looks like the VGA output and then it goes down to a small block on the screen.
I have compiled V3 with x86emu support. Under V2 I could not figure out how to get it to compile with VGA support.
Any help would be appreciated.....
I am trying to boot LinuxBIOS using qemu with VGA support. I have got both V2 & V3 to boot with a FILO payload and the linux test disk image from QEMU website using the -nographic option.
I can boot the disk image using qemu and the bios & vgabios it came with.
I cannot get it to come up with either V2 or V3. I have tried copying the vgabios.bin image to a local directory and then booting qemu with the -L ./ option. I see the initial QEMu messages a blank screen appears that looks like the VGA output and then it goes down to a small block on the screen.
I have compiled V3 with x86emu support. Under V2 I could not figure out how to get it to compile with VGA support.
Under v2 I just used the default config in buildrom and made sure that the ROM file from LinuxBIOS and the vgabios*.bin files were in the same directory. It hangs during the boot, but not because of the VGA. I'm looking into it more.
For v3 I get the same thing you do.
I started qemu with "-L BIOS_DIR hd.img"
Myles
On Dec 13, 2007 1:50 PM, Myles Watson myles@pel.cs.byu.edu wrote:
I am trying to boot LinuxBIOS using qemu with VGA support. I have got both V2 & V3 to boot with a FILO payload and the linux test disk image from QEMU website using the -nographic option.
I can boot the disk image using qemu and the bios & vgabios it came with.
I cannot get it to come up with either V2 or V3. I have tried copying the vgabios.bin image to a local directory and then booting qemu with the -L ./ option. I see the initial QEMu messages a blank screen appears that looks like the VGA output and then it goes down to a small block on the screen.
I have compiled V3 with x86emu support. Under V2 I could not figure out how to get it to compile with VGA support.
Under v2 I just used the default config in buildrom and made sure that the ROM file from LinuxBIOS and the vgabios*.bin files were in the same directory. It hangs during the boot, but not because of the VGA. I'm looking into it more.
For v3 I get the same thing you do.
I started qemu with "-L BIOS_DIR hd.img"
Myles
My v2 hang seems to be the choice of Linux kernel for LAB and a qemu bug.
I used filo as the payload for testing, a blank hard drive so nothing loads. Under v2 it executes the vga ROM and initializes correctly. Under v3 it doesn't seem to execute the ROM. I changed the default configuration to try using MULTIPLE_VGA_INIT, and using x86emu and vm86, but it didn't seem to make a difference.
I'm attaching the serial log of my boot. Maybe I just don't see where it's being executed and there's another problem?
Myles
I'm attaching the serial log of my boot. Maybe I just don't see where it's being executed and there's another problem?
FILO version 0.5 (myles@blue.cs.byu.edu) Thu Dec 13 13:53:00 MST 2007
menu: hda3:/boot/filo/menu.lst
It's all good to this point.
hda: LBA48 209MB: QEMU HARDDISK
Unrecognized partitioning scheme
Press any key to continue.
Press any key to continue.
OK: you're telling filo that the file is on the third partition, FILO is saying "Partitions? What partitions"
So if you losetup /dev/loop0 hd.img and type sfdisk -l /dev/loop0 what does it say?
ron
On Dec 13, 2007 2:43 PM, ron minnich rminnich@gmail.com wrote:
I'm attaching the serial log of my boot. Maybe I just don't see where it's being executed and there's another problem?
FILO version 0.5 (myles@blue.cs.byu.edu) Thu Dec 13 13:53:00 MST 2007
menu: hda3:/boot/filo/menu.lst
It's all good to this point.
It loads FILO fine. I'm using a blank hard drive, so I know that it won't find what it's looking for. I just do that so it's easy to tell where I am. No need to boot into a complicated payload if the VGA didn't get initialized correctly.
I was hoping you could point out where in the log it said it was executing my VGA Bios. I don't see that happening, even though v2 executes it and initializes the console correctly.
Thanks, Myles
my apologies, it was a big going-away lunch and I am now sleepy.
I just did a build with latest v3, built a 256kb bios, copy it to a directory, run qemu as follows: qemu -serial stdio -L . -kernel linux-2.6.15-bochs/vmlinux -hdc hda -hda hda
and I get video.
I am using the vgabios-cirrus.bin
Option ROMS are run in Phase 6. Mine looks like this:
Phase 6: Initializing devices... Phase 6: Root Device init. Phase 6: PCI: 00:00.0 init. PCI: pci_dev_init Probing for option ROM Phase 6: PCI: 00:01.0 init. Initializing realtime clock. RTC: Checksum invalid zeroing cmos Invalid LinuxBIOS CMOS checksum. Phase 6: PCI: 00:01.1 init. Enabling IDE channel 1 Enabling IDE channel 2 Enabling Legacy IDE Phase 6: PCI: 00:01.3 init. Enabling SMBus. Enable Power Management Functions Phase 6: PCI: 00:02.0 init. PCI: pci_dev_init Probing for option ROM ROM address for PCI: 00:02.0 = c0000 PCI Expansion ROM, signature 0xaa55, INIT size 0x8c00, data ptr 0x0038 PCI ROM Image, Vendor 1013, Device 00b8, PCI ROM Image, Class Code 030000, Code Type 00 Copying VGA ROM image from 0x000c0000 to 0xc0000, 0x8c00 bytes Phase 6: PCI: 00:03.0 init. PCI: pci_dev_init Probing for option ROM Phase 6: PCI: 00:04.0 init. PCI: pci_dev_init Probing for option ROM Phase 6: Devices initialized.
When I look at yours I see an error: Phase 6: PCI: 00:02.0 init.
PCI: pci_dev_init
Probing for option ROM
ROM address for PCI: 00:02.0 = c0000
PCI Expansion ROM, signature 0xaa55, INIT size 0x8a00, data ptr 0x736f
PCI ROM Image, Vendor 0846, Device ec89,
Device or Vendor ID mismatch Vendor 0846, Device ec89
see the mismatch? So it will not run the rom. The option rom does not match the hardware .
What vga bios are you using? I hope to wake up more soon and might actually give a useful answer :-)
ron
On Dec 13, 2007 3:01 PM, ron minnich rminnich@gmail.com wrote:
my apologies, it was a big going-away lunch and I am now sleepy.
No problem.
I just did a build with latest v3, built a 256kb bios, copy it to a directory, run qemu as follows: qemu -serial stdio -L . -kernel linux-2.6.15-bochs/vmlinux -hdc hda -hda hda
and I get video.
I am using the vgabios-cirrus.bin
I'm not specifying the vgabios specifically, but v2 finds the vgabios-cirrus.bin
Option ROMS are run in Phase 6. Mine looks like this:
Phase 6: Initializing devices... Phase 6: Root Device init. Phase 6: PCI: 00:00.0 init. PCI: pci_dev_init Probing for option ROM Phase 6: PCI: 00:01.0 init. Initializing realtime clock. RTC: Checksum invalid zeroing cmos Invalid LinuxBIOS CMOS checksum. Phase 6: PCI: 00:01.1 init. Enabling IDE channel 1 Enabling IDE channel 2 Enabling Legacy IDE Phase 6: PCI: 00:01.3 init. Enabling SMBus. Enable Power Management Functions Phase 6: PCI: 00:02.0 init. PCI: pci_dev_init Probing for option ROM ROM address for PCI: 00:02.0 = c0000 PCI Expansion ROM, signature 0xaa55, INIT size 0x8c00, data ptr 0x0038 PCI ROM Image, Vendor 1013, Device 00b8, PCI ROM Image, Class Code 030000, Code Type 00 Copying VGA ROM image from 0x000c0000 to 0xc0000, 0x8c00 bytes Phase 6: PCI: 00:03.0 init. PCI: pci_dev_init Probing for option ROM Phase 6: PCI: 00:04.0 init. PCI: pci_dev_init Probing for option ROM Phase 6: Devices initialized.
When I look at yours I see an error: Phase 6: PCI: 00:02.0 init.
PCI: pci_dev_init
Probing for option ROM
ROM address for PCI: 00:02.0 = c0000
PCI Expansion ROM, signature 0xaa55, INIT size 0x8a00, data ptr 0x736f
PCI ROM Image, Vendor 0846, Device ec89,
Device or Vendor ID mismatch Vendor 0846, Device ec89
see the mismatch? So it will not run the rom. The option rom does not match the hardware .
Good catch.
What vga bios are you using? I hope to wake up more soon and might actually give a useful answer :-)
I don't know where it's getting another VGA bios. I tried removing the other vgabios.bin file from the directory, but I get the same results.
I looked in the pci.ids file, and the Vendor ID is not there, so I'm not sure what the problem is.
Myles
I do not see how to put the vgabios image into LB. I see where u can specify to run option roms and tell LB to initialize vga devices. I do not see where you can tell it to pull in the vgabios image.
/********************* Marc Karasek MTS Sun Microsystems mailto:marc.karasek@sun.com ph:770.360.6415 *********************/
Myles Watson wrote:
On Dec 13, 2007 3:01 PM, ron minnich rminnich@gmail.com wrote:
my apologies, it was a big going-away lunch and I am now sleepy.
No problem.
I just did a build with latest v3, built a 256kb bios, copy it to a directory, run qemu as follows: qemu -serial stdio -L . -kernel linux-2.6.15-bochs/vmlinux -hdc hda -hda hda
and I get video.
I am using the vgabios-cirrus.bin
I'm not specifying the vgabios specifically, but v2 finds the vgabios-cirrus.bin
Option ROMS are run in Phase 6. Mine looks like this:
Phase 6: Initializing devices... Phase 6: Root Device init. Phase 6: PCI: 00:00.0 init. PCI: pci_dev_init Probing for option ROM Phase 6: PCI: 00:01.0 init. Initializing realtime clock. RTC: Checksum invalid zeroing cmos Invalid LinuxBIOS CMOS checksum. Phase 6: PCI: 00:01.1 init. Enabling IDE channel 1 Enabling IDE channel 2 Enabling Legacy IDE Phase 6: PCI: 00:01.3 init. Enabling SMBus. Enable Power Management Functions Phase 6: PCI: 00:02.0 init. PCI: pci_dev_init Probing for option ROM ROM address for PCI: 00:02.0 = c0000 PCI Expansion ROM, signature 0xaa55, INIT size 0x8c00, data ptr 0x0038 PCI ROM Image, Vendor 1013, Device 00b8, PCI ROM Image, Class Code 030000, Code Type 00 Copying VGA ROM image from 0x000c0000 to 0xc0000, 0x8c00 bytes Phase 6: PCI: 00:03.0 init. PCI: pci_dev_init Probing for option ROM Phase 6: PCI: 00:04.0 init. PCI: pci_dev_init Probing for option ROM Phase 6: Devices initialized.
When I look at yours I see an error: Phase 6: PCI: 00:02.0 init.
PCI: pci_dev_init
Probing for option ROM
ROM address for PCI: 00:02.0 = c0000
PCI Expansion ROM, signature 0xaa55, INIT size 0x8a00, data ptr 0x736f
PCI ROM Image, Vendor 0846, Device ec89,
Device or Vendor ID mismatch Vendor 0846, Device ec89
see the mismatch? So it will not run the rom. The option rom does not match the hardware .
Good catch.
What vga bios are you using? I hope to wake up more soon and might actually give a useful answer :-)
I don't know where it's getting another VGA bios. I tried removing the other vgabios.bin file from the directory, but I get the same results.
I looked in the pci.ids file, and the Vendor ID is not there, so I'm not sure what the problem is.
Myles
Marc Karasek wrote:
I do not see how to put the vgabios image into LB. I see where u can specify to run option roms and tell LB to initialize vga devices. I do not see where you can tell it to pull in the vgabios image.
In qemu's Config.lb, you specify something like
chip drivers/pci/onboard device pci 2.0 on end register "rom_address" = "0xfff80000" end
The vga device location varies from system to system, dunno off the top of my head where QEMU's is. rom_address is always 4GB - the total rom size - 1, including vga bios, the value above is for a 512K rom. The ROM_SIZE in target/../Config.lb should be adjusted to be total rom size - vga rom size. The vga rom should then be cat'd into the beginning of the final rom, ie "cat vga.rom linuxbios.rom > lb_final.rom". I haven't been following the thread, so please excuse me if you already know some parts of this.
-Corey
/********************* Marc Karasek MTS Sun Microsystems mailto:marc.karasek@sun.com ph:770.360.6415 *********************/
Myles Watson wrote:
On Dec 13, 2007 3:01 PM, ron minnich rminnich@gmail.com wrote:
my apologies, it was a big going-away lunch and I am now sleepy.
No problem.
I just did a build with latest v3, built a 256kb bios, copy it to a directory, run qemu as follows: qemu -serial stdio -L . -kernel linux-2.6.15-bochs/vmlinux -hdc hda -hda hda
and I get video.
I am using the vgabios-cirrus.bin
I'm not specifying the vgabios specifically, but v2 finds the vgabios-cirrus.bin
Option ROMS are run in Phase 6. Mine looks like this:
Phase 6: Initializing devices... Phase 6: Root Device init. Phase 6: PCI: 00:00.0 init. PCI: pci_dev_init Probing for option ROM Phase 6: PCI: 00:01.0 init. Initializing realtime clock. RTC: Checksum invalid zeroing cmos Invalid LinuxBIOS CMOS checksum. Phase 6: PCI: 00:01.1 init. Enabling IDE channel 1 Enabling IDE channel 2 Enabling Legacy IDE Phase 6: PCI: 00:01.3 init. Enabling SMBus. Enable Power Management Functions Phase 6: PCI: 00:02.0 init. PCI: pci_dev_init Probing for option ROM ROM address for PCI: 00:02.0 = c0000 PCI Expansion ROM, signature 0xaa55, INIT size 0x8c00, data ptr 0x0038 PCI ROM Image, Vendor 1013, Device 00b8, PCI ROM Image, Class Code 030000, Code Type 00 Copying VGA ROM image from 0x000c0000 to 0xc0000, 0x8c00 bytes Phase 6: PCI: 00:03.0 init. PCI: pci_dev_init Probing for option ROM Phase 6: PCI: 00:04.0 init. PCI: pci_dev_init Probing for option ROM Phase 6: Devices initialized.
When I look at yours I see an error: Phase 6: PCI: 00:02.0 init.
PCI: pci_dev_init
Probing for option ROM
ROM address for PCI: 00:02.0 = c0000
PCI Expansion ROM, signature 0xaa55, INIT size 0x8a00, data ptr 0x736f
PCI ROM Image, Vendor 0846, Device ec89,
Device or Vendor ID mismatch Vendor 0846, Device ec89
see the mismatch? So it will not run the rom. The option rom does not match the hardware .
Good catch.
What vga bios are you using? I hope to wake up more soon and might actually give a useful answer :-)
I don't know where it's getting another VGA bios. I tried removing the other vgabios.bin file from the directory, but I get the same results.
I looked in the pci.ids file, and the Vendor ID is not there, so I'm not sure what the problem is.
Myles
On Dec 13, 2007 3:01 PM, ron minnich rminnich@gmail.com wrote:
my apologies, it was a big going-away lunch and I am now sleepy.
I just did a build with latest v3, built a 256kb bios, copy it to a directory, run qemu as follows: qemu -serial stdio -L . -kernel linux-2.6.15-bochs/vmlinux -hdc hda -hda hda
and I get video.
I am using the vgabios-cirrus.bin
Option ROMS are run in Phase 6. Mine looks like this:
Phase 6: Initializing devices... Phase 6: Root Device init. Phase 6: PCI: 00:00.0 init. PCI: pci_dev_init Probing for option ROM Phase 6: PCI: 00:01.0 init. Initializing realtime clock. RTC: Checksum invalid zeroing cmos Invalid LinuxBIOS CMOS checksum. Phase 6: PCI: 00:01.1 init. Enabling IDE channel 1 Enabling IDE channel 2 Enabling Legacy IDE Phase 6: PCI: 00:01.3 init. Enabling SMBus. Enable Power Management Functions Phase 6: PCI: 00:02.0 init. PCI: pci_dev_init Probing for option ROM ROM address for PCI: 00:02.0 = c0000 PCI Expansion ROM, signature 0xaa55, INIT size 0x8c00, data ptr 0x0038 PCI ROM Image, Vendor 1013, Device 00b8, PCI ROM Image, Class Code 030000, Code Type 00 Copying VGA ROM image from 0x000c0000 to 0xc0000, 0x8c00 bytes Phase 6: PCI: 00:03.0 init. PCI: pci_dev_init Probing for option ROM Phase 6: PCI: 00:04.0 init. PCI: pci_dev_init Probing for option ROM Phase 6: Devices initialized.
When I look at yours I see an error: Phase 6: PCI: 00:02.0 init.
PCI: pci_dev_init
Probing for option ROM
ROM address for PCI: 00:02.0 = c0000
PCI Expansion ROM, signature 0xaa55, INIT size 0x8a00, data ptr 0x736f
PCI ROM Image, Vendor 0846, Device ec89,
Device or Vendor ID mismatch Vendor 0846, Device ec89
see the mismatch? So it will not run the rom. The option rom does not match the hardware .
What vga bios are you using? I hope to wake up more soon and might actually give a useful answer :-)
ron
I looked at it some more, and it looks like it is messed up before it gets to the Vendor.
PCI Expansion ROM, signature 0xaa55, INIT size 0x8a00, data ptr 0x736f
The size is wrong, and the data ptr looks questionable. Since v2 finds the ROM in the right place I'm leaning toward it being a problem with the compiler I'm using to build v3, or v3.
I'm using gcc version 4.1.2 20070626 (Red Hat 4.1.2-13) for x86_64 if that makes a difference.
Myles