Main Page

From LinuxPPS
Jump to: navigation, search

This is the website and documentation for the LinuxPPS project (thanks to Meinberg for this hosting and Andreas Puls for LinuxPPS's logo).

The LinuxPPS project is an implementation of the Pulse Per Second (PPS) API for GNU/Linux version 2.6 and newer.

Note: LinuxPPS has been (partially) merged into Linux source tree on Thu Jun 18 13:04:04 2009 (commit eae9d2ba0cfc27a2ad9765f23efb98fb80d80234)!

This API uses character devices to exchange data between userspace and the GNU/Linux kernel using a well defined kernel API. It also makes adding new PPS sources to the kernel extremely simple.

The benefits of this solution are:

  • Consistent API for all PPS sources -- this avoids the duplicated code problems present in earlier implementions such as PPSkit-light-PPSAPI-alpha-1610m-2.6.5
  • The kernel API makes it very simple to add new PPS sources
  • Management of the PPS source with a few simple ioctl calls

Alternative PPS Implementations

There are other Pulse Per Second API implementions for GNU/Linux. Please view Steven Bjork's experimental NTP info website to view several PPS implementations in action.

You may also want to look at Steven Bjork's main site to learn more about the Network Time Protocol.

Getting help

This wiki is the main documentation for LinuxPPS.

If you need more help, please ask your question on the LinuxPPS mailing list and we will try to help you as best we are able.

Getting and building the code

We have created detailed instructions for downloading, compiling, installing, and testing LinuxPPS.

Please view the LinuxPPS installation page for the instructions.

NTP classic support

For LinuxPPS to function correctly, you may need to patch NTPD. This depends on which PPS source you are using. We are working to get the patches accepted into the main NTPD distribution.

We have written a detailed guide to configuring NTPD to work with LinuxPPS on the LinuxPPS NTPD support page.

NTPsec support

NTPsec is a secure, hardened, and improved implementation of Network Time Protocol derived from NTP Classic, Dave Mills’s original (now called NTP classic).
We have written a guide for configuring NTPsec to work with LinuxPPS on the LinuxPPS NTPsec support page.

How to contribute

We welcome all kinds of contributions to LinuxPPS. Please view this page for instructions on how to contribute to LinuxPPS.

We look forward to your help!


If you have patches for the wiki documentation, please contact Udo van den Heuvel via the LinuxPPS mailing list; he is managing the documentation part of the LinuxPPS project.
Please do not contact Rodolfo for these issues.

Hacking the code

For information about how to add a new LinuxPPS source to the Linux kernel, please see the LinuxPPS_hacking page


For the answers to some frequently asked questions, see the LinuxPPS_FAQ page.

LinuxPPS based projects

Projects using LinuxPPS:

If you have a project that is using LinuxPPS and you would like it to be shown here, please email


  • Linux&C. issue 68 (year 11) at page 5 (Italian magazine).
  • Linux Journal issue 185 (September 2009) at page 14.


PayPal donations:

Hardware donations:

Hosting donations: