acpi, xrandr, /sys 및 udev 없이 모니터가 연결되거나 연결 해제되는 시기를 어떻게 감지합니까?

acpi, xrandr, /sys 및 udev 없이 모니터가 연결되거나 연결 해제되는 시기를 어떻게 감지합니까?

나는 다음 질문에 대한 답변을 읽었습니다.이 문제하지만 ACPI가 없어서 /sys/class/drm/card0-socket/status작동하지 않고 xrandr메서드가 CPU를 차단합니다.udevadm monitor모니터를 연결(분리)하면 아무 것도 표시되지 않습니다.

저는 2013년경에 nVidia Quadro 등을 갖춘 Lenovo ThinkPad w530을 사용하고 있습니다. nouveau드라이버를 사용하여 Lubuntu 18.04를 실행하고 있습니다 . 모니터는 27인치 필립스 271S 입니다. VGA 케이블을 사용하고 있습니다.

모니터 삽입(플러그 분리)을 감지하는 방법은 무엇입니까?

답변1

저는 외부 화면의 EDID를 폴링했습니다. read-edid 패키지를 설치하고 visudo에 한 줄을 추가했습니다.

%sudo ALL=(ALL:ALL) NOPASSWD:/usr/bin/get-edid

비밀번호 없는 get-edid를 허용하고 다음 루프를 사용하십시오.

#!/bin/bash
#edid_based_automatic_display_loop.sh
내보내기NEW_CONNECTION=1
NEW_DISCONNECTION=1 내보내기

하지만:
하다
    잠 1
    sudo get-edid 2>/dev/null|parse-edid 2>/dev/null|grep "PHL 271S7Q">/dev/null
    _DISCONNECTED=`에코$?`
    # Echo "$_DISCONNECTED 연결이 끊어졌습니다"
    if [ $_DISCONNECTED = "0" -a $NEW_CONNECTION = "1" ] ;
        NEW_DISCONNECTION=1 내보내기;
        NEW_CONNECTION=0 내보내기;
        bash /home/bruno/.screenlayout/only_external.sh
    elif [ $_DISCONNECTED = "1" -a $NEW_DISCONNECTION = "1" ] ;
        NEW_DISCONNECTION = 0 내보내기;
        NEW_CONNECTION=1 내보내기;
        bash /home/bruno/.screenlayout/only_laptop.sh
    필리핀 제도
완벽한

관련 정보