Das Paket bringt ein SysV-Init Skript mit, das beim Booten und beim Herunterfahren kurz ausgeführt wird und dabei die letzte Aufweckzeit löscht bzw. eine neue setzt.
Die Systemd-Unit wird dynamisch erzeugt und macht nichts anderes als das Skript mit start bzw. stop als Argument aufzurufen:
- $ systemctl cat vdr-addon-acpiwakeup
- # /run/systemd/generator.late/vdr-addon-acpiwakeup.service
- # Automatically generated by systemd-sysv-generator
- [Unit]
- Documentation=man:systemd-sysv-generator(8)
- SourcePath=/etc/init.d/vdr-addon-acpiwakeup
- [Service]
- Type=forking
- Restart=no
- TimeoutSec=5min
- IgnoreSIGPIPE=no
- KillMode=process
- GuessMainPID=no
- RemainAfterExit=yes
- ExecStart=/etc/init.d/vdr-addon-acpiwakeup start
- ExecStop=/etc/init.d/vdr-addon-acpiwakeup stop
Was es allerdings zumindest auf meinem Testsystem nicht mehr gibt, ist /proc/acpi/alarm (wohin das Skript die Aufweckzeit schreiben will). Damit schlägt der Aufruf von /etc/init.d/vdr-addon-acpiwakeup stop fehl.
Bei modernen Kerneln sollte das jetzt /sys/class/rtc/rtc0/wakealarm für die erste RTC sein. Außerdem scheint man nicht mehr wiederholt eine Aufwachzeit schreiben zu können, ohne vorher den Wakealarm auf 0 zu setzen.
Ich habe das Skript jetzt mal so angepasst, dass es die moderne Variante nutzt, um die Aufweckzeit zu setzen: https://launchpad.net/~yavdr/+…66/+listing-archive-extra
Langfristig überlege ich https://github.com/seahawk1986/acpiwakeup-ng für yaVDR zu paketieren, das ist für Systemd vorbereitet und nutzt ausschließlich die neue Methode.