KVM显卡/固态盘直通
Hyper-V 显卡直通教程,参见DDA
效果
准备工作
- 通读wiki
- Arch Linux
- Windows Guest
- QEMU/KVM
- HDMI欺骗器
(可选)导出离线驱动
在物理机Windows系统下用 Dism++
导出离线驱动,重要的是显卡和音频设备驱动
确保直通设备在同一组
运行以下脚本
1 |
|
输出示例
1 |
|
记一下[10de:28e1]等ID
启用IOMMU
增加 intel_iommu=on
内核参数,对于 grub
而言,可以编辑 /etc/default/grub
,对于 systemd-boot
,编辑 /boot/loader/entries/arch.conf
之类的文件,在末尾增加。
隔离GPU和SSD
新增 /etc/modprobe.d/ovmf.conf
,写入如下内容
1 |
|
分别是GPU、音频设备和SSD的ID,替换成自己的
继续编辑 /etc/mkinitcpio.conf
,增加 vfio_pci vfio vfio_iommu_type1
到 MODULES
列表中,然后运行 sudo mkinitcpio -P
生成新的内核镜像。
或者增加 /etc/dracut.conf.d/10-vfio.conf
,填入 force_drivers+=" vfio_pci vfio vfio_iommu_type1 "
,并重新生成内核镜像 sudo dracut -f
。
重启
测试
1 |
|
输出
1 |
|
安装配置 virt-manager
参见 Libvirt
大部分配置应该开箱即用
安装Windows虚拟机
注意CPU配置选择 host-passthrough
并且手动设置拓扑,比如一个插槽,8个核心,2个线程
添加PCI硬件
virt-manager设置左下角添加硬件
添加显卡(包括和它同一组的音频设备)
添加NVME磁盘
添加USB设备,如鼠标和键盘
启动虚拟机
现在显示用的是 spice服务器
,驱动可能是 qxl
或者 virtio
,不用管因为以后会删除,直接启动虚拟机
安装显卡驱动,可以用离线驱动,或者去官网下载
插入HDMI欺骗器
在设置确认有另一个显示器输出
安装sunshine
设置好账号密码
物理机安装moonlight
1 |
|
启动 moonlight-qt,分辨率最高,刷新率选最高
连接windows,配置pin码
进入moonlight桌面后,在设备管理器禁用 qxl
等虚拟机显卡