rtcwake

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
NAB
Beiträge: 5501
Registriert: 06.03.2011 16:02:23
Lizenz eigener Beiträge: MIT Lizenz

Re: rtcwake

Beitrag von NAB » 06.02.2015 20:45:11

Alternative Interpretation:
"Resume on RTC Alarm" im BIOS ist dann von Belang, wenn du den Rechner komplett herunterfährst. Nimmst du nur S3, so schaltet rtcwake das Resume vorübergehend selber ein.

Wenn du im BIOS auf S1 schaltest, dann geht S3 nicht mehr. (S1 ist eh ziemlich überflüssig, also lass es)

-u sollte eigentlich überflüssig sein. Eigentlich sollte sich rtcwake an /etc/adjtime orientieren. Schaden kann es aber auch nicht (solange die BIOS-Uhr auf UTC läuft).

Du könntest auch -m no verwenden. Dann passiert gar nichts. Fährst du den Rechner dann selbstständig in den S3, so sollte er wieder aufwachen. Fährst du den Rechner ganz herunter, dann wird er wohl nicht wieder aufwachen, solange "Resume on RTC Alarm" im BIOS ausgeschaltet ist.

Warum -m off nicht geht, verstehe ich nicht. Vielleicht liegt es vorausschauender Weise am ausgeschalteten "Resume on RTC Alarm"?

Was du mit -m ram machst, ist ein "Suspend to Ram". Das ist berüchtigt dafür, dass einige Treiber damit immer noch nicht umgehen können, vorallem USB-Geräte und WLan-Karten. Das dürfte also nichts mit rtcwake direkt zu tun haben, sondern mit "Suspend to Ram". Dagegen kann man versuchen, was zu tun, indem man die betroffenen Treiber vorher entlädt ... /etc/pm/ und /usr/lib/pm-utils/ ist da ein Anlaufpunkt, zusammen mit einem passenden Tutorial.

Das sind alles nur Vermutungen, denen du mal nachgehen könntest. Vorallem würde ich noch mal mit der BIOS-Einstellung und Herunterfahren experimentieren.
Never change a broken system. It could be worse afterwards.

"No computer system can be absolutely secure." Intel Document Number: 336983-001

guennid

Re: rtcwake

Beitrag von guennid » 06.02.2015 20:55:40

NAB hat geschrieben:Fährst du den Rechner ganz herunter, dann wird er wohl nicht wieder aufwachen, solange "Resume on RTC Alarm" im BIOS ausgeschaltet ist.
Aber wenn ich's einschalte, muss ich dem BIOS eine Zeit nennen (oder die voreingestellte Mitternacht nehmen). Das wird dann in der Regel mit rtcwakes Zeit kollidieren oder das Programm schlicht überflüssig machen. Das kann's nicht sein.

Grüße, Günther

NAB
Beiträge: 5501
Registriert: 06.03.2011 16:02:23
Lizenz eigener Beiträge: MIT Lizenz

Re: rtcwake

Beitrag von NAB » 06.02.2015 21:06:42

Es kann nur eine Weck-Zeit geben!

Und es muss eine Weck-Zeit geben.

Diese Zeit existiert, wenn du die Option im BIOS aktivierst, egal ob du sie einstellst oder nicht. (Die Zeit existiert auch, wenn du die Option nicht aktivierst, aber dann ist "Aufwachen" ausgeschaltet.

Sobald du mit rtcwake eine andere Weck-Zeit setzt, ist die alte Zeit weg. Also mach dir darum nicht so einen Kopf, sondern versuch es einfach :)

(Du könntest die Weck-Zeit mit rtcwake sogar in die Vergangenheit legen, um unerwünschtes Wecken zu verhindern)
Never change a broken system. It could be worse afterwards.

"No computer system can be absolutely secure." Intel Document Number: 336983-001

guennid

Re: rtcwake

Beitrag von guennid » 07.02.2015 19:49:58

Sobald du mit rtcwake eine andere Weck-Zeit setzt, ist die alte Zeit weg. Also mach dir darum nicht so einen Kopf, sondern versuch es einfach :|
Sinn machen würde das m.M.n. nur, wenn ich dann auch ein ordentliches "shutdown" durchführen könnte. Ein S3 erreiche ich ja auch, ohne RTC Alarm einzuschalten. Und genau das: shutdown, funktioniert nach den heutigen Versuchen auf dieser Maschine nicht. Ich werde mal sehen, ob ich mir ein Pascal-Progrämmchen um rtcwake herumbauen kann - shell-Syntax ist nicht mein Ding.

Grüße Günther

NAB
Beiträge: 5501
Registriert: 06.03.2011 16:02:23
Lizenz eigener Beiträge: MIT Lizenz

Re: rtcwake

Beitrag von NAB » 07.02.2015 20:33:26

guennid hat geschrieben:Sinn machen würde das m.M.n. nur, wenn ich dann auch ein ordentliches "shutdown" durchführen könnte.
Ja, völlig richtig.

Stell doch mal die Option im BIOS auf "enabled".

Dann setzt du mit "rtcwake -m no" eine Weckzeit.

Und dann fährst du den Rechner mit shutdown -h runter.

Wenn er dann nicht wieder aufwacht, dann geht's halt nicht. Dann schaltest du die Option im BIOS wieder aus und musst S3 benutzen.
Never change a broken system. It could be worse afterwards.

"No computer system can be absolutely secure." Intel Document Number: 336983-001

guennid

Re: (gelöst) rtcwake

Beitrag von guennid » 08.02.2015 00:24:25

Dann setzt du mit "rtcwake -m no" eine Weckzeit.
Das kann ich nochmal machen. Ich hab's mit "-m off" probiert, und das funktionierte nicht, obwohl das Programm ausgab, die Weckzeit eingestellt zu haben.

Grüße, Günther

guennid

Re: rtcwake

Beitrag von guennid » 08.02.2015 13:17:51

Funktioniert leider nicht.

Diese BIOS-Option "Resume on RTC Alarm" ist auf dem System ist m.M.n. sowieso höchst fragwürdig. Auch wenn ich rtcwake gar nicht benutze, sondern nur dort eine Aufweckzeit manuell eintrage, wird der Rechner nach einem shutdown mitnichten zu dieser Zeit aufgeweckt.

Das einzige, was halbwegs funktioniert, ist "-m mem", und darauf möchte ich mich jetzt konzentrieren. Leider nutzt mir das im Moment nix ( "-m mem"), weil vdr nach dem Auwachen zwar läuft, aber die Verbindung zur TV-Karte (neben dem wlan, weniger interessant) offenbar verlorengagangen ist. (siehe dmesg.txt in nopaste). Jedenfalls werden lediglich die via timer zu erzeugenden Verzeichnisse sowie 00001.ts erstellt, aber nicht befüllt.
Ach ja, sollte auch wichtig sein: Das Verhalten: einschlafen, aufwachen ohne TV-Verbindung läuft so mit einem Eigenbau-Kern 3.16. Mit einem Standard-Kern aus den backports (3.14) funktioniert selbst das nicht. Der Rechner läuft mit diesem Kern nach

Code: Alles auswählen

# rtcwake -u -m mem -t $(date -d '20150208 12:45' +%s)
einfach weiter.

Grüße, Günther

NAB
Beiträge: 5501
Registriert: 06.03.2011 16:02:23
Lizenz eigener Beiträge: MIT Lizenz

Re: rtcwake

Beitrag von NAB » 08.02.2015 13:34:03

Schade, aber einen Versuch war es wert. Aber es deckt sich mit meinen Erfahrungen, dass dieser rtc-Kram höchst unzuverlässig ist. Wenn du irgend kannst, nimm WoL. (Gibt's vielleicht noch ein BIOS-Update für das Mainboard?)

Es ist übrigens völlig egal, wie du den Rechner herunterfährst/in den Suspend schickst. Die Aufgabe von rtcwake ist das Setzen der blöden Aufwachzeit, alles andere ist Beiwerk.

Backports-Kernel 3.14? Den gibt's schon lange nicht mehr, da findest du jetzt auch den 3.16er.

Da du den Rechner nicht mit rtcwake in den Suspend schicken musst, solltest du das Verhalten von TV/Wlan-Karte auch bei einem normalen Suspend beobachten können. Das lässt sich lösen, indem du vor dem Suspend automatisiert die betreffenden Treiber entlädst - dazu musst du vermutlich auch (automatisch) die darauf zugreifenden Programme beenden. Beim Aufwachen muss dann alles wieder (automatisch) gestartet werden. Das wäre aber einen neuen Thread wert.
Never change a broken system. It could be worse afterwards.

"No computer system can be absolutely secure." Intel Document Number: 336983-001

guennid

Re: rtcwake

Beitrag von guennid » 08.02.2015 14:31:02

Es könnte sein, dass ich einen "Ansatz" für einen "würgaround gefunden habe.
Zunächst mal: Auf dem System wird vdr einschließlich des Fernseh-Plugins (vdr-sxfe, Vorsicht das Ding hat viele Namen!) bereits beim Booten gestartet. Meine Probleme hängen möglicherweise mit der TV-Karte Tevii 470 zusammen, die liebt Kaltstarts.

So, folgendes hat funktioniert:
1. /etc/init.d/vdr stop
2. rtcwake mit -m mem
3. Nach dem Aufwachen: reboot

VDR hat Verbindung zur TV-Karte und WLAN funktioniert ebenfalls.
Kriege ich das in ein script? Wie kriege ich das in ein script? 1. und 2. sind problemlos, aber 3. nach dem Aufwachen?
Ich habe mich in 12 Jahren Debian nie mit dem Suspend-Kram beschäftigt. Dazu hatte ich keinen Bedarf. Ich weiß also nicht, wie ein script auszusehen hat, das nach einem Suspend einen Befehl ausführen soll - falls man sowas überhaupt machen kann.

Grüße, Günther

NAB
Beiträge: 5501
Registriert: 06.03.2011 16:02:23
Lizenz eigener Beiträge: MIT Lizenz

Re: rtcwake

Beitrag von NAB » 08.02.2015 14:51:07

ehm ... möchtest du wirklich nach jedem Suspend einen Reboot?
Never change a broken system. It could be worse afterwards.

"No computer system can be absolutely secure." Intel Document Number: 336983-001

guennid

Re: rtcwake

Beitrag von guennid » 08.02.2015 15:00:20

Nein, natürlich nicht. Ich möchte, dass ein automatisches reboot in einem batch-script nach rtcwake in der angegebenen Form ausgeführt wird.

Grüße, Günther

JTH
Moderator
Beiträge: 3023
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: rtcwake

Beitrag von JTH » 08.02.2015 15:06:05

Ich denke es reicht, wenn du die 3 Schritte genau so in ein Skript schreibst. Debianpm-utils löst sowas meine ich auf diese Weise.

Code: Alles auswählen

#!/bin/sh

/etc/init.d/vdr stop
rtcwake -m mem ...
# dürfte auch ohne sleep funktionieren
sleep 10
reboot
Das Skript wird durch den Suspend ja nicht beendet und sollte nach dem Resume nach dem rtcwake weiterlaufen – in diesem Fall löst es dann einen Neustart aus.
Manchmal bekannt als Just (another) Terminal Hacker.

guennid

Re: rtcwake

Beitrag von guennid » 08.02.2015 15:11:36

Also, damit ich das nicht missverstehe: Die Schlafzeit soll keine 10sec oder irgendeine andere konstante Dauer betragen, sie ist variabel, mindestens eine Stunde, wegen weniger schicke ich das Gerät nicht schlafen. Aber wenn du das sagst, dann probiere ich mal... :wink:

Grüße, Günther

NAB
Beiträge: 5501
Registriert: 06.03.2011 16:02:23
Lizenz eigener Beiträge: MIT Lizenz

Re: rtcwake

Beitrag von NAB » 08.02.2015 15:19:19

Die "Schlafzeit" wird nach dem Aufwachen ausgeführt, um ihm Zeit zu geben, wieder komplett aufzuwachen, bevor er herunterfährt. ggf. musst du die erhöhen, wenn es nicht funktioniert.
Never change a broken system. It could be worse afterwards.

"No computer system can be absolutely secure." Intel Document Number: 336983-001

guennid

Re: rtcwake

Beitrag von guennid » 08.02.2015 15:26:21

Ich glaube NAB und ich verstehen unter "Schafzeit" jeweils was anderes. Für NAB ist es die Zeit, die das script NACH dem Aufwachen warten soll, bevor es den nächsten Befehl (hier reboot) ausführt. Ich dagegen dachte an die Zeit, in der der Rechner inaktiv bleibt, also gerade nicht aufwachen soll. Habe ich das korrekt interpretiert? Wenn ja: sind die zusätzlichen 10s irgendwie von Belang?

[edit], scheinbar sind sie es nicht: Es läuft!!! :mrgreen: :mrgreen: :mrgreen:

Schön, schön, schön, Hätt' ich nicht gedacht, eigentlich hätte ich erwartet, dass das Zicken-AAs Tevii mir wieder durch Bestehen auf sekundenlanger absoluter Strom-Abstinenz einen Strich durch die Rechnung macht.
So, jetzt brauche ich noch einen Dialog, mit dem ich die zwei Parameter: Datum und Uhrzeit in das script kriege.

JTH
Moderator
Beiträge: 3023
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: rtcwake

Beitrag von JTH » 08.02.2015 15:43:00

Ja, das hast du richtig interpretiert. Wahrscheinlich ist das sleep an der Stelle wirklich überflüssig und du kannst es einfach streichen. Wie NAB schreibt, wollte ich nur sichergehen, dass der Rechner richtig wieder aufwacht.
Manchmal bekannt als Just (another) Terminal Hacker.

NAB
Beiträge: 5501
Registriert: 06.03.2011 16:02:23
Lizenz eigener Beiträge: MIT Lizenz

Re: rtcwake

Beitrag von NAB » 08.02.2015 15:52:21

Du musst zenity installieren.

Code: Alles auswählen

#!/bin/sh
Weckzeit=`zenity --entry`  # muss im Format 20150205 12:05 eingegeben werden.
WeckzeitS=`date -d "$Weckzeit" +%s`
echo Gewünschte Weckzeit in Sekunden: $WeckzeitS
rtcwake -m no -t $WeckzeitS
ungetestet ... probiere es aus, bevor du es mit -m mem scharf schaltest.
Never change a broken system. It could be worse afterwards.

"No computer system can be absolutely secure." Intel Document Number: 336983-001

SleipniR

Re: rtcwake

Beitrag von SleipniR » 08.02.2015 16:16:12

Du könntest noch versuchen, ob der Rechner aus S5/Soft-Off aufwacht, wenn im BIOS RTC Alarm auf disabled gestellt ist. Ich habe ein Mainboard, das nur mit so einer kontraintuitiven Einstellung funktioniert. Manchmal braucht man auch die Kerneloption "hpet=disable".

Außerdem kann VDR dem Shutdown-Skript die Anfangszeit des nächsten Timers übergeben. Da brauchst Du nix händisch eingeben.

guennid

Re: rtcwake

Beitrag von guennid » 08.02.2015 17:04:49

zenity: 40 mb für zwei Eingaben??? Möchte ich eigentlich nicht

Code: Alles auswählen

read -p "Einschaltdatum (jjjjmmtt): " datum
read -p "Einschaltzeit (hh:mm): " zeit
zusammen="'"$datum' '$zeit"'"
Wie kriege ich "zusammen" oder "datum" und "zeit" anstelle von '20150208 12:45'
in

Code: Alles auswählen

rtcwake -u -m mem -t $(date -d '20150208 12:45' +%s)
. Ich sagte ja schon, diese shell-Syntax ist mir ein Greuel.

Auf SleipniRs Vorschäge komme ich päter zurück.

Grüße, Günther

NAB
Beiträge: 5501
Registriert: 06.03.2011 16:02:23
Lizenz eigener Beiträge: MIT Lizenz

Re: rtcwake

Beitrag von NAB » 08.02.2015 17:26:50

Code: Alles auswählen

read -p "Einschaltdatum (jjjjmmtt): " datum
read -p "Einschaltzeit (hh:mm): " zeit
zusammen="$datum $zeit"
echo Weckzeit: $zusammen
sekunden=`date -d "$zusammen" +%s`
echo in Sekunden: $sekunden
rtcwake -m no -t $sekunden
(schön primitiv gehalten)
Never change a broken system. It could be worse afterwards.

"No computer system can be absolutely secure." Intel Document Number: 336983-001

guennid

Re: rtcwake

Beitrag von guennid » 08.02.2015 18:31:46

Für mich ist diese Syntax keine Frage von primitiv oder hochentwickelt, für mich ist die schlicht und ergreifend krank. Aber lassen wir das, sonst krieg ich wieder Ärger mit Vertretern der reinen Lehre.

Also was ist hier noch falsch:

Code: Alles auswählen

#!/bin/sh

read -p "Einschaltdatum (jjjjmmtt): " datum
read -p "Einschaltzeit (hh:mm): " zeit
/etc/init.d/vdr stop
zusammen="$datum $zeit"
sekunden='date -d "$zusammen" +%s'
rtcwake -u -m mem -t $sekunden
sleep 5
reboot
Ich finde den Fehler nicht.

Grüße, Günther

JTH
Moderator
Beiträge: 3023
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: rtcwake

Beitrag von JTH » 08.02.2015 18:37:17

Code: Alles auswählen

sekunden='date -d "$zusammen" +%s'
So bekommst du einen String, in dem wörtlich „date -d "$zusammen" +%s“ drin steht:

Code: Alles auswählen

$ sekunden='date -d "$zusammen" +%s'
$ echo $sekunden 
date -d "$zusammen" +%s
Du willst aber die Ausgabe von date in der Variablen ablegen:

Code: Alles auswählen

sekunden=$(date -d "$zusammen" +%s)
# oder äquivalent, aber evtl. mit Verwechslungsgefahr:
sekunden=`date -d "$zusammen" +%s`
Es hätte also nur ` statt ' sein müssen, $( ) ist da eindeutiger zu erkennen ;)
Manchmal bekannt als Just (another) Terminal Hacker.

NAB
Beiträge: 5501
Registriert: 06.03.2011 16:02:23
Lizenz eigener Beiträge: MIT Lizenz

Re: rtcwake

Beitrag von NAB » 08.02.2015 18:40:17

Ich glaub, genau das meint guennid mit "krank" ;-)
Never change a broken system. It could be worse afterwards.

"No computer system can be absolutely secure." Intel Document Number: 336983-001

JTH
Moderator
Beiträge: 3023
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: rtcwake

Beitrag von JTH » 08.02.2015 18:41:31

Der Unterschied ist doch offensichtlich :mrgreen:
Manchmal bekannt als Just (another) Terminal Hacker.

guennid

Re: rtcwake

Beitrag von guennid » 08.02.2015 18:47:44

Ich hab's geahnt!!! Der Entwickler wird wahrscheinlich ein Franko-Kanadier sein. Accent grave statt einfacher Anführungszeichen!!! Ich fass es nicht!!! Hoffen wir, dass es das war.

Antworten