如何在 Linux 中啟用 KVM 設備直通?
我有一塊 MSI-GD65 遊戲主機板和一塊 Intel i7 4790。在 BIOS 的 CPU 功能部分啟用了 VT-D。
我正在執行 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 $$DRHD 基礎 0xfed91000 IOMMU 1 下的 IOAPIC id 8 >誰能告訴我需要做什麼才能在這個系統上啟用 VT-D 並通過 PCI 設備傳遞給 KVM 來賓?
此問題的解決方案是在您的 GRUB 引導參數中啟用 IOMMU。
您可以通過在 /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 是 VT-D 的 AMD 替代品。