Certifique-se de seguir as etapas descritas nesta seção, 13.3.4. Passagem PCI , dos documentos, intitulada: Capítulo 13. Executando máquinas virtuais com o qemu-kvm .
trecho
Procedimento 13.1. Configurando o PCI Pass-Through
-
Certifique-se de que CONFIG_DMAR_DEFAULT_ON esteja configurado no Kernel do host:
$ grep CONFIG_DMAR_DEFAULT_ON /boot/config-'uname -r'
Se essa opção não estiver definida, edite a configuração do carregador de inicialização e adicione intel_iommu = on (máquinas Intel) ou iommu = pt iommu = 1 (máquinas AMD). Em seguida, reinicie a máquina host.
-
Verifique se o IOMMU está ativamente ativado e reconhecido no host. Execute o dmesg | grep -e DMAR -e IOMMU em máquinas Intel ou dmesg | grep AMD-Vi em máquinas AMD. Se você não obtiver nenhuma saída, verifique cuidadosamente se o seu hardware suporta o IOMMU (VT-d) e verifique se ele foi ativado no BIOS.
-
Identifique o dispositivo PCI host para atribuir ao convidado.
tux@vmhost:~> lspci -nn [...] 00:1b.0 Audio device [0403]: Intel Corporation 82801H (ICH8 Family) \ HD Audio Controller [8086:284b] (rev 02) [...] Note down the device (00:1b.0) and vendor (8086:284b) ID.
-
Desvincule o dispositivo do driver do kernel do host e vincule-o ao driver stub do PCI.
tux@vmhost:~> modprobe pci_stub tux@vmhost:~> echo "8086 284b" > /sys/bus/pci/drivers/pci-stub/new_id tux@vmhost:~> echo "0000:00:1b.0" > /sys/bus/pci/devices/0000:00:1b.0/driver/unbind tux@vmhost:~> echo "0000:00:1b.0" > /sys/bus/pci/drivers/pci-stub/bind
-
Agora, execute a VM Guest com o dispositivo PCI atribuído.
qemu-kvm [...] -device pci-assign,host=00:1b.0
Suporte ao QEMU / KVM ARM
De acordo com o changelog para a versão 1.5 & 1.6 ARM é suportado das seguintes maneiras:
1.5
- Esta versão tem suporte inicial do KVM para a arquitetura ARM. Isso requer um kernel Linux 3.9 ou superior e uma CPU Cortex-A15.
- A placa Zynq fornece uma interface de controlador de host SD.
- O modelo do controlador PCI para placas VersatilePB e Realview foi significativamente melhorado em termos de funcionalidade (incluindo o suporte a MMIO BAR e um correto mapeamento PCI IRQ). Note que os kernels Linux atualmente não aproveitam isso; no entanto, autodetectamos os kernels que esperam o comportamento de um QEMU antigo quebrado e voltam para isso. (O antigo comportamento de IRQ pode ser forçado com "-global versatile_pci.broken-irq-mapping = 1" se for absolutamente necessário.)
- O tratamento incorreto da instrução SRS no modo Thumb foi corrigido.
- O desempenho da emulação de TCG dos alvos do ARM é aprimorado em relação aos releases anteriores.
- A migração e o vm save / load agora funcionam corretamente nos modelos vexpress-a15 e vexpress-a9.
1.6
- As instruções ARMv8 LDA / STL de 32 bits para a aquisição de carga / liberação da loja são suportadas (somente com -cpu any); o restante das novas instruções da v8 seguirá em uma versão futura.
- As placas vexpress-a9 e vexpress-a15 têm suporte experimental para dispositivos virtio via transporte virtio-mmio. Observe que as linhas de comando do virtio usadas com sistemas x86 não funcionarão, pois criarão dispositivos virtio PCI; use os dispositivos "virtio-blk-device", "virtio-net-device", etc. Observe que essa funcionalidade pode mudar em versões futuras.
- A opção -initrd agora aceita ramdisks com um cabeçalho U-Boot.
- Um modelo do sistema Calxeda ECX-2000 / Midway é agora suportado ("midway").