easyVDR Kopie des easyVDR-Forums zum Nachschlagen
[gelöst] Problem mit ACPI Wakeup auf Gigabyte GA-MA78G-DS3H Mainboard

easyVDR - >VARforumsname - >[gelöst] Problem mit ACPI Wakeup auf Gigabyte GA-MA78G-DS3H Mainboard

soulianis  04.Jun.2009 12:24:10
Liebe easyVDR Community,

ich brauche jetzt wohl doch nochmal Hilfe. Nach Umbau meines VDR auf ein neues Mainboard (bei Interesse siehe meinen vorigen Thread [url=http://www.easy-vdr.de/forum/index.php?topic=7316.0]hier) versuche ich nun - bisher erfolglos - ACPI Wakeup ans Laufen zu bekommen.

Wegen SATA habe ich auf den Kernel 2.6.28.9 upgedated (von der sheep iso). Der VDR läuft, und bis auf ACPI Wakeup funktioniert alles perfekt. Soweit ich [url=http://www.easy-vdr.de/forum/index.php?topic=7079.0]hier lese, sollte ACPI Wakeup aber mit diesem Kernel funktionieren.

Folgendes passiert beim Ausschalten:
Next acpi alarm at: 2009-06-04 09:14
/usr/bin/easyvdrshutdown.sh: line 221: echo: write error: Das Argument ist ungültig
/usr/bin/easyvdrshutdown.sh: line 223: echo: write error: Das Argument ist ungültig

Das sind folgende Zeilen in der /usr/bin/easyvdrshutdown.sh:
      ##### Kernel < 2.6.22 #####
      case "$ACPI_METHOD" in
        "PROC")
          if [ "$TIMER" != "0" ] ; then
            $LOGGERCMD "Next acpi alarm at: $NEXT_ALARM"
>>>        echo -n "$NEXT_ALARM" > $PROC_ALARM
            sleep 2
>>>        echo -n "$NEXT_ALARM" > $PROC_ALARM
          else
            $LOGGERCMD "No timer set"
          fi
        ;;

Nun ist das aber ein Kernel >= 2.6.22, sodass doch anstatt der PROC die SYS Methode verwendet werden sollte. Vermutlich liegt das daran, dass es auf meinem System die Datei /sys/class/rtc/rtc0/wakealarm nicht gibt !?!

Ich habe in der /usr/bin/easyvdrshutdown.sh vor dem poweroff mal zur Diagnose ein cat /proc/driver/rtc eingebaut. Ergebnis:
rtc_time        : 08:59:21
rtc_date        : 2009-06-04
rtc_epoch      : 1900
alarm          : **:**:**
DST_enable      : no
BCD            : yes
24hr            : yes
square_wave    : no
alarm_IRQ      : no
update_IRQ      : no
periodic_IRQ    : no
periodic_freq  : 0
batt_status    : okay

Die Konfiguration des 2.6.28.9 sheep Kernels ist (was RTC betrifft, ich denke, das ist hier relevant):
#
# Processor type and features
#
...
CONFIG_HPET_EMULATE_RTC=y
...
#
# Power management and ACPI options
#
...
# CONFIG_PM_TRACE_RTC is not set
...
#
# Non-8250 serial port support
#
...
CONFIG_RTC=y
...

Ist das so in Ordnung? Sollte es dann die Datei /sys/class/rtc/rtc0/wakealarm geben oder nicht?

Es gibt in dem [url=http://www.vdr-wiki.de/wiki/index.php/ACPI_Wakeup#.C3.9Cberpr.C3.BCfen_der_Hardwaref.C3.A4higkeiten]ACPI Wakeup Artikel im VDR Wiki Hinweise auf Statusmeldungen im Kernel-Log, nämlich:
ACPI: RTC can wake from S4
...
rtc0: alarms up to one month

Auf meinem System erscheinen jedoch keine dieser Meldungen im Kernel-Log. Dementsprechend gibt auch ein dmesg | grep -i rtc nix aus. Ich vermute, dass da etwas falsch konfiguriert ist, habe aber bisher nicht herausgefunden, was es sein könnte.

Noch ein paar Details:

In oben genanntem Artikel wird mein Mainboard in der [url=http://www.vdr-wiki.de/wiki/index.php/ACPI_Wakeup#Liste_getesteter_Mainboards]Liste getesteter Mainboards aufgeführt. Dort steht, dass die Kerneloption hpet=disable gesetzt werden sollte. Habe ich gemacht, hat keinen Unterschied ergeben, also habe ich das wieder rückgängig gemacht.

Auf dem Gigabyte GA-MA78G-DS3H Mainboard ist das F4 BIOS installiert. Folgende Einstellungen habe ich im BIOS vorgenommen:
ACPI Suspend Type: S3
Soft-Off by Power Button: Delay 4 sec
USB Wake Up from S3: disabled
Modem Ring Resume: disabled
PME Event Wake Up: disabled
HPET Support: disabled
Power On by Mouse: disabled
Power On by Keyboard: disabled
AC Back Function: Soft-Off
Power-On by Alarm: disabled

Das sollte doch in Ordnung sein, oder? Hat jemand eine Idee, warum das bei mir nicht funktioniert?

Ich bin für jede Hilfe dankbar!
easyVDR 0.6.10/VDR 1.4.7, Kernel 2.6.28.9 (wolf), ASUS M3N78 Mainboard (NVIDIA GeForce 8200 Chipset), AMD X2 4850e 2x2.5GHz CPU, 2GB RAM, 32 GB Super Talent Ultradrive GX MLC Solid State Disk (FTM32GX25H), 2 x 2TB WD AV-GP Platten (WD20EVDS), LG GH22NS30 SATA DVD-Brenner, TechnoTrend C-1500 DVB-C, Hauppauge PVR-150 Analog, Ausgabe über MagicDVD , atric IR-Empfänger/Einschalter, schwarzes Silverstone Lascala LC20 Gehäuse, Loewe RC4 Fernbedienung (VCR-Modus)
soulianis  04.Jun.2009 22:41:52
Problem ist gelöst  :D

Der Kernel 2.6.28.9 (sheep iso) enthält die [url=http://www.easy-vdr.de/forum/index.php?topic=5836.0]in diesem Thread von Timux vorgeschlagenen Änderungen. Ich hatte noch die easyVDR 0.6.06 Originalversion des easyvdrshutdown.sh Skripts auf meinem System, und die funktioniert nicht mit ACPI_METHOD="PROC" und dem 2.6.28.9 Kernel.

Auf der sheep iso befindet sich im easyvdr_add_z05-div.tar.bz2 eine entsprechend aktualisierte Version des easyvdrshutdown.sh Skripts. Damit funktioniert der ACPI Wakeup.

Wobei ich noch eine Änderung vorschlagen möchte. Der Ansatz von Timux war ja, das Uhrzeitformat von %R auf %T zu ändern, damit die Sekunden mit ausgegeben werden:
#NEXT_ALARM=$(date -d "1970-01-01 UTC $NEXT_TIMER seconds" +"%Y-%m-%d %R") // Original
NEXT_ALARM=$(date -d "1970-01-01 UTC $NEXT_TIMER seconds" +"%Y-%m-%d %T")

Wie die Ausgabe der easyvdrshutdown.sh zeigt, sind die $NEXT_TIMER Sekunden oft nicht :00 ...
Next acpi alarm at: 2009-06-04 22:09:40

... deshalb wäre m.E. folgende Änderung sinnvoll, die dem NEXT_TIMER_SETTIME Verfahren am Anfang des Skripts entspricht:
#NEXT_ALARM=$(date -d "1970-01-01 UTC $NEXT_TIMER seconds" +"%Y-%m-%d %R") // Original
NEXT_ALARM=$(date -d "1970-01-01 UTC $NEXT_TIMER seconds" +"%Y-%m-%d %H:%M:00")

easyVDR 0.6.10/VDR 1.4.7, Kernel 2.6.28.9 (wolf), ASUS M3N78 Mainboard (NVIDIA GeForce 8200 Chipset), AMD X2 4850e 2x2.5GHz CPU, 2GB RAM, 32 GB Super Talent Ultradrive GX MLC Solid State Disk (FTM32GX25H), 2 x 2TB WD AV-GP Platten (WD20EVDS), LG GH22NS30 SATA DVD-Brenner, TechnoTrend C-1500 DVB-C, Hauppauge PVR-150 Analog, Ausgabe über MagicDVD , atric IR-Empfänger/Einschalter, schwarzes Silverstone Lascala LC20 Gehäuse, Loewe RC4 Fernbedienung (VCR-Modus)