Ubuntu HD VDR mittels Xine und VDPAU - ACPI Shutdown/Wakeup

Aus VDR Wiki
Version vom 17. April 2011, 13:45 Uhr von Wirbel (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

ACPI Shutdown/Wakeup

Damit eurer VDR automatisch vor einer Aufnahme startet, und nach der Aufnahme sich wieder "schlafen" legt, benötigt Ihr hierfür ACPI Shutdown/Wakeup.

ACPI Funktion des Mainboards prüfen

dmesg |grep -i acpi
[    0.000000]  BIOS-e820: 00000000bff90000 - 00000000bff9e000 (ACPI data)
[    0.000000]  BIOS-e820: 00000000bff9e000 - 00000000bffd0000 (ACPI NVS)
[    0.000000]  modified: 00000000bff90000 - 00000000bff9e000 (ACPI data)
[    0.000000]  modified: 00000000bff9e000 - 00000000bffd0000 (ACPI NVS)
[    0.000000] ACPI: RSDP 00000000000fbba0 00024 (v02 ACPIAM)
[    0.000000] ACPI: XSDT 00000000bff90100 0005C (v01 060810 XSDT1613 20100608 MSFT 00000097)
[    0.000000] ACPI: FACP 00000000bff90290 000F4 (v03 060810 FACP1613 20100608 MSFT 00000097)
[    0.000000] ACPI: DSDT 00000000bff904a0 099D4 (v01  A1537 A1537000 00000000 INTL 20060113)
[    0.000000] ACPI: FACS 00000000bff9e000 00040
[    0.000000] ACPI: APIC 00000000bff90390 00080 (v01 060810 APIC1613 20100608 MSFT 00000097)
[    0.000000] ACPI: MCFG 00000000bff90410 0003C (v01 060810 OEMMCFG  20100608 MSFT 00000097)
[    0.000000] ACPI: WDRT 00000000bff90450 00047 (v01 060810 NV-WDRT  20100608 MSFT 00000097)
[    0.000000] ACPI: OEMB 00000000bff9e040 0007A (v01 060810 OEMB1613 20100608 MSFT 00000097)
[    0.000000] ACPI: HPET 00000000bff99e80 00038 (v01 060810 OEMHPET0 20100608 MSFT 00000097)
[    0.000000] ACPI: NVHD 00000000bff9e0c0 00284 (v01 060810  NVHDCP  20100608 MSFT 00000097)
[    0.000000] ACPI: Local APIC address 0xfee00000
usw....

Zugriff auf RTC wakealram prüfen

sudo find /sys/class/rtc/rtc0/wakealarm
/sys/class/rtc/rtc0/wakealarm

Bios Uhrzeit auf UTC Zeit stellen

sudo hwclock --systohc --utc

Prüfen ob UTC gesetzt ist

sudo cat /etc/default/rcS
# /etc/default/rcS
#
# Default settings for the scripts in /etc/rcS.d/
#
# For information about these variables see the rcS(5) manual page.
#
# This file belongs to the "initscripts" package.

TMPTIME=0
SULOGIN=no
DELAYLOGIN=no
UTC=yes
VERBOSE=no
FSCKFIX=no

Prüfen ob die Bios Uhrzeit auf UTC steht

sudo hwclock --debug
Benutze /dev interface to clock.
Letzte Abweichungskorrektur vorgenommen bei 1286457365 Sekunden nach 1969
Letzte Kalibrierung vorgenommen bei 1286457365 Sekunden nach 1969
Hardwareuhr geht nach UTC Zeit
Die Hardwareuhr läuft vermutlich in UTC.
Warte auf Uhrtick…
… erhielt Uhrtick
Zeit gelesen aus Hardwareuhr: 2010/10/07 13:23:43
Zeit der Hardwareuhr: 2010/10/07 13:23:43 = 1286457823 Sekunden seit 1969
Do 07 Okt 2010 15:23:43 CEST  -0.893575 Sekunden

Manuellen Test durchführen

Hier wird der "wakealarm" gelöscht falls vorhanden:

sudo bash -c "echo 0 > /sys/class/rtc/rtc0/wakealarm"

Und hier wird der "wakealarm" auf 5 Minuten nach der aktuellen UTC Uhrzeit gesetzt.

sudo bash -c "echo `date '+%s' -d '+ 5 minutes'` > /sys/class/rtc/rtc0/wakealarm"

Gesetzten Timer prüfen

"rtc_time" zeigt die aktuelle UTC Uhrzeit des Bios an. Der Wert "alrm_time" zeigt die UTC Uhrzeit an wann der VDR hochfahren wird. In unserem Fall sind das 5 Minuten nach der aktuellen UTC Uhrzeit des Bios.

sudo cat /proc/driver/rtc
rtc_time    : 12:35:49
rtc_date    : 2010-10-08
alrm_time    : 12:40:46
alrm_date    : 2010-10-08
alarm_IRQ    : yes
alrm_pending    : no
24hr        : yes
periodic_IRQ    : no
update_IRQ    : no
HPET_emulated    : yes
DST_enable    : no
periodic_freq    : 1024
batt_status    : okay

VDR herunterfahren

sudo poweroff

ACPI Wakeup automatisieren

vdrpoweroff Skript als User root starten

Damit der vdruser das vdrpoweroff Skript ausführen kann benötigt dieser root Rechte. Achtung! Der untiger Eintrag muss als letzte Zeile hinzugefügt werden.

sudo visudo
vdruser ALL=(ALL) NOPASSWD: /usr/bin/hwclock

vdrpoweroff.sh Skript anpassen

vi /usr/local/bin/vdrpoweroff.sh
#!/bin/bash
sudo hwclock --systohc --utc

NextTimer=$(($1 - 600 ))  # 10 minutes earlier

sudo bash -c "echo 0 > /sys/class/rtc/rtc0/wakealarm"
sudo bash -c "echo $NextTimer > /sys/class/rtc/rtc0/wakealarm"

sudo /sbin/poweroff

Links

  1. ACPI Wakeup