设备:wyse5070,多加了一个网口, 为了软路由
虚拟化平台:Proxmox VE,版本8.2.2
当前虚拟机:openwrt、win10、LXC
所有涉及到的文件在文章末尾
参考资料:
PVE直通核显给WIN11直出画面到显示器J4125软路由
VLOG PVE直通核显给WIN11直出画面到显示器J4125软路由
主要注意点(如果已经尝试过了,失败了,直接看下面的重点):
0、一切开始前,确保你的win10已经能被RDP远控
1、wyse5070的cpu是j4105,不是j4125,但是核显是相同的,文件都是通用的
2、vbios提取失败,我是失败了的,直接用的郑羊羊咩的窝,文章中提供的,另一个群友提供的。
文件解压了把它放到/usr/share/kvm中,改名为j4125.rom(需要与下面配置文件的修改对应)
3、PVE里WIN10虚拟机:QEMU要开启,机型i440fx
4、核显硬件的添加通过修改配置文件来:
在pve的Shell里,编辑win10虚拟机配置文件(100改成对应虚拟机的编号):
1 | vi /etc/pve/qemu-server/100.conf |
添加:
1 | args: -set device.hostpci0.addr=02.0 -set device.hostpci0.x-igd-gms=1 -set device.hostpci0.x-igd-opregion=on |
修改/添加:
1 | hostpci0: 0000:00:02,legacy-igd=1,romfile=j4125.rom |
5、win10核显驱动一定要用26.20.100.7262这个版本,否则设备管理器里会出现黄色三角形
6、如果已经安装了高版本的显卡驱动,可以用DDU卸载
详细步骤:
1、打开PVE节点的shell,输入命令:
1 | nano /etc/default/grub |
#将GRUB_CMDLINE_LINUX_DEFAULT=”quiet”修改为
1 | GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on video=efifb:off" |
intel_iommu=on:启用Intel平台的IOMMU功能(用于PCIe设备直通,如GPU、网卡等)。video=efifb:off:禁用EFI帧缓冲区(FrameBuffer),避免宿主机和虚拟机争抢显卡资源。
nano 编辑器(PVE 默认)
- 保存并退出:
按下 Ctrl + O → 按 Enter 确认保存 → 再按 Ctrl + X 退出。 - 直接退出(不保存):
按下 Ctrl + X → 如果文件已修改,会提示是否保存,按 N 放弃保存。
修改完成之后更新grub
1 | update-grub |
2、加载内核模块
1 | nano /etc/modules |
添加以下模块
1 | vfiovfio_iommu_type1vfio_pcivfio_virqfd |
3、添加驱动到PVE黑名单
blacklist snd_hda_intel
blacklist snd_hda_codec_hdmi
blacklist i915
4、查找核显和声卡id
命令:
1 | lspci |
可以看到:
00:02.0 VGA compatible controller: Intel Corporation GeminiLake [UHD Graphics 600] (rev 06)
00:0e.0 Audio device: Intel Corporation Celeron/Pentium Silver Processor High Definition Audio (rev 06)
核显和声卡的PCIE ID 为00:02.0 00:0e.0 取前两位数就是00:02 00:0e
查询对应硬件ID:
1 | lspci -n -s 00:02 #查询显卡 00:02 以上获取的ID |
从以上可以查询到显卡硬件ID为8086:3185 声卡硬件ID为8086:3198
00:02.0 0300: 8086:3185 (rev 03)
00:0e.0 0403: 8086:3198 (rev 03)
5、填上以上ID,添加直通组。
配置 VFIO-PCI 内核模块参数,以便将特定的 PCI 设备(通过 Vendor ID 和 Device ID 指定)绑定到 vfio-pci 驱动,从而实现 PCI 设备直通(Passthrough) 给虚拟机(VM)。
1 | nano /etc/modprobe.d/vfio.conf |
多个设备,ids后面每个设备之间用,隔开
1 | options vfio-pci ids=8086:3185,8086:3198 |
6、添加options防止VM死机
该命令是用于配置 KVM(Kernel-based Virtual Machine) 的内核模块参数,让 KVM 忽略虚拟机(VM)对未实现的 MSR(Model-Specific Register)的访问,从而避免某些虚拟机(如 Windows 10/11)因 MSR 访问错误而崩溃或蓝屏(BSOD)。
1 | nano /etc/modprobe.d/kvm.conf |
1 | options kvm ignore_msrs=1 |
7、更新内核并重启PVE虚拟机
1 | update-initramfs -u |
8、重启完成后,输入命令检查模块是否加载成功
1 | lsmod grep vfio |
看到如下输入界面:
1 | _Pci 57344 0 |
-—————————————-以上PVE系统配置完成———————————————
9、win10系统安装:
biso传统(EFI显卡驱动装不上),i440fx,cpu选host
正常安装完成系统,配置完网络,ip、RDP远控,重启
PVE内:添加PCI显卡、声卡,在Raw Device添加,安装指定intel驱动
(Intel-UHD-Graphics-Driver_11XKD_WIN_26.20.100.7262_A06_04)
(如果自动安装了,则用DDU卸载了再装),重启
在设备管理器里能显卡名称能正常显示,有感叹号没问题,关机
PVE内:win10虚拟机-硬件-显示-无
10、配置直通
显卡的直通:
提前将提前准备的核显驱动:j4125.rom放置到PVE的/usr/share/kvm目录下。我用的Finalshell,或者你喜欢的ssh。
在pve的Shell里,编辑win10虚拟机配置文件(100改成对应虚拟机的编号):
1 | vi /etc/pve/qemu-server/100.conf |
添加:
1 | args: -set device.hostpci0.addr=02.0 -set device.hostpci0.x-igd-gms=1 -set device.hostpci0.x-igd-opregion=on |
修改/添加:
1 | hostpci0: 0000:00:02,legacy-igd=1,romfile=j4125.rom |
声卡的直通:
pve管理页面-win10-硬件-添加-pci设备-原始设备-highdefinetion audio等字样的设备,勾选所有设备
vbios:J4125.rom
显卡驱动文件:Intel-UHD-Graphics-Driver_11XKD_WIN_26.20.100.7262_A06_04
驱动卸载工具:DDU v18.0.8.2
KVM虚:virtio-win-0.1.266
链接: https://pan.baidu.com/s/1\_E\_eRsRPADE65FFtT0ty2g?pwd=dx3b 提取码: dx3b