Mam płytę główną do gier MSI-GD65 i procesor Intel i7 4790. VT-D jest włączony w sekcji Funkcje procesora w bios.
Korzystam z Ubuntu 14.04.1 LTS i kiedy próbuję odłączyć urządzenie, pojawia się następujący komunikat:
# virsh nodedev-detach pci_0000_00_1f_2
błąd: nie udało się odłączyć urządzenia pci_0000_00_1f_2 błąd: Operacja nie jest obsługiwana: w systemie nie jest obecnie obsługiwane przypisanie urządzenia VFIO ani KVM
Dmesg zawiera pewne informacje o IOMMU, ale nie wiem, czy to oznacza, że VT-D jest włączony
$ dmesg | grep -i iommu
[0.027450] dmar: IOMMU 0: reg_base_addr fed9000000 ver 1: 0 cap c0000020660462 ecap f0101a
[0.027455] dmar: IOMMU 1: reg_base_addr fed91000 ver 1: 0 cap d2008020660462 ecap f010da
[0,0275 0xM] IAPAP I0M0 0x1M1000 IMPAP IAM
Czy ktoś może doradzić, co muszę zrobić, aby włączyć VT-D w tym systemie i przekazać urządzenia PCI gościom KVM?
źródło
Odpowiedzi:
Rozwiązaniem tego problemu jest włączenie IOMMU w parametrach rozruchowych GRUB.
Możesz to zrobić, ustawiając następujące opcje w / etc / default / grub
Jeśli używasz procesora AMD, powinieneś dołączyć
amd_iommu=on
do parametrów rozruchuNastępnie uruchom
update-grub
i uruchom ponownieTen link bardzo mi pomógł: https://www.centos.org/forums/viewtopic.php?f=47&t=48115
Zobacz także: https://pve.proxmox.com/wiki/Pci_passthrough
Uciekało mi to nieco, ponieważ uważałem, że iommu jest alternatywą AMD dla VT-D.
źródło
Dodanie do odpowiedzi Anonymouslemming: Wydaje się, że w Ubuntu występuje błąd (18.04 dla mnie), który powoduje, że ustawienie GRUB_CMDLINE_LINUX_DEFAULT w / etc / default / grub jest ignorowane.
Można to naprawić, komentując GRUB_CMDLINE_LINUX_DEFAULT w /etc/default/grub.d/50-curtin-settings.cfg
https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1569567
źródło
Wygląda na to, że masz wymagania sprzętowe, ponieważ używa go inny moduł (IOAPIC). W takim przypadku musisz po prostu skonfigurować oprogramowanie.
Wygląda na to, że musisz upewnić się, że masz zainstalowane wszystkie wymagania wstępne do obsługi odłączenia odpowiedniego urządzenia. Wygląda na to, że nie masz ich zainstalowanych lub nie są skonfigurowane.
Musisz mieć zainstalowane i zainicjowane odpowiednie biblioteki i moduły jądra, zanim spróbujesz ich użyć w takim przypadku. Będą to różne narzędzia systemowe „hosta” i moduły jądra do konfiguracji KVM.
Przed próbą uruchomienia narzędzi należy przeczytać sekcję podręcznika, w jaki sposób odpowiednio skonfigurować odpowiednie rozwiązanie KVM i wykonać te kroki. Nie są po prostu instalowane przy pierwszym uruchomieniu tylko dlatego, że zainstalowane są niezbędne pakiety.
Należy pamiętać, że jeśli dane urządzenie jest osadzone w płycie głównej, technicznie może nie być urządzeniem PCI, ale urządzeniem mapowanym przez PCI. Urządzenia te są w rzeczywistości podłączane innymi sposobami, ale są mapowane do przestrzeni PCI BIOS za pomocą BIOS-u. Mogą, ale nie muszą być kompatybilne z odłączaniem urządzeń, w zależności od różnych aspektów ich podłączenia do systemu.
Ponadto odłączenie urządzeń podrzędnych może nie być możliwe bez odłączenia urządzeń nadrzędnych, jeśli ich sterowniki są od siebie zależne. Urządzenia można odłączać tylko z absolutną pewnością, kto jest urządzeniem nadrzędnym, kontrolerem PCI, mostkiem PCI lub innym obsługiwanym kontrolerem magistrali lub mostem
źródło
Jestem na centos7
Miałem ten błąd, który mnie tu doprowadził, ale mój problem nie polegał na aktualizacji (w moim przypadku)
vim /etc/sysconfig/grub
i dodawaniuintel_iommu=on
do końca wierszaGRUB_CMDLINE_LINUX
Musiałem uruchomić to polecenie
następnie uruchom ponownie
Uwaga: uruchomiłem jednak również grub2-mkconfig z restartem przed powyższym poleceniem i to nie zrobiło dla mnie nic z tego, co zobaczyłem.
odniesienie: https://bugzilla.redhat.com/show_bug.cgi?id=1269446
Komentarz 11 i 12
źródło