proxmox吧 关注:462贴子:878

分享一下自己pve下直通显卡给win10串流玩游戏的过程

只看楼主收藏回复

机器镇楼


IP属地:上海1楼2022-07-01 15:16回复
    机器配置如下:
    cpu::10100T
    主板:华擎z490m Pro4
    显卡:耕升gtx950
    其他硬件对显卡直通的影响应该不大,就不介绍了。
    先上一张最终跑分图


    IP属地:上海2楼2022-07-01 15:18
    收起回复
      后面介绍下整个直通显卡的配置过程,pve系统请提前安装好。
      第一步,开启iommu。
      1、bios内开启vt-d
      2、编辑文件/etc/default/grub,将GRUB_CMDLINE_LINUX_DEFAULT="quiet“,修改为GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on pcie_acs_override=downstream textonly video=astdrmfb video=efifb:off"

      3、编辑文件/etc/modules,增加vfio vfio_iommu_type1 vfio_pci vfio_virqfd,这四个一行一个


      IP属地:上海3楼2022-07-01 15:32
      回复
        第二步,设置gpu的相关直通配置
        1、使用lspci查看显卡的设备位置,记录下来

        2、使用lspci -n -s 设备位置,记录得到的设备id

        3、编辑文件/etc/modprobe.d/vfio.conf,增加options vfio-pci ids=设备id(逗号分隔多个) disable_vga=1

        4、编辑文件/etc/modprobe.d/kvm.conf,增加options kvm ignore_msrs=1 report_ignored_msrs=0
        5、编辑文件/etc/modprobe.d/iommu_unsafe_interrupts.conf,增加options vfio_iommu_type1 allow_unsafe_interrupts=1
        6、禁用驱动,编辑/etc/modprobe.d/pve-blacklist.conf,增加blacklist nvidiafb blacklist nouveau blacklist nvidia,这三个一行一个


        IP属地:上海4楼2022-07-01 15:36
        回复
          这里讲一下这个iommu分组的一个坑,上一楼的iommu列表里面前面的数组就代表这个硬件的iommu分组,相同分组的硬件 要不全部直通给同一个虚拟机,要不就全不直通!!!

          以我这块板子为例,他设计上,两个m2接口是同一个iommu组的,两个pciex1和m2 wifi插槽是同一组的,两个pciex16各属于一个组。
          我之前系统盘装在上面的一个m2,然后想直通下面的m2给黑裙,直接就死机了,后面才发现是这里的问题。然后家用主板的iommu不支持更进一步的拆分了,但是x99那类的好像可以更进一步拆分组。pve官网的描述如下,


          IP属地:上海6楼2022-07-01 15:48
          回复
            5楼被删了。这里补一下,可能因为放了一个链接
            上面第一步第二步执行完以后执行
            update-grub
            update-initramfs -u
            重启pve


            IP属地:上海7楼2022-07-01 15:53
            回复
              iommu分组的图片也补一下

              我这里显卡是插在第一个x16槽上的,单独是一组。


              IP属地:上海8楼2022-07-01 15:55
              收起回复
                接下来就是创建win10虚拟机了,这里需要提前准备好win10的iso镜像,这个官网下就可以了,然后还需要一个virtio-win.iso镜像,这个网上下一下,里面有一些驱动。
                安装的硬件选项和配置如下图
                记得将virtio-win.iso挂载成一个光驱,然后直通pci设备选择自己的显卡,点击高级,RomBar,pci,不要勾主GPU。


                后面我还增加了一些选项,不过上面这个是我试出来的一定没问题的配置。
                使用scsi总线安装win10的时候会找不到磁盘,点左下角的加载驱动程序,弹出来的框点击确定,选择图中这一个安装(应该其他的也可以,我安装的是这一个)


                IP属地:上海9楼2022-07-01 16:08
                回复
                  虚拟机系统自己会重启个两次,就是正常win10安装流程,后续正常操作安装就行。进入桌面以后,打开设备管理器,有一个问号设备,右键更新驱动程序,然后选浏览我的电脑查找驱动程序,选择virtio-win.iso的那一个位置,然后自动查找安装网卡驱动。
                  这里讲一个noVnc窗口大小设置的方法,因为uefi模式的win10,不管里面怎么调分辨率不会影响这个控制台的显示窗口大小。调整的办法是启动虚拟机的一开始,控制台里按esc,可以进入到下面这个界面,然后依次按图中的选项,就可以调整分辨率了,注意要重新启动虚拟机才能生效,当次不生效。




                  IP属地:上海10楼2022-07-01 16:16
                  回复
                    然后安装显卡驱动,接个显示器到显卡上,从官网下载驱动,安装。流程没问题的情况下可以看到显示器就亮了,显卡工作正常。
                    后续要串流的话,还是需要显卡上接一个显示器的,或者接一个显卡欺骗器,我目前就是接的一个显卡欺骗器。另外显卡设置差不多以后,需要在虚拟机的显示设置上,设置成只在显卡的那一个显示器上显示(注意,这样设置以后noVnc就没有画面了),或是显卡的显示器为主屏幕,noVnc那一个显示器为扩展。
                    注意,如果设置成了复制这些显示,运行游戏的时候会特别卡。因为noVnc那一个屏幕性能很低,显卡被拖后腿了。


                    IP属地:上海11楼2022-07-01 16:24
                    收起回复
                      到这里最基本的显卡直通就完成了,我试验了网上很多配置方法,上面介绍的这种是我实验出来我这里可行,不会出现code43的。
                      最终虚拟机里任务管理器,cpuz,gpuz如下





                      IP属地:上海12楼2022-07-01 16:31
                      收起回复
                        后续我还会补充几个其他的优化配置:
                        1、解决windows虚拟机pve概要里内存显示不正常的问题
                        2、配置windows的guest agent以在pve中查看ip
                        3、隐藏windows虚拟机中是否虚拟机 是的标识,来运行部分不允许在虚拟机下运行的游戏,软件等
                        4、有开机密码的windows,开机的时候免密登录


                        IP属地:上海13楼2022-07-01 16:36
                        收起回复
                          这个是我的配置


                          IP属地:四川来自Android客户端14楼2022-07-28 20:58
                          回复
                            看这个帧数(没在家只能用手机


                            IP属地:四川来自Android客户端15楼2022-07-28 21:13
                            回复
                              还有串流的话建议直通网卡或者上支持sr-iov的网卡,我测过virtio网卡和x540虚拟出来的vf延迟差距很大


                              IP属地:四川来自Android客户端16楼2022-07-29 00:23
                              收起回复