부팅하기 전에 연결된 외부 디스플레이 (썬더 볼트를 통해 랩톱에 연결됨)가 제대로 작동합니다. 그러나 일단 전원 플러그를 뽑거나 분리하면 xrandr는 다시 연결된 모니터를 더 이상 감지하지 않습니다.
나는 실행하고 Arch Linux
사용하는 bumblebee
그래픽 카드 취급. 외부 카드는 벼락 커넥터를 통해 연결됩니다. 누군가 기계에 어떤 문제가 있는지 알려 주시면 어떻게 핫 플러깅 작업을 수행 할 수 있습니까? 감사.
[디버깅 세부 사항]
여러 스레드를 따라 bumblebee
하고 udevadm
, 나는 몇 가지 테스트를하고 핫 플러그 스크립트를했다. 그러나 문제는 여전히 해결되지 않았습니다. 결과는 다음과 같이 게시됩니다.
땅벌의 경우, 두 번째 모니터가 핫 플러그되지 않았을 때 잘 감지되므로 많이 조정하지 않았습니다.
핫 플러그 관련 문제 나는 다음을 수행했다.
모니터가 정상적으로 작동하면, xrandr --query
반환
Screen 0: minimum 8 x 8, current 2944 x 1080, maximum 32767 x 32767
eDP1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 382mm x 215mm
1920x1080 60.02*+
...
DP1 connected 1024x768+1920+0 (normal left inverted right x axis y axis) 0mm x 0mm
1024x768 60.00*
...
DP2에서 모니터를 udevadm monitor --environment --udev
연 상태 에서 플러그를 뽑을 때 수집 된 정보는 다음과 같습니다.
UDEV [979.022342] change /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)
ACTION=change
DEVNAME=/dev/dri/card0
DEVPATH=/devices/pci0000:00/0000:00:02.0/drm/card0
DEVTYPE=drm_minor
HOTPLUG=1
ID_FOR_SEAT=drm-pci-0000_00_02_0
ID_PATH=pci-0000:00:02.0
ID_PATH_TAG=pci-0000_00_02_0
MAJOR=226
MINOR=0
SEQNUM=2650
SUBSYSTEM=drm
TAGS=:master-of-seat:uaccess:seat:
USEC_INITIALIZED=3775241
그리고 모니터를 꽂을 때 :
UDEV [1111.426386] change /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)
ACTION=change
DEVNAME=/dev/dri/card0
DEVPATH=/devices/pci0000:00/0000:00:02.0/drm/card0
DEVTYPE=drm_minor
HOTPLUG=1
ID_FOR_SEAT=drm-pci-0000_00_02_0
ID_PATH=pci-0000:00:02.0
ID_PATH_TAG=pci-0000_00_02_0
MAJOR=226
MINOR=0
SEQNUM=2651
SUBSYSTEM=drm
TAGS=:seat:uaccess:master-of-seat:
USEC_INITIALIZED=3775241
UDEV [1111.522857] change /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)
ACTION=change
DEVNAME=/dev/dri/card0
DEVPATH=/devices/pci0000:00/0000:00:02.0/drm/card0
DEVTYPE=drm_minor
HOTPLUG=1
ID_FOR_SEAT=drm-pci-0000_00_02_0
ID_PATH=pci-0000:00:02.0
ID_PATH_TAG=pci-0000_00_02_0
MAJOR=226
MINOR=0
SEQNUM=2652
SUBSYSTEM=drm
TAGS=:seat:uaccess:master-of-seat:
USEC_INITIALIZED=3775241
그 보인다 udev
모니터가 연결되어 때 나는 잘 살고 업 있도록 도움말에있는 udev 규칙, 하드웨어를 검색 할 수 있습니다 xrandr
사용하는 새 모니터를. 내 스크립트 /etc/udev/rules.d/95-monitor-hotplug.rules
는 다음과 같습니다.
ACTION=="change", SUBSYSTEM=="drm", RUN+="/usr/local/bin/hotplug_monitor.sh"
그리고 /usr/local/bin/hotplug_monitor.sh
이다
#!/bin/sh
export XAUTHORITY=/home/chong/.Xauthority
function connectDP1(){
DISPLAY=:0 xrandr --output DP1 --auto --right-of eDP1
}
function disconnectDP1(){
DISPLAY=:0 xrandr --output DP1 --off
}
function connectDP2(){
DISPLAY=:0 xrandr --output DP2 --auto --right-of eDP1
}
function disconnectDP2(){
DISPLAY=:0 xrandr --output DP2 --off
}
xrandr | grep "DP1 connected" &> /dev/null && connectDP1 || disconnectDP1
xrandr | grep "DP2 connected" &> /dev/null && connectDP2 || disconnectDP2
스크립트는 정상적으로 실행되고 종료되지만 이후에도 xrandr --query
여전히 표시 DP1
되고 DP2
연결이 끊어집니다.