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
>>>>>>>>>
>>>>>>>> ,
>>>>>>
>>>>>
>>>>
>>

Attachment: gpsd.strace.out
Description: Binary data

Attachment: chrony.strace.out
Description: Binary data

Reply via email to