# PVE6.4直通核显 Windows10 **Repository Path**: xmlgrg/pve-win10 ## Basic Information - **Project Name**: PVE6.4直通核显 Windows10 - **Description**: No description available - **Primary Language**: Shell - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2023-03-29 - **Last Updated**: 2023-03-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 环境 ![image.png](assets/image-20210819162421-9g6wtcc.png) ## 附件 1、pve 安装包 [https://pve.proxmox.com/wiki/Downloads]() 2、virtio 驱动包 [https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/]() 3、windows10 原版镜像(来自 itellyou) ed2k://|file|cn_windows_10_enterprise_ltsc_2019_x64_dvd_9c09ff24.iso|4478906368|E7C526499308841A4A6D116C857DB669|/ 4、Intel HD Graphics 520 x64 驱动包 Driver Version: 15.40.9.64.4285 (驱动是去神舟官网拔下来的,不含 x86) [https://www.aliyundrive.com/s/EQoijC2Q37Z]() 提取码:1zhg ## 流程 ### 1、上传 Win10 镜像和驱动包 ![image.png](assets/image-20210819162847-56yxw6x.png) ### 2、创建虚拟机 名称自定义 ![image.png](assets/image-20210819162943-nfh1h8z.png) 选择 win10 镜像 和 类别 ![image.png](assets/image-20210819163021-trw05r0.png) BIOS 设置为默认 ![image.png](assets/image-20210819163048-3zakrov.png) 硬盘类型 选 IDE 或者 SATA 自行测试,我选的是 IDE 搭配 Raw 磁盘格式 磁盘大小按需设定 但不可低于官方限制大小 然后缓存选 默认 如果你是 SSD 那么就把 SSD 仿真也打勾 ![image.png](assets/image-20210819163248-mzrr6o1.png) CPU 类别选择 HOST 并启用 NUMA ![image.png](assets/image-20210819163620-qgo9qvi.png) 内存按需设定 ![image.png](assets/image-20210819163640-6twoz4o.png) 网络 选择半虚拟化 ![image.png](assets/image-20210819163659-mk54rq7.png) 核对信息,无误后,确认创建容器,但先不要启动、不要启动、不要启动容器 ![image.png](assets/image-20210819163708-q0420ff.png) ### 3、开启 PVE 核显直通 1、启用内核 IOMMU 支持 `vi /etc/default/grub` 找到 GRUB_CMDLINE_LINUX_DEFAULT 修改为以下内容 `GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt video=efifb:off,vesafb:off"` 其中“iommu=pt”不是必须的,PT 模式只在必要的时候开启设备的 IOMMU 转换,可以提高未直通设备 PCIe 的性能,建议添加。 ![image.png](assets/image-20210819164432-ja3w307.png) 保存并更新 grup `update-grub` 2、加载硬件直通相关模块 ` vi /etc/modules` 添加以下内容到末尾 `vfio vfio_iommu_type1 vfio_pci vfio_virqfd` ![image.png](assets/image-20210819164406-yiopw0t.png) 3、添加驱动黑名单(有的教程写的名称是 blacklist.conf) `vi /etc/modprobe.d/pve-blacklist.conf` 添加以下内容 `blacklist nvidiafb blacklist snd_hda_intel blacklist snd_hda_codec_hdmi blacklist i915` ![image.png](assets/image-20210819164624-r1bfwlg.png) 保存文件并更新内核 `update-initramfs -u` 4、将核显加入直通组 `lspci` 反馈信息中,带有 VGA 的那个就是核显 00:02 就是组名 (同样此信息中带 AUDIO 的那条就是声卡的了) ![image.png](assets/image-20210819164824-mmiap6r.png) 通过组名查找设备 ID `lspci -n -s 00:02` ![image.png](assets/image-20210819165040-rgs8eno.png) 8086:1916 是厂商 ID:设备 ID 执行以下命令将核显绑定到 vfio 模块(8086:1916 则是上一步查的设备 ID) `echo "options vfio-pci ids=8086:1916" >> /etc/modprobe.d/vfio.conf` 快速查找 ID 命令 `lspci -nn | grep VGA` ### 4、添加 options 防止 VM 死机 `echo "options kvm ignore_msrs=1" >> /etc/modprobe.d/kvm.conf` 注: vfio.conf 和 kvm.conf 默认没有此两文件 ### 6、以上文件修改并保存后,重启 PVE 重启 PVE 重启 PVE `reboot` 重启上来之后检查模块是否正常加载,执行以下命令有类似回显说明就是正常的 `lsmod | grep vfio` ![image.png](assets/image-20210819172408-fs083f8.png) ### 7、容器设定 1、加载 virtio 驱动包 ![image.png](assets/image-20210819170714-yq6swy7.png) ![image.png](assets/image-20210819170813-jofn2y9.png) 2、添加直通的显卡 ![image.png](assets/image-20210819171043-kh7iy4n.png) ![image.png](assets/image-20210819171019-npyb2dw.png) 这里不要勾选主 GPU 不要勾选主 GPU 不要勾选主 GPU ![image.png](assets/image-20210819170857-mu7xm3l.png) 3、同 1&2 的操作方式自行添加鼠标键盘设备 ![image.png](assets/image-20210819171157-lovb8i8.png) 4、切换到容器的选项菜单 激活刚才添加的 ide1 (virtio 驱动包) ![image.png](assets/image-20210819171330-hnv5pfk.png) 启用 QEMU Guest Agent ![image.png](assets/image-20210819171523-oczz6es.png) ### 8、启动容器 win10 安装流程走一遍就 OK 了 这一步要是卡了,就加载下那个 virtio 驱动包 ![image.png](assets/image-20210819172256-tl35wk4.png) ### 9、安装其他设备驱动 启动后,打开设备管理器安装驱动,注意:**首次启动不要安装显卡驱动 首次启动不要安装显卡驱动 首次启动不要安装显卡驱动** ![image.png](assets/image-20210819173933-c1vps3v.png) ![image.png](assets/image-20210819173954-zbakn8g.png) ![image.png](assets/image-20210819174014-627czd3.png) ![image.png](assets/image-20210819174025-fq0d0ha.png) ![image.png](assets/image-20210819174034-31qsu2s.png) 选择 virtio 驱动包 ![image.png](assets/image-20210819174054-0egbd18.png) 不知道路径就直接搜主目录就好了 ![image.png](assets/image-20210819174108-14iapz7.png) 安装完其他设备里有提示的几个设备驱动后,进行重启,千万不要手贱去把显卡驱动也安装了,不然待会就要删除容器重新来了,同时记得启动远程连接 ![image.png](assets/image-20210819181253-04bdwer.png) ### 10、安装显卡驱动 将上 面提供的 Intel HD Graphics 520 x64 驱动包 Driver Version: 15.40.9.64.4285 传到 Win 里(怎么传自己想办法吧) 上传后,解压,点开 Setup 进行安装即可,安装完后,先不要操作其他的,先**把 win10 的自动更新驱动功能关了**,因为驱动是旧版的,win10 总是把驱动更新到新版,然后就会导致驱动装完正常运行,重启后就出现 43 问题了,所以先把更新功能关了,具体怎么关,百度吧。 ![image.png](assets/image-20210819175323-4frjd73.png) ### 11、关闭虚拟机,删除 PCI 设备里直通的核显 ide1 和 ide2 要是都弄好了 也可以删了 ![image.png](assets/image-20210819175906-coa7z6m.png) ### 12、**dump 转存 vBIOS** 实现 HDMI 输出 103 是你的容器 VM ID `vi etc/pve/qemu-server/103.conf` 添加以下内容并保存 `args: -device vfio-pci,host=00:02.0,addr=0x02,x-igd-gms=1,x-igd-opregion=on,romfile=vbios.bin` `vga: none` shell 继续执行以下命令 先更新源 `apt-get update` 安装 git 和 build 工具 `apt-get install -y git build-essential` 安装 rom-parser 工具 `git clone https://github.com/awilliam/rom-parser && cd rom-parser && make` 转存 vBIOS (其中 0000:00:02.0 为你的显卡设备 ID) `cd /sys/bus/pci/devices/0000:00:02.0/ echo 1 > rom cat rom > /usr/share/kvm/vbios.bin echo 0 > rom` 生成的 vbios 文件在“/usr/share/kvm/”目录下,直通显卡的时候直接“romfile=vbios.bin”引用即可 ### 13、最后接上显示器,启动容器即可 ![image.png](assets/image-20210819181535-qy0q97z.png) 声卡问题,尝试直通后,失败了,最后解决方法就是网友提供使用外接个声卡驱动呗。 ### 14、日常 直通后,没有插显示器或者启动时电视机没有开机,那么此时启动虚拟机,有几率会导致死机,那么网友给出的方案是对 CPU 进行限制,按需进行限制 ![image.png](assets/image-20210819182624-vpsjt4k.png) 以上方法,只在我的 i3-6100U 小主机操作过,其他设备自行更换相关文件,每个设备不同,命令里的 相关 ID 自行替换。 # By 朽木 整理