
Estou tentando acessar um adaptador PCI WiFi em um QEMU, simulando a placa vexpress-a9.
estou seguindo éessetutorial que compartilha uma placa PCI de passagem da máquina host para uma máquina convidada rodando em qemu-kvm. Mas acho que não é aplicável ao qemu-system-arm.
- É possível passar PCI usando qemu-system-arm para vexpress-a9?
- Existe alguma maneira de acessar uma placa PCI como um dispositivo USB no sistema operacional convidado? ou um dispositivo USB host no sistema operacional convidado?
Aqui está o que estou fazendo:
$ qemu-system-arm \
-kernel ./zImage \
-M vexpress-a9 \
-cpu cortex-a9 \
-m 1024 \
-smp 2 \
-serial stdio \
-append "root=/dev/mmcblk0p1 rootfstype=ext4 rw raid=noautodetect console=ttyAMA0,38400n8 rootwait devtmpfs.mount=0 vmalloc=256MB mem=1024M" \
-sd ./vexpress-quantal.img
Responder1
Certifique-se de seguir as etapas descritas nesta seção,13.3.4. Passagem PCI, dos documentos, intitulado:Capítulo 13. Executando Máquinas Virtuais com qemu-kvm.
excerto
Procedimento 13.1. Configurando a passagem PCI
Certifique-se de que CONFIG_DMAR_DEFAULT_ON esteja definido no kernel em execução do host:
$ grep CONFIG_DMAR_DEFAULT_ON /boot/config-`uname -r`
Se esta opção não estiver definida, edite a configuração do carregador de boot 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á ativado e reconhecido ativamente no host. Execute dmesg | grep -e DMAR -e IOMMU em máquinas Intel ou dmesg | grep AMD-Vi em máquinas AMD. Se você não obtiver saída, verifique cuidadosamente se o seu hardware suporta IOMMU (VT-d) e verifique se ele foi habilitado no BIOS.
Identifique o dispositivo PCI host a ser atribuído 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 Kernel host e vincule-o ao driver stub 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 o VM Guest com o dispositivo PCI atribuído.
qemu-kvm [...] -device pci-assign,host=00:1b.0
Suporte ARM QEMU/KVM
De acordo com o changelog das versões 1.5 e 1.6, ARM é suportado das seguintes maneiras:
1,5
- Esta versão possui suporte inicial de 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 host SD.
- O modelo de controlador PCI para placas VersatilePB e Realview foi significativamente melhorado em funcionalidade (incluindo suporte MMIO BAR e um mapeamento PCI IRQ correto). Observe que os kernels do Linux atualmente não tiram vantagem disso; no entanto, detectamos automaticamente os kernels que esperam o comportamento de um QEMU antigo e quebrado e voltamos a isso. (O comportamento antigo do IRQ pode ser forçado com "-global versátil_pci.broken-irq-mapping=1" se for absolutamente necessário.)
- O manuseio incorreto da instrução SRS no modo Thumb foi corrigido.
- O desempenho da emulação TCG de alvos ARM foi melhorado em relação às versões anteriores.
- A migração e o salvamento/carregamento de VM agora funcionam corretamente nos modelos vexpress-a15 e vexpress-a9.
1.6
- As instruções ARMv8 LDA/STL de 32 bits para load-acquire/store-release 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 possuem suporte experimental para dispositivos virtio por meio de transporte virtio-mmio. Observe que as linhas de comando virtio usadas com sistemas x86 não funcionarão, pois criarão dispositivos PCI virtio; use os dispositivos "virtio-blk-device", "virtio-net-device", etc. Observe que esta funcionalidade pode mudar em versões futuras.
- A opção -initrd agora aceita ramdisks com cabeçalho U-Boot.
- Agora é suportado um modelo do sistema Calxeda ECX-2000/Midway (“midway”).