Назад | Перейти на главную страницу

Как включить сквозную передачу устройств KVM в Linux?

У меня материнская плата 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 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 в базе DRHD 0xfed91000 IOMMU 1

Может ли кто-нибудь посоветовать, что мне нужно сделать, чтобы включить VT-D в этой системе и передать через устройства PCI гостевым KVM?

Решение этой проблемы - включить IOMMU в параметрах загрузки GRUB.

Вы можете сделать это, установив следующее в / etc / default / grub

GRUB_CMDLINE_LINUX_DEFAULT = "intel_iommu = on"

Если вы используете процессор AMD, вам следует добавить amd_iommu=on вместо этого к параметрам загрузки

GRUB_CMDLINE_LINUX_DEFAULT = "тихий всплеск 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. Эти устройства фактически подключаются другими способами, но с помощью их BIOS сопоставляются с пространством PCI BIOS. Они могут или могут быть несовместимы с отсоединением устройства, в зависимости от различных аспектов их подключения к системе.

Кроме того, вы не сможете отсоединить подустройства без отсоединения родительских устройств, если их драйверы взаимозависимы. Вы можете отсоединять устройства только с абсолютной уверенностью, чье родительское устройство является контроллером PCI, мостом PCI или каким-либо другим поддерживаемым контроллером шины или мостом.

Я на centos7

У меня была эта ошибка, которая привела меня сюда, но моя проблема заключалась не в обновлении (в моем случае) vim /etc/sysconfig/grub и добавление intel_iommu=on до конца строки для GRUB_CMDLINE_LINUX

Мне пришлось запустить эту команду

grub2-mkconfig -o /boot/grub2/grub.cfg

затем перезагрузите

примечание: я также запускал grub2-mkconfig с перезагрузкой перед приведенной выше командой, и это не помогло мне из того, что я видел.

ссылка: https://bugzilla.redhat.com/show_bug.cgi?id=1269446

Комментарий 11 и 12