xrandr, xorg 테스트 화면 오류 - 기본값이 유일한 유효한 모드인 것 같습니다.

xrandr, xorg 테스트 화면 오류 - 기본값이 유일한 유효한 모드인 것 같습니다.

Arch Linux, 커널 4.2.5-1, Lightdm 1.16.5, xorg-server 1.17.4-2, nvidia 255.11-4, GTX 780 듀얼 링크 dvi 출력 실행.

QNIX Evolution II 2710이 있고 이를 오버클럭하려고 하는데 xorg를 사용하는 데 몇 가지 문제가 있습니다. 요약하자면: xorg의 구성을 잘못된 방식으로 탐색하면 테스트 화면이 나타납니다. 출력 포트와 듀얼 DVI 케이블을 교체해 보았으나 변화가 없었습니다. 다음은 내 xorg.conf의 관련 부분입니다. 현재 구성에서 복사하여 붙여넣었고 작동하는 데스크탑을 선호하기 때문에 이 줄에 주석이 달렸습니다. :)


Section "Monitor"

#    HorizSync       88.8 - 88.8
#    VertRefresh     48.0 - 120.0
    Identifier     "Monitor0"
    VendorName     "Unknown"
#    ModelName      "HYO DUAL-DVI"
#    ModeLine       "2560x1440_60" 312.25 2560 2752 3024 3488 1440 1443 1448 1493 -hsync +vsync
#    ModeLine       "2560x1440_86" 330.00 2560 2608 2640 2652 1440 1441 1444 1445 +hsync +vsync
#    ModeLine       "2560x1440_96" 519.25 2560 2776 3056 3552 1440 1443 1448 1524 -hsync +vsync
#    ModeLine       "2560x1440_96_2" 400.00 2560 2608 2640 2744  1440 1443 1448 1512 +hsync +vsync
#    ModeLine       "2560x1440_99" 536.50 2560 2776 3056 3552 1440 1443 1448 1527 -hsync +vsync
#    ModeLine       "2560x1440_120" 661.25 2560 2784 3064 3568 1440 1443 1448 1545 -hsync +vsync
#    Modeline       "2560x1440_120_2" 459.86 2560 2608 2640 2652  1440 1441 1444 1445 +hsync +vsync
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 780"
    Option         "NoLogo" "True"
    Option         "ConnectedMonitor" "DFP-3"
#    Option         "CustomEDID" "DFP-3: /etc/X11/2710_edid_60.bin"
    Option         "IgnoreEDIDChecksum" "DFP-3"
EndSection

Section "Screen"

#    Option         "UseEDID" "False"
#    Option         "UseEDIDDPI" "False"
#    Option         "UseEDIDFreqs" "False"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "IgnoreEDIDChecksum" "True"
    Option         "ExactModeTimingsDVI" "True"
    Option         "ModeValidation" "AllowNon60hzmodesDFPModes, NoEDIDDFPMaxSizeCheck, NoVertRefreshCheck, NoHorizSyncCheck, NoDFPNativeResolutionCheck, NoMaxSizeCheck, NoMaxPClkCheck, AllowNonEdidModes"
# NoEDIDModes
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-3"
    Option         "metamodes" "nvidia-auto-select +0+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    Option         "Coolbits" "26"
    SubSection     "Display"
        Depth       24
    EndSubSection

#    Option "metamodes" "DFP-3: 2560x1440_60 +0 +0"
#    Option "metamodes" "DFP-3: 2560x1440_96 +0 +0"
#    Option "metamodes" "DFP-3: 2560x1440_99 +0 +0"
#    Option "metamodes" "DFP-3: 2560x1440_120 +0 +0"

EndSection

위의 모델 라인은 cvt에서 생성된 모델 라인과 동일한 모니터의 오버클럭에 대한 블로그 게시물에서 찾은 일부 모델 라인을 조합한 것입니다. 각 단일 모드는 xorg 테스트 화면(RGBW 색상 순환)을 생성합니다. 또한 xorg 시작 시 테스트 화면을 보장하기 위해 특별히 "NoEDIDModes" 옵션을 남겨 두었습니다. 복사 기본 스키마 외부에 모델 행을 추가하려고 하면 xrandr 오류가 발생합니다.

me@host /etc/X11 % xrandr --addmode DVI-D-0 2560x1440_96_2
X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  140 (RANDR)
  Minor opcode of failed request:  18 (RRAddOutputMode)
  Serial number of failed request:  39
  Current serial number in output stream:  40

그래서 나는 로그 레벨 6으로 x를 시작하고 결과 Xorg.2를 파헤쳤습니다. xorg.conf는 위의 conf에서 주석 처리되지 않은 모델 라인, 검사 및 적절한 메타 패턴과 함께 여기에서 사용됩니다. "모드 320x240d73이 유효하지 않음"이라는 1500줄이 있으므로 전체 로그를 게시하지 않겠습니다. 그러나 다음은 흥미롭다고 생각되는 일부 부분입니다.


[ 38519.330] (II) NVIDIA(GPU-0): --- Building ModePool for DFP-3 ---
[ 38519.330] (WW) NVIDIA(GPU-0): Unrecognized ModeValidation token "AllowNon60hzmodesDFPModes";
[ 38519.330] (WW) NVIDIA(GPU-0):     ignoring.
[ 38519.330] (WW) NVIDIA(GPU-0): Unrecognized ModeValidation token "NoEDIDDFPMaxSizeCheck";
[ 38519.330] (WW) NVIDIA(GPU-0):     ignoring.
[ 38519.330] (WW) NVIDIA(GPU-0): Unrecognized ModeValidation token
[ 38519.330] (WW) NVIDIA(GPU-0):     "NoDFPNativeResolutionCheck"; ignoring.
[ 38519.353] (II) NVIDIA(0): Using MetaMode string: "nvidia-auto-select +0+0"
[ 38519.353] (II) NVIDIA(0): Requested modes:
[ 38519.353] (II) NVIDIA(0):     "nvidia-auto-select+0+0"
[ 38519.353] (II) NVIDIA(0): Validated MetaModes:
[ 38519.353] (II) NVIDIA(0): MetaMode "nvidia-auto-select+0+0":
[ 38519.353] (II) NVIDIA(0):     Size: 1024 x 768
[ 38519.353] (II) NVIDIA(0):     DFP-3: "nvidia-auto-select"
[ 38519.353] (II) NVIDIA(0):         Size          : 1024 x 768

[ 38519.353] (II) NVIDIA(0):         Offset        : +0 +0
[ 38519.353] (II) NVIDIA(0):         Panning
[ 38519.353] (II) NVIDIA(0):          Domain       : 1024 x 768
[ 38519.353] (II) NVIDIA(0):          Tracking Area: 1024 x 768 +0 +0
[ 38519.353] (II) NVIDIA(0):          Border       : 0,0,0,0

[ 38519.398] (II) NVIDIA(0): Setting mode "nvidia-auto-select+0+0"

그게 다입니다... 오류나 경고는 없지만 이 메타 모드 옵션을 사용하려고 하면 어떤 이유로 메타 모드 "nvidia-auto-select"가 선택되는 것을 발견했습니다.

Option "metamodes" "DFP-3: 2560x1440_96 +0 +0"

다음으로 모니터의 edid를 .bin 파일로 내보내고 파일의 동일한 내용으로 기본 타이밍을 재정의하려고 했습니다(modeline/metamode 대신 edid 파일을 사용할 수 있는 경우 개념 증명). Xorg 테스트 화면: xorg.log에 다음이 있습니다.


[ 39803.648] (**) NVIDIA(0): Option "IgnoreEDIDChecksum" "True"

[ 39803.759] (WW) NVIDIA(0): The EDID read for display device DVI-D-0 is invalid: [ 39803.759] (WW) NVIDIA(0): - The EDID has a bad checksum. The "IgnoreEDIDChecksum" X configuration option may be used to attempt using mode timings in this EDID in spite of this error. A corrupt EDID may have mode timings beyond the capabilities of your display, and could damage your hardware. Please use with care.

[ 39803.778] (WW) NVIDIA(0): DFP-3 does not have an EDID, or its EDID does not contain a [ 39803.778] (WW) NVIDIA(0): maximum image size; cannot compute DPI from DFP-3's EDID.

적어도 이번에는 실수를 저질렀습니다. IgnoreEDIDChecksum 옵션을 사용하고 EDID의 체크섬이 실제로 올바른지 개인적으로 확인하지 않는 한. 제가 원하는 모델라인으로 edid.bin을 손수 만들었지만, 아쉽게도 이런 오류가 없이 테스트할 수는 없습니다.

어떤 도움/의견이라도 감사하겠습니다 :)

관련 정보