Psync - A Puppy Linux Time Server Synchroniser
Psync can be started from its entry in the Desktop menu.
FIRST:
If you have not already done so via Menu/Desktop/Set Timezone, then
first set your Timezone geographically.
i.e Europe/London - Europe/Madrid etc to match your nearest location. Scroll
through the Puppy menu Timezone list to set it to nearest location.
Preferably not by GMT offset. This is because the built in commands use the locale settings for DST.
You must now reboot to make the setting active. This is before running Psync
Locale zoneinfo contains information on offset plus DST etc. (Daylight Savings Time)
allowing Psync to set time correctly according to your location.
Setting the timezone this way also allows the desktop clock to auto change for
DST.
GMT file is just a numerical offset etc. Psync will work but the only true offset report is the "True offset to UTC"
NOTE: If, for instance you set your time zone using GMT with offset. i.e. GMT+4 then the following confusion occurs.
If you set your hardware time in a terminal using " hwclock --utc " then obviously it will set to UTC, BUT and it's a confusing one,
the time reported in the terminal by hwclock is in localtime.
Yes that's right, localtime !! Even though you have just used the command, it illogically reports back in localtime from the zoneinfo to the terminal.
However the tray clock will show UTC plus the offset! Which is correct.
This can be most confusing for some.
Using the date command does the same. It reads the zoneinfo and reports what it finds there.
Zoneinfo has reverse notation, this is the Unix standard, not Puppy's fault.
THE SCREEN: Depending on the location of server,
your ISP connection speed, your PC specs, etc. Then your time will always be
out by a few milliseconds or so to 'atomic time'.
The Region buttons uses a separate program called 'ntpdate'. settimeofday()
to step (set) the time. This method is used if the time is off by more than
128ms. adjtime()
to slew (gradually change) the time. Slewing the time means to change
the virtual frequency of the software clock to make the clock go faster or slower
until the requested correction is achieved. Slewing the clock for a larger amount
of time may require some time, too. For example standard Linux adjusts
the time with a rate of 0.5ms per second. Achievable Accuracy: Of course the final achievable accuracy
depends on the time source being used. Basically, no client can be more accurate
than its server. In addition the quality of network connection also influences
the final accuracy. Slow and non predictable networks with varying delays are
very bad for good time synchronization. A time difference of less than 128ms
between server and client is required to maintain NTP synchronization. The typical
accuracy on the Internet ranges from about 5ms to 100ms, possibly varying with
network delays. A recent survey suggests that 90% of the NTP servers have network
delays below 100ms, and about 99% are synchronized within one second to the
synchronization peer. With PPS synchronization an accuracy
of 50µs and a stability below 0.1 PPM is achievable on a Pentium PC (running
Linux for example). FINALLY: Rob Lane (tasmod on Puppy
Forums)
This has buttons for choice of setting time by internet public time servers.
To synchronise your computer to a time server press the button nearest to your location.
This keeps the 'latency' low. i.e. time taken for signal to go back and forth on internet.
The offset shown in the display refers to the time difference between the 'motherboard'
hardware clock, also known as RTC (Real Time Clock) and the 'system' clock.
RTC is kept going by a small battery when PC is powered off. Also known as a
CMOS battery.
Remove the battery and usually the PC will reset to an arbitrary time in the
past, say 1st January 1900 00:00:00, so if you do remove the battery, use a
local time source
first to set the RTC. DON'T use this program.
The 'system' clock is set by the Puppy kernel on bootup and is then kept running
by software 'ticks'.
Depending on accuracy of the software 'ticks' the system clock will drift from
the RTC clock time. Especially if system is not powered down for some time.
Psync reads your RTC and your 'system clock' and shows the difference, usually
a fraction of a second, unless you have never synchronised it before.
Psync will first read the clocks and then when a button is clicked will synchronise
all clocks to a public time server. (A small window will confirm and show actual time difference)
That is known as 'time' latency. Some users spend thousands to get closer to this time !!!
This checks the 'active server pools', a set of servers that are actually online, against your time and averages the servers before making
the time adjustment. This makes for more accurate setting.
'ntpdate' Description
ntpdate sets the local date and time by polling
the Network Time Protocol (NTP) server(s) given, to determine the correct time.
A number of samples are obtained from each of the servers and a subset
of the NTP clock filter and selection algorithms are applied to select the best
of these.
Note that the accuracy and reliability of ntpdate
depends on the number of servers, the number of polls each time it is run and
the interval between runs.
Time adjustments are made by 'ntpdate' in one of
two ways.
The latter technique is less disruptive and more accurate when the error is
small, and works quite well.
I don't know about you, but I'm not getting hung up on setting any closer than
a few milliseconds.
GPL 2009