Cartão PCI sintonizador passthrough on KVM

0

Tenho pesquisado em todos os lugares nos últimos dias e não consigo encontrar a resposta em nenhum lugar. Eu tenho uma placa-mãe Asus P5E VM DO e um processador Xeon, então ambos suportam a visualização. Eu estou tentando descobrir como configurar passagem PCI para meus cartões de tunner. Ambos os sistemas host e guest são o Ubuntu 14.04 LTS. Eu criei as máquinas virtuais usando este guia usando o [script] [2] Alguém pode ajudar com o processo passo a passo para adicionar as placas PCI? Tentei seguir este guia , mas não parece funcionar para o Ubuntu.

    
por chasingMyTail 04.01.2015 / 04:57

1 resposta

0

Isso acabou sendo uma resposta de 2 partes e aqui está no caso de ajudar alguém:

  1. Para responder à pergunta original, para adicionar uma passagem PCI, é melhor usar o Virtual Machine Manager. Selecione sua VM e clique em Abrir . Vá até Ver detalhes e clique no botão " Adicionar hardware ". Você também pode realizar a mesma coisa via linha de comando:

server$ virsh edit VM_name e adicione essas linhas ao arquivo XML.

<hostdev mode='subsystem' type='pci' managed='yes'>
  <source>
    <address domain='0x0000' bus='0x01' slot='0x01' function='0x2'/>
  </source>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
</hostdev>

Você pode encontrar o domínio, o barramento, o slot e o nome da função usando

lspci -t

lspci -n
  1. Agora, para que o processo acima funcione, primeiro é preciso desvincular o driver atual da placa PCI e vinculá-lo ao driver da máquina virtual. No meu caso, este foi um trecho do comando lspci --v

server$ lspci -nnv

01:01.0 Multimedia video controller [0400]: Conexant Systems, Inc. CX23880/1/2/3 PCI Video and Audio Decoder [14f1:8800] (rev 05)
    Subsystem: DViCO Corporation FusionHDTV 5 Gold [18ac:d500]
    Flags: bus master, medium devsel, latency 64, IRQ 17
    Memory at fb000000 (32-bit, non-prefetchable) [size=16M]
    Capabilities: <access denied>
    Kernel driver in use: cx8800

As instruções para desvinculação no site projeto KVM não ajudam porque elas fazem referência a pci-stub que é obsoleto (tanto quanto eu entendo). Em vez disso, faça o seguinte para desvincular o driver e vinculá-lo ao driver VFIO:

server$ sudo modprobe kvm_intel
server$ sudo modprobe kvm
server$ kvm-ok
server$ modprobe vfio-pci
server$ sudo chmod 222 /sys/bus/pci/drivers/vfio-pci/new_id
server$ sudo chmod 222 /sys/bus/pci/devices/0000\:01\:01.2/driver/unbind
server$ echo 0000:01:01.2 > /sys/bus/pci/devices/0000\:01\:01.2/driver/unbind
server$ echo "14f1 8802" > /sys/bus/pci/drivers/vfio-pci/new_id

Você notará que eu tive que usar chmod para obter permissão para desvincular / vincular o driver. Novamente, você precisa fazer o passo 2 antes de fazer o passo 1.

  1. Se ele reclamar sobre permissões ao adicionar a passagem PCI, faça o seguinte

    servidor $ modprobe -r vfio_iommu_type1 servidor $ modprobe vfio_iommu_type1 allow_unsafe_interrupts = 1

Eu encontrei este truque aqui .

    
por chasingMyTail 08.01.2015 / 06:58