하나의 X 화면만 작동합니다. 두 개의 X 화면을 얻으려면 어떻게 해야 합니까?

하나의 X 화면만 작동합니다. 두 개의 X 화면을 얻으려면 어떻게 해야 합니까?

내부적으로 nvidia-settings( sudo상승된 권한으로 실행) 두 번째 X Screen을 작동시킬 수 없습니다. 다음은 제가 시도한 한 가지에 대한 단계별 설명입니다.

  1. 왼쪽의 "X Server Display Configuration"을 선택합니다.
  2. 보조 디스플레이(수신기에 연결된 디스플레이)를 선택하세요.
  3. "구성" 드롭다운 목록에서 "새 X 화면(X를 다시 시작해야 함)"을 선택합니다.
  4. "적용"을 선택하세요
  5. 구성을 X 구성 파일에 저장해야 한다는 "적용할 수 없음" 대화 상자가 나타나면 "적용 가능"을 선택하십시오(그런 다음 변경 사항을 유지하려면 15초 이내에 "확인"을 선택해야 할 수도 있습니다).
  6. "X 프로필에 저장" 및 "저장"을 선택합니다.

변경 사항을 적용하기 위해 X 서버를 다시 시작하기 위해 컴퓨터를 다시 시작하고 다음을 통해 X 서버 프로세스를 다시 시작하는 등 다양한 방법을 시도했습니다.

sudo systemctl restart display-manager

여러 번 시도한 후에도 여전히 X 화면은 하나뿐입니다. systemd일기장 내용을 확인해 봤습니다 journalctl -e _COMM=gdm-x-session. 다음은 흥미로운 발췌 내용입니다.

(II) NVIDIA(0): Validated MetaModes:
(II) NVIDIA(0):     "DP-0:nvidia-auto-select+0+0"
(II) NVIDIA(0): Virtual screen size determined to be 2560 x 1440
(--) NVIDIA(0): DPI set to (108, 107); computed from "UseEdidDpi" X config
(--) NVIDIA(0):     option
(EE) NVIDIA(G0): GeForce GTX 960 (GPU-0) already has an X screen assigned;
(EE) NVIDIA(G0):     skipping this GPU screen
(EE) NVIDIA(G0): Failing initialization of X screen

다음은 다소 흥미로운 발췌 내용입니다.

(II) Loading sub module "glxserver_nvidia"
(II) LoadModule: "glxserver_nvidia"
(II) Loading /usr/lib64/xorg/modules/extensions/libglxserver_nvidia.so
(II) Module glxserver_nvidia: vendor="NVIDIA Corporation"
        compiled for 1.6.99.901, module version = 1.0.0
        Module class: X.Org Server Extension
(II) NVIDIA GLX Module  440.82  Wed Apr  1 19:47:36 UTC 2020
(II) NVIDIA: The X server supports PRIME Render Offload.
(WW) NVIDIA(0): Failed to initialize Base Mosaic!  Reason: Only one GPU
(WW) NVIDIA(0):     detected.  Only one GPU will be used for this X screen.

별로 흥미롭지 않은 발췌문은 다음과 같습니다.

(II) Initializing extension GLX
(II) Indirect GLX disabled.
(II) GLX: Another vendor is already registered for screen 0

메시지와 관련하여 GeForce GTX 960 (GPU-0) already has an X screen assigned; skipping this GPU screen Failing initialization of X screen이것이 실제로 근본 원인이라면 Fedora 31을 다시 설치하기 전에는 이것이 문제가 되지 않았던 이유를 이해할 수 없습니다. 현재 두 개의 GPU 장치가 정의되어 있음을 확인 /etc/X11/xorg.conf하고 확인했습니다. 각 X 화면은 하나의 파일에 있습니다(동일한 물리적 장치를 가리키더라도). 다음은 전문이다 /etc/X11/xorg.conf:

# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 440.82

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 2160
    Screen      1  "Screen1" Above "Screen0"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Files"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/input/mice"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Dell S2716DG"
    HorizSync       34.0 - 209.0
    VertRefresh     30.0 - 144.0
    Option         "DPMS"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "DENON, Ltd. DENON-AVR"
    HorizSync       30.0 - 136.0
    VertRefresh     58.0 - 121.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 960"
    BusID          "PCI:1:0:0"
    Screen          0
EndSection

Section "Device"
    Identifier     "Device1"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 960"
    BusID          "PCI:1:0:0"
    Screen          1
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-1"
    Option         "metamodes" "DP-0: nvidia-auto-select +0+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor1"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "metamodes" "HDMI-0: nvidia-auto-select +0+0 {AllowGSYNC=Off}"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

시스템 메시지

  • Fedora 31 새로 설치
  • "Fedora 31용 RPM Fusion - Nonfree - NVIDIA 드라이버" 저장소의 소프트웨어 센터를 통해 설치된 독점 Nvidia 드라이버가 포함된 그래픽 카드 1개(GeForce GTX 960)
  • 그래픽 카드에 연결된 모니터 2개
    • DisplayPort를 통한 기본 컴퓨터 디스플레이(Dell 컴퓨터 모니터에 연결됨)
    • 보조 디스플레이 + HDMI를 통한 사운드 출력(DENON 수신기에 연결됨)

질문

여러 개의 X Screen을 다시 작동시키는 방법을 아는 사람이 있나요? 더 유용한 기술 정보를 제공할 수 있으면 알려주시기 바랍니다(관련 쉘 명령을 제공해 주시면 매우 감사하겠습니다).

추가 배경: 두 개의 X 스크린을 사용하게 된 동기

컴퓨터는 어떤 디스플레이가 "기본"으로 선택되었는지 nvidia-settings또는 주문 방식에 관계없이 HDMI에 연결된 모든 디스플레이가 일부 활동에 대해 "기본"이라고 주장합니다 xorg.conf. POST 메시지, GRUB2 메뉴 및 기타 저수준 소프트웨어가 항상 HDMI(연결된 경우)를 통해 나타나기 때문에 이것이 그래픽 카드 펌웨어의 기능이라고 생각합니다. 이는 구성할 수 없습니다.

이 "HDMI 기본값" 현상은 운영 체제를 실행할 때 보조 모니터에서 새 창을 열 때 심각한 문제를 일으킬 수 있습니다. 수신기에 연결된 TV는 거의 항상 꺼져 있고, 수신기 자체는 소리를 제공하기 위해 켜져 있기 때문에 새 창이 표시되지 않습니다. + shift단축키를 사용 하면 TV를 열고 GUI를 통해 드래그하지 않고도 내가 선택한 모니터에 활성 창을 표시 할 수 있다는 것을 배웠습니다 . 성가신 것 외에도 때로는 새로 열린 창이 무시되거나 심지어 게임과 같은 일부 전체 화면 응용 프로그램이 올바른 모니터로 이동하지 못하거나 모니터 두 개만 확장되는 경우도 있습니다. 이는 중요한 유용성 문제입니다.window btnarrow btn

어느 시점에서 나는 다음과 같은 해결책을 떠올릴 수 있었습니다. 새로운 X Screen을 만들고 각 모니터에 고유한 X Screen을 할당하는 것입니다. 물론 이것은 운영 체제에서 발생한 문제만 해결하지만 꽤 만족스러운 솔루션입니다. 게임이 실행되고 창에 오류가 표시되지 않습니다.

이제 문제는 Fedora를 새로 설치한 후 X 서버가 두 개의 X Screen을 다시 실행하도록 할 수 없다는 것입니다.

답변1

많은 연구와 실험( .conf파일 및 기타 수단 사용) 후에도 이 문제의 근본 원인을 확인할 수 없었습니다. Fedora를 완전히 다시 설치하고 독점 Nvidia 드라이버를 설치하는 데 더욱 부지런히 노력함으로써 결국 두 X Screen이 다시 작동하게 되었습니다. 이 문제는 Nvidia 드라이버를 처음 설치할 때 미묘한 차이와 관련이 있을 수 있습니다. 내 최선의 이론은 Nvidia 드라이버 설치 프로그램이 Xconfig 유틸리티를 실행하라는 메시지를 표시했을 때 "예"를 선택했을 수 있다는 것입니다. 안타깝게도 제가 선택한 항목이 기억나지 않아서 그게 문제인지 잘 모르겠습니다.

아래에서는 가장 최근에 설치한 Nvidia 드라이버에 대해 설명합니다. 이로 인해 예상되는 X Screen 설정 동작이 발생했습니다. 이 프로세스에는 드라이버 설치와 실제로 관련이 없지만 수행한 결과로 기록된 몇 가지 개인적인 기본 설정이 포함되어 있습니다(개인 기본 설정은 그렇게 표시되어 있습니다). 1단계는 새로 설치한 후 가장 먼저 수행하는 작업입니다.

Fedora GNU/Linux에 독점 Nvidia 드라이버 설치:

  1. sudo dnf upgrade
  2. 컴퓨터를 다시 시작하세요sudo shutdown -r now
  3. sudo dnf install kernel-devel kernel-headers gcc make dkms acpid libglvnd-glx libglvnd-opengl libglvnd-devel pkgconfig
  4. sudo vi /etc/default/grub
    1. GRUB_CMDLINE_LINUX항목 에서 삭제합니다 rhgh quiet(개인 취향입니다).
    2. 여전히 GRUB_CMDLINE_LINUX항목을 추가 rd.driver.blacklist=nouveau하고nouveau.modeset=0
    3. 해당 줄 GRUB_TIMEOUT뒤에 새 줄 " "을 추가합니다 GRUB_TIMEOUT_STYLE=menu(개인 취향입니다).
    4. :wq저장 및 종료vi
  5. sudo grub2-editenv - unset menu_auto_hide(이건 제 개인적인 취향입니다)
  6. UEFI 부팅이 있고 Fedora를 실행하여 사용하는 GRUB2 구성을 재생성하고 있습니다. sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg(이것은 일반적으로 레거시 부팅이나 다른 배포판과 다릅니다.)
  7. 컴퓨터를 다시 시작하세요. sudo shutdown -r now(디스플레이의 해상도와 품질이 낮아집니다.)
  8. sudo init 3운영 체제를 런레벨 3으로 전환
  9. 메시지에 따라 로그인
  10. cd.runNvidia에서 다운로드한 파일이 포함된 디렉토리 로 이동 합니다(저에게는 ~/Downloads).
  11. sudo ./NVIDIA_driver_file_name.runsudo chmod +x [file_name]( 실행 가능하게 하려면 실행해야 할 수도 있음 )
  12. 메시지가 표시되면하다DKMS를 설치하고하다32비트 호환성 라이브러리 설치
  13. 메시지가 표시되면원하지 않는다Xconfig 유틸리티 실행
  14. 컴퓨터를 다시 시작하세요sudo shutdown -r now

답변2

CentOS7과 CentOS8의 두 화면에서 성공적으로 사용한 구성 파일의 예를 들어 보겠습니다. 이는 귀하가 사용하는 Fedora와 매우 유사합니다. 이전 시스템(CentOS5)에서는 xorg.conf를 사용했지만 이제는 다음을 입력합니다 /etc/X11/xorg.conf.d/20-nvidia-graphics.conf.

Section "ServerLayout"
    Identifier     "Default Layout"
    Screen         0 "Screen0" 0 0
    Screen         1 "Screen1" LeftOf "Screen0"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/input/mice"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "Device"
    Identifier     "Device1"
    Driver         "nvidia"
    Screen         1
    Option         "UseDisplayDevice" "DFP-1"
    Option         "ConnectedMonitor" "DFP-0, DFP-1"
    Option         "CustomEDID" "DFP-1:/etc/X11/ADP361.bin; DFP-0:/etc/X11/0.bin"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    Screen         0
    Option         "UseDisplayDevice" "DFP-0"
    Option         "ConnectedMonitor" "DFP-0, DFP-1"
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    DefaultDepth    24
    Option         "metamodes" "DFP-1: 1200x1920 +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    DefaultDepth    24
    Option         "metamodes" "DFP-0: 2048x2048 +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

이 파일은 내 컴퓨터에 두 개의 화면을 생성하며 각 화면에서 서로 다른 창 관리자를 실행할 수도 있습니다. 나는 당신이 둘 다에서 동일한 창 관리자를 실행하게 될 것이라고 추측합니다. 제 생각에 비결 중 하나는 모든 화면을 하나로 연결하는 Xinerama를 비활성화하는 것입니다.

구성 파일이 정확해질 때까지 조정해야 합니다. 나는 내 샘플이 나에게 효과적이기 때문에 좋은 시작이라고 믿습니다.

아마도 read-edid를 사용하여 모니터 EDID를 읽고 이를 파일로 제공할 수 있습니다. 이렇게 하면 드라이버는 파일에서 제공하는 EDID를 사용하므로 연결 내용이 중요하지 않다고 생각합니다.

관련 정보