xrandr로 감지되지 않은 해상도 설정

xrandr로 감지되지 않은 해상도 설정

Debian 10에서 HDMI-VGA 어댑터를 사용하여 Samsung SyncMaster 226 NW 디스플레이를 실행하려고 합니다. GPU는 버전 440.64의 독점 Nvidia 드라이버가 있는 RTX 2060 Super입니다.

Linux에서 사용 가능한 것으로 감지되는 유일한 해상도는 1280×720, 1024×768, 800×600 및 640x480입니다.

하지만 실제 기본 해상도는 1680×1050이며, Windows 듀얼 부팅 시 이 해상도를 설정하여 사용할 수 있습니다.

먼저 모델라인을 생성하는 데 xrandr사용하여 사용자 정의 해상도를 추가하려고 시도했습니다 . cvtxrandr의 새 모드를 만드는 데 사용된 명령은 다음과 같습니다.

xrandr --newmode "1680×1050_60.00"  146.25  1680 1784 1960 2240  1050 1053 1059 1089 -hsync +vsync

이 작업을 수행한 후 실행이 xrandr반환되었습니다.

Screen 0: minimum 8 x 8, current 1024 x 768, maximum 32767 x 32767
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 primary 1024x768+0+0 (normal left inverted right x axis y axis) 304mm x 228mm
   1024x768      60.00*+  60.00  
   1280x720      60.00  
   800x600       60.32  
   640x480       59.94  
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)
USB-C-0 disconnected (normal left inverted right x axis y axis)
  1680x1050_60.00 (0x1e4) 146.250MHz -HSync +VSync
        h: width  1680 start 1784 end 1960 total 2240 skew    0 clock  65.29KHz
        v: height 1050 start 1053 end 1059 total 1089           clock  59.95Hz

그러나 사용하려고 할 때

xrandr --addmode HDMI-0 "1680×1050_60.00"`

오류

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:  43
  Current serial number in output stream:  44

반환되었습니다. 사용

xrandr --output HDMI-0 --mode "1680×1050_60.00"

반환

xrandr: 오류로 인해 1680x1050_60.00` 모드를 찾을 수 없습니다.

출력 해상도를 1680x1050으로 올바르게 설정하려면 어떻게 해야 합니까?

답변1

방금 똑같은 문제에 2-3 시간을 보냈습니다. 너무 짜증나서 xrandr은 새로운 nvidia 드라이버에서 전혀 작동하지 않는 것 같습니다. 이제 나는 미치고 화를 낸 끝에 마침내 해결책을 찾았습니다. 그것이 여러분에게도 효과가 있기를 바랍니다.

터미널 "nvidia-settings"에서 시작하여 "X 서버 디스플레이 구성"으로 전환하고 하단의 "X 구성 파일에 저장" 버튼을 클릭한 다음 "미리보기 표시"를 클릭합니다. 이제 이 미리보기에서 'Section "Monitor"..... EndSection' 블록으로 이동하여 나중을 위해 저장합니다. 이것이 내가 xorg.conf의 모니터 설정에 대해 알게 된 방법입니다. 다른 방법도 있지만 이 방법은 NVIDIA 사용자에게 매우 안전하고 편리합니다.

그런 다음 해결 방법에 맞는 "Modeline"을 얻고 터미널에 다음을 입력하십시오.

cvt 1680x1050

나중에 출력을 저장합니다.

자, 이제 이 모든 항목을 xorg.conf 파일에 추가하고 예를 들어 /etc/X11/xorg.conf.d/10-monitor.conf라고 부르면 됩니다(적어도 내 배포판의 경로입니다). 나는 모니터 섹션도 모델라인도 없기 때문에 모니터 섹션과 모델라인에 대한 예를 제공하겠습니다(원하는/감지되지 않은 해상도는 1920x1080이었습니다).

Section "Monitor"
  Identifier "Monitor1"
  VendorName     "Unknown"
  ModelName      "Acer B246HL"
  HorizSync       30.0 - 80.0
  VertRefresh     55.0 - 76.0
  Option         "DPMS"
  Modeline "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync
EndSection

Section "Device"
  Identifier "Card0"
  Driver "nvidia"
  Option "HDMI-0" "Monitor1"
EndSection

Section "Screen"
  Identifier "Screen0"
  Device "Card0"
  Monitor "Monitor1"
  DefaultDepth 24
  SubSection "Display"
    Depth 24
    Modes "1920x1080_60.00"
  EndSubSection
EndSection

따라서 모니터 섹션에서 첫 번째 줄(식별자)을 유지하고 나머지는 nvidia 설정에서 저장한 값으로 바꾸고 마지막 줄은 cvt-명령의 출력입니다. Device-Section이 적합할 것입니다. 화면 섹션에는 "모드" 줄을 모드 이름으로 변경해야 하므로 아마도 모드 "1680x1050_60.00"과 같을 것입니다.

내 장치 섹션에도 'BusID "PCI:39:0:0"' 한 줄이 있는데, 그럴 필요는 없을 것 같습니다. 그러나 "X -configure"(xorg가 실행 중이면 안 됨)를 실행하여 해당 줄을 얻었습니다. BusID는 생성된 xorg.conf.new에 있어야 합니다. 이상하게도 제 경우에는 lspci의 BusID와 달랐습니다.

또한 여러 모니터를 실행하려면(나처럼) 식별자 "Monitor2" 등을 사용하여 새 모니터 섹션을 추가한 다음 Device-Section에 'Option "HDMI-1" "Monitor2"'를 적절하게 추가하세요. 마지막으로 'Monitor "Monitor2"'와 같은 화면 섹션에 모니터를 추가합니다.

내 경우 이상한 점은 정확히 동일한 모니터가 3개 있는데 그 중 하나가 nvidia-modeset에서 항상 인식되지 않는다는 것입니다. 이는 EDID와 관련이 있으며 다음에서 오류를 찾을 수 있습니다.

dmesg | grep EDID

관련 정보