Passagem KVM NIC "dispositivo já em uso"

Passagem KVM NIC "dispositivo já em uso"

Eu tenho um servidor com 2 NICs

01:00.0 Controlador Ethernet: Controlador Ethernet Intel Corporation 10 Gigabit X540-AT2 (rev 01) 01:00.1 Controlador Ethernet: Controlador Ethernet Intel Corporation 10 Gigabit X540-AT2 (rev 01)

e eu quero atribuir esses 2 dispositivos NICs a um convidado (servidor Ubuntu 14.04), estou seguindo este tópicoeste tópico: Como atribuir dispositivos com VT-d em KVM então eu fiz o que diz:

  • Modificando a configuração do kernel:

    make menuconfig set "Opções de barramento (PCI etc.)" -> "Suporte para dispositivos de remapeamento DMA" para "" defina "Opções de barramento (PCI etc.)" -> "Ativar dispositivos de remapeamento DMA" para "" defina "Opções de barramento (PCI etc.)" -> "Driver PCI Stub" para "*" salvar e reconstruir o kernel

  • meudmesg | grep -e DMAR -e IOMMUmostra:

    [0,000000] ACPI: DMAR 00000000ddfaabc8 000078 (v01 INTEL SNB 00000001 INTL 00000001) [0,000000] Intel-IOMMU: habilitado [0,018789] dmar: IOMMU 0: reg_base_addr fed90000 ver 1: 0 cap> c9008020660262 ecap f010da [0,018860] ID IOAPIC 2 abaixo DRHD base 0xfed90000 IOMMU 0 [1.610427] DMAR: Nenhum ATSR encontrado [1.610449] IOMMU 0 0xfed90000: usando invalidação na fila [1.610451] IOMMU: Configurando RMRR: [1.610460] IOMMU: Configurando mapa de identidade para o dispositivo 0000:00:1 d.0 >[ 0xdde16000 - 0xdde32fff] [1.610478] IOMMU: Configurando mapa de identidade para dispositivo 0000:00:1a.0 >[0xdde16000 - 0xdde32fff] [1.610487] IOMMU: Preparar mapeamento de unidade de 0-16MiB para LPC [1.610494] Configuração de IOMMU: mapa de identidade para dispositivo 0000:00:1f.0 [0x0 - 0xffffff]

    • eu também ativei o Intel VT-d no kernel anexando o parâmetro intel_iommu=on à linha do kernel da linha do kernel no arquivo /boot/grub/grub.conf
    • configurando VT-d no BIOS para ativado
    • desvincule o nic do driver do kernel do host:

      echo "8086 10b9" > /sys/bus/pci/drivers/pci-stub/new_id echo 0000:01:00.0 > /sys/bus/pci/devices/0000:01:00.0/driver/unbind echo 0000:01: 00.0 > /sys/bus/pci/drivers/pci-stub/bind

    • eu verifiquei a desvinculação com lspci -k: o driver era pci_stub

E quando adiciono as seguintes linhas no arquivo XML do guest vm, recebo um erro

dispositivo 01:00.0 já em uso

A adição XML

hostdev mode = 'subsistema' type = 'pci' gerenciado = 'sim' endereço de origem domínio = '0x0000' barramento = '0x01' slot = '0x00' função = '0x0'/ /fonte /hostdev

informação relacionada