두 개의 그래픽 카드(intel 및 nvidia)를 사용하여 듀얼 헤드 설정을 시도할 때 xorg 문제

두 개의 그래픽 카드(intel 및 nvidia)를 사용하여 듀얼 헤드 설정을 시도할 때 xorg 문제

제가 하고 싶은 것은 FreeBSD 13.1을 사용할 때 두 개의 서로 다른 모니터에 연결된 두 개의 GPU를 동시에 사용하고 싶기 때문에 xorg.conf 파일을 올바르게 구성하는 것입니다. 하나의 모니터/GPU에서 Blender를 사용하여 일부 3D 모델링을 수행하고 두 번째 모니터/GPU(nvidia 1060 또는 Intel UHD Graphics 630)를 사용하여 일부 튜토리얼을 시청하려는 경우 유용할 수 있습니다. 세 번째 GPU(geforce RTX 2080 ti)도 있지만 bhyve Linux VM을 전달하기 위해 유지하고 싶습니다. BIOS에서 Nvidia Geforce 1060 또는 Intel GPU를 PC 부팅에 사용할 GPU로 설정할 수 있습니다. 기본값으로 선택해야 할 GPU가 올바른지 잘 모르겠습니다. 그래서 제가 따르고 싶은 계획은 다음과 같습니다.

  1. AOC 모니터링 -> HDMI 케이블 ---> GPU nvidia Geforce 1060

  2. 모니터 Samsung SynchMaster ---> hdmi 케이블 ---> GPU intel 'CoffeeLake-S GT2 [UHD Graphics 630]'

  3. 나중에 구입한 다른 모니터에 연결된 GPU Geforce RTX 2080 Ti

실제로 저는 이 xorg.conf를 사용하고 있습니다.https://pastebin.ubuntu.com/p/DhW6RHS3zb/

대신 Xorg.0.log 파일은 다음과 같습니다.https://pastebin.ubuntu.com/p/YtdPq9fngQ/

내 앞에는 Geforce 1060의 HDMI 포트에 AOC 모니터가 연결되어 있습니다. 내 오른쪽에는 Intel GPU의 HDMI 포트에 연결된 모니터 samsung syncmaster가 있습니다. 무슨 일이 일어나고 있는지는 삼성 디스플레이가 부분적으로 작동하고 있다는 것입니다. 이 장치로 연결될 수 있는 유일한 앱은 다음과 같습니다(HDMI 케이블을 통해 Intel GPU에 연결됨).

[marietto@marietto ~]$ export DISPLAY=:0.1 ; konsole

and :

[marietto@marietto ~]$ export DISPLAY=:0.1 ; chrome

(firefox는 화면 0.0에만 표시할 수 있습니다. 이유를 모르겠습니다)

여기에서 내 컴퓨터에 연결된 모든 PCI 장치 목록을 찾을 수 있습니다.

https://pastebin.ubuntu.com/p/Gx5DqckFQP/

일부 앱을 DISPLAY=:0.1(모니터 Samsung SynchMaster ---> hdmi 케이블 ---> gpu intel 'CoffeeLake-S GT2 [UHD Graphics 630])로 내보낼 수 있습니다. 하지만 이 방법은 전혀 불편하지 않습니다. 실제로 세션이 이미 실행 중이라고 나오므로 다른 xorg 세션을 실행할 수 없습니다. 다른 xfce4 세션을 실행할 수 없습니다. 일부 응용 프로그램만 표시하면 xorg.conf 파일의 케이블과 드라이버를 반대로 바꾸고 Intel GPU를 AOC 모니터에 기본 GPU로 연결하고 nvidia 1060을 Samsung 동기화 호스트에 보조 GPU로 연결하면 동작은 다음과 같습니다. 동일, 차이점은 디스플레이를 반대로 했다는 것입니다. Xinerama를 활성화하려고 시도했지만 제대로 작동하지 않았습니다. 마우스가 정지되고 어쨌든 두 개의 화면을 하나로 연결하는 것은 물리적으로 연결되어 있지 않기 때문에 어리 석습니다. 내가 원하는 것은 모니터 1에서 몇 가지 작업을 수행하고 모니터 2에서 몇 가지 다른 작업을 수행하는 것입니다.

# xrandr -q

Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 32767 x 32767
DVI-D-0 disconnected (normal left inverted right x axis y axis)
DP-0 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-0 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 598mm x 336mm
   1920x1080     60.00*+  59.94    50.00    60.00    50.04  
   1680x1050     59.95  
   1440x900      59.89  
   1280x1024     75.02    60.02  
   1280x960      60.00  
   1280x720      60.00    59.94    50.00  
   1024x768      75.03    70.07    60.00  
   800x600       75.00    72.19    60.32    56.25  
   720x576       50.00  
   720x480       59.94  
   640x480       75.00    72.81    59.94    59.93  
DP-2 disconnected (normal left inverted right x axis y axis)
DP-3 disconnected (normal left inverted right x axis y axis)
DP-4 disconnected (normal left inverted right x axis y axis)
DP-5 disconnected (normal left inverted right x axis y axis)

arandr는 연결된 유일한 모니터는 nVidia 1060 GPU에 연결된 모니터 AOC인 HDMI-0이라고 말합니다. 하지만 xorg.conf에서 드라이버와 케이블을 반대로 바꾸면 연결된 유일한 모니터는 다시 HDMI-0이 되지만 이번에는 Samsung Synchmaster가 됩니다.

NVidia 드라이버가 실제로 일부 Xorg 라이브러리를 대체하므로 문제가 발생할 수 있습니다. 오늘날 이 문제는 libmap.conf(5)를 현명하게 사용하여 해결할 수 있습니다. 그러나 Xorg 자체가 두 개의 서로 다른 그래픽 카드가 동시에 작동하는 것을 좋아하지 않을 수도 있다는 사실은 바뀌지 않습니다. 예를 들어 NVidia 드라이버는 libEGL.so의 수정된 버전을 사용합니다. Xorg(실제로는 mesa)는 완전히 동일한 라이브러리를 제공하지만 NVidia 드라이버에는 수정된 NVidia 버전이 필요합니다. 예전에는 NVidia 드라이버 설치가 Xorg libEGL.so를 덮어쓰거나 대체했습니다. 이는 더 이상 허용되지 않습니다(한 패키지는 다른 패키지의 파일을 덮어쓸 수 없습니다). 이 문제는 libEGL.so의 NVidia 수정 버전을 NVidia-libEGL.so로 저장하고 그에 따라 libmap.conf(5)를 구성하여 해결되었습니다. 이제 Nvidia 드라이버가 libEGL.so 로드를 요청하면 실제로 NVidia-libEGL.so를 로드합니다(libmap.conf(5)의 매핑으로 인해).

나는 해결책이 없습니다. 너?

관련 정보