On Fri, Jan 28, 2011 at 4:12 PM, Daniel P. Berrange <berra...@redhat.com> wrote: > On Fri, Jan 28, 2011 at 03:54:01PM +0000, Niels de Vos wrote: >> Hi there, >> >> obviously qemu-system-$ARCH, qemu-kvm and libvirt disagree about the most >> suitable name for the PCI-bus. qemu-kvm and libvirt work nicely together by >> using "pci.0" as name. Unfortunately libvirt seems to assume that also for >> qemu-system-$ARCH the name "pci.0" should be passed on the command line. >> When doing so, errors like "Bus 'pci.0' not found" get logged and qemu >> aborts. >> >> This seems to be a very common case, googling for this seems to reveal that >> loads of users have similar experiences. A common workaround seems to be to >> write a little loader script that replaces parameters passed on to >> qemu-system-$ARCH by valid ones (here: s/bus=pci.0/bus=pci/). >> >> As a user, I would really like to be able to start any type of emulated >> machine, without needing to know the internal hardware layout. Passing >> bus=pci seems sane to me, but unfortunately qemu-kvm does not accept this. >> (At least on my standard configuration.) I guess that qemu-kvm is behaving >> as intended, and qemu-system-$ARCH missed a hardware upgrade. >> >> In order to make libvirt, qemu-kvm and qemu-system-$ARCH work together, I >> have changed the default name "pci" for emulated machines by "pci.0". The >> tests I have done so far are succesful. >> >> However changing the name is only one possible solution, and there is a >> major drawback... Any old scripts that pass bus=pci on the command line, >> will not work anymore and result in a "Bus 'pci' not found" error. >> Therefor I do not know if this is the correct route to succes. >> >> An alternative solution would be to match any bus-names from the command >> line appended with ".0" to their non-numbered equivalent. >> >> I'm looking for thoughts and guidance on this issue. It can well be that >> qemu is not the right place to fix this, and I should look into libvirt >> instead. > > Personally I think it would have been nice if QEMU used a consistent > name across all arches when we first introduced qdev, and indeed I > did proposed this exact change in the past. There was no clear agreement > to it before though, and if anything there was a slight preference to > use 'pci.0' everywhere. We've now had several QEMU releases with this > mix of naming, so changing it at this stage would cause even more > pain for mgmt apps. > > So it is probably best to teach libvirt to use either 'pci' or 'pci.0' > as appropropriate for the arch in question.
Thanks Daniel! I found your patche(s) and the discussion now too: - http://comments.gmane.org/gmane.comp.emulators.qemu/70783 I'll check the libvirt alternative and will post a patch there. Cheers, Niels