设备:wyse5070,多加了一个网口, 为了软路由
虚拟化平台:Proxmox VE,版本8.2.2
当前虚拟机:openwrt、win10、LXC

参考资料:
PVE直通核显给WIN11直出画面到显示器J4125软路由
VLOG | PVE直通核显给WIN11直出画面到显示器J4125软路由

PVE下J4125核显直通
J4125核显直通(WIN11)

PVE直通核显,来自(郑羊羊咩的窝

1、wyse5070的cpu是j4105,不是j4125,但是核显是相同的,文件都是通用的
2、vbios提取失败,我是失败了的,直接用的郑羊羊咩的窝,文章中提供的,另一个群友提供的。
文件解压了把它放到/usr/share/kvm中,改名为j4125.rom(需要与下面配置文件的修改对应)
3、PVE里WIN10虚拟机:QEMU要开启,机型i440fx
4、核显硬件的添加通过修改配置文件来:
在pve的Shell里,编辑win10虚拟机配置文件(100改成对应虚拟机的编号):

vim /etc/pve/qemu-server/100.conf

添加:

args: -set device.hostpci0.addr=02.0 -set device.hostpci0.x-igd-gms=1 -set device.hostpci0.x-igd-opregion=on

修改/添加:

hostpci0: 0000:00:02,legacy-igd=1,romfile=j4125.rom

5、win10核显驱动一定要用26.20.100.7262这个版本,否则设备管理器里会出现黄色三角形
6、如果已经安装了高版本的显卡驱动,可以用DDU卸载

1、打开PVE节点的shell,输入命令:

nano /etc/default/grub

#将GRUB_CMDLINE_LINUX_DEFAULT="quiet"修改为

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

update-grub

2、加载内核模块

nano /etc/modules

添加以下模块

vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

3、添加驱动到PVE黑名单

blacklist snd_hda_intel
blacklist snd_hda_codec_hdmi
blacklist i915

4、查找核显和声卡id

命令:

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:

lspci -n -s 00:02      #查询显卡  00:02 以上获取的ID
lspci -n -s 00:0e      #查询声卡  00:0e 以上获取的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)。

nano /etc/modprobe.d/vfio.conf

多个设备,ids后面每个设备之间用,隔开

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)。

nano /etc/modprobe.d/kvm.conf
options kvm ignore_msrs=1

7、更新内核并重启PVE虚拟机

update-initramfs -u

8、重启完成后,输入命令检查模块是否加载成功

lsmod | grep vfio

看到如下输入界面:

_Pci               57344    0
_virqfd            16384    1    vfio_pci
_ypass             16384    1    vfio_pci,kvm
_iommu_typel       36864    0
                   36864    2    vfio_iommu_typel,vfio_pci

9、配置直通

在pve的Shell里,编辑win10虚拟机配置文件(100改成对应虚拟机的编号):

vim /etc/pve/qemu-server/100.conf

添加:

args: -set device.hostpci0.addr=02.0 -set device.hostpci0.x-igd-gms=1 -set device.hostpci0.x-igd-opregion=on

修改/添加:

hostpci0: 0000:00:02,legacy-igd=1,romfile=j4125.rom

pve管理页面-win10-硬件-添加-pci设备-原始设备-highdefinetion audio等字样的设备,勾选所有设备

10、修改显示为  无  

pve管理页面-win10-硬件-显示-无

J4125.rom: https://url50.ctfile.com/f/63872950-1490079194-6db803
(访问密码: 1421)

Intel-UHD-Graphics-Driver_11XKD_WIN_26.20.100.7262_A06_04
(访问密码: 1421)

DDU v18.0.8.2
(访问密码: 1421)

virtio-win-0.1.266
(访问密码: 1421)