Hi, I'm trying to get ntpd to read from shared memory and then adjust the time accordingly. Problem is it seems to read the value that I put into shared memory but doesn't seem to adjust the time accordingly.
This is how I ran ntpd: ./ntpd -D 3 -u 113:124 -g Using the gpsd program, I borrowed code from there and wrote my own little program to write into shared memory. When I run my program, I have it set to increase the time by 60 seconds and 300 microseconds, i.e., 60.000300 seconds. Example output from my program: ntpshm_put: Clock: 1251851559 @ 1251851499.390156 Additionally, there is an entry in my /etc/ntp.conf that says fudge is 0.420. When I run my program, I see this output from gpsd immediately: peer SHM(0) event 'event_reach' (0x84) status 'unreach, conf, 2 events, event_reach' (0x8024) refclock_sample: n 1 offset 60.420300 disp 0.000000 jitter 0.000001 clock_filter: n 1 off 60.420300 del 0.000000 dsp 7.937500 jit 0.000001, age 0 That offset - 60.420300 - seems consistent with what I set. (60.0003000 + 0.420) However even after half a day, ntpd doesn't seem to have adjusted the time. Maybe I'm forgetting to set some option? Maybe once is not enough for ntpd, and I need to keep writing new values regularly? Any idea on what I might be forgetting or doing incorrectly? Some relevant information: I don't want my ntpd to talk to external servers. The intention is that a script will write values into shared memory and ntpd should read this and adjust accordingly. This is what my /etc/ntp.conf file looks like: -------------------------------------------- driftfile /var/lib/ntp/ntp.drift # Enable this if you want statistics to be logged. statsdir /var/log/ntpstats/ statistics loopstats peerstats clockstats filegen loopstats file loopstats type day enable filegen peerstats file peerstats type day enable filegen clockstats file clockstats type day enable # You do need to talk to an NTP server or two (or three). #server ntp.ubuntu.com # By default, exchange time with everybody, but don't allow configuration. restrict -4 default kod notrap nomodify nopeer noquery restrict -6 default kod notrap nomodify nopeer noquery # Local users may interrogate the ntp server more closely. restrict 127.0.0.1 restrict ::1 # Clients from this (example!) subnet have unlimited access, but only if # cryptographically authenticated. #restrict 192.168.123.0 mask 255.255.255.0 notrust server 127.127.28.0 mode 1 minpoll 4 maxpoll 4 fudge 127.127.28.0 time1 0.420 refid GPS server 127.127.28.1 mode 1 minpoll 4 maxpoll 4 prefer fudge 127.127.28.1 refid GPS1 -------------------------------------------- The output of "ntpq -p" remote refid st t when poll reach delay offset jitter ========================================================== SHM(0) .GPS. 0 l 17h 16 0 0.000 0.000 0.001 SHM(1) .GPS1. 0 l - 16 0 0.000 0.000 0.001 That "17h" corresponds to when my program wrote into the shared memory. The output of "ntpdc" ntpdc> loopinfo offset: 0.000000 s frequency: -34.340 ppm poll adjust: 0 watchdog timer: 63469 s $ cat /var/lib/ntp/ntp.drift -34.340 $ cat /proc/sysvipc/shm key shmid perms size cpid lpid nattch uid gid cuid cgid atime dtime ctime 1314148400 0 700 80 5014 25550 2 0 0 0 0 1251851499 1251851500 1251847089 1314148401 32769 700 80 5014 25550 1 0 0 0 0 1251851499 1251851500 1251847089 0 65538 1600 393216 5466 5588 2 106 114 106 114 1251847098 1251847098 1251847098 On strange thing I did notice is that the "lpid" in the above output is always that of my program which writes into it. Looking at the ntpd output, it seems to read it from shared memory *after* my program has written into it. So, shouldn't the "lpid" be that of the ntpd process? FWIW, I'm using ntpd version 4.2.4p7 on a 32-bit Ubuntu 8.04 machine. Thanks. _________________________________________________________________ With Windows Live, you can organize, edit, and share your photos. http://www.windowslive.com/Desktop/PhotoGallery _______________________________________________ questions mailing list questions@lists.ntp.org https://lists.ntp.org/mailman/listinfo/questions