Using Vix 5.1 007 (I built this myself yesterday afternoon), I just noticed my time was also wrong. Approximately 1.5 hours ahead of actual time.
Ahead?
Is your build server also ahead of time?
When fake-hwclock gets installed into the image (Usually at build time during do_rootfs), the current time (UTC) on the build server gets dumped into /etc/fake-hwclock.data
That time gets restored very early at boot to at least have a semi-accurate time.
Later during boot, stb-hwclock reads the pseudo-RTC from front-panel (If the box has one). It's only a pseudo-RTC as it is not battery backed up, so it would be 0 or near 0 after power off. It's only preserved during reboot or deep standby, but not when the box gets powered off.
For that reason, the system time only gets restored to that time if it's
ahead of system time (As the fake time restored previously is either build time or last shutdown time, it's always more or less behind real time).
So at this point, the box will either have
-the image build time/the last shutdown time if it was started from power off (no better pseudo-RTC time)
or
- the time it was last synced to when just rebooted or started from deep standby (= pseudo-RTC was powered and has preserved the time).
Next step is the one-shot NTP sync during ifup, a networked box will get the true current time here, a non-networked of course will not.
If the NTP sync succeeds, the synced time will also be written into the pseudo-RTC.
Finally, E2 gets started and here is where the only problem
was: As the time is at least the image build time, the check "is now < 2004?" always failed and E2 considered the time to be properly set up - which it only really is if the NTP sync succeeded - and skipped
all further transponder sync.
This issue is addressed by the dvbtime.cpp patch: No time is considered "perfect" and a first transponder sync always gets done (As long as transponder sync is activated). This is where non-networked boxes get their time from.
After flashing and setting up yesterday afternoon, the box was on standby not used at all until this morning when I noticed time was out and I only noticed this because EPG didn't match what was being broadcast at the time hence I then investigated it.
That's a known problem neither related to nor caused by the latest changes, they just came to my attention that way:
E2 will not do more than exactly
one transponder sync at boot. All later so-called syncs are
only allowed to confirm the time we already have, but
not to correct it if it is wrong.
Any offset >120 sec gets discarded, respectively "recorded" only.
As to what caused my time to be an hour and half ahead of actual time I don't know but will keep an eye out!
That's simple:
E2 considers the 1 Cent quarz in your box to be more accurate than that multi-million EUR satellite up there and internally adjusts the sat/transponder time according to the 1 Cent quartz:
https://github.com/OpenViX/enigma2/...341aaae6a07f77/lib/dvb/dvbtime.cpp#L462-#L510
This code was introduced because some more exotic sat positions have bad times (local time rather than UTC and/or drift). The problem is that this code doesn't make any difference between those bad sat positions and the known good ones, so all E2 users suffer from Aussie or Russian sats that deliver bad times.
I have power cycled box and whether sync'd via transponder or NTP, I couldn't re-create the time being incorrect issue again.
The time has always been forcibly re-synced again on power cycle, which has become the only "solution" provided to E2 users ever since the "only one transponder sync" code was introduced.
Due to the latest E2 code change, a GUI restart would also be sufficient, but the main issue remains: E2 doesn't
really sync with transponder time more than once while it's up and running.