Arch Linux PCI Passtrough

2

Eu instalei o Arch (Antergos) para habilitar a passagem PCI para KVM Vms, mas se eu iniciei a VM, ele caiu. Segui este tutorial .

Meu hardware:

  • Placa-mãe: Asrock H97M Pro4
  • Processador: CPU Intel® Core ™ i5-4690 a 3,50GHz × 4
  • GPU MSI GTX760 Frozr Twin
  • Ram: 16 GB
  • SO: Antergos 64Bit

Primeiro de tudo eu

  • habilitado VT-d no uefi
  • adicionou intel_iommu="on" a GRUB_CMDLINE_LINUX_DEFAULT="" em / etc / default // grub
  • atualizado grub

Meus grupos IOMMU:

00:00.0 Host bridge [0600]: Intel Corporation 4th Gen Core Processor DRAM Controller [8086:0c00] (rev 06)
00:02.0 VGA compatible controller [0300]: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller [8086:0412] (rev 06)
00:03.0 Audio device [0403]: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller [8086:0c0c] (rev 06)
00:14.0 USB controller [0c03]: Intel Corporation 9 Series Chipset Family USB xHCI Controller [8086:8cb1]
00:16.0 Communication controller [0780]: Intel Corporation 9 Series Chipset Family ME Interface #1 [8086:8cba]
00:19.0 Ethernet controller [0200]: Intel Corporation Ethernet Connection (2) I218-V [8086:15a1]
00:1a.0 USB controller [0c03]: Intel Corporation 9 Series Chipset Family USB EHCI Controller #2 [8086:8cad]
00:1b.0 Audio device [0403]: Intel Corporation 9 Series Chipset Family HD Audio Controller [8086:8ca0]
00:1c.0 PCI bridge [0604]: Intel Corporation 9 Series Chipset Family PCI Express Root Port 1 [8086:8c90] (rev d0)
00:1c.3 PCI bridge [0604]: Intel Corporation 82801 PCI Bridge [8086:244e] (rev d0)
00:1c.4 PCI bridge [0604]: Intel Corporation 9 Series Chipset Family PCI Express Root Port 5 [8086:8c98] (rev d0)
00:1d.0 USB controller [0c03]: Intel Corporation 9 Series Chipset Family USB EHCI Controller #1 [8086:8ca6]
00:1f.0 ISA bridge [0601]: Intel Corporation 9 Series Chipset Family H97 Controller [8086:8cc6]
00:1f.2 SATA controller [0106]: Intel Corporation 9 Series Chipset Family SATA Controller [AHCI Mode] [8086:8c82]
00:1f.3 SMBus [0c05]: Intel Corporation 9 Series Chipset Family SMBus Controller [8086:8ca2]
02:00.0 PCI bridge [0604]: ASMedia Technology Inc. ASM1083/1085 PCIe to PCI Bridge [1b21:1080] (rev 03)
04:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK104 [GeForce GTX 760] [10de:1187] (rev a1)
04:00.1 Audio device [0403]: NVIDIA Corporation GK104 HDMI Audio Controller [10de:0e0a] (rev a1)

Então, minha GPU consiste em:

    Controlador VGA
  • : 04: 00.0 (10de: 1187)
  • Controlador de áudio: 04: 00.1 (10de: 0e0a)

Então eu criei o arquivo: /etc/modprobe.d/vfio.conf e escreveu

options vfio-pci ids=10de:1187,10de:0e0a

Então eu criei o /etc/mkinitcpio.conf e adicionei ao MODULES=""

vfio vfio_iommu_type1 vfio_pci vfio_virqfd

Reiniciei minha máquina e verifiquei se o gpu tinha o driver vfio

lspci -k

04:00.0 VGA compatible controller: NVIDIA Corporation GK104 [GeForce GTX 760] (rev a1)
    Subsystem: Micro-Star International Co., Ltd. [MSI] Device 2847
    Kernel driver in use: vfio-pci
    Kernel modules: nouveau
04:00.1 Audio device: NVIDIA Corporation GK104 HDMI Audio Controller (rev a1)
    Subsystem: Micro-Star International Co., Ltd. [MSI] Device 2847
    Kernel driver in use: vfio-pci
    Kernel modules: snd_hda_intel

Instalados alguns pacotes:

pacman -S qemu libvirt virt-manager
yaourt -S ovmf-git

Editado /etc/libvirt/qemu.conf

nvram = [
    "/usr/share/ovmf/x64/ovmf_x64.bin:/usr/share/ovmf/x64/ovmf_vars_x64.bin"
]

iniciado / ativado libvirt

systemctl enable --now libvirtd
systemctl enable virtlogd.socket

Por fim, criei uma VM:

  • Firmware: UEFI
  • CPU: selecionada "Copiar configuração da CPU do host
  • disco do Windows inserido

Agora começou no console virtual e estava tudo bem! Então eu adicionei meu GPU (os dispositivos PCI) e comecei novamente. Agora caiu e eu não sei porque! Não há mensagens de erro.

Espero que você possa me ajudar e agradecer por tentar

    
por Chaos_ 27.12.2016 / 22:10

1 resposta

0

Você não vinculou seu XML, mas presumo que não esteja carregando uma ROM para sua placa de vídeo (supondo que sua placa de vídeo suporte UEFI).

  1. verifique se sua placa de vídeo é compatível com UEFI
  2. Obtenha a ROM de vídeo do seu cartão

Você pode usar o link para fazer as duas coisas. Se o seu cartão não estiver listado ou a ROM não estiver disponível, você pode simplesmente perguntar no fórum do seu fabricante. Foi assim que obtive uma cópia da ROM da minha placa de vídeo para resolver o mesmo problema que você está tendo.

Uma vez que você tenha o arquivo rom, usando o virsh edit, tente adicionar o seguinte em sua configuração xml

   <hostdev>
     ...
     <rom file='/etc/fake/boot.bin'/>
     ...
   </hostdev>
    
por 06.01.2017 / 23:38