默认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
最后修改:2024 年 01 月 20 日
如果觉得我的文章对你有用,请随意赞赏