I see gpsd using the socket but I don't see chrony accessing it at all. Can
you comment out the shm line and strace chrony again? I think that's where
the issue is.

On Aug 7, 2016 10:27 PM, "Chris Greenman" <chris.m.green...@gmail.com>
wrote:

> I've attached the strace files.   The commands I used were:
>
> root@IrishMistII:/tmp# strace -o /tmp/chrony.strace.out chronyd
> root@IrishMistII:/tmp# strace -o /tmp/gpsd.strace.out gpsd -D 8 -F
> /var/run/chrony.ttyACM0.sock /dev/ttyACM0
>
> On Aug 7, 2016 12:50 AM, "Steve Horton" <stevejhor...@gmail.com> wrote:
>
>> We need to see if gpsd is sending and if chrony is rx anything on that
>> socket. I'd start both process in strace to srart. Then maybe start gpsd in
>> debug -D 8 and see if its writing to that chrony socket. Strace will show
>> what's happening underneath.
>>
>> On Aug 6, 2016 11:37 PM, "Chris Greenman" <chris.m.green...@gmail.com>
>> wrote:
>>
>>> $ file /var/run/chrony.ttyACM0.sock
>>> /var/run/chrony.ttyACM0.sock: socket
>>>
>>> cat /etc/init.d/gpsd
>>>
>>> $ cat /etc/init.d/gpsd
>>> #!/bin/sh
>>> ### BEGIN INIT INFO
>>> # Provides:          gpsd
>>> # Required-Start:    $remote_fs $syslog $network
>>> # Should-Start:      bluetooth dbus udev
>>> # Required-Stop:     $remote_fs $syslog $network
>>> # Default-Start:     2 3 4 5
>>> # Default-Stop:      0 1 6
>>> # X-Start-Before:    ntp
>>> # Short-Description: GPS (Global Positioning System) daemon
>>> # Description:       The gpsd service daemon is able to monitor one or
>>> #                    more GPS devices connected to a host computer,
>>> making
>>> #                    all data on the location and movements of the
>>> sensors
>>> #                    available to be queried on TCP port 2947.
>>> ### END INIT INFO
>>>
>>> # Author: Bernd Zeimetz <b...@debian.org>
>>> #
>>> # Please remove the "Author" lines above and replace them
>>> # with your own name if you copy and modify this script.
>>>
>>> # Do NOT "set -e"
>>>
>>> # PATH should only include /usr/* if it runs after the mountnfs.sh script
>>> RUNDIR=/run/gpsd
>>> PATH=/sbin:/usr/sbin:/bin:/usr/bin
>>> DESC="GPS (Global Positioning System) daemon"
>>> NAME=gpsd
>>> DAEMON=/usr/sbin/$NAME
>>> PIDFILE=$RUNDIR/$NAME.pid
>>> SCRIPTNAME=/etc/init.d/$NAME
>>>
>>> # Exit if the package is not installed
>>> [ -x "$DAEMON" ] || exit 0
>>>
>>> # Read configuration variable file if it is present
>>> [ -r /etc/default/$NAME ] && . /etc/default/$NAME
>>>
>>> if [ -z "$GPSD_SOCKET" ] && [ -z "$DEVICES" ]; then
>>> GPSD_SOCKET=/var/run/gpsd.sock
>>> fi
>>>
>>> if [ -n "$GPSD_SOCKET" ]; then
>>>         GPSD_OPTIONS="$GPSD_OPTIONS -F $GPSD_SOCKET"
>>> fi
>>>
>>> # Load the VERBOSE setting and other rcS variables
>>> . /lib/init/vars.sh
>>>
>>> # Define LSB log_* functions.
>>> # Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
>>> . /lib/lsb/init-functions
>>>
>>> #
>>> # Function that starts the daemon/service
>>> #
>>> do_start()
>>> {
>>> # Return
>>> #   0 if daemon has been started
>>> #   1 if daemon was already running
>>> #   2 if daemon could not be started
>>>
>>>         mkdir -p $RUNDIR || return 2
>>>
>>> start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON
>>> --test > /dev/null \
>>> || return 1
>>> start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
>>> $GPSD_OPTIONS -P $PIDFILE $DEVICES \
>>> || return 2
>>> }
>>>
>>> #
>>> # Function that stops the daemon/service
>>> #
>>> do_stop()
>>> {
>>> # Return
>>> #   0 if daemon has been stopped
>>> #   1 if daemon was already stopped
>>> #   2 if daemon could not be stopped
>>> #   other if a failure occurred
>>> start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile
>>> $PIDFILE --name $NAME
>>> RETVAL="$?"
>>> [ "$RETVAL" = 2 ] && return 2
>>> # Many daemons don't delete their pidfiles when they exit.
>>> rm -f $PIDFILE
>>> return "$RETVAL"
>>> }
>>>
>>> #
>>> # Function that sends a SIGHUP to the daemon/service
>>> #
>>> do_reload() {
>>> #
>>> # If the daemon can reload its configuration without
>>> # restarting (for example, when it is sent a SIGHUP),
>>> # then implement that here.
>>> #
>>> start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name
>>> $NAME
>>> return 0
>>> }
>>>
>>> case "$1" in
>>>   start)
>>>         if [ "$START_DAEMON" = "true" ]; then
>>> [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
>>> do_start
>>> case "$?" in
>>> 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
>>> 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
>>> esac
>>> else
>>> [ "$VERBOSE" != no ] && \
>>> log_daemon_msg "Not starting $DESC" "$NAME" && \
>>> log_end_msg 0
>>> fi
>>> ;;
>>>   stop)
>>> [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
>>> do_stop
>>> case "$?" in
>>> 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
>>> 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
>>> esac
>>> ;;
>>>   status)
>>>        status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
>>>        ;;
>>>   reload|force-reload)
>>> log_daemon_msg "Reloading $DESC" "$NAME"
>>> do_reload
>>> log_end_msg $?
>>> ;;
>>>   restart)
>>> #
>>> # If the "reload" option is implemented then remove the
>>> # 'force-reload' alias
>>> #
>>> log_daemon_msg "Restarting $DESC" "$NAME"
>>> do_stop
>>> case "$?" in
>>>  0|1)
>>> do_start
>>> case "$?" in
>>> 0) log_end_msg 0 ;;
>>> 1) log_end_msg 1 ;; # Old process is still running
>>> *) log_end_msg 1 ;; # Failed to start
>>> esac
>>> ;;
>>>  *)
>>> # Failed to stop
>>> log_end_msg 1
>>> ;;
>>> esac
>>> ;;
>>>   *)
>>> echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
>>> exit 3
>>> ;;
>>> esac
>>>
>>> :
>>>
>>>
>>>
>>> On Sat, Aug 6, 2016 at 11:08 PM, Steve Horton <stevejhor...@gmail.com>
>>> wrote:
>>>
>>>> Sorry..i meant your start script. So do you start gpsd after chrony is
>>>> allready running and the sock created? Does it get built correctly? Can you
>>>> do a file on it?
>>>>
>>>> On Aug 6, 2016 10:29 PM, "Chris Greenman" <chris.m.green...@gmail.com>
>>>> wrote:
>>>>
>>>>> No gpsd.conf.  /etc/default/gpsd is :
>>>>>
>>>>> # Default settings for the gpsd init script and the hotplug wrapper.
>>>>>
>>>>> # Start the gpsd daemon automatically at boot time
>>>>> START_DAEMON="true"
>>>>>
>>>>> # Use USB hotplugging to add new USB devices automatically to the
>>>>> daemon
>>>>> USBAUTO="true"
>>>>>
>>>>> # Devices gpsd should collect to at boot time.
>>>>> # They need to be read/writeable, either by user gpsd or the group
>>>>> dialout.
>>>>> DEVICES="/dev/ttyACM0"
>>>>>
>>>>> # Other options you want to pass to gpsd
>>>>> GPSD_OPTIONS="-F /var/run/chrony.ttyACM0.sock"
>>>>>
>>>>>
>>>>>
>>>>> $ ps -ef |grep gpsd |grep -v grep
>>>>> gpsd     31426     1  0 13:36 ?        00:00:00 /usr/sbin/gpsd -N -F
>>>>> /var/run/chrony.ttyACM0.sock /dev/ttyACM0
>>>>>
>>>>> cgps shows 3d fix
>>>>>
>>>>> On Sat, Aug 6, 2016 at 2:11 PM, Steve Horton <stevejhor...@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> Ok..can I see your gpsd conf?
>>>>>>
>>>>>> On Aug 6, 2016 1:39 PM, "Chris Greenman" <chris.m.green...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> I only included the relevant lines.  When the socket didn't work
>>>>>>> either I commented it out and went back to shm
>>>>>>>
>>>>>>> Here is my full chrony.conf.  Note, I commented out the ntp servers
>>>>>>> so that I can just concentrate on troubleshooting the GPS clock and
>>>>>>> uncommented the SOCK line
>>>>>>>
>>>>>>>
>>>>>>> #server 0.us.pool.ntp.org
>>>>>>> #server 1.us.pool.ntp.org
>>>>>>> #server 2.us.pool.ntp.org
>>>>>>> #server 3.us.pool.ntp.org
>>>>>>>
>>>>>>> driftfile /var/lib/chrony/drift
>>>>>>>
>>>>>>> allow
>>>>>>>
>>>>>>> # set larger delay to allow the NMEA source to overlap with
>>>>>>> # the other sources and avoid the falseticker status
>>>>>>> refclock SHM 0 refid GPS precision 1e-1 offset 0.9999 delay 0.2
>>>>>>> #refclock SHM 1 refid PPS precision 1e-9
>>>>>>> refclock SOCK /var/run/chrony.ttyACM0.sock refid GPSS
>>>>>>>
>>>>>>> makestep 1 -1
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Sat, Aug 6, 2016 at 10:41 AM, Steve Horton <
>>>>>>> stevejhor...@gmail.com> wrote:
>>>>>>>
>>>>>>>> Not really Chris. I don't see a sock option in your configuration
>>>>>>>> file. Gpsd should write time out to a device file some where and 
>>>>>>>> chrony can
>>>>>>>> read the time from that device file via a Unix domain socket. Like I
>>>>>>>> said..look into the sock option  and how it relates to gpsd.
>>>>>>>>
>>>>>>>> On Aug 6, 2016 10:10 AM, "Chris Greenman" <
>>>>>>>> chris.m.green...@gmail.com> wrote:
>>>>>>>>
>>>>>>>>> Same thing.  Already tried it.
>>>>>>>>>
>>>>>>>>> On Aug 6, 2016 6:35 AM, "Steve Horton" <stevejhor...@gmail.com>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> I'd look closer at the SOCK option under the refclock section.
>>>>>>>>>> https://chrony.tuxfamily.org/manual.html#refclock-directive
>>>>>>>>>>
>>>>>>>>>> On Aug 6, 2016 12:00 AM, "Chris Greenman" <
>>>>>>>>>> chris.m.green...@gmail.com> wrote:
>>>>>>>>>> >
>>>>>>>>>> > Hello,
>>>>>>>>>> >     I'm having an issue with getting time from gpsd.
>>>>>>>>>> >
>>>>>>>>>> > My setup is:
>>>>>>>>>> > Raspberry Pi 3 running Jessie Lite
>>>>>>>>>> > USB U-Blox gps
>>>>>>>>>> >
>>>>>>>>>> > gpsd is receiving NMEA from the GPS, cgps also shows time and
>>>>>>>>>> position properly.
>>>>>>>>>> >
>>>>>>>>>> > My chrony.conf is:
>>>>>>>>>> >>
>>>>>>>>>> >> server 0.us.pool.ntp.org
>>>>>>>>>> >> server 1.us.pool.ntp.org
>>>>>>>>>> >> server 2.us.pool.ntp.org
>>>>>>>>>> >> server 3.us.pool.ntp.org
>>>>>>>>>> >> driftfile /var/lib/chrony/drift
>>>>>>>>>> >> allow
>>>>>>>>>> >> refclock SHM 0 refid GPS precision 1e-1 offset 0.9999 delay 0.2
>>>>>>>>>> >> makestep 1 -1
>>>>>>>>>> >>
>>>>>>>>>> > Chronyc sources shows this:
>>>>>>>>>> >>
>>>>>>>>>> >> $ chronyc sources
>>>>>>>>>> >> 210 Number of sources = 5
>>>>>>>>>> >> MS Name/IP address         Stratum Poll Reach LastRx Last
>>>>>>>>>> sample
>>>>>>>>>> >> ============================================================
>>>>>>>>>> ===================
>>>>>>>>>> >> #? GPS                           0   4     0   10y     +0ns[
>>>>>>>>>> +0ns] +/-    0ns
>>>>>>>>>> >> ^+ time-c.nist.gov               1   9   375   110    -23ms[
>>>>>>>>>>  -22ms] +/-   47ms
>>>>>>>>>> >> ^* pool-96-248-122-64.cmdnnj     1  10   377    56  +9749us[
>>>>>>>>>>  +11ms] +/-   18ms
>>>>>>>>>> >> ^- 104.156.99.226                2   9   377   367    +15ms[
>>>>>>>>>>  +17ms] +/-  107ms
>>>>>>>>>> >> ^- 4.53.160.75
>>>>>>>>>> >>
>>>>>>>>>> > This system is going to be used on a boat and might not have
>>>>>>>>>> internet.  I can tell that both programs are accessing the shared 
>>>>>>>>>> memory
>>>>>>>>>> using ipcs -m:
>>>>>>>>>> >
>>>>>>>>>> >> ------ Shared Memory Segments --------
>>>>>>>>>> >> key        shmid      owner      perms      bytes      nattch
>>>>>>>>>>     status
>>>>>>>>>> >> 0x4e545030 0          root       600        80         2
>>>>>>>>>>
>>>>>>>>>> >> 0x4e545031 32769      root       600        80         1
>>>>>>>>>> >>
>>>>>>>>>> > Any idea why chrony isn't getting time from the GPS?
>>>>>>>>>> >
>>>>>>>>>> > Thanks
>>>>>>>>>>
>>>>>>>>> ,
>>>>>>>
>>>>>>
>>>>>
>>>

Reply via email to