默认ProxmoxVE 只能支持硬盘、CPU型号直通。其他PCI硬件 或者 核心显卡的直通,还需要开启IOMMU分组功能
操作PCI直通提示:
No IOMMU detected, please activate it.See Documentation for further information.
介绍
PCI直通允许您使用VM内的物理PCI设备(图形卡,网卡)(仅KVM虚拟化)。
如果“ PCI直通”设备,则该设备不再对主机可用。
注意:
PCI直通是Proxmox VE中的一项实验功能*
启用IOMMU
您需要通过编辑内核命令行来启用IOMMU 。
首先打开grub的bootloader内核命令行配置文件:
[!NOTE] 编辑内核命令行
您可以在以下位置修改内核命令行,具体取决于所使用的引导程序[!Grub]
内核命令行需要在文件/etc/default/grub
中放置GRUB_CMDLINE_LINUX_DEFAULT
变量
然后 运行update-grub
将其内容附加到/boot/grub/grub.cfg
中的所有linux条目中[!Systemd-boot]
Systemd-boot
内核命令行需要在/etc/kernel/cmdline
中放置
要应用更改,请运行pve-efiboot-tool refresh
将其设置为loader/entries/proxmox-*.conf
中的配置文件
首先打开grub的bootloader内核命令行配置文件:
GRUB(传统引导)
nano /etc/default/grub
或者 systemd-boot(UEFI)
nano /etc/kernel/cmdline
对于GRUB: 找到带有“ GRUB_CMDLINE_LINUX_DEFAULT”的行
对于systemd-boot(UEFI)创建用于systemd-boot的文件(格式为带有选项的单行)
Intel CPU
对于Intel CPU,添加intel_iommu=on
,例如:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"
保存更改并更新grub:
update-grub
或systemd-boot(UEFI):
pve-efiboot-tool refresh
然后重新启动宿主机,从命令行运行
dmesg | grep -e DMAR -e IOMMU
如果没有输出,则说明有问题。
AMD CPU
对于AMD CPU 添加amd_iommu=on
, 例如:
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on"
更改并更新grub:
update-grub
或systemd-boot(UEFI):
pve-efiboot-tool refresh
然后重新启动宿主机,从命令行运行
dmesg | grep -e DMAR -e IOMMU
如果没有输出,则说明有问题。
update-initramfs -u -k all
PT模式
Intel和AMD芯片都可以使用附加参数 iommu=pt
, 该参数的添加方法与上述相同
这仅在必要时启用IOMMU转换,从而可以提高VM中未使用的PCIe设备的性能.
然后是修改/etc/modules文件
nano /etc/modules
添加如下内容
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd