외부 모니터 용 xrandr에 새 모드를 추가 할 수 없습니다 640×480

오늘 저는 두 번째 모니터를 노트북에 연결하려고했습니다. 나는 가지고있다:

  • 엔비디아 그래픽 카드
  • 304.43 드라이버 [xrandr 1.2 지원]
  • archlinux [최신]
  • 멋진 wm
  • 크 랜더 1.3

내 문제는 외부 모니터 (VGA)의 해상도가 640×480보다 큽니다. xrandr -q :

Screen 0: minimum 8 x 8, current 1920 x 800, maximum 8192 x 8192
VGA-0 connected 640x480+1280+0 (normal left inverted right x axis y axis) 0mm
   640x480        59.9*+
   320x240       120.1
LVDS-0 connected 1280x800+0+0 (normal left inverted right x axis y axis) 331m
   1280x800       59.9*+
HDMI-0 disconnected (normal left inverted right x axis y axis)

보시다시피 VGA의 해상도가 더 높지 않으므로 새 모드를 추가합니다.

xrandr --newmode $(gtf 1280 1024 70.4 | grep Modeline | sed s/Modeline\ // | tr -d '"')

Windows에서 사용 가능한 해상도와 새로 고침 빈도를 확인했습니다. 그 중 하나는 1024x768x70입니다 (모니터의 OSD는 70.4HZ라고 말했습니다). 새 모드를 만든 후 추가하고 싶었습니다.

xrandr --addmode VGA-0 1280x1024_70.40

그리고 … 실패했습니다 :

X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  153 (RANDR)
  Minor opcode of failed request:  18 (RRAddOutputMode)
  Serial number of failed request:  29
  Current serial number in output stream:  30

구글에서 나는 오래된 xrandr / nvidia 드라이버가 사용 가능한 모드 목록에 문제가 있다는 것을 알았지 만 이제는 nvidia 드라이버가 xrandr 1.2를 지원하면 더 좋습니다. 또한 낮은 해상도와 새로 고침 빈도 (예 : 1024x768x50)로 시도하지만 같은 오류가 발생합니다. 이 문제와 관련하여 아이디어가 없습니다 …



답변

문자열 xrandr --newmode을 직접 작성했는지 또는 다른 곳에서 복사 했는지 확실하지 않지만 현재 양식에서는 작동하지 않습니다.

단계별로 수행하는 것이 좋습니다.

먼저 새 모드를 생성해야합니다. LCD에서 60Hz 또는 CRT 모니터에서 85Hz를 사용하는 것이 좋습니다

gtf 1280 1024 60

당신은 다음과 같은 것을 얻을 것입니다 :

 # 1280x1024 @ 60.00 Hz (GTF) hsync: 63.60 kHz; pclk: 108.88 MHz
 Modeline "1280x1024_60.00"  108.88  1280 1360 1496 1712  1024 1025 1028 1060  -HSync Vsync

그런 다음이 모드를 xrandr사용하여 제시하십시오 --newmode( ‘Modeline’으로 시작하는 행을 복사 하여 붙여 넣기하십시오.

 xrandr --newmode "1280x1024_60.00"  108.88  1280 1360 1496 1712  1024 1025 1028 1060  -HSync Vsync

그런 다음이 모드를 VGA-0에 추가하십시오.

xrandr --addmode VGA-0 "1280x1024_60.00"

그리고 마지막으로이 새로운 모드를 사용할 수 있습니다 :

 xrandr --output VGA-0 --mode 1280x1024_60.00


답변

큰 따옴표로 묶은 모드를 성공적으로 사용할 수 없기 때문에 이전에 추가 한 “1280x1024_60.00″을 삭제할 때까지이 BadMatch 오류 문제가 발생했습니다. 결국 더 나은 모드 이름이 도움이된다는 것을 깨달았습니다.

그래서 일반 사용자로 다음을 실행하여 “1280x1024_60.00″을 삭제했습니다.

$ xrandr --version
reports 1.4.0 and 1.4
$ xrandr | grep 1280 #Do you see any 1280x1024 anywhere?  Does it have double quotes?
$ xrandr --verbose --delmode VGA1 '"1280x1024_60.00"'
$ xrandr --verbose --rmmode '"1280x1024_60.00"'

시스템에서 정크를 삭제하고 제거하면 계정 및 루트에서 정크를 삭제하더라도 종종 작동하지 않거나 다시 나타납니다. 일반적으로 VGA1 대신 VIRTUAL1이라는 출력으로 돌아옵니다.

정크를 남기고 새로 만든 모드의 끝에 편지를 추가하고 .00을 떨어 뜨린 경우가 훨씬 1280x1024_60B 임을 알았습니다 . 아래에 –newmode 매개 변수 주위에 큰 따옴표가 있지만 NOT –addmode 또는 –mode는주의하십시오

$ xrandr --verbose --newmode "1280x1024_60B" 108.88 1280 1360 1496 1712 1024 1025 1028 1060 -HSync +Vsync
$ xrandr --verbose --addmode VGA1 1280x1024_60B
$ xrandr --verbose --output VGA1 --mode 1280x1024_60B

화면이 약간 깜박이고 외부 19 인치 사각형 모니터가 1280×1024에서 실행 중입니다.


답변

VM (특히 VirtualBox)에서 Linux를 실행하는 경우 VM에 충분한 비디오 메모리가 있는지 확인하십시오.

xrandr를 실행하려고 할 때 비디오 메모리가 너무 적 으면이 오류가 발생합니다.


답변

나는 비슷한 문제를 해결하기 위해 2 시간을 보내고 문제는 vga 케이블에있었습니다. vga 케이블 교체 xrandr 또는 xorg를 사용하지 않고 해상도를 1920×1080으로 변경할 수 있습니다. 정말 이상합니다.


답변