다중 모니터가 있는 도킹 스테이션에서 xrandr이 실패함

다중 모니터가 있는 도킹 스테이션에서 xrandr이 실패함

편집: 문제를 해결하는 질문 끝에 뭔가를 추가했습니다. 이는 Robert Simmer의 제안을 기반으로 하므로 그의 대답은 올바른 것으로 표시됩니다.

Lenovo USB-C 도크를 노트북에 콜드 플러그로 꽂았더니 2개의 추가 모니터(총 3개)가 작동하기 시작했습니다.

그러나 도크를 핫플러그할 때 다음 오류가 발생합니다 arandr.

XRandR returned error code 1:
X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 140 (RANDR)
Minor opcode of failed request: 21 (RRSetCrtcConfig)
Serial number of failed request: 44
Current serial number in output stream: 44
  1920x1080 (0x48) 142.600MHz -HSync -VSync *current +preferred
        h: width  1920 start 1936 end 1952 total 2080 skew    0 clock  68.56KHz
        v: height 1080 start 1083 end 1088 total 1142           clock  60.03Hz
  1920x1080 (0x56f) 138.500MHz +HSync -VSync
        h: width  1920 start 1968 end 2000 total 2080 skew    0 clock  66.59KHz
        v: height 1080 start 1083 end 1088 total 1111           clock  59.93Hz

또한 3개의 모니터를 모두 사용하는 경우 어느 시점에서 노트북 화면이 무작위로 앱을 정지시키는 경우가 많기 때문에 이를 방지하기 위해 노트북 화면을 비활성화하는 경우가 많습니다.

내 노트북은 Lenovo X1 Carbon 8세대입니다. 저는 Wayland가 아닌 i3 및 X11을 사용하는 완전히 최신 버전의 Manjaro Linux를 사용하고 있습니다.

아래는 단축된 출력입니다.xrandr --verbose

  1. 모니터가 연결되어 있지 않으면 다음과 같은 결과가 나타납니다.
xrandr --verbose | grep -E '^[^[:space:]]|curr|pref' | sed -e 's/(norm.*)//' 

Screen 0: minimum 8 x 8, current 6535 x 2434, maximum 32767 x 32767
eDP1 connected primary 1920x1080+1256+1354 (0x48) normal  310mm x 170mm
  1920x1080 (0x48) 142.600MHz -HSync -VSync *current +preferred
DP1 disconnected 
DP1-1 connected 
  1440x900 (0x78b) 106.500MHz +HSync -VSync +preferred
DP1-2 connected 
  1920x1080 (0x56f) 138.500MHz +HSync -VSync +preferred
DP1-3 disconnected 
DP2 disconnected 
HDMI1 disconnected 
VIRTUAL1 disconnected

  1. 도크를 연결하고 재부팅한 후(즉, 모든 것이 잘 작동함) 다음을 얻습니다.
Screen 0: minimum 8 x 8, current 4740 x 3600, maximum 32767 x 32767
eDP1 connected primary 1920x1080+2820+2520 (0x4b) normal  310mm x 170mm
  1920x1080 (0x4b) 142.600MHz -HSync -VSync *current +preferred
DP1 disconnected 
DP1-1 connected 900x1440+0+0 (0x4c) right  410mm x 260mm
  1440x900 (0x4c) 106.500MHz +HSync -VSync *current +preferred
DP1-2 connected 1920x1080+900+1440 (0x4d) normal  530mm x 300mm
  1920x1080 (0x4d) 138.500MHz +HSync -VSync *current +preferred
DP1-3 disconnected 
DP2 disconnected 
HDMI1 disconnected 
VIRTUAL1 disconnected

답변:

좋아요! 따라서 arandr을 완전히 사용하지 말고 다음을 사용하십시오.


xrandr --output DP1-2 --auto 
xrandr --output DP1-1 --auto  

핫 플러그 ​​시 두 개의 외부 모니터가 작동하도록 합니다.

그런 다음 다음을 사용할 수 있습니다.



xrandr --output eDP1 --primary --mode 1920x1080 --pos 2820x2520 --rotate normal --output DP1 --off --output DP1-1 --mode 1440x900 --pos 0x0 --rotate right --output DP1-2 --mode 1920x1080 --pos 900x1440 --rotate normal 

설정하세요. 이전에는 위의 내용을 스크립트에 넣는 것만으로는 작동하지 않았지만 스크립트의 두 화면 모두에 대해 --auto를 포함하면 핫플러그 시에도 작동합니다.


xrandr --output DP1-2 --auto 
xrandr --output DP1-1 --auto  

xrandr --output eDP1 --primary --mode 1920x1080 --pos 2820x2520 --rotate normal --output DP1 --off --output DP1-1 --mode 1440x900 --pos 0x0 --rotate right --output DP1-2 --mode 1920x1080 --pos 900x1440 --rotate normal 

그러나 arandr --auto(각각 개별적으로)를 사용하여 설정을 실행하지 않으면 실패합니다.

내가 아는 한, 이 단계를 수행할 때 dmesg에는 아무런 변화가 없습니다.

답변1

xrandr오류 메시지에는 어떤 명령이 실행되었는지 arandr(그리고 어떤 의도로) 표시되지 않습니다.

여기서는 몇 가지 가정을 해야 합니다. 귀하의 의견으로 이를 확인/거부하시기 바랍니다. 그래서 내 가정은 다음과 같습니다.

  • 도크에서 부팅하면 모든 모니터가 작동합니다.
  • 도크가 핫 플러그되면 내부 디스플레이만 계속 표시되고 외부 디스플레이는 검은색/꺼진 상태로 유지됩니다.
  • 어떤 래퍼를 사용하고 계시나요? arandr(저는 잘 모르겠습니다. 문제를 조사할 때는 제외하는 것이 가장 좋습니다!)
  • arandr외부 모니터를 켜고 싶습니다 .

다음부터 시작하겠습니다.

xrandr --output DP1-1 --auto

그런 다음

xrandr --output DP1-2 --auto

무슨 일이야?

나는 이것이 비슷한 일을 하고 있다고 추측했지만 arandr불행히도 이 명령은 작동하지 않았습니다. 커널의 새 출력을 포함하지 않았습니다( 명령 dmesgxrandr두 번 호출되기 전후에 표시됩니다. 있는 경우 새 메시지만 보고됩니다).

그래도 문제가 해결되지 않으면 한 번에 하나씩 저해상도 모니터를 구동해 보십시오. 예를 들어:

xrandr --output DP1-1 --mode 800x600

일하다?

내가 아는 전부는:

  • 이는 픽셀 클럭 문제가 아닙니다. 콜드 스왑 모니터는 모든 다른 모델과 주파수에서 작동하며 픽셀 클럭 부족으로 인해 이를 지원할 수 없습니다.
  • 모니터를 연결한 후의 출력은 연결된 것으로 보고되기 때문에 "모니터 꺼짐"처럼 보입니다. 이는 도크가 없어도 마찬가지입니까? (또는 도킹 스테이션을 사용하지만 모니터 케이블을 제거하시나요?)

답변2

핫 스왑 상황에서 이 명령이 실패한다는 말씀이신가요?

xrandr --output eDP1 --primary --mode 1920x1080 --pos 2820x2520 --rotate normal \
    --output DP1 --off \
    --output DP1-1 --mode 1440x900 --pos 0x0 --rotate right \
    --output DP1-2 --mode 1920x1080 --pos 900x1440 --rotate normal

여전히 왜 작동하지 않는지에 대한 의문이 남습니다.

이를 핫스왑하고 하나씩 실행하여 어느 것이 실패하는지 알 수 있습니까?

xrandr --output eDP1 --primary --mode 1920x1080 --pos 2820x2520
xrandr --output DP1-1 --mode 1440x900 --pos 0x0 --rotate right
xrandr --output DP1-2 --mode 1920x1080 --pos 900x1440
xrandr --output DP1 --off

그런데 모니터 3개가 한쪽 모서리에서만 대각선으로 닿아 있는 줄 알았는데 맞나요?

관련 정보