Linux 终端可同时利用 GPU 和双显示器

Linux 终端可同时利用 GPU 和双显示器

我有以下设置:

  1. 配备 GPU(PCIe 上的 AMD RX 6900 XT GPU)和 iGPU(集成 GPU,例如 Intel UHD Graphics)的 PC,
  2. 每个 GPU 都连接到一个显示器,因此基本上是双 GPU + 双显示器设置,
  3. Linux Debin 12 主机,
  4. 为方便起见,假设 AMD GPU 的 id 为 pci-0000_03_00_0,而 iGPU 的 id 为 pci-0000_00_02_0。
  5. 我只有一个没有任何桌面环境(甚至没有 X11)的裸 Linux,因为我正在使用的程序非常耗资源。

我希望 iGPU(主 GPU,在 BIOS 上设置)成为显示 Linux 主机输出内容的主 GPU,而另一个 GPU 显示利用该 GPU 显示内容的任何程序(我计划为此 GPU 进行挖掘或 AI 工作)。

            ╔━━━━━━━━━━━━━━━━━━━━━━━━━╗
            ║                         ║
            ║                         ║
            ║        Monitor 1        ║        
            ║                         ║        
            ║                         ║        
            ║                   ┏━━━━┓║        
            ╚━━━━━━━━━━━━━━━━━━━┫HDMI┣╝        
                                ┗━━┳━┛         
                                   ┃             ┏━━━━━━━━━━━━┓
                                   ┃           ┏━┫     PC     ┣━━━━━━━━━━━━┓
                                   ┃           ┃ ┗━━━━━━━━━━━━┛            ┃
      ╔━━━━━━━━━━━━━━━━━━━━━━━━━╗  ┃           ┃                           ┃
      ║                         ║  ┃       ┏━━━┻━━━━┓                      ┃
      ║                         ║  ┗━━━━━━━┫  iGPU  ┣                      ┃
      ║        Monitor 2        ║          ┃     ┏━━┛                      ┃
      ║                         ║          ┗━━━┳━┛                         ┃
      ║                       ┏━╨━━┓       ┏━━━┻━━━━━┓                     ┃
      ╚━━━━━━━━━━━━━━━━━━━━━━━┃HDMI┃━━━━━━━┫ AMD GPU ┃                     ┃
                              ┗━━━━┛       ┃     ┏━━━┛                     ┃
                                           ┗━━━┳━┛                         ┃
                                           ┏━━━┻━━━━━┓                     ┃
                 ┏━━━━━━━━━━━━━━━━┳━━━━━━━━┃ USB Hub ┃━━━━━━━━━━━━━━━━━━━━━┛
        ┏━━━━━━━━┻━━━━━━━━━┓      ┃        ┗━━━━━━━━━┛
        ┃┏┓┏┓┏┓┏┓┏┓    ┏┓┏┓┃    ┏━╋━┓
        ┃┏┓┏┓┏┓┏┓┏┓ ┏┓ ┏┓┏┓┃    ┃   ┃
        ┃┏┓┏━━━━┓┏┓┏┓┏┓┏┓┏┓┃    ┗━━━┛
        ┗━━━━━━━━━━━━━━━━━━┛

在当前设置下,只有连接到 iGPU 的第一个显示器显示输出,而连接到 AMD GPU 的第二个显示器仅显示带有光标的空白屏幕。

我尝试使用

DRI_PRIME=pci-0000_03_00_0 ./my_script.sh

没有成功。我甚至尝试使用 virsh 分离我的 AMD GPU,如下所示:

sudo virsh nodedev-detach pci_0000_00_02_0 && DRI_PRIME=pci-0000_03_00_0 ./my-script.sh

也没有成功。上述操作导致第一个显示器完全空白,而第二个显示器没有任何变化(只有闪烁的光标)。

我也尝试摆弄帧缓冲区,例如

echo /dev/urandom | sudo tee /dev/fb[x]

(x 为帧缓冲区的数量;0-1)也无济于事。结果仍然只影响第一台显示器,而不影响第二台。

有什么想法我可以如何实现这个概念?

答案1

我认为我可以使用 linux multiseat 来实现我的目标。来源:https://www.lightofdawn.org/wiki/wiki.cgi/LinuxMultiSeat

相关内容