Como eu habilito a passagem de dispositivo KVM no Linux?

7

Eu tenho uma placa-mãe MSI-GD65 Gaming e uma Intel i7 4790. A VT-D está habilitada na seção Recursos da CPU da BIOS.

Estou executando o Ubuntu 14.04.1 LTS e quando tento e desanexar um dispositivo, recebo a seguinte mensagem:

# virsh nodedev-detach pci_0000_00_1f_2

error: Failed to detach device pci_0000_00_1f_2 error: Operation not supported: neither VFIO nor KVM device assignment is currently supported on this system

O Dmesg inclui algumas informações sobre o IOMMU, mas não posso dizer se isso significa que o VT-D está ativado

$ dmesg | grep -i iommu

[ 0.027450] dmar: IOMMU 0: reg_base_addr fed90000 ver 1:0 cap c0000020660462 ecap f0101a
[ 0.027455] dmar: IOMMU 1: reg_base_addr fed91000 ver 1:0 cap d2008020660462 ecap f010da
[ 0.027521] IOAPIC id 8 under DRHD base 0xfed91000 IOMMU 1

Alguém pode aconselhar o que eu preciso fazer para ativar o VT-D neste sistema e passar por dispositivos PCI para convidados KVM, por favor?

    
por Anonymouslemming 02.10.2014 / 23:19

3 respostas

6

A solução para esse problema é ativar o IOMMU nos seus parâmetros de inicialização do GRUB.

Você pode fazer isso definindo o seguinte em / etc / default / grub

GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on"

Se você estiver usando um processador AMD, você deve anexar amd_iommu=on aos parâmetros de inicialização

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash amd_iommu=on"

Em seguida, execute update-grub e reinicialize

Este link me ajudou um pouco: link

Veja também: link

Isso me iludiu um pouco, pois acreditava que o iommu era uma alternativa da AMD ao VT-D.

    
por 03.10.2014 / 15:00
2

Adicionando a resposta da Anonymouslemming: Parece haver um bug no Ubuntu (18.04 para mim), o que faz com que a configuração para GRUB_CMDLINE_LINUX_DEFAULT em / etc / default / grub seja ignorada.

Pode ser corrigido comentando o GRUB_CMDLINE_LINUX_DEFAULT em /etc/default/grub.d/50-curtin-settings.cfg

link

    
por 19.07.2018 / 22:04
1

Você parece ter os requisitos de hardware porque outro módulo está usando (IOAPIC) Nesse caso, você precisa simplesmente configurar o final do software.

Parece que você precisa ter todos os pré-requisitos instalados para suportar o desligamento do dispositivo apropriado. Parece que você não os instalou ou eles não estão configurados.

Você precisa ter as bibliotecas e os módulos do kernel apropriados instalados e inicializados antes de tentar usá-los em um caso como este. Estes serão vários utilitários do sistema "host" e módulos do kernel para a sua configuração do KVM.

Você precisa ler a seção do manual sobre como configurar apropriadamente sua solução KVM apropriada e seguir essas etapas antes de tentar executar os utilitários. Eles não são simplesmente configurados no primeiro lançamento apenas porque os pacotes necessários estão instalados.

Por favor, note que se o dispositivo em questão está embutido na placa-mãe, pode não ser tecnicamente um dispositivo PCI, mas um dispositivo mapeado por PCI. Esses dispositivos, na verdade, são conectados por outros meios, mas são mapeados para o espaço da BIOS PCI usando seu BIOS. Eles podem ou não ser compatíveis com o descolamento do dispositivo, dependendo de vários aspectos de como eles estão conectados ao sistema.

Além disso, talvez você não consiga separar sub-dispositivos sem desanexar os dispositivos pai, se os drivers forem interdependentes. Você só pode separar dispositivos com absoluta certeza de quem é o dispositivo pai, o controlador PCI, PCI Bridge ou algum outro controlador ou ponte de barramento suportado

    
por 03.10.2014 / 04:00