Intel NUC8i7BEH 实现核显直通
宿主机环境
虚拟化环境:Proxmox 7.0
硬件:Intel NUC NUC8i7BEH
BIOS:UEFI Mode
配置PVE
开启 IOMMU
修改 /etc/default/grub
文件
找到 GRUB_CMDLINE_LINUX_DEFAULT
一行,替换为GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on video=efifb:off,vesafb:off"
保存后执行 update-grub
更新grub
加载 VFIO 模块
修改 /etc/modules
文件,添加以下内容
1 | vfio |
添加驱动黑名单
修改 /etc/modprobe.d/pve-blacklist.conf
添加以下内容:
1 | blacklist snd_hda_intel |
绑定显卡到 VFIO
执行 lspci -n | grep -E "0300"
查看并记录核显 VendorID 和 DeviceID
1 | 00:02.0 0300: 8086:3ea5 (rev 01) |
修改 /etc/modprobe.d/vfio.conf
添加如下内容options vfio-pci ids=8086:3ea5
验证
重启,若启动界面卡在 Loading initial ramdisk ...
表示核显已被屏蔽
执行 lsmod | grep vfio
得到类似输出,表示已加载成功
1 | vfio_pci 57344 2 |
提取核显ROM
TLDR: 已提取好的ROM文件
参照 https://github.com/tmbeck/nuc-passthrough 提取核显ROM,放置到/usr/share/kvm
,下文假设文件路径为 /usr/share/kvm/intel-iris-655.rom
配置虚拟机参数
- Machine 必须设置为默认的
i440fx
,否则启动会提示legacy IGD assignment is not compatible with q35
- Display 必须设置为
none
,否则启动会提示legacy IGD assignment requires VGA mode to be 'none'
- 添加显卡 PCI 设备,NUC 对应 ID
0000:00:02.0
手工修改虚拟机配置
修改/etc/pve/qemu-server/<vmid>.conf
文件, <vmid>
对于虚拟机ID,找到添加的显卡设备一行,追加 ,legacy-igd=1,romfile=intel-iris-655.rom
,启用 IDG Passthrough和加载ROM
如 hostpci0: 0000:00:02.0
修改为 hostpci0: 0000:00:02.0,legacy-igd=1,romfile=intel-iris-655.rom
尝试启动虚拟机
提前确认好远程桌面服务启动正常,否则由于noVNC被禁用,无法控制操作系统。
进入设备管理器,检查显示驱动是否正常工作,没有感叹号提示。
此外可以选择直通USB控制器 0000:00:14.0
,获得更好的使用体验。
Reference
https://pve.proxmox.com/wiki/Pci_passthrough
https://github.com/tmbeck/nuc-passthrough
https://blog.timzhong.top/2020/09/27/pve-direct-pcie/
https://www.10bests.com/win10-htpc-on-pve/