前言
现在很多人在家里搭建 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_virqfdCtrl + 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:5912Ctrl + X → Y → 回车保存并退出
九、禁止宿主机加载核显与声卡驱动
创建黑名单文件:
nano /etc/modprobe.d/blacklist.conf写入以下内容:
blacklist i915
blacklist snd_hda_intel
blacklist snd_sof_pci_intel_iclCtrl + X → Y → 回车保存并退出
说明:
i915 为 Intel 核显驱动,必须禁用
音频驱动用于核显 HDMI 音频,必须一并禁用
十、再次更新 initramfs 并重启
update-initramfs -u -k allreboot十一、验证核显是否已成功交给 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=0x2Ctrl + 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 是可以正常输出声音的。
转载声明:
转载此文章请注明出处。
若本文内容侵犯了您的权益,请通过本站下方邮箱与我联系,我会尽快处理,谢谢!

回复 电脑小白 取消回复