[libvirt-users] how to load different bios into qemu

Hello. I'm using debian squeeze with libvirt and kvm and I need to load a newer version of seabios into qemu. I'd like to do it without overwriting seabios in the debian package because that might be overwritten on the next update. I hopend that the <loader> directive in the config would work but it doesn't. thanks for any ideas. mk

On Sun, Aug 08, 2010 at 06:19:09PM +0200, Martin Kraus wrote:
Hello. I'm using debian squeeze with libvirt and kvm and I need to load a newer version of seabios into qemu. I'd like to do it without overwriting seabios in the debian package because that might be overwritten on the next update. I hopend that the <loader> directive in the config would work but it doesn't.
As far as I know, the BIOS used by QEmu is completely hidden from libvirt (this can actually be a problem as some corner cases of virtio boot support are dependant on the seabios version), so unfortunately there is nothing which can be done at the libvirt level I think, Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@veillard.com | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/

On Wed, Aug 11, 2010 at 12:20:57PM +0200, Daniel Veillard wrote:
On Sun, Aug 08, 2010 at 06:19:09PM +0200, Martin Kraus wrote:
Hello. I'm using debian squeeze with libvirt and kvm and I need to load a newer version of seabios into qemu. I'd like to do it without overwriting seabios in the debian package because that might be overwritten on the next update. I hopend that the <loader> directive in the config would work but it doesn't.
As far as I know, the BIOS used by QEmu is completely hidden from libvirt (this can actually be a problem as some corner cases of virtio boot support are dependant on the seabios version), so unfortunately there is nothing which can be done at the libvirt level I think,
virtio and seabios are exactly the reason for my question:) I'll just copy over the new bios, it will work fine. thanks for help mk

On Wed, Aug 11, 2010 at 12:20:57PM +0200, Daniel Veillard wrote:
On Sun, Aug 08, 2010 at 06:19:09PM +0200, Martin Kraus wrote:
Hello. I'm using debian squeeze with libvirt and kvm and I need to load a newer version of seabios into qemu. I'd like to do it without overwriting seabios in the debian package because that might be overwritten on the next update. I hopend that the <loader> directive in the config would work but it doesn't.
As far as I know, the BIOS used by QEmu is completely hidden from libvirt (this can actually be a problem as some corner cases of virtio boot support are dependant on the seabios version), so unfortunately there is nothing which can be done at the libvirt level I think,
I believe there is a command line parameter that could let libvirt point QEMU at a different bios, but it certainly isn't part of libvirt yet, and I've not tried how it works Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://deltacloud.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|

On Wed, 2010-08-11 at 13:17 +0100, Daniel P. Berrange wrote:
On Wed, Aug 11, 2010 at 12:20:57PM +0200, Daniel Veillard wrote:
On Sun, Aug 08, 2010 at 06:19:09PM +0200, Martin Kraus wrote:
Hello. I'm using debian squeeze with libvirt and kvm and I need to load a newer version of seabios into qemu. I'd like to do it without overwriting seabios in the debian package because that might be overwritten on the next update. I hopend that the <loader> directive in the config would work but it doesn't.
As far as I know, the BIOS used by QEmu is completely hidden from libvirt (this can actually be a problem as some corner cases of virtio boot support are dependant on the seabios version), so unfortunately there is nothing which can be done at the libvirt level I think,
I believe there is a command line parameter that could let libvirt point QEMU at a different bios, but it certainly isn't part of libvirt yet, and I've not tried how it works
You can fudge this by using a shell script as the "emulator", e.g. <emulator>/path/to/start.sh</emulator> For my use case I had the following requirements, which are working successfully in the attached start.sh scirpt: - supply smbios type 0 and 1 files - supply an additional ACPI table - use a customized rebuilt seabios bin file For the first req. you must not allow the -uuid arg to be passed or it won't allow the smbios to be applied For the second, you must trim the apci header data from a binary acpi, because that data is given in the command line option. For the third, the path cannot be specified, so the file must be in /usr/share/kvm directory and path must not be given. Attached is my start.sh, you must correct the details as required for your use case.

You can fudge this by using a shell script as the "emulator", e.g. <emulator>/path/to/start.sh</emulator>
For my use case I had the following requirements, which are working successfully in the attached start.sh scirpt:
- supply smbios type 0 and 1 files - supply an additional ACPI table - use a customized rebuilt seabios bin file
For the first req. you must not allow the -uuid arg to be passed or it won't allow the smbios to be applied
For the second, you must trim the apci header data from a binary acpi, because that data is given in the command line option.
For the third, the path cannot be specified, so the file must be in /usr/share/kvm directory and path must not be given.
That's actually a great idea. I haven't thought about overloading the emulator directive. thanks mk
participants (5)
-
Daniel P. Berrange
-
Daniel Veillard
-
David Mansfield
-
Martin Kraus
-
Martin Kraus