CPU:Intel Core I7-6700K 4.0Ghz
主板:MSI Z170 KRAIT GAMING
内存1:Gloway 8G 2666Mhz
内存2:G.Skill 8G 2133Mhz (XMP2400Mhz)
内存3:Team GropInc. 8G 2400Mhz
内存4:Gloway 8G 2666Mhz
显卡:Maxsun GeForce RTX 2070 Super iCraft 8G
SSD硬盘:WD Black-3D 250G M.2(NVME)
HDD硬盘1:Seagate ST2000DM001 2T
HDD硬盘2:Toshiba MD04ACA400 4T
显示器:Philips 273V5 1920x1080@60hz
电源:Seasonic FOCUS GX750 750W

2020年3月7日

旧显卡:MSI GeForce GTX 970
旧电源:Seasonic S12II-430 430W

想换散热器,想换机箱...没钱...

首先做好系统,我所使用的主机系统是manjaro,qemu+libvirt+ovmf虚拟出windows 10,并且PCI直通显卡

声音方面采用https://github.com/duncanthrax/scream 使用里面的IVSHMEM设备,这个设备其实looking-glass也有在使用

Ivshmem是虚拟机内部共享内存的pci设备。虚拟机之间实现内存共享是把内存映射成guest内的pci设备来实现的。
[IVSHMEM介绍][1]

简单介绍完后,那么开始


  1. 编辑虚拟机添加IVSHMEM的地址

    sudo virsh edit [该虚拟机名字]

在最底下</drivices>前面添加 (可以使用Page Down跳到最底)

<shmem name='scream-ivshmem'>
  <model type='ivshmem-plain'/>
  <size unit='M'>2</size>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x11' function='0x0'/>
</shmem>
  1. 下载并编译scream源码
    Scream源码在最新版本里下载 Source code (tar.gz) 并解压

    tar -zxvf ./scream-*.tar.gz

    cd ./scream-*

    cd ./Receivers/pulseaudio-ivshmem

    make

    mv scream-ivshmem-pulse ~

  2. 开启虚拟机,安装好驱动

    IVSHMEM驱动 下载好IVSHMEM驱动解压,打开设备管理器
    在系统设备里有个【PCI标准RAM控制器】 更新驱动

    捕获1.png
    捕获2.png
    捕获3.png

    选择好IVSHMEM目录
    捕获4.png
    捕获5.png

  3. 安装scream驱动
    Scream源码 在最新版本里下载 Scream[版本].zip 解压 以管理员模式运行install.bat

    捕获6.png
    捕获7.png

    运行regedit 注册表
    进入HEKY_LOCAL_MACHINESYSTEMCurrentControlSetServicesScream\
    创建Options项,在Options里面添加DWORD(32位)值 [UseIVSHMEM] 数值为2

    捕获1-1-1024x536.png

  4. 在声音设备里设置Scream为默认设备
    捕获2-1.png
  5. 在宿主机运行Scream IVSHMEM

    sudo ~/scream-ivshmem-pulse /dev/shm/scream-ivshmem


到此已完成,虚拟机已有声音,这教程我仅仅用于记录而已,大部分内容可以在链接中找到,如果有缺失要么版本更新了,要么没装命令

Ps:其实做好了延迟很高,并不能玩音游之类的游戏,如OSU