Kulaklıklar çıkarıldığında hangi kod yürütülür?


Yanıtlar:


9

Hepsi olmasa da çoğu sistemde, ACPI bu olayı gerçekleştirebilir. Bunu test etmek için:

  1. Çalıştırmak acpi_listen
  2. Kulaklıkları çıkarın ve yeniden takın, örnek çıkış: (mikrofon / kulaklar dizüstü bilgisayarımdaki aynı jakta paylaşılır)

    jack/headphone HEADPHONE unplug
    jack/microphone MICROPHONE unplug
    jack/headphone HEADPHONE plug
    jack/microphone MICROPHONE plug
    
  3. Put your-script.shin/etc/acpi/

  4. Komut dosyanız için bir olay tetikleyici dosyası ekleyin /etc/acpi/events/

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

    Öğrenilecek diğer dosyaları kontrol edin.

  5. acpidİçindeki değişen kuralları yeniden yüklemek için hizmeti yeniden başlatmanız gerekebilir/etc/acpi/events/

    sudo service acpid restart
    

Referans: man acpid


Şimdi sadece dbus'u ACPI betiklerinden nasıl çalıştıracağımı öğrenmek zorundayım, ama bu farklı bir soru.
int_ua

2
@int_ua DBUS_SESSION_BUS_ADDRESSile başlayan bir komut dosyası ile ortam değişkenini ev ağınızdaki bir dosyaya yazmanız gerekir ~/.config/autostart/dbus.desktop. Sonra çalıştırabilirsiniz su YOURUSER -c "DBUS_SESSION_BUS_ADDRESS=$(cat ~/.dbus_address) amixer ......."den/etc/acpi/your-script.sh
Germar

Hey, bildirim göstermek için bir senaryo yazdım. Söylediklerini tam olarak takip ettim. Betiğim plug olayında "Kulaklık bağlı" bildirme-gönderme yürütür. BU çalışmıyor gibi görünüyor. askubuntu.com/questions/877804/…
thewebjackal

1

Komut dosyanızın geçerli sürümü artık bir sleep 0.25komut içeriyor .

sleepzamanlayıcı tabanlı olduğundan, uyku sırasında herhangi bir işlem döngüsü kullanmaz …

Zamanlayıcıyı ayarlamak için çok küçük bir CPU kullanır, ancak sleep 1(1 saniye uyku), sleep 60(bir dakika sleep 86400uyku ) ve (bir gün uyku) hepsi aynı sayıda CPU döngüsünü kullanır.

ACPI kullanmak , mükemmel bir çözümdür çünkü ACPI, yoklama yerine olay güdümlüdür.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.