在 Proxmox VE 中实现硬件直通
最新版请去博主博客查看mystey.com
我的pve硬件配置:
CPU:J4125处理器
内存:双通道16G
GPU:Intel UHD Graphics 600核显
网卡1:Intel I226-V4网口 网卡
网卡2:Qualcomm Atheros AR928X 无线网卡
网卡3:USB 无线网卡
硬盘1:SK600-128GB
硬盘2:Great Wall GW560 512GB
1. 确认硬件支持
- 确保 CPU 和主板支持 Intel VT-d。
- 在 BIOS 中启用 VT-d 和 IOMMU。
2. 修改 GRUB 配置
编辑 /etc/default/grub
文件,修改 GRUB_CMDLINE_LINUX_DEFAULT
行:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt pcie_port_pm=off"
intel_iommu=on
:启用 Intel IOMMU。iommu=pt
:仅为直通设备启用 IOMMU,优化性能。pcie_port_pm=off
:禁用 PCIe 电源管理,避免直通设备出现问题。
更新 GRUB 配置:
update-grub
3. 加载 VFIO 模块
编辑 /etc/modules
文件,添加以下内容:
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
这些模块是实现硬件直通的关键。
4. 绑定设备到 VFIO 驱动
编辑 /etc/modprobe.d/vfio.conf
文件,没有的新建文件,添加以下内容:
options vfio-pci ids=8086:3185,8086:125c
8086:3185
:Intel UHD Graphics 600 (iGPU) 的设备 ID。8086:125c
:Intel I226-V 网卡的设备 ID。
5. 更新 initramfs 并重启
更新 initramfs 以使配置生效:
update-initramfs -u
重启系统:
reboot
6. 验证绑定是否成功
重启后,使用以下命令检查设备是否已绑定到 VFIO 驱动:
lspci -nnk
- 对于 Intel iGPU:
00:02.0 VGA compatible controller [0300]: Intel Corporation GeminiLake [UHD Graphics 600] [8086:3185] (rev 06) Kernel driver in use: vfio-pci Kernel modules: i915
- 对于 Intel I226-V 网卡:
01:00.0 Ethernet controller [0200]: Intel Corporation Ethernet Controller I226-V [8086:125c] (rev 04) Kernel driver in use: vfio-pci Kernel modules: igc
如果显示 Kernel driver in use: vfio-pci
,说明绑定成功。
7. 在 Proxmox VE 中配置直通
- 创建或编辑虚拟机。
- 添加 PCI 设备:
- 选择“硬件” -> “添加” -> “PCI设备”。
- 选择需要直通的设备(如 Intel iGPU 或 Intel I226-V 网卡)。
- 启用“所有功能”和“PCI-Express”。
- 启动虚拟机,检查设备是否正常工作。
8. 总结
- Intel UHD Graphics 600 (iGPU) 和 Intel I226-V 网卡 已绑定到 VFIO 驱动。
- Qualcomm Atheros AR928X 无线网卡 已绑定到 VFIO 驱动,无需额外操作。
- 更新了 GRUB 和 initramfs 配置。
- 在 Proxmox VE 中配置虚拟机以使用直通设备。
完成以上步骤后,这些设备就可以在虚拟机中直通了。如果有其他设备需要直通,可以按照相同的方法添加设备 ID。