Falsche Uhrzeit

  • Moin!
    Die sprechende Dame sagt bei mir leider immer die Uhrzeit um eine Stunde falsch an. Sie behauptet beispielsweise es sei 14 Uhr, obwohl es in Wirklichkeit bereits 15 Uhr ist. Im Futro-Computer habe ich die richtige Zeitzone eingestellt. Wo/was sollte ich noch kontrollieren?

    Jan
    DK1OM

  • Moin Jan,

    das Problem hatte ich auf meinem Futro auch, trat spontan und dauerhaft auf und auch nur auf dieser Hardware (kurios :shock: ). Zu diesem Zeitpunkt lief voyage auf dem Futro, soweit ich mich erinnere. Adi hatte mir eine modifizierte *.cpp zur Verfügung gestellt die Abhilfe brachte.
    Mittlerweile habe ich mich aber vom Futro getrennt und betreibe seit einiger Zeit einen Raspi.

  • Weisst du noch, wo und was da geändert wurde?
    Das voyage-Image vom Futro haben wir auf einem HP-ThinClient aufgespielt und seitdem wird dort ebenfalls die falsche Uhrzeit angesagt.

    Jan

  • Ich konkretisiere das mal:
    Es wird nicht die korrekte lokale Zeit ausgegeben, sondern immer GMT/UTC.
    Ich habe versucht, mich hier schlau gelesen:
    https://wiki.debian.org/TimeZoneChanges

    root@voyage:/# ls -l /etc/localtime
    lrwxrwxrwx 1 root root 23 Jul 7 2013 /etc/localtime -> /usr/share/zoneinfo/GMT

    Aha. Die lokale Zeitzone steht auf GMT. Das muss also geändert werden:

    root@voyage:~# dpkg-reconfigure tzdata
    cp: cannot stat `/usr/share/zoneinfo/Europe/Berlin': No such file or directory

    Current default time zone: 'Europe/Berlin'
    Local time is now: Tue Jan 7 11:04:38 GMT 2014.
    Universal Time is now: Tue Jan 7 11:04:38 UTC 2014.

    Ich lese daraus: Die Datei für die Zeitzone Europe/Berlin fehlt angeblich!
    Aber:
    root@voyage:/# ls -l /usr/share/zoneinfo/Europe
    zeigt an, dass Berlin vorhanden ist!

    Was nun?

  • Mit Hilfe von Google und ein wenig selber denken habe ich die Lösung gefunden.
    Ursache: Voyage-Linux ist ein wenig sparsam und lässt einige Dateien weg.

    Lösung:
    It appears that the posix timezone info is missing.

    If you look at this excerpt, you will notice that European timezone
    files are all links to ../posix/Europe/?country>.

    But the directory ../posix does not exist.
    Some timezone data are intentionally deleted to save space

    To fix, reinstall tzdata:

    remountrw
    apt-get update
    apt-get install --reinstall tzdata.

    Das kann einige Minuten dauern.

    Abschliessend noch:
    dpkg-reconfigure tzdata

    Ausgabe:
    Current default time zone: 'Europe/Berlin'
    Local time is now: Tue Jan 7 13:39:06 CET 2014.
    Universal Time is now: Tue Jan 7 12:39:06 UTC 2014.

    Bingo!

  • Hallo Jan,

    gratuliere.
    Ich habe mal recherchiert. Bei mir war es ein anderer Fehler, die Uhr ging immer exakt um eine Minute nach. Adi hatte mir seinerzeit im Quellcode einen Zähler angepasst. Es fehlten immer nur Millisekunden die zu einer 1 minütigen Verzögerung führten.

    Btw - welches Voyage - Image verwendest Du?

  • Ich verwende Voyage 0.9.1+
    Das Image ist vom Juli 2013, ich habe es von DK5HH bekommen. Ist ein "Abzug" von DB0HFT.
    Die Uhr ging zu Anfang sehr genau (1 Sekunde Abweichung), mittlerweile ist sie etwas weg gelaufen, aktuell habe ich etwa 30 Sekunden Versatz zu meiner DCF77 Uhr. Möglicherweise wird der ntp-Zeitserver nicht oft genug abgefragt. Das ärgert mich ein wenig. Idee?

  • Hallo Jan,

    ich vermute mal, dass bei diesen Minimalsystemen nur das unbedingt absolute Notwendige laufen soll und deshalb der ntpd nur ab und zu gestartet wird wenn er denn überhaupt installiert worden ist.
    ntpdate ist auf einigen Distries noch zu haben und ein

    Code
    ntpdate de.pool.ntp.org

    könnte periodisch per crond getstartet werden. Besser wäre das über den ntpd zu erledigen:

    Code
    sudo ntpd -q -g -x -n

    , ebenfalls per cron

    vy 73's d Adi, DL1HRC

  • Danke für die prompte Info!

    Ich habe wie von dir vorgeschlagen eingegeben:
    "ntpdate de.pool.ntp.org"
    Danach hat "date" wieder die korrekte Zeit gemeldet. Das ist doch schon mal etwas.
    Nach der Eingabe von "ntpd" kam allerdings nur:
    -bash: ntpd: command not found
    Also kann ich davon ausgehen, dass das nicht installiert ist, oder?

    Damit die Zeit zukünftig stimmt, müsste ich cron jetzt verklickern, dass einmal pro Nacht (z.B. morgens um 4.30 Uhr) das o.g. Kommando abgesetzt wird.
    Ich bin Linux-Anfänger. Deshalb frag ich vorher. Ich denke mir das so:

    Als root anmelden
    crontab -e
    30 4 * * * ntpdate de.pool.ntp.org
    Und das dann sichern.

    Ist das alles oder hab ich noch was vergessen?

  • Hi Jan,

    ja das sollte so klappen (besser /usr/sbin/ntpdate, zur Sicherheit, falls /usr/sbin nicht allgemein gesetzt sein sollte), je nach Abweichung sollte alle 1-2h ein Aufruf reichen, am besten mit

    Code
    59 */2 * * * /usr/sbin/ntpdate de.pool.ntp.org >/dev/null 2>&1

    Dann erfolgt der Aufruf alle 2h immer zur 59. Minute und die exakte Zeitausgabe (zur vollen Stunde auf die exakte Sekunde 00) ist sehr wahrscheinlich falls Du so etwas eingestellt hast.
    ntpdate ist aber nach meinen Infos veraltet und ist bei einigen Distries schon nicht mehr dabei.

    vy 73's de Adi, DL1HRC

  • Hallo Adi,
    ich hab das so gemacht wie du es vorgeschlagen hast. Es wurde im crontab eine Datei "root" angelegt mit dem gewünschten Inhalt. Aber es klappt nicht. Die Uhr läuft weiterhin davon. Wenn ich mich einlogge und manuell "ntpdate de.pool.ntp.org" eingebe, wird die Uhr erfolgreich gestellt. Daraus schliesse ich, dass der Befehl korrekt ist, der cron aber nicht arbeitet. Woran könnte das liegen?

  • Hi,
    na ja, so richtig hat das aber nix mehr mit SvxLink zu tun.
    Was sagt denn

    Code
    ps ax|grep cron


    da sollte so was kommen:

    Quote

    adi@adi-Aspire-5733Z:~$ ps ax|grep cron
    1044 ? Ss 0:00 cron

    Ansonten einfach mal versuchen den cron nachinstallieren (apt-get install).

    73's de Adi, DL1HRC

  • Die Antwort lautet:
    root@voyage:~# ps ax|grep cron
    3155 ? Ss 0:00 /usr/sbin/cron
    7029 pts/0 S+ 0:00 grep cron

    Sieht richtig aus, oder?

  • dann check mal bitte die Berechtigungen Deines crontab Eintrages. Diese sollte 0600 sein, also im Verzeichnis /var/spool/cron/crontabs ausführen:

    Code
    chmod 600 root

    73's de Adi, DL1HRC

  • Ach ist das peinlich. Ursache des Dramas war ein Tippfehler bzw. Kopierfehler.
    /usr/sbin/ntpdate de.pool.ntp.org >/dev/null 2>&
    ist nicht gleich
    /usr/sbin/ntpdate de.pool.ntp.org >/dev/null 2>&1
    Das Problem befand sich mal wieder zwischen Stuhllehne und Tastatur.

    Danke für deine Geduld!