Moin,
@bholz: Danke, smarter Workaround.
Allerdings würd ich zu Deinem Script checkntpd sagen:
statt
if [ $? -eq 1 }: then
if [ $? -eq 1 ]: then
Gruß Wiki
ich hab jetzt alles probiert aber es funktioniert nicht. kann mir das mal jemand erklären?
die uhrzeit vom navi stellt sich jetzt gar nicht mehr ein und die front uhrzeit nur über internet. komm da einfach nicht weiter.
Wenn die Zeitdifferenz mehr als 2h (glaube ich) ist, wird die Zeit per default nicht schnell angeglichen. Es gibt jedoch die Möglichkeit dieses abzuschalten. Dazu muss in der /etc/ntp.conf muss als erstes "tinker panic 0" eingetragen werden.
Bei den eingetragenen Zeitquellen kann man mit dem Optionen "iburst" und "burst" die Zeitabweichung schneller angleichen lassen. Die erste Option ist für den initialen Abgleich beim start des ntpd, die zweite Option für eventuell entstehende "Zeitausreißer" während der Laufzeit des ntpd.
Das mache ich so bei VMs und müsste so auch auf dem Pi funktionieren.
mfg Schoerch
(05.04.2017, 18:24)Wiki schrieb: [ -> ]Moin,
@bholz: Danke, smarter Workaround.
Allerdings würd ich zu Deinem Script checkntpd sagen:
statt
if [ $? -eq 1 }: then
if [ $? -eq 1 ]: then
Gruß Wiki
Moin,
soderle, nachdem navit mehrfach durch den ntpd-Aufruf der Adress 127.127.20.0 im Nachhinein blockiert wurde hab ich noch ein wenig gegoogelt.
Iwo (Quelle hab ich nicht mehr parat, der Autor möge mir verzeihen) hab ich nen Script aufgegriffen, der auf einer anderen smarten Idee beruht. Ich hab die Abfrage nach ntp-Sync von bholz und den Script miteinander kombiniert:
Code:
#script /root/checkntp.sh
#Nachschauen, ob ntpd synchron mit nem Zeitserver ist
/usr/bin/ntpq -p | grep "*"
if [ $? -eq 1 ]; then
#Falls nicht, dann Versuch die Zeit direkt von der GPS-Maus zu lesen und zu setzen
/usr/script/GPS_Time.sh
fi
Der Script wird weiter wie von bholz gepostet von cron aufgerufen. Allerdings stelle ich die Systemzeit nicht mehr über rc.local zurück und rufe den Script mit */10 durchgehend alle zehn Minuten auf. Stört ja nicht.
Den Script GPS_Time.sh hab ich in einen von mir unter Linux immer genutzten Ordner /usr/script gelegt, damit auch pi das Teil aufrufen kann.
Code:
#Auslesen von Uhrzeit und Datum per gpspipe
r=`gpspipe -R | head -10 | grep GPRMC | head -1 | awk -F"," '{print $10" "$2}'`
#In der Zeile GPRMC steht das Datum im Format ddmmyy, daher Einfügen von 20 in die Jahreszahl und Format setzten auf yyy-mm-dd hh:mm:ss
D="20${r:4:2}-${r:2:2}-${r:0:2} ${r:7:2}:${r:9:2}:${r:11:2}"
#Und nun Zeit setzen
DD=`sudo date -us "$D $T"`
Ob die Maus gelocked ist oder nicht spielt keine Geige. Falls nicht passiert garnichts, falls ja wird die Zeit gesetzt. Ab dann ist die Uhrzeit innerhalb des für ntpd sinnvollen Rahmens und ntpd synchronisiert sich dann mit den aus dem SHM ausgelesenen Zeiten.
Gruß Wiki
Hallo zusammen,
auch ich bin heute gestern ohne Uhrzeit gefahren, innerhalb einer Stunde
hat sich die Zeit nicht richig eingestellt.
Daher habe ich wikis Gedanken aufgegriffen und eine für mich praktikable Lösung gebaut.
Beim Start des Systems wird die Uhrzeit vom gps aus gesetzt.
Dazu die Datei
/usr/local/sbin/setTimeByGPS.sh
angelegt und executable gesetzt, mit folgendem Inhalt
(danke Wiki für die Hinweise zu gpspipe):
Code:
#!/bin/bash
# -l wait 10 seconds
r=$(gpspipe -l -R | head -10 | grep GPRMC | head -1 | awk -F"," '{print $10" "$2}')
D="20${r:4:2}-${r:2:2}-${r:0:2} ${r:7:2}:${r:9:2}:${r:11:2}"
sudo date -us "$D"
Diese wird aus /etc/rc.local aufgerufen:
In der Zeile vor exit 0 :
/usr/local/sbin/setTimeByGPS.sh &
einfügen
Eine Verzögerung beim Start habe ich nicht feststellen können. Ich habe allerdings noch nicht
getestet, wie sich das script verhält, wenn man keinen Empfang hat
Grüße
Karsten
Danke Karo!
Dein Script funktioniert auch bei mir. Allerdings nicht, wenn der raspberry ein paar Stunden aus war. Führe ich dann einen reboot durch, wird die Uhrzeit eingestellt.
Woran kann das liegen?
VG
B.C.
Ich schätze mal das Skript, das die Uhrzeit abfragen soll, läuft ab bevor das GPS überhaupt eine Uhrzeit liefern kann. Wenn der RasPi einige Zeit aus ist, dann dauert der Sat-Fix des GPS halt ein bisschen länger, was wahrscheinlich in diesem Fall zu lange ist. Ich würde ja der höheren Zuverlässigkeit wegen eher eine RTC in Betracht ziehen. Kostet 2-3 Euro, ist schnell mal eingerichtet.
Danke Jack!
So in die Richtung hatte ich auch überlegt, war mir aber nicht sicher.
Ich hatte hier irgendwo gelesen, dass die RTC gerne Zeitabweichungen haben?
VG
B.C.
Du musst nur darauf achten, dass du eine DS3231 und nicht eine DS1307 nimmst. Erstere ist recht genau, die DS1307 ist nicht zu empfehlen! Bei Bedarf könnte ich ein Tutorial reinstellen, wie man die RTC einbinden kann.
Danke für den Tipp! Ich schaue mal. Ein Tutorial wäre natürlich Klasse!
Für die gpspipe gibt es scheinbar nur den einen sleep Befehl für 10 Sekunden?:
-l causes gpspipe to sleep for ten seconds before attempting to connect to gpsd. This is very useful when running as a daemon, giving gpsd time to start before attempting a connection.
Dann würde sich mein Problem nicht beheben lassen und ich würde eine RTC einsetzen.