本文记录了作者在 Proxmox VE 上为 Windows 11 虚拟机直通 Intel Iris Xe 显卡的全过程踩坑记录
写在前面
一直想给虚拟机直通显卡,这样在 Windows 11 里跑 AI 推理、视频转码甚至玩游戏都能用上物理 GPU。上周终于动手了,结果…嘛,看完本文你就知道了 😅
硬件环境
- CPU: Intel Core i7-13700H (笔记本/迷你主机 CPU)
- 显卡: Intel Iris Xe Graphics (Raptor Lake-P)
- 宿主机: Proxmox VE 9.1.1
- 虚拟机: Windows 11 (VM ID: 100)
没错,是移动 CPU,不是桌面级。这为后面的灾难埋下了伏笔…
第一次尝试:自信满满
步骤 1:检查 IOMMU
dmesg | grep -E "DMAR|IOMMU"
输出:
[ 0.603408] pci 0000:00:02.0: DMAR: Skip IOMMU disabling for graphics
好 IOMMU 已启用!✅
步骤 2:查看显卡设备
lspci | grep -iE "vga|3d|display"
输出:
00:02.0 VGA compatible controller: Intel Corporation Raptor Lake-P [Iris Xe Graphics] (rev 04)
设备 ID: 8086:a7a0 ✅
步骤 3:添加 vfio 配置
echo "options vfio-pci ids=8086:a7a0 disable_vga=1" > /etc/modprobe.d/vfio.conf
echo "vfio" > /etc/modules
echo "vfio_pci" >> /etc/modules
update-initramfs -u -k all
步骤 4:添加 hostpci 到虚拟机
qm stop 100
nano /etc/pve/qemu-server/100.conf
# 添加一行
hostpci0: 00:02,pcie=1,x-vga=on
然后 reboot…
结果:系统起不来了 😱
重启后 PVE 完全无法启动,显示器黑屏。吓得我出了一身冷汗——里面还有数据!
救援过程
- 接显示器到物理机器
- 看到卡在启动画面
- 进入 BIOS 检查…
- 最后通过 Web UI 的 console 进入系统
具体怎么救活的我也说不清楚,反正就是反复重启终于进去了。
第二次尝试:小心谨慎
第一步:启用 IOMMU
编辑 /etc/default/grub:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"
然后 update-grub 和 reboot。
第二步:检查驱动状态
lspci -nnk -d 8086:a7a0
输出:
00:02.0 VGA compatible controller [0300]: Intel Corporation Raptor Lake-P [Iris Xe Graphics] [8086:a7a0] (rev 04)
DeviceName: Onboard - Video
Kernel driver in use: i915 <-- 问题在这!
Kernel modules: i915, xe
问题找到了:显卡被 i915 驱动占用,不是 vfio-pci!
第三步:尝试解绑
echo "0000:00:02.0" > /sys/bus/pci/drivers/i915/unbind
echo "0000:00:02.0" > /sys/bus/pci/drivers/vfio-pci/bind
结果:
-bash: echo: write error: Invalid argument
失败!iGPU 解绑比独立显卡难得多。
关键发现:知乎文章
在查了大量资料后,找到一篇 PVE 显卡直通实战文章,里面提到了一个关键参数:
initcall_blacklist=sysfb_init
这个参数的作用是防止宿主机占用显卡帧缓冲区!
更新 grub 配置
nano /etc/default/grub
# 改成
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt initcall_blacklist=sysfb_init"
update-grub
reboot
目前状态:等待测试
文章发布时还在测试中。如果成功了会更新结果。
总结:移动 CPU 的痛
- 13700H 是移动 CPU,BIOS 对 VT-d 支持不完整
- iGPU 集成在 CPU die 上,无法像独立显卡那样解绑
- IOMMU 组信息为空,说明隔离不完整
- 大多数迷你主机/NUC 的 BIOS 锁定了很多高级选项
建议
- 如果要搞显卡直通,首选桌面级 CPU + 独立显卡
- 移动 CPU (笔记本/迷你机) 的 iGPU 直通成功率很低
- 实在需要,可以考虑外接显卡(Thunderbolt)
下篇预告:「从零搭建开发环境:我的效率工具箱」
本文耗时 2 小时编辑排版 🦀