The main problem is that, when you then use the /dev/pps0 with ntp and flag3=1 (kernel mode), NTP will work for a while:
then the refclocks will both be (x) and falsetickers:
and NTP will then complain in the log:
And I suspect its because pps_core is not somehow "fetching" the /dev/pps0, so its not "kernel pps0" but a "software pps0" which doesn't work with flag3=1, thus ntpd can't get a PLL lock on /dev/pps0
So on my system the following is how it looks:
On a "working" system, LinuxPPS will say:
So thats why I suspect PTP somehow prevents the pps_core from "taking in" the /dev/pps0 device as a valid PPS source.
Note that ppstest /dev/pps0 will work in both cases, because ppstest seem to not care if /dev/pps0 is "kernel" or "software":
Code:
SSH is enabled and the default password for the 'pi' user has not been changed.This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password.pi@raspberrypi:~ $ ntpq -np remote refid st t when poll reach delay offset jitter=======================================================================================================oPPS(0) .PPS. 0 l 6 16 377 0.0000 1.0029 0.1201*NMEA(0) .NMEA. 0 l 11 16 377 0.0000 3.9189 1.2090then the refclocks will both be (x) and falsetickers:
Code:
pi@raspberrypi:~ $ ntpq -np remote refid st t when poll reach delay offset jitter=======================================================================================================xPPS(0) .PPS. 0 l 6 16 377 0.0000 0.0780 0.0068xNMEA(0) .NMEA. 0 l 11 16 377 0.0000 2.7937 1.1579Code:
Nov 05 23:35:49 raspberrypi ntpd[862]: REFCLOCK: refclock_params: kernel PLL (hardpps, RFC 1589) not implementedAnd I suspect its because pps_core is not somehow "fetching" the /dev/pps0, so its not "kernel pps0" but a "software pps0" which doesn't work with flag3=1, thus ntpd can't get a PLL lock on /dev/pps0
So on my system the following is how it looks:
Code:
pi@raspberrypi:~ $ lsmod | grep ppspps_gpio 16384 0pi@raspberrypi:~ $ dmesg | grep pps[ 0.078379] pps_core: LinuxPPS API ver. 1 registered[ 0.078399] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>[ 0.078399] PTP clock support registeredCode:
pi@raspberrypi:~ $ lsmod | grep ppspps_gpio 16384 0pps_core 16384 1 pps_gpiopi@raspberrypi:~ $ dmesg | grep pps[ 0.078379] pps_core: LinuxPPS API ver. 1 registered[ 0.078399] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>[ 4.539724] pps pps0: new PPS source pps@12.-1[ 4.539824] pps pps0: Registered IRQ 39 as PPS sourceSo thats why I suspect PTP somehow prevents the pps_core from "taking in" the /dev/pps0 device as a valid PPS source.
Note that ppstest /dev/pps0 will work in both cases, because ppstest seem to not care if /dev/pps0 is "kernel" or "software":
Code:
root@raspberrypi:/home/pi# ppstest /dev/pps0trying PPS source "/dev/pps0"found PPS source "/dev/pps0"ok, found 1 source(s), now start fetching data...source 0 - assert 1762388440.999940636, sequence: 3005 - clear 0.000000000, sequence: 0source 0 - assert 1762388441.999939175, sequence: 3006 - clear 0.000000000, sequence: 0source 0 - assert 1762388442.999939725, sequence: 3007 - clear 0.000000000, sequence: 0source 0 - assert 1762388443.999939265, sequence: 3008 - clear 0.000000000, sequence: 0source 0 - assert 1762388444.999938537, sequence: 3009 - clear 0.000000000, sequence: 0source 0 - assert 1762388445.999937190, sequence: 3010 - clear 0.000000000, sequence: 0source 0 - assert 1762388446.999937149, sequence: 3011 - clear 0.000000000, sequence: 0source 0 - assert 1762388447.999937210, sequence: 3012 - clear 0.000000000, sequence: 0^Croot@raspberrypi:/home/pi#Statistics: Posted by sebastiannielsen — Thu Nov 06, 2025 12:18 am