ACPI Power Button für VDR unter Debian GNU/Linux anpassen

Drückt man den Startknopf am Gehäuse eines laufenden PCs, fährt sich dieser unter Debian automatisch herunter. Diese Aktion wird mittels ACPI gesteuert. Standardmäßig wird das Kommando /sbin/shutdown -h -P now "Power button pressed" ausgeführt. Verwendet man VDR und hat den Rechner über ein ACPI-Wakeup-Skript für einen automatischen Start konfiguriert, um Aufnahmen zu tätigen, wird das Wakeup-Skript bei dieser Methode aber nicht ausgeführt.

Um dies zu ändern, passt man die entsprechende Kommandozeile im ACPI-Skript an, welches bei dieser Aktion ausgeführt wird. Zu finden ist es unter /etc/acpi/powerbtn-acpi-support.sh:

#!/bin/sh

# This script initiates a shutdown when the power putton has been
# pressed. Loosely based on the sample that ships with the acpid package.
# If the acpid sample is present as a real config file (as it was in earlier
# versions of acpid), we skip this script. (Purging and reinstalling acpid
# resolves this situation, or simply deleting /etc/acpi/events/powerbtn.)

if [ -f /etc/acpi/events/powerbtn -o -f /etc/acpi/events/powerbtn.dpkg-bak ] ; then 
    logger Acpi-support not handling power button, acpid handler exists at /etc/acpi/events/powerbtn or /etc/acpi/events/powerbtn.dpkg-bak.
    exit 0
fi

[ -e /usr/share/acpi-support/policy-funcs ] || exit 0

. /usr/share/acpi-support/policy-funcs

if CheckPolicy; then
    exit 0
fi

if [ -x /etc/acpi/powerbtn.sh ] ; then
    # Compatibility with old config script from acpid package
    /etc/acpi/powerbtn.sh
elif [ -x /etc/acpi/powerbtn.sh.dpkg-bak ] ; then
        # Compatibility with old config script from acpid package
    # which is still around because it was changed by the admin
        /etc/acpi/powerbtn.sh.dpkg-bak
else
    # Normal handling.
    #/sbin/shutdown -h -P now "Power button pressed"
    # Use svdrpsend to handle ACPI power event to set ACPI wakeup time in BIOS for next recording
    logger "Power button pressed. Using \"svdrpsend\" to power off machine."
    /usr/local/bin/svdrpsend HITK Power
fi

Die markierten Zeilen zeigen die Änderungen, die an dem Skript vorgenommen wurden. Das Setzen der Weckzeit erfolgt dabei über VDR beim Herunterfahren des Rechners über ein Shutdown-Skript. Um diesen Vorgang auch beim Drücken des Gehäuseknopfes zu erreichen, bekommt VDR über svdrpsend das Signal, dass der Power-Knopf der Fernbedienung gedrückt wurde. Das HITK-Kommando simuliert dabei den Tastendruck auf der Fernbedienung.

Zu beachten ist, dass der Power-Knopf in VDR unterschiedlich benannt sein kann. Um herauszufinden, wie er auf dem aktuellen System heißt, ruft man svdrpsend HITK (ohne weitere Argumente) in der Shell auf. Anschließend bekommt man eine Auflistung aller in VDR registrierten Fernbedienungstasten.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert