eigener RTC "service" ? Wie korrekt

Begonnen von herrmannj, 10 Januar 2022, 17:26:04

Vorheriges Thema - Nächstes Thema

herrmannj

an einem raspi habe ich ein Nextion Dsiplay, welches eine rtc mitbringt. Weiß jemand wo im system man die richtig unterbringt? Die Frage bezieht sich nicht auf die programmierung etc, das kann ich. Die Frage bezieht sich auf "wo im system oder im startprozess" macht man das.

systemd man (https://www.freedesktop.org/software/systemd/man/systemd.special.html#) kennt ein "time-set.target" -> Services responsible for setting the system clock (CLOCK_REALTIME) from a local source (such as a maintained timestamp file or imprecise real-time clock) should pull in this target and order themselves before it.

Ich schreibe eine systemd unit so (etwa): ?

[Unit]
Description=Sync clock
Before=time-set.target
DefaultDependencies=no

[Service]
Type=oneshot
ExecStart=/path/to/script

[Install]
WantedBy=basic.target


Mach ich das richtig?

Nachtrag:
der raspberry behilft sich ja, solange er keinen ntp sieht, mit einem zeitstempel irgendeines files. Wie verhindere ich, dass sich das mi der dann korrekten Zeit in die quere kommt?

Frank_Huber

Hier meine Notiz dazu für die RTC auf dem Raspberrys.
Damit steckt es dann in der config.txt. Für mich so in etwa wie im BIOS eines PCs.
ZitatThere are only two edits you need to do:
1. put the below line into the /boot/config.txt file: (edit it with your favourite editor and type the line in - or copy and paste it from here :-) )
dtoverlay=i2c-rtc,ds3231
2. edit the /lib/udev/hwclock-set file (sudo nano /lib/udev/hwclock-set) and "comment out" the following lines ("comment out" means put a # at the beginning of each of the lines, so they become comments and are ignored by the system)
if [ -e /run/systemd/system ] ; then
exit 0
fi
so they become:
#if [ -e /run/systemd/system ] ; then
# exit 0
#fi
...and that's it - that's all you need to do. Shut down your system, connect the rtc module, then power up and test with the command:
sudo hwclock -r

herrmannj

vielen Dank!

Ja, das wäre der Weg für eine RTC wo Linux gleich driver mitbringt. fake-hwclock.service müsste noch disabled werden.

Das Nextion würde vmtl über den von mir beschrieben Weg möglich sein. Aus spezifischen Gründen nehme ich davon Abstand. Werde anstelle dessen einen HAT mit DS3231MZ (und einigen anderen Dingen) erstellen. JLCPCB hat den auf Lager, Preis aktuell 7.18$ (#C107410). Battery Holder CR1220-2ZX (#C969906) 0.25$.

Bevor die Frage kommt, die breakout boards rtc kann ich nicht nehmen weil auf der Leiste schon der HM-MOD-RPI-PCB steckt. Das bedeutet eben auch, dass mir im boot erstmal keine weitere serial zur Verfügung steht. Daher komm ich zu dem Zeitpunkt auch nicht an die RTC vom Nextion. Dann eben einen HAT designen, macht eh mehr Spass ;)


Frank_Huber

Du könntest auf das HM Modul die I2C Pins anlöten, dann würden die Breakouts schon gehen. Hm belegt ja seriell, die I2C werden da nur aus Versehen blockiert.

herrmannj

das stimmt schon, schlimmer geht immer :) Aber ein schön gemachtes HAT sieht doch viel schicker aus und kann dann ja auch gleich noch ein zwei weitere Sachen nebenbei erledigen ;)

tndx


herrmannj

Hey, cool danke. Clever umgesetzt. Ich habe noch einige individuelle Anforderungen, bspw 2 weitere uarts, gleich noch eine Hand voll Level shifter, +X

Gibt so viele gelungene Projeke, man müsste dass Mal irgendwo bündeln. Wenn du das nicht gesagt hättest, das hatte ich nie gefunden. So geht es anderen bestimmt auch..