mDP 케이블이 연결되거나 연결 해제되는 시기를 감지하기 위해 기본 udev 규칙을 설정했습니다.
파일은/etc/udev/rules.d/95-monitor-hotplug.rules
KERNEL=="card0", SUBSYSTEM=="drm", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/var/run/gdm/auth-for-vazquez-OlbTje/database", RUN+="/usr/bin/arandr"
mDP 케이블이 연결되거나 연결 해제되면 aranr가 시작되어야 하지만 아무 일도 일어나지 않습니다. 또한 규칙을 다시 로드했습니다.
udevadm control --reload-rules
++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++ ++++++++++++++++++++++++ 문제가 해결되었습니다. @Gilles가 제공한 링크를 사용하세요. 내 .profile
then 포인터 ENV{$XAUTHORITY}="/home/user/.Xauthority"
와 ACTION=="change"
규칙 파일에 다음 코드를 추가했습니다 . 그 후 모든 것이 예상대로 작동했습니다. 고마워요 자일스.
case $DISPLAY:$XAUTHORITY in
:*:?*)
# DISPLAY is set and points to a local display, and XAUTHORITY is
# set, so merge the contents of `$XAUTHORITY` into ~/.Xauthority.
XAUTHORITY=~/.Xauthority xauth merge "$XAUTHORITY";;
esac
답변1
기본적으로 이 add
작업에는 udev 규칙이 적용됩니다. udev 규칙은 모니터가 아닌 그래픽 카드에 있으므로 그래픽 카드가 시스템에 추가될 때 실행됩니다. 이는 기본적으로 부팅 시를 의미합니다.
모니터를 삽입하면 change
작업이 아닌 add
작업이 발생합니다. udevadm monitor
모니터를 실행하고 연결하여 이를 관찰 할 수 있습니다 . 따라서 udev 규칙은 change
작업을 지정해야 합니다.
KERNEL=="card0", SUBSYSTEM=="drm", ACTION=="change", \
ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/var/run/gdm/auth-for-vazquez-OlbTje/database", RUN+="/usr/bin/arandr"
온라인에서 찾은 예는 내 이해를 확인시켜주었습니다.코딩 토니WHOmonitor-hotplug.sh
스크립트당신은 관심이 있을 수도 있습니다.
아래 파일 이름은 재부팅할 때마다 변경되므로 /var/run
스크립트에서 자동으로 결정해야 합니다.이 답변도움이 될 것입니다.
답변2
nvidia 카드를 다루는 사람이라면 udev 규칙이 작동하려면 커널 모드 설정을 켜야 합니다.
sudo grubby --update-kernel=ALL --args='nvidia-drm.modeset=1'