Openntpd setzt die Zeit nicht richtig

sorry, ich hab mist erzählt. der ntpd lädt das driftfile nur, wenn der RTC offset 0 ist. änder mal die folgende funktion in ntpd.c
Code:
void
readfreq(void)
{
	FILE *fp;
	int64_t current;
	double d;

	if (strlen(DRIFTFILE)==0)  /* disabled? */
		return;
	fp = fopen(DRIFTFILE, "r");
	if (fp == NULL) {
		/* if the drift file has been deleted by the user, reset */
        log_warnx("no driftfile available");
		current = 0;
		if (adjfreq(&current, NULL) == -1)
			log_warn("adjfreq reset failed");
		return;
	}

	/* if we're adjusting frequency already, don't override */
	if (adjfreq(NULL, &current) == -1)
		log_warn("adjfreq failed");
	else /*if (current == 0)*/ {
		double  cur = current / 1e9 / (1LL << 32);
        log_warnx("current RTC freq offset: %fppm",cur*1e6);
        
		if (fscanf(fp, "%le", &d) == 1)
			ntpd_adjfreq(d-cur, 0);
		else
			log_warnx("can't read %s", DRIFTFILE);
	}
	fclose(fp);
}
poste bitte mal die zusätzlichen logs (startlog).
edit: code korrigiert
 
Zuletzt bearbeitet:
Code:
root@fritz:/var/db# ntpd -s -v -f /var/tmp/flash/openntpd/ntpd.conf
current RTC freq offset: 0.000000ppm

Um sicherzugehen hab ich /var/db samt driftfile auch für alle rw gemacht - leider auch ohne erfolg
 
und wenn du den ntpd ein 2. oder 3. mal mit sinnvollem driftfile startest zeigt er bei jedem start "current RTC freq offset: 0.000000ppm" an?
wenn unsinn im driftfile steht, sollte zumindest eine warning im log auftauchen
 
Hatte es gestern nochmal probiert, da stand auch noch 0.000000ppm und jetzt heute morgen nochmal:
Code:
root@fritz:/var/db# ntpd -s -v -f /var/tmp/flash/openntpd/ntpd.conf
current RTC freq offset: 500.000000ppm

Edit:

Mit einem - im driftfile kommt nach dem 2. start (beim ersten start kam wieder 500) dann:
Code:
root@fritz:/var/db# ntpd -s -v -f /var/tmp/flash/openntpd/ntpd.conf
current RTC freq offset: -500.000000ppm

Aber die Uhr rennt mir trotzdem noch weg:
Code:
Aug 24 08:44:37 fritz daemon.info ntpd[18840]: ntp engine ready
Aug 24 08:44:36 fritz daemon.info ntpd[18839]: set local clock to Wed Aug 24 08:44:36 CEST 2011 (offset -0.562983s)
Aug 24 08:44:41 fritz daemon.debug ntpd[18840]: reply from 192.53.103.104: offset -0.016743 delay 0.019958, next query 7s
Aug 24 08:47:20 fritz daemon.debug ntpd[18840]: reply from 192.53.103.103: offset -0.532457 delay 0.011976, next query 34s

Edit:
Hab jetzt mal mit deinem neuen portable aus dem anderen thread gebaut (ohne Anpassungen) dabei ist mir aufgefallen, dass zwischendurch immer mal wieder die Zeit "fast" richtig geht:
Code:
 24 11:46:34 fritz daemon.info ntpd[4160]: adjusting local clock by -25.485410s
Aug 24 11:49:15 fritz daemon.info ntpd[4160]: adjusting local clock by -26.283886s
Aug 24 11:50:18 fritz daemon.info ntpd[4160]: adjusting local clock by -0.306992s
Aug 24 11:54:31 fritz daemon.info ntpd[4160]: adjusting local clock by -27.176556s
Aug 24 11:57:46 fritz daemon.info ntpd[4160]: adjusting local clock by -28.027579s
 
Zuletzt bearbeitet:
Hatte es gestern nochmal probiert, da stand auch noch 0.000000ppm und jetzt heute morgen nochmal:
Code:
root@fritz:/var/db# ntpd -s -v -f /var/tmp/flash/openntpd/ntpd.conf
current RTC freq offset: 500.000000ppm
du hattest beim ersten mal sicher den ntpd schon mal ohne driftfile gestartet oder irgend wer anders setzt den wert zurück

Edit:

Mit einem - im driftfile kommt nach dem 2. start (beim ersten start kam wieder 500) dann:
Code:
root@fritz:/var/db# ntpd -s -v -f /var/tmp/flash/openntpd/ntpd.conf
current RTC freq offset: -500.000000ppm

Aber die Uhr rennt mir trotzdem noch weg:
ja, aber dann funktioniert dieser weg doch. trag jetzt mal die von mir ausgerechneten 4166ppm ein und schau was passiert. bevor der ntpd das erste mal diesen wert selbst korrigiert und das driftfile schreibt vergehen schonmal 30min oder auch länger...

Hab jetzt mal mit deinem neuen portable aus dem anderen thread gebaut (ohne Anpassungen) dabei ist mir aufgefallen, dass zwischendurch immer mal wieder die Zeit "fast" richtig geht:
diese version ändert aber erstmal nix an deinem problem.
 
Zuletzt bearbeitet:
du hattest beim ersten mal sicher den ntpd schon mal ohne driftfile gestartet oder irgend wer anders setzt den wert zurück

Nope, stand alles auf manuell und war noch 1970 auf der Box.


ja, aber dann funktioniert dieser weg doch. trag jetzt mal die von mir ausgerechneten 4166ppm ein und schau was passiert. bevor der ntpd das erste mal diesen wert selbst korrigiert und das driftfile schreibt vergehen schonmal 30min oder auch länger...

Die von dir ausgerechneten Werte (bzw Wert) stand ja im driftfile - aber bei 500 war scheinbar schluss? Ich hate exakt drinstehen was du als Inhalt ausgerechnet hattest.

Ich werd die änderungen am aktuellen trunk wohl nochmal nachholen nächste Woche wenn ich wieder ein bisschen Zeit zum testen hab.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.