У меня есть игровая материнская плата MSI-GD65 Gaming и Intel i7 4790. VT-D включен в разделе BIOS.
Я использую Ubuntu 14.04.1 LTS, и когда я пытаюсь отсоединить устройство, я получаю следующее сообщение:
# virsh nodedev-detach pci_0000_00_1f_2
ошибка: не удалось отсоединить устройство pci_0000_00_1f_2 ошибка: операция не поддерживается: ни VFIO, ни назначение устройства KVM в настоящее время не поддерживаются в этой системе
Dmesg содержит некоторую информацию о IOMMU, но я не могу сказать, означает ли это, что VT-D включен
$ dmesg | grep -i iommu
[0.027450] dmar: IOMMU 0: reg_base_addr fed90000 версия 1: 0 колпачка c0000020660462 ЭКАП f0101a
[0,027455] dmar: IOMMU 1: reg_base_addr fed91000 вер 1: 0 колпачка d2008020660462 ЭКАП f010da
[0,027521] IOAPIC идентификатор 8 под DRHD основанием 0xfed91000 IOMMU 1
Кто-нибудь может посоветовать, что мне нужно сделать, чтобы включить VT-D в этой системе и передать через PCI-устройства гостям KVM, пожалуйста?
источник
Ответы:
Решением этой проблемы является включение IOMMU в параметрах загрузки GRUB.
Вы можете сделать это, установив следующее в / etc / default / grub
Если вы используете процессор AMD, вы должны добавить
amd_iommu=on
вместо параметров загрузкиЗатем запустите
update-grub
и перезагрузитеЭта ссылка мне очень помогла: https://www.centos.org/forums/viewtopic.php?f=47&t=48115
Смотрите также: https://pve.proxmox.com/wiki/Pci_passthrough
Это несколько ускользнуло от меня, так как я считал, что iommu - альтернатива AMD VT-D.
источник
Добавление к ответу Anonymouslemming: Кажется, в Ubuntu есть ошибка (для меня 18.04), из-за которой параметр GRUB_CMDLINE_LINUX_DEFAULT в / etc / default / grub игнорируется.
Это можно исправить, закомментировав GRUB_CMDLINE_LINUX_DEFAULT в /etc/default/grub.d/50-curtin-settings.cfg
https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1569567
источник
Похоже, у вас есть требования к оборудованию, потому что его использует другой модуль (IOAPIC). В этом случае вам нужно просто настроить программную часть.
Похоже, вам нужно убедиться, что у вас установлены все необходимые компоненты для поддержки отсоединения соответствующего устройства. Похоже, они не установлены или не настроены.
Вам необходимо установить и инициализировать соответствующие библиотеки и модули ядра, прежде чем пытаться использовать их в подобном случае. Это будут различные системные утилиты и модули ядра для вашей установки KVM.
Вам нужно прочитать раздел руководства о том, как правильно настроить соответствующее решение KVM, и выполнить эти шаги, прежде чем пытаться просто запустить утилиты. Они не просто настраиваются при первом запуске только потому, что установлены необходимые пакеты.
Обратите внимание, что если рассматриваемое устройство встроено в материнскую плату, технически это может быть не устройство PCI, а устройство с подключением PCI. Эти устройства на самом деле подключаются с помощью других средств, но отображаются в пространство PCI BIOS с помощью своего BIOS. Они могут или не могут быть совместимы с отсоединением устройства, в зависимости от различных аспектов их подключения к системе.
Кроме того, вы не сможете отсоединить подустройства без отсоединения родительских устройств, если их драйверы взаимозависимы. Вы можете отсоединять устройства с абсолютной уверенностью, родительским устройством которых является контроллер PCI, мост PCI или какой-либо другой поддерживаемый контроллер шины или мост
источник
Я на Centos7
У меня была эта ошибка, которая привела меня сюда, но моя проблема была не с обновлением (в моем случае)
vim /etc/sysconfig/grub
и добавлениемintel_iommu=on
в конец строки дляGRUB_CMDLINE_LINUX
Я должен был запустить эту команду
затем перезагрузите
примечание: я также запустил grub2-mkconfig с перезагрузкой перед вышеприведенной командой, и это ничего не сделало для меня из того, что я увидел.
ссылка: https://bugzilla.redhat.com/show_bug.cgi?id=1269446
Комментарий 11 и 12
источник