Hallo Forum,
ich habe gerade ein kleines Projekt indem ich einen Raspberry Pi Zero W
verwende. An ihm ist über i2c1 ein DS3231 Modul angeschlossen als RTC.
Der Raspberry soll später komplett abgeschalten sein und nur an gewissen
Uhrzeiten durch die RTC geweckt werden. Hierzu möchte ich den Alarm in
der RTC über den Raspi stellen. Sobald der RTC den Alarm über !INT!
meldet, wird der Raspi über einen Highside-Switch angeschalten, erledigt
seine Aufgaben, stellt das nächste Weckdatum und fährt herunter (wodurch
der Highside-Switch die Spannungsversorgung für den Raspi kappt. Das
Spiel wiederholt sich dann zur nächsten Weckzeit.
Das RTC-Modul wird beim Startup richtig geladen.
Ein Request bei der hwclock liefert die aktuelle Uhrzeit
1 | sudo hwclock
|
2 | Sat 15 Apr 2017 13:19:11 CEST -0.817910 seconds
|
Als rtc0 wird gemeldet:
1 | cat /sys/class/rtc/rtc0/name
|
2 | ds3231
|
Soweit so gut.
Nun wollte ich mit rtcwake die Alarmzeit in der RTC stellen:
1 | sudo rtcwake -m no -t $(date +%s -d 'today '20:00'')
|
Allerdings bekomme ich hier schon eine Fehlermeldung:
1 | rtcwake: enable rtc alarm failed: Invalid argument
|
Wenn ich anschließend die Daten der RTC ausgeben lasse, wurde zwar die
Alarmzeit gestellt, anscheinend wird aber der Alarm (so wie in der
Fehlermeldung steht) nicht aktiviert:
1 | cat /proc/driver/rtc
|
2 | rtc_time : 11:32:45
|
3 | rtc_date : 2017-04-15
|
4 | alrm_time : 18:00:00
|
5 | alrm_date : 2017-04-15
|
6 | alarm_IRQ : no
|
7 | alrm_pending : no
|
8 | update IRQ enabled : no
|
9 | periodic IRQ enabled : no
|
10 | periodic IRQ frequency : 1
|
11 | max user IRQ frequency : 64
|
12 | 24hr : yes
|
Ich bin zugegebenermaßen nicht gerade fit was Embedded Linux oder Linux
allgemein angeht.
Gibt es hier jemand der eine Idee hätte was man an der Stelle machen
könnte um das Problem zu beheben?
Was mache ich falsch?
Grüße und frohe Ostern
Frank
P.S: Dass die Weckzeit nicht richtig gestellt wurde schiebe ich mal auf
CEST vs. UTC. Das würde ich als nächstes angehen.