落叶的心思的博客

一个记录与折腾的小站

PVE Intel 核显直通完整教程

发布时间:

发布者:

分类:

阅读数:

77

点赞数:

0

阅读时长预计:

11 分钟

前言

现在很多人在家里搭建 PVE(Proxmox VE)服务器,机器配置往往性能过剩:CPU、内存甚至核显都有富余。

于是,一个很自然的想法是:干脆跑一个 Windows 虚拟机,如果放在电视前当一个普通的 Windows 使用,或者打算用它做轻量办公、影音播放,虚拟显卡就满足不了需求。
这时候,核显直通就派上用场了。通过直通,我们可以把 CPU 自带的 Intel 核显完全交给虚拟机使用,让 Windows 拥有“原生机”的图形性能。这样不仅可以流畅播放高清视频,运行一些轻量游戏,甚至可以通过 HDMI 输出到电视,直接当作一台普通的 Windows 电脑使用。

第一步:配置 PVE 宿主机并释放 Intel 核显

一、实验环境说明

PVE 版本

Proxmox VE 8 或 Proxmox VE 9

CPU 与核显

CPU :Intel i5-7500
核显 :Intel HD Graphics 630

前提条件

主板支持 VT-d
BIOS 已开启虚拟化相关选项

二、BIOS 设置要求

进入 BIOS 后确认以下选项(名称可能略有不同):

  • Intel Virtualization Technology
  • 设置为 Enabled
  • VT-d
  • 设置为 Enabled

保存并重启,进入 PVE 系统。

三、配置 GRUB 启动参数,启用 IOMMU

SSH 连接到 PVE

编辑 grub 配置文件:

nano /etc/default/grub

找到这一行:

GRUB_CMDLINE_LINUX_DEFAULT=”quiet”

修改为:

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt video=efifb:off initcall_blacklist=sysfb_init"

Ctrl + X → Y → 回车保存并退出

更新引导配置

update-grub

四、加载 VFIO 相关模块

编辑模块加载文件:

nano /etc/modules

在文件末尾添加以下内容(每行一个):

vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

Ctrl + X → Y → 回车保存并退出

五、更新 initramfs 并重启

更新 initramfs

update-initramfs -u -k all

重启 PVE

reboot

六、确认 IOMMU 是否已正确启用

执行:

dmesg | grep -i iommu

示例输出

DMAR: IOMMU enabled
iommu: Default domain type: Passthrough

看到以上内容说明 IOMMU 已成功启用。

七、查看 Intel 核显 PCI 设备信息

查看 VGA 设备:

lspci | grep -E 'VGA'

示例输出:

00:02.0 VGA compatible controller: Intel Corporation HD Graphics 630 (rev 04)

查看核显完整 PCI ID:

lspci -nnk -s 00:02.0

示例输出:

00:02.0 VGA compatible controller [0300]: Intel Corporation HD Graphics 630 [8086:5912] (rev 04)

其中 8086:5912 即为核显的 PCI ID。

八、将核显绑定到 vfio-pci

创建并编辑 vfio 配置文件:

nano /etc/modprobe.d/vfio.conf

写入(使用你自己查询到的 PCI ID):

options vfio-pci ids=8086:5912

Ctrl + X → Y → 回车保存并退出

九、禁止宿主机加载核显与声卡驱动

创建黑名单文件:

nano /etc/modprobe.d/blacklist.conf

写入以下内容:

blacklist i915
blacklist snd_hda_intel
blacklist snd_sof_pci_intel_icl

Ctrl + X → Y → 回车保存并退出

说明:

i915 为 Intel 核显驱动,必须禁用
音频驱动用于核显 HDMI 音频,必须一并禁用

十、再次更新 initramfs 并重启

update-initramfs -u -k all
reboot

十一、验证核显是否已成功交给 VFIO

lspci -nnk | grep -A4 -i vga

示例输出:

00:02.0 VGA compatible controller [0300]: Intel Corporation HD Graphics 630 [8086:5912]Kernel driver in use: vfio-pci

看到 Kernel driver in use 为 vfio-pci
说明第一步已完成。

第二步:提取 Intel 核显 VBIOS

一、确认核显设备

lspci | grep -E "VGA|Display"

示例输出:

00:02.0 VGA compatible controller: Intel Corporation HD Graphics 630 (rev 04)

二、确认系统允许读取 VBIOS

ls /sys/bus/pci/devices/0000:00:02.0/

示例判断标准:

resource0 resource2 rom subsystem vendor

只要能看到 rom 文件,即可继续。

三、提取核显 VBIOS

解锁 ROM:

echo 1 > /sys/bus/pci/devices/0000:00:02.0/rom

导出 VBIOS:

cat /sys/bus/pci/devices/0000:00:02.0/rom > /root/igpu_hd630.rom

重新锁回:

echo 0 > /sys/bus/pci/devices/0000:00:02.0/rom

四、检查 VBIOS 是否提取成功

du -sh /root/igpu_hd630.rom

示例输出:

64K igpu_hd630.rom

判断标准:

文件大小为几十 KB 且不是 0B,即为成功。

五、可选:验证 VBIOS 文件有效性

apt install -y rom-parser
rom-parser /root/igpu_hd630.rom

第三步:创建 Windows 虚拟机并完成核显直通

一、镜像的下载上传

打开 pve 后台,选择 local (pve),节点,在选择 ISO 镜像
点击上传 按钮 ,选择要上传的 Windows 的镜像,如果有 virtio 驱动也可以直接上传,如果你在用本站修改的 Windows 已经内置了无需下载上传。

二、创建 Windows 虚拟机

打开 pve 后台,选择 pve 节点,点击创建虚拟机。

常规 选项卡

  • 勾选高级
  • VM ID:默认即可
  • 名称:windows,也可以按照自己的需求改
  • 其他的可以暂时不用管点击下一步

操作系统 选项卡

  • 选择使用 CD/DVD 光盘镜像文件(ISO)
  • ISO 镜像:选择刚刚上传的windows镜像
  • 类别:选择Microsoft Windows
  • 版本:选择10/2016/2019

为 VirtIO 驱动程序添加额外驱动器,这里如果你手动下载了 VirtIO 驱动可以选择上
ISO 镜像:就选择你上传的 VirtIO 镜像即可方便后续打驱动。

点击下一步

系统 选项卡

  • 显卡:选择默认
  • 机型:选择i440fx
  • BIOS:选择SeaBIOS
  • SCSI 控制器:选择VirtIO SCSI single
  • Qemu 代理和添加 TPM默认即可。
  • 点击下一步

磁盘 选项卡

  • 总线/设备:选择sata
  • 磁盘大小 (GiB):这里建议80GiB,也可以按需分配
  • SSD 仿真:打钩选择
  • 点击下一步

CPU 选项卡

  • 核心:4,也可以按需
  • 类别:选择host

其他默认点击下一步

内存 选项卡

内存 (MiB):,8192,按需分配

点击下一步

网络 选项卡

只需要把模型选择VirtIO (半虚拟化)

点击下一步

确认 选项卡

核对配置后点击完成,

这里提示下,不要选择创建后启动虚拟机,后面还要设置。

三、虚拟机的设置

启动项的设置

选择创建的 Windows 虚拟机,点击选项,在点击引导顺序,选择编辑,把光驱设备也就是ide2拖到第一个,点击保存。

直通硬件

选择创建的 Windows 虚拟机,点击硬件,在点击添加点击PCI 设备
选择原始设备,找到核显的设备

选择设备:

0000:00:02.0Intel CorporationHD Graphics 630

点击选择,点击添加按钮。

声卡也直通下

点击添加,点击PCI 设备 选择原始设备

选择设备:

0000:00:1f.3Intel Corporation100 Series/C230 Series Chipset Family HD Audio Controller

点击选择,点击添加按钮。

在添加下 USB 键鼠

点击添加,点击 USB 设备 选择使用 USB 供应商/设备 ID

选择设备:

1ea7:0066   2.4G Mouse USB 1.x

点击选择,点击添加按钮。

四、Windows 的安装

点击工具栏的开机,在点击工具栏的控制台进行 Windows 的安装,安装步骤和正常安装 Windows 没什么区别。

视障者可以接个音箱使用讲述人一步一步的安装,和正常安装 Windows 没有什么区别。

五、Windows 装好后的设置

开启远程桌面

安装好后,打开 Windows 的远程桌面
Windows + i 打开设置,或是点击开始菜单,点击里面的设置
直接搜索框搜索远程桌面,点击远程桌面设置,点击开启。

查看本机的 IP 地址

网络,属性,更改适配器设置。
点击以太网 查看 IPv4 地址记下来。

也可以用命令查看

点击开始菜单,搜索框输入 cmd 回车

输入

ipconfig -all

通过远程桌面连接到 Windows

在另外一台电脑点击开始菜单搜索 MSTSC 回车打开远程桌面。

输入上面记下来的 IP,填写用户名密码连接,正常连接上后就可以关掉 Windows 了。

六、核显直通的设置

先把上面导出来的核显 rom 放到/usr/share/kvm

先 ssh 连接 pve,选择 pve 的节点,选择工具栏的 shell,也可以用 Windows 的命令行工具或是 putty 都可以,按照自己的习惯。

输入

cp /root/igpu_hd630.rom /usr/share/kvm/

然后编辑 Windows 虚拟机的配置

nano /etc/pve/qemu-server/<ID>

找到

hostpci0: 0000:00:02.0

改成

hostpci0: 0000:00:02.0,x-vga=1,romfile=igpu_hd630.rom

然后再配置的最上方添加

args: -set device.hostpci0.x-igd-opregion=on -set device.hostpci0.x-igd-gms=0x2

Ctrl + X → Y → 回车保存并退出

七、Windows 开机安装核显驱动直出画面

选择 Windows 的虚拟机节点,选择硬件,把显示设备设置成无,不设置会报错。

开机 Windows 虚拟机,用另外一台电脑,按照上面的步骤输入 IP 用户名密码登录到 Windows

直接下面连接下载英特尔官方核显驱动安装,安装驱动和正常安装驱动没什么区别,这里就不多做赘述了。

此下载英特尔 Graphics Driver第 7 代至第 10 代英特尔 酷睿处理器显卡以及相关的英特尔凌动、奔腾和 赛扬 处理器

https://downloadmirror.intel.com/871509/gfx_win_101.2140.exe

此下载安装英特尔 Graphics Driver适用于第 11 代至第 14 代英特尔 酷睿处理器显卡

https://downloadmirror.intel.com/870640/gfx_win_101.7082.exe

安装完核显驱动就可以此电脑属性设备管理器,看显示设备就应该正常了,可以接一个显示器看成果了,如果是接电视,博主这里亲测 hdmi 是可以正常输出声音的。

转载声明:

转载此文章请注明出处。

若本文内容侵犯了您的权益,请通过本站下方邮箱与我联系,我会尽快处理,谢谢!

分享到:

评论

《“PVE Intel 核显直通完整教程”》 有 1 条评论

  1. 电脑小白 的头像
    电脑小白

    老师,你要做一期安装pve的教程啊,我们才能后续折腾。现在连安装都不是很精通。

回复 电脑小白 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注

最新评论

  1. 落叶的心思

科学与工具

收藏与发文

登录与注册