V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
hanssx
V2EX  ›  Linux

pve 直通独显之 PCIE 插槽问题

  •  
  •   hanssx · 2022-07-08 12:02:21 +08:00 · 3090 次点击
    这是一个创建于 658 天前的主题,其中的信息可能已经有所发展或是发生改变。

    硬件

    MATX 主板微星 B660M 迫击炮,2 个 PCIE X16 ,不过他们是不一样的,

    PCIE_1 号是挨着 CPU 的,与 CPU 直通,且是 PCIE 4 ;

    PCIE_2 号与芯片组相通,且是 PCIE 3

    pve

    版本:最新版本 7.2-5

    当显卡插在 PCIE_1 号的时候,可以成功直通到 win10 虚拟机;

    当显卡插在 PCIE_2 号的时候,无法成功直通到 win10 虚拟机。

    pve 相关配置,除去 grub 配置不一样外,其他配置均一样:

    • 当显卡插在 PCIE_1 号的时候,
    GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on video=vesafb:off,efifb:off"
    
    • 当显卡插在 PCIE_2 号的时候,
    GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on pcie_acs_override=downstream,multifunction video=vesafb:off,efifb:off"
    

    多了这么一个配置 pcie_acs_override=downstream,multifunction 因为如果不加这个配置,则会有另外一个设备和显卡(06:00.0)在一个 iommu 分组,

    Imgur

    当加了这个配置的时候,就会成功分开组,只有显卡自己在一个分组,

    Imgur

    虚拟机

    版本:windows10 ltsc 2019

    相关配置(加了直通显卡,最后一项 hostpci0) Imgur

    勾选了除 GPU 之外的其他 3 项, Imgur

    Imgur

    问题(需求)

    因为要插 2 块显卡做直通,所以是要用到与芯片组相通的那个 PCIE_2 号插槽, 现在如果是 PCIE_2 号的显卡做直通,直通完之后 win10 第一次启动会崩溃, Imgur Imgur

    然后第二次启动直接黑屏,qm stop <虚拟机 ID>之后,会出现这种 BUG ,网上查询说 CPU 繁忙,出现这种 BUG 复现成功率很高,因为我试了几次都是这样,需要等一段时间才会消失,应该是和 win10 虚拟机有关, Imgur

    猜测

    猜测和 PCIE_2 号是与芯片组相通有关,但是不知道怎么做才能解决,网上搜了好像也没有人解决,难道只能换主板? MAXT 主板好像 Z690 系列的也没有找到 2 个 PCIE X16 都是与 CPU 直通的。。。

    13 条回复    2022-07-12 11:32:15 +08:00
    feather12315
        1
    feather12315  
       2022-07-08 12:33:34 +08:00 via Android
    不能用 PCIE_1 吗?
    sidkang
        2
    sidkang  
       2022-07-08 12:46:39 +08:00 via Android
    最好补充一下 dmesg log
    suriv520
        3
    suriv520  
       2022-07-08 13:04:55 +08:00
    这种情况与主板的设计有关,你的 PCIe2 有可能不是直连 CPU 通道的,而是走芯片组。
    hanssx
        5
    hanssx  
    OP
       2022-07-10 12:58:57 +08:00
    @sidkang 我把硬件全部先装好之后,重装了 PVE ,目前在 Linux 中直通又遇到了问题,还在解决中。Linux 是可以识别到硬件的,只是提示这儿,
    [Imgur]( )
    @GoRoad
    这个我看了,应该是不需要,尝试加了也没用。
    GoRoad
        6
    GoRoad  
       2022-07-11 09:57:42 +08:00
    @hanssx #5 你的 linux 是不是可以识别到显卡,但是装驱动后检测不出来 是这样吗
    hanssx
        7
    hanssx  
    OP
       2022-07-11 14:10:05 +08:00
    @GoRoad 是的,就是我 5L 里面那个图,显卡是可以识别的,但是无论你怎么装驱动,虚拟机开机还是会提示那个图,无论是 PCIE_1 还是 PCIE_2 的显卡,你 4L 给俺的配置俺试过了好像不行。

    我装的 Linux Mint 20.3(相当于 Ubuntu 20),然后网上搜索,无论是升级到最新内核 5.15 ,还是在 /etc/下某个文件(具体忘了,现在解决问题的电脑没在身边)中加入一些配置,仍然没有效果,还在尝试摸索中。
    GoRoad
        8
    GoRoad  
       2022-07-11 18:40:24 +08:00
    @hanssx #7 你的虚拟机是 uefi 启动的吗,那你对应的 pcie 口也应该是 efi 模式,如果这两个启动模式不一致 那就会出现显卡可以检测出来,但是驱动加载不了显卡
    hanssx
        9
    hanssx  
    OP
       2022-07-11 20:12:44 +08:00
    @GoRoad 是的,是 uefi 启动的,pcie 也有这种模式?那 pcie 怎么设置呀。
    hanssx
        10
    hanssx  
    OP
       2022-07-11 20:41:46 +08:00
    难不成只能尝试做 VBIOS ?还没弄过,我研究一下。
    hanssx
        11
    hanssx  
    OP
       2022-07-11 20:59:54 +08:00
    按照 https://pve.proxmox.com/wiki/Pci_passthrough#GPU_OVMF_PCI_Passthrough_.28recommended.29
    我都尝试了,包括切换到 q35+PCIE ,添加 x-vga=on (也就是勾选主显示器),都不行。
    目前在学习弄 VBIOS ,看看加载 VBIOS 行不行,期望能行,如果不行就难受了。
    hanssx
        12
    hanssx  
    OP
       2022-07-11 22:05:09 +08:00
    @GoRoad 成功了,哈哈,PCIE_2 在 Linux 下也可用了。
    更新内核
    写入 /etc/modules
    ```
    nvidia
    nvidia-drm
    nvidia-modeset
    ```
    pve 虚拟机显示设置为“无”
    GoRoad
        13
    GoRoad  
       2022-07-12 11:32:15 +08:00
    @hanssx #12 看来玩 pve 还得是服务器级别的主板,我用的超微的主板 除了 efi 设置之外别的啥也不用管 按照官方教程就行了。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   909 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 20:55 · PVG 04:55 · LAX 13:55 · JFK 16:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.