# 在 iStoreOS 显卡直通,显示到 HDMI
(建议用更好的 PVE 显卡直通教程)
以 Intel N5105 为例子,介绍大概步骤:
- 安装 iStoreOS 基于Docker开发的虚拟机插件 webvirtcloud
- 禁用 iStoreOS 自带的显卡驱动
- 开启 vfio
- 正常安装 windows 虚拟机
- 在 windows 里面安装 virtio 相关驱动
- 关闭虚拟机,在 webvirtcloud 里面设置显卡直通给 windows
- 再 windows 显示器上安装显卡驱动,完成
# 启动开启 iommu
intel_iommu=on iommu=pt initcall_blacklist=sysfb_init video=simplefb:off video=vesafb:off video=efifb:off video=vesa:off kvm.ignore_msrs=1
# 禁用原本的显卡驱动
参考下面内容,在这个文件后面追击:/etc/modules.conf
#blacklist i915
#blacklist snd_hda_intel
#blacklist snd_hda_codec_hdmi
blacklist radeon
blacklist nouveau
blacklist nvidia
blacklist nvidiafb
blacklist nvidia-gpu
# 找到自己的显卡设备ID:
最好也把声卡加进去,免得可能出错
lspci -n | grep 00:02.0
比如我得到的是:
00:02.0 0300: 8086:4e71 (rev 01)
# vfio-pci 要改成一下内容
最好也把声卡加进去,免得可能出错
文件路径:/etc/modules.d/vfio-pci 自己用 vim 修改,最后得到内容参考:
cat /etc/modules.d/vfio-pci
vfio-pci ids=8086:4e71 disable_vga=1
ids=8086:4e71 就是自己的显卡 ID
并给与权限:
chmod 666 /dev/vfio/vfio
# 修改虚拟机 libvirt xml 文件,如下
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
( 注意开头跟结尾,中间内容省略...)
<qemu:override>
<qemu:device alias='hostdev0'>
<qemu:frontend>
<qemu:property name='x-igd-opregion' type='bool' value='true'/>
<qemu:property name="driver" type="string" value="vfio-pci-nohotplug"/>
<qemu:property name='romfile' type='string' value='/usr/share/OVMF/vbios_gvt_uefi.rom'/>
</qemu:frontend>
</qemu:device>
<qemu:device alias='hostdev1'>
</qemu:device>
</qemu:override>
</domain>
# 需要在 Windows 安装显卡驱动,然后
打好 windows 驱动之后,还需要把物理驱动加到 XML 里面
<hostdev mode="subsystem" type="pci" managed="yes">
<source>
<address domain="0x0000" bus="0x00" slot="0x02" function="0x0"/>
</source>
<address type="pci" domain="0x0000" bus="0x07" slot="0x00" function="0x0"/>
</hostdev>
<video>
<model type="none"/>
</video>