Tengo una placa base MSI-GD65 Gaming y un Intel i7 4790. VT-D está habilitado en la sección de Características de la CPU de la BIOS.
Estoy ejecutando Ubuntu 14.04.1 LTS y cuando intento desconectar un dispositivo, recibo el siguiente mensaje:
# virsh nodedev-detach pci_0000_00_1f_2
error: Error al desconectar el dispositivo pci_0000_00_1f_2 error: Operación no admitida: ni la asignación de dispositivos VFIO ni KVM se admite actualmente en este sistema
Dmesg incluye información sobre IOMMU pero no puedo decir si esto significa que VT-D está habilitado
$ 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]
¿Alguien puede aconsejarme qué necesito hacer para habilitar VT-D en este sistema y pasar por dispositivos PCI a los invitados KVM por favor?
fuente
Respuestas:
La solución a este problema es habilitar IOMMU en los parámetros de arranque de GRUB.
Puede hacer esto configurando lo siguiente en / etc / default / grub
Si está utilizando un procesador AMD, debe agregar
amd_iommu=on
los parámetros de arranque en su lugarLuego corre
update-grub
y reiniciaEste enlace me ayudó bastante: https://www.centos.org/forums/viewtopic.php?f=47&t=48115
Ver también: https://pve.proxmox.com/wiki/Pci_passthrough
Esto me eludió un poco, ya que creía que iommu era una alternativa AMD a VT-D.
fuente
Agregando a la respuesta de Anonymouslemming: Parece que hay un error en Ubuntu (18.04 para mí), lo que hace que se ignore la configuración de GRUB_CMDLINE_LINUX_DEFAULT en / etc / default / grub.
Se puede solucionar comentando GRUB_CMDLINE_LINUX_DEFAULT en /etc/default/grub.d/50-curtin-settings.cfg
https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1569567
fuente
Parece que tiene los requisitos de hardware porque otro módulo lo está utilizando (IOAPIC). En este caso, simplemente necesita configurar el software final.
Parece que debe asegurarse de tener todos los requisitos previos instalados para admitir la separación del dispositivo apropiado. Parece que no los tiene instalados o que no están configurados.
Debe tener las bibliotecas y los módulos de kernel apropiados instalados e inicializados antes de intentar usarlos en un caso como este. Estas serán varias utilidades del sistema "host" y módulos de kernel para su configuración KVM.
Debe leer la sección del manual sobre cómo configurar adecuadamente su solución KVM adecuada, y seguir esos pasos, antes de intentar simplemente ejecutar las utilidades. No se configuran simplemente en el primer lanzamiento solo porque están instalados los paquetes necesarios.
Tenga en cuenta que si el dispositivo en cuestión está incrustado en la placa base, técnicamente puede no ser un dispositivo PCI, sino un dispositivo mapeado por PCI. Estos dispositivos están realmente conectados por otros medios, pero se asignan al espacio PCI BIOS utilizando su BIOS. Pueden o no ser compatibles con la separación del dispositivo, dependiendo de varios aspectos de cómo están conectados al sistema.
Además, es posible que no pueda desconectar los subdispositivos sin desconectar los dispositivos principales, si sus controladores son interdependientes. Solo puede desconectar dispositivos con absoluta certeza de quién es el dispositivo principal: el controlador PCI, el puente PCI o algún otro controlador o puente de bus compatible
fuente
Estoy en centos7
Tuve este error que me llevó hasta aquí, pero mi problema no fue con la actualización (en mi caso)
vim /etc/sysconfig/grub
y la adiciónintel_iommu=on
al final de la línea paraGRUB_CMDLINE_LINUX
Tuve que ejecutar este comando
luego reiniciar
nota: Sin embargo, también ejecuté grub2-mkconfig con un reinicio antes del comando anterior y eso no hizo nada por lo que vi.
referencia: https://bugzilla.redhat.com/show_bug.cgi?id=1269446
Comentario 11 y 12
fuente