헤드폰을 분리하면 어떤 코드가 실행됩니까?


답변:


9

전부는 아니더라도 대부분의 시스템에서 ACPI는이 이벤트를 처리 할 수 ​​있습니다. 그것을 테스트하려면 :

  1. 운영 acpi_listen
  2. 헤드폰 연결 해제 및 다시 연결, 예제 출력 : (마이크 / 이어가 랩탑의 동일한 잭에 공유 됨)

    jack/headphone HEADPHONE unplug
    jack/microphone MICROPHONE unplug
    jack/headphone HEADPHONE plug
    jack/microphone MICROPHONE plug
    
  3. 넣어 your-script.sh에서/etc/acpi/

  4. 스크립트에 이벤트 트리거 파일 추가 /etc/acpi/events/

    event=jack/headphone HEADPHONE unplug
    action=/etc/acpi/your-script.sh
    

    배울 다른 파일을 확인하십시오.

  5. acpid변경된 규칙을 다시로드 하려면 서비스를 다시 시작해야 할 수도 있습니다 ./etc/acpi/events/

    sudo service acpid restart
    

참고: man acpid


이제 ACPI 스크립에서 dbus를 작동시키는 방법을 찾아야하지만 다른 질문입니다.
int_ua 2016 년

2
@int_ua DBUS_SESSION_BUS_ADDRESS로 시작되는 스크립트를 사용하여 homedir의 파일에 환경 변수 를 작성해야합니다 ~/.config/autostart/dbus.desktop. 그럼 당신은 실행할 수 있습니다 su YOURUSER -c "DBUS_SESSION_BUS_ADDRESS=$(cat ~/.dbus_address) amixer ......."에서/etc/acpi/your-script.sh
Germar

이봐, 나는 알림을 표시하는 스크립트를 작성했습니다. 당신이 말한대로 정확히 따르십시오. 내 스크립트는 플러그 이벤트에서 알림 전송 "헤드폰 연결됨"을 실행합니다. 하지만 작동하지 않는 것 같습니다. askubuntu.com/questions/877804/…
thewebjackal

1

현재 스크립트 버전에 sleep 0.25명령이 포함되어 있습니다 .

sleep타이머 기반 있으므로 사용하지 않는 것입니다 어떤 자는 동안 처리주기를 ...

타이머를 설정하기 위해 매우 작은 비트의 CPU를 사용하지만 sleep 1(1 초 휴면), sleep 60( 1 분 sleep 86400휴면 ) 및 (1 일 휴면) 모두 동일한 수의 CPU주기를 사용합니다.

ACPI를 사용 그러나되어 완벽한 ACPI와 같은 솔루션은 이벤트 구동 대신 폴링 중심이다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.