On Wednesday 09 July 2003 19:31, (A long time ago) Carlos E. R. wrote: ..........<snipped some>..........
Or, you may have a temporary network connection, like I do; I will explain this in some detail.
Please do, I have been fooling with this for months now, off and on, and have yet to make this work successfully.
We can adjust the clock to "internet" time, once, sometime after we connect to internet. This, apparently, can be done with the daemon, using some option I don't fully understand. Or we can use ntpdate - a program which is to disappear some time in the future, but that I use, and SuSE uses as well in its own script.
ntpdate is still with us. I invoke it manually as root every once in awhile to update my time,
For this, we can simply call "/etc/init.d/xntpd ntptimeset" - and assume that when "ntpdate" finally disappears SuSE will adjust the script appropriately ;-)
So far, so good :-)
Of course, /etc/ntp.conf has to be configured; at least, it must have a list of servers:
server IP_address server name_address
This is what I normally invoke manually: ntpdate 216.139.201.6 and then I do a hwclock --systohc And that would go where? In this line found about half way down the script? ## # server 127.127.8.0 mode 5 prefer
This is sufficient for "xntpd ntptimeset" to work; just leave the rest of the config at the default values.
Ok, so when is the appropriate time to make this time adjust? Well, ideally, during system boot-up, after network connection is established. This is done properly by the service xntpd, if enabled. The SuSE script "/etc/init.d/xntpd start" does first a clock set using ntpdate, if the variable XNTPD_INITIAL_NTPDATE is set to "AUTO". Then, it starts the daemon to keep time synchronized.
OK, it does that but is based on what exists at that time though, right ? and would be updated at the next boot-up for the adjusted time, right ? And that would be accomplished via the dial-up connection as per below.
And, if our network connection is not permanent? Then, the script "/etc/ppp/poll.tcpip", which is called from "/etc/ppp/ip-up", will adjust the clock first thing: assuming we have some servers configured, it will be done every time we connect to internet with the modem. I do it differently, only once every five times, and I also update the hwclock.
As per what you do. I dial up, download my mail or whatever, sign off and then not dial up again until needed. Maybe 5 to 20 minutes at a time. There may be times where I do this 4 or 5 time during one session of several hours. And, how do you update the hwclock, from the same script/command ?? This is what is in the ip-up script. run_poll_tcpip() { [ "$RUN_POLL_TCPIP" = "no" ] && return /etc/ppp/poll.tcpip | logger -p security.notice -t poll.tcpip
The danger of this method is that the clock might suddenly go forward or backward a bit (seconds or hours, it depends): not very nice on a *nix system, but we can not avoid it.
Hey, that is the way it is !!
More details to be aware of: what happens to the hardware or CMOS clock?
Well, the script "/etc/init.d/boot.clock" (read it, it is documented) does this sequence of things (using the command "hwclock") before starting system services:
- Create if it doesn't exist, the file "/etc/adjtime"
Have an adjtime
- Adjust hardware clock (CMOS) for known drift during the time the computer has been off; this depends on the previous file to work. - Copy CMOS clock (hardware) to system time (CPU and OS maintained).
????
After this, the system goes fully up, and maybe, the clock is adjusted from the internet or by hand (danger!). But (and this is very different than windows) the CPU maintained clock has to be copied back to the CMOS, because the kernel doesn't do it. SuSE does it in the script "/etc/init.d/halt" that copies system time to hardware time just before power off. Me, I prefer to do it just after I adjust to network time, inside "ip-up.local", like this:
Don't have an ip-up.local file, and ip-up says "don't edit". Does it make a difference ? Either is fine by me unless there is some specific reason.
/usr/sbin/rcxntpd ntptimeset /sbin/hwclock --systohc
More things to be aware of: a common mistake is manually adjusting the system clock from kde control center (for example), and not updating the hwclock at the same time: the drift adjust algorithm of hwclock thinks that the CMOS clock is fast or slow by the same amount you adjusted the clock, and the next boot it will adjust the time by several hours... The solution is to delete "/etc/adjtime" and call "/sbin/hwclock --systohc" just then (documented on the SuSE sdb).
I never adust the time manually. Always call ntpdate and hwclock. Your explanation was very enlightening re: how the whole time thing works. That is good and adds to our knowledge. However, it is still not clear to me as to the way to adjust the time when I go on-line and keep the system accurate to a reasonable degree. Would appreciate a step-by-step saying put this line here and that line there. Bob S.