[Pool] High Offset / Jitter

Courtney Bane courtney at cbane.org
Tue Mar 1 19:06:43 UTC 2011

On Tue, March 1, 2011 12:04 pm, Hal Murray wrote:
> alby at empire.org said:
>>  I think I found my PPS issue. I'm using Debian and I found a blurb on
>> worldtimesolutions.com website with a step by step run through on
>> configuring the kernel. At the top of their post, they say you need PPS
>> on a
>> different com port.  Ack!!!
>>From the URL:
>> # cd linux-source-2.6.26
>> Obtain the linuxpps patches and apply to the new kernel source:
> Any recipe referring to linuxpps is quite old.
> I don't know what version of the kernel Debian is using now, but Linux
> kernel
> sources already include the PPS code and have for quite a while.
> How old is your setup?  Is it time to update?
> What version of the kernel are you running running?
> I know the PPS support is included in 2.6.32.  It might have gone in
> earlier.

The kernel driver for using the serial DCD pin as a PPS source didn't
actually hit the mainline kernel until 2.6.34 (I think); it was the PPS
framework that went in in 2.6.32. Additionally, it didn't get enabled in
Debian until 2.6.37, which is currently only in unstable (hopefully it'll
hit testing next week). Ubuntu has it enabled in the 2.6.35 kernel in
10.10 (aka Maverick).

However, even with a kernel supporting PPS, you'll still need to rebuild
NTP, since Debian's version doesn't have PPS support enabled. It should
just be a matter of dropping the timepps.h header file in
/usr/local/include, and rebuilding the package. The instructions linked to
before also cover rebuilding ldattach; if you're running Squeeze (the
newest stable version, released last month) or newer, you don't need to do

My home time server is running Debian Squeeze, with the latest 2.6.37
kernel pulled in from unstable. The only thing I've compiled myself was
NTP. For configuring the serial port, I created an
/etc/udev/rules.d/09-pps.rules file (pasted below); it sets up a /dev/gps0
symlink to the appropriate serial port, enables PPS and low-latency on the
serial port, and creates a /dev/gpspps0 symlink to the PPS device. I've
also pasted the relevant output from "ntpq -p" to show that it's working.

KERNEL=="ttyS1", SYMLINK+="gps0"
KERNEL=="ttyS1", RUN+="/bin/setserial -v /dev/%k low_latency"
KERNEL=="ttyS1", RUN+="/usr/sbin/ldattach pps /dev/%k"
KERNEL=="pps0", OWNER="root", GROUP="tty", MODE="0660", SYMLINK+="gpspps0"

$ ntpq -p
     remote    refid  st t when poll reach   delay   offset  jitter
oGPS_NMEA(0)   .GPS.   0 l    5   16  377    0.000    0.001   0.002

Courtney Bane
"He that would make his own liberty secure, must guard even his enemy
from oppression; for if he violates this duty, he establishes a
precedent that will reach to himself."  -- Thomas Paine

More information about the pool mailing list