Raspberry: Prüfen ob gültige Zeit?

Raspberry: Prüfen ob gültige Zeit?

Beitragvon Timm Thaler » 3. Okt 2018, 18:14 Raspberry: Prüfen ob gültige Zeit?

Beim Raspberry Pi ohne Uhrenerweiterung habe ich ja unter Umständen eine falsche Systemzeit, solange er noch keine Zeitsynchro gemacht hat oder diese fehlschlägt.

Nun habe ich gesehen, dass timedatectl status eine Information liefert, ob die Systemzeit aktualisiert wurde:

Code: Alles auswählen
timedatectl status
      Local time: Mi 2018-10-03 19:07:53 CEST
  Universal time: Mi 2018-10-03 17:07:53 UTC
        RTC time: n/a
       Time zone: Europe/Berlin (CEST, +0200)
 Network time on: yes
NTP synchronized: yes
 RTC in local TZ: no


Komme ich an diese Info im System ran, von Freepascal aus? Die einzige Idee wäre jetzt, timedatectl status auszuführen und das Ergebnis nach NTP synchronized zu parsen. Aber vielleicht gehts auch einfacher.

Hintergrund: Ich habe einige Programme, die Daten mit Zeitstempel abspeichern und wenn der unsicher ist soll das vermerkt werden.
Timm Thaler
 
Beiträge: 730
Registriert: 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded | 
CPU-Target: Raspberry Pi 3
Nach oben

Beitragvon Mathias » 3. Okt 2018, 18:54 Re: Raspberry: Prüfen ob gültige Zeit?

Vielleicht hilft dir dies weiter: http://manpages.ubuntu.com/manpages/tru ... rtc.4.html

In FPC würde dies dann in etwa so aussehen:
Code: Alles auswählen
uses
  BaseUnix;
 
var
  fd: cint;
  buf: Pointer;
begin
  fd := FpOpen('/dev/rtc', O_RDONLY);
  FpIOCtl(fd, $80247009, buf);
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4342
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Timm Thaler » 3. Okt 2018, 19:10 Re: Raspberry: Prüfen ob gültige Zeit?

Gerade nochmal geschaut: Da der Raspberry keine RTC hat, gibt es auch kein Device rtc. Zumindest auf meinem nicht.
Timm Thaler
 
Beiträge: 730
Registriert: 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded | 
CPU-Target: Raspberry Pi 3
Nach oben

Beitragvon sstvmaster » 3. Okt 2018, 20:09 Re: Raspberry: Prüfen ob gültige Zeit?

unter lazarus mit synapse kannst du von zb. pool.ntp.org zeit holen und stellen (Windows mit Admin)

könnte auch die Anwort zu deinem anderem Thema sein.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
OS: Windows 7 32/64bit
Lazarus 1.8.4, 32bit
Lazarus 2.1.0 Trunk 3.3.1, 32bit
sstvmaster
 
Beiträge: 93
Registriert: 22. Okt 2016, 22:12
OS, Lazarus, FPC: Lazarus 1.8.4 + 2.1.0 Trunk 3.3.1 / Win32, Windows 7 32+64bit | 
CPU-Target: 32Bit
Nach oben

Beitragvon sstvmaster » 3. Okt 2018, 20:34 Re: Raspberry: Prüfen ob gültige Zeit?

und das geht mit deinem raspi nicht?

https://blog.doenselmann.com/richtige-u ... i-mit-ntp/
OS: Windows 7 32/64bit
Lazarus 1.8.4, 32bit
Lazarus 2.1.0 Trunk 3.3.1, 32bit
sstvmaster
 
Beiträge: 93
Registriert: 22. Okt 2016, 22:12
OS, Lazarus, FPC: Lazarus 1.8.4 + 2.1.0 Trunk 3.3.1 / Win32, Windows 7 32+64bit | 
CPU-Target: 32Bit
Nach oben

Beitragvon Timm Thaler » 3. Okt 2018, 21:31 Re: Raspberry: Prüfen ob gültige Zeit?

sstvmaster hat geschrieben:unter lazarus mit synapse kannst du von zb. pool.ntp.org zeit holen und stellen


Die Zeit holt der systemd-timesyncd Service zu meiner besten Zufriedenheit. Ich will den auch nicht abstellen, da systemd-timesyncd gegenüber ntp deutlich früher abfragt, das sieht man auch in den Logfiles, und es ist mit systemd verzahnt.

Ich will nur eine Aussage: systemd-timesyncd hat erfolgreich die Zeit synchronisiert.
Timm Thaler
 
Beiträge: 730
Registriert: 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded | 
CPU-Target: Raspberry Pi 3
Nach oben

Beitragvon af0815 » 3. Okt 2018, 21:38 Re: Raspberry: Prüfen ob gültige Zeit?

Wird meiner Erfahrung mit RasPi darauf hinauslaufen - entweder oder :-)
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3499
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: FPC 3.2 Lazarus 2.0 per fpcupdeluxe | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon sstvmaster » 3. Okt 2018, 22:46 Re: Raspberry: Prüfen ob gültige Zeit?

Timm Thaler hat geschrieben:Hintergrund: Ich habe einige Programme, die Daten mit Zeitstempel abspeichern und wenn der unsicher ist soll das vermerkt werden.


Ich würde es so machen:
- vom raspi datum und zeit holen und in unix time umwandeln -> DateTimeToUnix(LocalTimeToUniversal(Now))
- mit dem Beispiel von mir zum vergleich noch mal zeit holen unix auch umwandeln -> DateTimeToUnix(sntp.NTPTime)
- und wenn die differenz kleiner als x ist sollten datum und uhrzeit stimmen

Bei mir ist die Differenz so bei 3-4
OS: Windows 7 32/64bit
Lazarus 1.8.4, 32bit
Lazarus 2.1.0 Trunk 3.3.1, 32bit
sstvmaster
 
Beiträge: 93
Registriert: 22. Okt 2016, 22:12
OS, Lazarus, FPC: Lazarus 1.8.4 + 2.1.0 Trunk 3.3.1 / Win32, Windows 7 32+64bit | 
CPU-Target: 32Bit
Nach oben

Beitragvon af0815 » 4. Okt 2018, 06:13 Re: Raspberry: Prüfen ob gültige Zeit?

Abfrage des Status mit $ timedatectl status siehe https://help.ubuntu.com/lts/serverguide/NTP.html.en und das Ergebnis auswerten.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3499
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: FPC 3.2 Lazarus 2.0 per fpcupdeluxe | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon Mathias » 4. Okt 2018, 17:53 Re: Raspberry: Prüfen ob gültige Zeit?

Timm Thaler hat geschrieben:Gerade nochmal geschaut: Da der Raspberry keine RTC hat, gibt es auch kein Device rtc. Zumindest auf meinem nicht.


Das sieht man gut, wen man es auf dem PC ausführt. da hat es einen wert bei RTC.
Code: Alles auswählen
$ timedatectl 
                      Local time: Do 2018-10-04 18:52:01 CEST
                  Universal time: Do 2018-10-04 16:52:01 UTC
                        RTC time: Do 2018-10-04 16:52:00
                       Time zone: Europe/Zurich (CEST, +0200)
       System clock synchronized: yes
systemd-timesyncd.service active: yes
                 RTC in local TZ: no
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4342
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon sstvmaster » 4. Okt 2018, 19:23 Re: Raspberry: Prüfen ob gültige Zeit?

@Timm Thaler

https://www.freedesktop.org/software/sy ... nchronized

Was hier beschrieben ist kann dir auch nicht weiterhelfen?

/var/lib/systemd/timesync/clock

The modification time of this file indicates the timestamp of the last successful synchronization (or at least the systemd build date, in case synchronization was not possible).
/run/systemd/timesync/synchronized

A file that is touched on each successful synchronization, to assist systemd-time-wait-sync and other applications to detecting synchronization events.
OS: Windows 7 32/64bit
Lazarus 1.8.4, 32bit
Lazarus 2.1.0 Trunk 3.3.1, 32bit
sstvmaster
 
Beiträge: 93
Registriert: 22. Okt 2016, 22:12
OS, Lazarus, FPC: Lazarus 1.8.4 + 2.1.0 Trunk 3.3.1 / Win32, Windows 7 32+64bit | 
CPU-Target: 32Bit
Nach oben

Beitragvon af0815 » 4. Okt 2018, 20:53 Re: Raspberry: Prüfen ob gültige Zeit?

Kurzum deine idee vom ersten Post, das Ergebnis von timedatectl zu scannen ist imho der einzige Weg.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3499
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: FPC 3.2 Lazarus 2.0 per fpcupdeluxe | 
CPU-Target: 32Bit (64Bit)
Nach oben

• Themenende •

Zurück zu Linux



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

porpoises-institution
accuracy-worried