|[chrony-users] Automotive usage of chronyd|
[ Thread Index |
| More chrony.tuxfamily.org/chrony-users Archives
- To: chrony-users@xxxxxxxxxxxxxxxxxxxx
- Subject: [chrony-users] Automotive usage of chronyd
- From: Olivier Delbeke <olivier.delbeke@xxxxxxxxx>
- Date: Sat, 4 Apr 2015 09:07:17 +0200
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=W1mXm1JqLMUFt6ode+q6x+jyG/MRfboBdPHXfIW0lko=; b=eaUPEXBZdFqmj1KhY5JpLaQk7qExqWuiixYZIYHe+yZ0BYfCqBY5kBmRTF+j99W20S D9ZtpP05NTklrvEgLQYlHE2lcDy4Muu3x6qsonZcoM0DH5ELDXeeVqfRsCcFY4slDzWE VnWiZ1SEUBdGf7vY6+B0agbqnQ26Oi1V40RVoXr7QX3a/v1zv5mbSRwASnEU8YDVjpR7 chWnySjQkxvRLtNryapqaC7h2pG+ENS6MRcqaNW2fRutSC+idLjxe3Jvb2+jMCHPv/1a BQrLHc64LaxnqMFVPwuNe1FS7BfLn8BRddWuyziIIYZDOJ9Sun3S1Zu8PEJ5iciN39PY PP2A==
For an AGL (Automotive-Grade-Linux) project, I'm evaluating if we could use chronyd on IVI (In-Vehicle-Infotainment) systems. At first sight, it looks much closer to our needs than ntpd.
The usual automotive clock references are
* RTC chip (but maybe not on all systems)
* GPS sensor (not always ; can be with or without PPS when present (usually without))
* NTP over Wifi (on some systems ; even then, the connections are very occasional)
* RDS (on FM signal, with ~100ms precision)
The good news is that a precision of ~0.5s will be enough for most OEMs.
Two questions :
1. Can chronyd use non-precise references like a GPS sensor without PPS (+-200ms) or an RDS FM timestamp (+-100ms)?
2. Can chronyd set the system time when it has not been initialized yet (Jan 1, 1970) ?
I made a first test in a near worst-case scenario : system without RTC and without network, but with only a USB GPS sensor (without PPS). Time/date after boot is Jan 1, 1970, 00:00:00. I send the timestamps of the GPS sensor to chronyd (over a socket), but chronyd rejects them. Even if I use the first GPS timestamp to force the system time, the subsequent timestamps are still rejected by chronyd ("refclock sample not valid age=-0.41" from refclock.c - valid_sample_time())). What is the condition for a valid sample ? I can understand that samples are rejected, but the "< 0.0" conditions looks like the drift is only allowed in one direction. Is that right ?
Thank you very much,