Como listar todos os dispositivos emulados em uma máquina virtual QEMU?

3

Eu criei uma VM com o comando abaixo no qemu com o KVM ativado.

qemu-kvm -m 1024 -enable-kvm -hda /var/lib/libvirt/images/fedora.img

Eu gostaria de saber os dispositivos exatos que são emulados para esta VM, incluindo armazenamento e rede (eu posso ver uma interface de rede habilitada dentro da VM usando o ifconfig).

    
por kumar 07.04.2014 / 15:25

2 respostas

1

Se você tiver acesso ao convidado, por que não usar algo como 'lspci'? Se você está tentando obter isso do host, você precisa descobrir quais padrões o qemu está usando. Isso vai variar com base na versão que você está usando.

Eu sugiro que você use o libvirt em vez de iniciar manualmente o qemu. Isso daria a você melhores APIs para os convidados e, na verdade, forneceria essas informações de maneira sã (você poderia simplesmente usar virsh dumpxml para despejar uma configuração do convidado, incluindo todos os dispositivos de hardware conectados).

    
por 27.05.2014 / 02:26
1

info qtree

Este incrível comando de monitor QEMU mostra uma boa visão em árvore de como todos os dispositivos QEMU são colocados.

Você pode obter um prompt do monitor QEMU através de:

  • Ctrl + A C em -nographic
  • Ctrl + Alt +?, em que ? é 1, 2, 3, etc. em uma janela gráfica do QEMU
  • -monitor telnet::45454,server,nowait e, em seguida, conecte-se a ele com telnet 45454

Então, por exemplo, posso ver meu dispositivo de rede como:

  dev: rtl8139, id ""                                                                                                                                                                                           
    mac = "52:54:00:12:34:56"                                                                                                                                                                                   
    vlan = <null>                                                                                                                                                                                               
    netdev = "net0"                                                                                                                                                                                             
    addr = 03.0                                                                                                                                                                                                 
    romfile = "efi-rtl8139.rom"                                                                                                                                                                                 
    rombar = 1 (0x1)                                                                                                                                                                                            
    multifunction = false                                                                                                                                                                                       
    command_serr_enable = true                                                                                                                                                                                  
    x-pcie-lnksta-dllla = true                                                                                                                                                                                  
    x-pcie-extcap-init = true                                                                                                                                                                                   
    class Ethernet controller, addr 00:03.0, pci id 10ec:8139 (sub 1af4:1100)                                                                                                                                   
    bar 0: i/o at 0xc000 [0xc0ff]                                                                                                                                                                               
    bar 1: mem at 0xfeb51000 [0xfeb510ff]                                                                                                                                                                       
    bar 6: mem at 0xffffffffffffffff [0x3fffe] 

e meu dispositivo de armazenamento como:

    bus: virtio-bus
      type virtio-pci-bus
      dev: virtio-blk-device, id ""
        drive = "virtio0"
        logical_block_size = 512 (0x200)
        physical_block_size = 512 (0x200)
        min_io_size = 0 (0x0)
        opt_io_size = 0 (0x0)
        discard_granularity = 4294967295 (0xffffffff)
        write-cache = "auto"
        share-rw = false
        rerror = "auto"
        werror = "auto"
        cyls = 1040 (0x410)
        heads = 16 (0x10)
        secs = 63 (0x3f)
        serial = ""
        config-wce = true
        scsi = false
        request-merging = true
        num-queues = 1 (0x1)
        queue-size = 128 (0x80)
        iothread = ""
        indirect_desc = true
        event_idx = true
        notify_on_empty = true
        any_layout = true
        iommu_platform = false

e outros dispositivos PCI como:

  dev: edu, id ""
    addr = 06.0
    romfile = ""
    rombar = 1 (0x1)
    multifunction = false
    command_serr_enable = true
    x-pcie-lnksta-dllla = true
    x-pcie-extcap-init = true
    class Class 00ff, addr 00:06.0, pci id 1234:11e8 (sub 1af4:1100)
    bar 0: mem at 0xfea00000 [0xfeafffff]

Testado no QEMU v2.12.

    
por 24.05.2018 / 15:22