Ich habe ein MSI-GD65 Gaming-Motherboard und ein Intel i7 4790. VT-D ist im Abschnitt CPU-Funktionen des BIOS aktiviert.
Ich verwende Ubuntu 14.04.1 LTS und wenn ich versuche, ein Gerät abzutrennen, wird folgende Meldung angezeigt:
# virsh nodedev-remove pci_0000_00_1f_2
Fehler: Fehler beim Trennen des Geräts pci_0000_00_1f_2 Fehler: Vorgang nicht unterstützt: Auf diesem System wird derzeit weder die VFIO- noch die KVM-Gerätezuweisung unterstützt
Dmesg enthält einige Informationen zu IOMMU, aber ich kann nicht sagen, ob dies bedeutet, dass VT-D aktiviert ist
$ 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.0275x]
Kann mir jemand raten, was ich tun muss, um VT-D auf diesem System zu aktivieren und PCI-Geräte an KVM-Gäste weiterzuleiten?
quelle
Antworten:
Die Lösung für dieses Problem besteht darin, IOMMU in Ihren GRUB-Startparametern zu aktivieren.
Sie können dies tun, indem Sie in / etc / default / grub Folgendes einstellen
Wenn Sie einen AMD-Prozessor verwenden, sollten Sie
amd_iommu=on
stattdessen die Startparameter anhängenFühren Sie dann aus
update-grub
und starten Sie neuDieser Link hat mir sehr geholfen: https://www.centos.org/forums/viewtopic.php?f=47&t=48115
Siehe auch: https://pve.proxmox.com/wiki/Pci_passthrough
Dies entging mir etwas, als ich glaubte, dass iommu eine AMD-Alternative zu VT-D sei.
quelle
Hinzufügen zu Anonymouslemmings Antwort: Es scheint einen Fehler in Ubuntu (18.04 für mich) zu geben, der dazu führt, dass die Einstellung für GRUB_CMDLINE_LINUX_DEFAULT in / etc / default / grub ignoriert wird.
Dies kann durch Auskommentieren von GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub.d/50-curtin-settings.cfg behoben werden
https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1569567
quelle
Sie scheinen die Hardwareanforderungen zu haben, weil ein anderes Modul es verwendet (IOAPIC). In diesem Fall müssen Sie einfach das Softwareende einrichten.
Anscheinend müssen Sie sicherstellen, dass alle Voraussetzungen installiert sind, um das Entfernen des entsprechenden Geräts zu unterstützen. Es hört sich so an, als hätten Sie sie nicht installiert oder sie sind nicht eingerichtet.
Sie müssen die entsprechenden Bibliotheken und Kernelmodule installiert und initialisiert haben, bevor Sie versuchen, sie in einem solchen Fall zu verwenden. Dies sind verschiedene "Host" -Systemdienstprogramme und Kernelmodule für Ihr KVM-Setup.
Sie müssen den Abschnitt des Handbuchs lesen, in dem beschrieben wird, wie Sie die entsprechende KVM-Lösung ordnungsgemäß einrichten, und diese Schritte ausführen, bevor Sie versuchen, nur die Dienstprogramme auszuführen. Sie werden nicht einfach beim ersten Start eingerichtet, nur weil die erforderlichen Pakete installiert sind.
Bitte beachten Sie, dass das betreffende Gerät, wenn es in das Motherboard eingebettet ist, technisch gesehen möglicherweise kein PCI-Gerät ist, sondern ein PCI-zugeordnetes Gerät. Diese Geräte werden tatsächlich auf andere Weise angeschlossen, aber mithilfe ihres BIOS dem PCI-BIOS-Bereich zugeordnet. Sie können mit der Geräteentfernung kompatibel sein oder nicht, abhängig von verschiedenen Aspekten, wie sie an das System angeschlossen sind.
Darüber hinaus können Sie Untergeräte möglicherweise nicht trennen, ohne übergeordnete Geräte zu trennen, wenn ihre Treiber voneinander abhängig sind. Sie können Geräte nur mit absoluter Sicherheit trennen, deren übergeordnetes Gerät der PCI-Controller, die PCI-Bridge oder ein anderer unterstützter Bus-Controller oder eine Bridge ist
quelle
Ich bin auf centos7
Ich hatte diesen Fehler, der mich hierher führte, aber mein Problem bestand nicht darin, das (in meinem Fall) zu aktualisieren
vim /etc/sysconfig/grub
und dasintel_iommu=on
Zeilenende für hinzuzufügenGRUB_CMDLINE_LINUX
Ich musste diesen Befehl ausführen
dann neu starten
Hinweis: Ich habe jedoch auch grub2-mkconfig mit einem Neustart vor dem obigen Befehl ausgeführt, und das hat nichts für mich getan, was ich gesehen habe.
Referenz: https://bugzilla.redhat.com/show_bug.cgi?id=1269446
Kommentar 11 und 12
quelle