硬件准备
主机型号
- 支持 J4105、J4125,核显型号为 UHD600
- hdmi、vga(未尝试、一般可行)
- 需支持 vt-d
- gk55、j4105 工控机测试可用
软件准备
软件版本
- pve 6.3-6 版本(截止 21-04-14 最新版本),其他版本未测试,原理相同,可自行尝试
- windows ltsc 最新即可
- intel 核显驱动需要26.20.100.7262,需特别注意此版本,高于这个版本会报 Code 43 错误
安装 pve
过程略、普通安装即可
配置 pve
配置直通
编辑 GRUB 配置文件
1 | nano /etc/default/grub |
开启 IOMMU 支持
1 | GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on video=efifb:off" |
如果是 AMD 的 CPU
1 | GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on video=efifb:off" |
更新 GRUB:
1 | update-grub |
添加所需的系统模块(驱动)
1 | echo "vfio" >> /etc/modules |
接着添加模块(驱动)黑名单,即让 GPU 设备在下次系统启动之后不使用这些驱动,把设备腾出来给 vfio 驱动用:
Intel 核显:
1 | echo "blacklist snd_hda_intel" >> /etc/modprobe.d/pve-blacklist.conf |
绑定核显到 vfio 模块
查看核显以及声卡的供应商和设备 ID:
1 | lspci -n | grep -E "0300|0403" |
回显如下:
1 | 00:02.0 0300: 8086:3185 (rev 03) |
其中“8086:3185”和“8086:3198”分别就是核显和声卡的供应商 ID 和设备 ID,把它们绑定到 vifo 模块:
1 | echo "options vfio-pci ids=8086:3185,8086:3198" > /etc/modprobe.d/vfio.conf |
更新内核:
1 | update-initramfs -u |
重启机器:
1 | reboot |
重启上来之后检查模块是否正常加载:
1 | lsmod | grep vfio |
有类似回显说明正常:
1 | vfio_pci 45056 1 |
配置虚拟机
- 创建虚拟机,安装成功之前不要选择开机自启动,防止直通冲突,和 pve 抢占硬件
- 系统选择时,保持默认
- 硬盘随意
- cpu 类别选择 host
安装 windows
- 初次安装不要直接直通,先安装好系统后关机再直通
- 安装完成后不要连接 hdmi 接口
配置 pve 直通核显
- pve 虚拟机硬件设置
- 由于我这边不显示设备名称,所以需要安装上方 lspci 显示的设备 ID 添加
- 00:02.0 是核显,00:0e.0 是声卡,均需直通给虚拟机
安装驱动
- 设置直通之后启动虚拟机,用远程桌面连接,安装过程中有几率蓝屏重启
- 下载26.20.100.7262驱动https://www.dell.com/support/home/zh-cn/drivers/driversdetails?driverid=11xkd
- 安装后重启、可在设备管理器中看到 UHD600 驱动可用
- 在26.20.100.7262之后的驱动均会报 Code 43 错误,已尝试过 26.20.100.7262+、27.20.x,均无效
驱动 43 解决
获取 RomFile
修改参数
1 | hostpci0: 00:02.0,legacy-igd=1,romfile=HD600.bin |
禁用驱动更新
- Win+R 打开 gpedit.msc
- 计算机配置 - 管理模板 - Windows 组件 - Windows 更新 - Windows 更新不包括驱动程序 - 启用
安装驱动后配置虚拟机
修改配置文件
1 | nano /etc/pve/qemu-server/虚拟机id.conf |
添加参数
1 | args: -set device.hostpci0.addr=02.0 -set device.hostpci0.x-igd-gms=1 -set device.hostpci0.x-igd-opregion=on |
args 中 hostpci0 参数需要存在
1 | hostpci0: 00:02.0 |
保存启动,连接 hdmi 接口
完成
优化设置
启用 QEMU Guest Agent
- 虚拟机选项启用 QEMU
- 下载驱动https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.iso
- 挂载 iso,安装 virtio-win-gt-x64
- 安装 virtio-win-guest-tools
- 如果挂载启动失败,先注释掉上方配置文件中的 args 和 vga 参数,安装后再启用
参考连接:
https://www.10bests.com/win10-htpc-on-pve/
https://lala.im/6324.html
https://github.com/my33love/gk41-pve-ovmf
https://blog.csdn.net/m0_46642572/article/details/105092905