At 01/18/2011 11:16 PM, Eric Blake Write:
On 01/17/2011 10:39 PM, Wen Congyang wrote:
>> + cmd = virCommandNewArgList(qemu,
>> + "-device", "pci-assign,?",
>> + NULL);
>
> The qemu that I used does not support '-device pci-assign,?'...
> So, I can not start the guest with this patch.
>
> The qemu is cloned from here:
>
http://git.qemu.org/git/qemu.git
What do the following commands produce (assuming that both qemu and
qemu-kvm on your PATH are the binaries that you are testing with)?
After builing qemu, I only have the qemy-system-x86_64 command
# qemu-system-x86_64 --version
QEMU emulator version 0.13.50, Copyright (c) 2003-2008 Fabrice Bellard
# qemu-system-x86_64 -device ? -device pci-assign,? -device virtio-blk-pci,?
name "virtio-9p-pci", bus PCI
name "virtio-balloon-pci", bus PCI
name "virtio-serial-pci", bus PCI, alias "virtio-serial"
name "virtio-net-pci", bus PCI
name "virtio-blk-pci", bus PCI, alias "virtio-blk"
name "ivshmem", bus PCI
name "smbus-eeprom", bus I2C
name "scsi-disk", bus SCSI, desc "virtual scsi disk or cdrom"
name "scsi-generic", bus SCSI, desc "pass through generic scsi device
(/dev/sg*)"
name "usb-hub", bus USB
name "usb-host", bus USB
name "usb-kbd", bus USB
name "usb-mouse", bus USB
name "usb-tablet", bus USB
name "usb-storage", bus USB
name "usb-wacom-tablet", bus USB, desc "QEMU PenPartner Tablet"
name "usb-braille", bus USB
name "usb-serial", bus USB
name "usb-net", bus USB
name "usb-bt-dongle", bus USB
name "virtserialport", bus virtio-serial-bus
name "virtconsole", bus virtio-serial-bus
name "ioh3420", bus PCI, desc "Intel IOH device id 3420 PCIE Root
Port"
name "x3130-upstream", bus PCI, desc "TI X3130 Upstream Port of PCI Express
Switch"
name "xio3130-downstream", bus PCI, desc "TI X3130 Downstream Port of PCI
Express Switch"
name "isa-serial", bus ISA
name "isa-parallel", bus ISA
name "vt82c686b-usb-uhci", bus PCI
name "piix4-usb-uhci", bus PCI
name "piix3-usb-uhci", bus PCI
name "sysbus-ohci", bus System, desc "OHCI USB Controller"
name "pci-ohci", bus PCI, desc "Apple USB Controller"
name "SUNW,fdtwo", bus System
name "sysbus-fdc", bus System
name "PIIX4_PM", bus PCI, desc "PM"
name "i6300esb", bus PCI
name "ne2k_pci", bus PCI
name "i82801", bus PCI, desc "Intel i82801 Ethernet"
name "i82562", bus PCI, desc "Intel i82562 Ethernet"
name "i82559er", bus PCI, desc "Intel i82559ER Ethernet"
name "i82559c", bus PCI, desc "Intel i82559C Ethernet"
name "i82559b", bus PCI, desc "Intel i82559B Ethernet"
name "i82559a", bus PCI, desc "Intel i82559A Ethernet"
name "i82558b", bus PCI, desc "Intel i82558B Ethernet"
name "i82558a", bus PCI, desc "Intel i82558A Ethernet"
name "i82557c", bus PCI, desc "Intel i82557C Ethernet"
name "i82557b", bus PCI, desc "Intel i82557B Ethernet"
name "i82557a", bus PCI, desc "Intel i82557A Ethernet"
name "i82551", bus PCI, desc "Intel i82551 Ethernet"
name "i82550", bus PCI, desc "Intel i82550 Ethernet"
name "pcnet", bus PCI
name "e1000", bus PCI, desc "Intel Gigabit Ethernet"
name "rtl8139", bus PCI
name "ne2k_isa", bus ISA
name "ide-drive", bus IDE
name "isa-ide", bus ISA
name "ahci", bus PCI
name "lsi53c895a", bus PCI, alias "lsi"
name "VGA", bus PCI
name "vmware-svga", bus PCI
name "sb16", bus ISA, desc "Creative Sound Blaster 16"
name "ES1370", bus PCI, desc "ENSONIQ AudioPCI ES1370"
name "AC97", bus PCI, desc "Intel 82801AA AC97 Audio"
name "intel-hda", bus PCI, desc "Intel HD Audio Controller"
name "hda-duplex", bus HDA, desc "HDA Audio Codec, duplex"
name "hda-output", bus HDA, desc "HDA Audio Codec, output-only"
name "cirrus-vga", bus PCI, desc "Cirrus CLGD 54xx VGA"
name "isa-applesmc", bus ISA
name "ib700", bus ISA
name "isa-debugcon", bus ISA
virtio-blk-pci.class=hex32
virtio-blk-pci.drive=drive
virtio-blk-pci.logical_block_size=uint16
virtio-blk-pci.physical_block_size=uint16
virtio-blk-pci.min_io_size=uint16
virtio-blk-pci.opt_io_size=uint32
virtio-blk-pci.bootindex=int32
virtio-blk-pci.discard_granularity=uint32
virtio-blk-pci.vectors=uint32
virtio-blk-pci.indirect_desc=on/off
virtio-blk-pci.scsi=on/off
qemu -version
qemu-kvm -version
qemu -device '?'
echo $?
qemu -device 'pci-assign,?'
echo $?
qemu -device '?' -device 'pci-assign,?'
echo $?
qemu-kvm -device '?'
echo $?
qemu-kvm -device 'pci-assign,?'
echo $?
qemu-kvm -device '?' -device 'pci-assign,?'
echo $?
Depending on those results, I will probably be able to come up with a
followup patch that helps you run again (it may just be a matter of
ignoring non-zero exit status, or of adding the extra "-device","?",
arguments in order to ensure that qemu doesn't error out on unknown
devices).
For example, in my case, I know that with the qemu 0.13.0 package in
Fedora 14, 'qemu -device pci-assign,?' fails but 'qemu-kvm -device
pci-assign,?' succeeds; and for both binaries, '$binary -device ?
-device pci-assign,?' succeeds but has more output for qemu-kvm than for
qemu.