xrandr을 사용하여 감지되지 않은 해상도 설정

xrandr을 사용하여 감지되지 않은 해상도 설정

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

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

하지만 실제 기본 해상도는 1680×1050으로 윈도우 듀얼부팅 시 설정해 사용할 수 있다.

xrandr사용자 지정 해상도 추가를 사용해 본 후 먼저 cvt모델 행을 생성하는 데 사용했습니다. xrandr에 대한 새 스키마를 생성하는 데 사용되는 명령은 다음과 같습니다.

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

그런 다음 Run이 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 명령의 출력입니다. 장비 섹션이 도움이 될 것입니다. 화면 섹션에서 "mode" 행을 모드 이름으로 변경하면 "1680x1050_60.00" 모드와 같을 수 있습니다.

내 장치 섹션에 "BusID "PCI:39:0:0"" 줄도 있지만 필요하지 않을 것 같습니다. 그러나 "X -configure"(xorg는 실행되어서는 안 됨)를 수행하여 해당 줄을 얻었습니다. BusID는 생성된 xorg.conf.new에 있어야 합니다. 이상한 점은 내 경우에는 lspci의 BusID와 동일하지 않다는 것입니다.

또한 나처럼 여러 모니터를 실행하려면 식별자 "Monitor2" 등을 사용하여 새 모니터 섹션을 추가한 다음 장치 섹션에 그에 따라 "Option "HDMI-1" "Monitor2" 를 추가하고 마지막으로 "모니터 "Monitor2""와 같은 화면 섹션에 모니터를 추가합니다.

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

dmesg | grep EDID

관련 정보