Git Product home page Git Product logo

stratum-1-microserver-howto's Introduction

The NTPsec distribution base directory

This directory and its subdirectories contain NTPSec, a security-hardened implementation of Network Time Protocol Version 4. You can browse a summary of differences from legacy NTP here:

The contents of the base directory are given in this file. The contents of subdirectories are usually given in the README files in each subdirectory.

The base directory ./ contains the configuration files, source directories and related stuff:

INSTALL.adoc

Generic installation instructions.

NEWS.adoc

What’s new in this release.

README.adoc

This file.

LICENSES/

License texts in REUSE format. See http://reuse.software

VERSION

The version stamp, to be used by scripts and programs.

attic/

Directory containing source code that is not part of a normal installation. Things can disappear from here at any time.

buildprep

Executable script for fetching installation prerequisites.

contrib/

Directory containing contributed scripts, dragons dwell here. Some of this might eventually move to being supported code.

devel/

Documentation and small tools aimed at developers. Includes a hacking guide and a tour of the internals.

docs/

Directory containing a complete set of documentation on building and configuring a NTP server or client. The files are in asciidoc markup. This replaces the 'html' directory of previous versions, but html can be generated from it.

etc/

Directory containing a motley collection of configuration files and launch scripts for various systems. For example only.

include/

Directory containing include header files used by most programs in the distribution.

libjsmn/

A minimal JSON library used by the GPSD-JSON driver.

libntp/

Directory containing library source code used by most programs in the distribution.

libparse/

This directory contains the files making up the parser for the parse refclock driver. For reasonably sane clocks this refclock drivers allows a refclock implementation by just providing a conversion routine and the appropriate NTP parameters

ntpclients/

Directory containing sources for clients - utility programs to query local and remote NTP installations for log status, state variables, and other timekeeping information. The term "clients" is used quite loosely here; any tool that is not a multi-file C program probably lives in this directory.

ntpd/

Sources for the main time-synchronization daemon.

ntpfrob/

The ntpfrob utility collects several small diagnostic functions for reading and tweaking the local clock hardware, including reading the clock tick rate, precision, and jitter.

ntptime/

Directory containing a utility for reading and modifying kernel parameters related to the local clock.

packaging/

Parts and guidance for distribution packagers.

pylib/

Installable Python helper modules for scripts.

tests/

Self-test code.

waf

A copy of the waf builder. This is the engine used to configure and build the codebase.

wafhelpers/

A library of Python procedures used by the waf build system.

wscript

NTP-specific waf rules.

www/

Sample ntpviz files

stratum-1-microserver-howto's People

Contributors

bclaymiles avatar eric-s-raymond avatar fallenpegasus avatar ghane avatar rlaager avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

stratum-1-microserver-howto's Issues

HOWTO indicates that removal of `triggerhappy` will remove `raspi-config`, which seems to not be the case.

The HOWTO indicates that thinning the system, by removing triggerhappy will also remove raspi-config program. This appears to no longer be the case:

Incorrect doc:

https://github.com/ntpsec/stratum-1-microserver-howto/blob/master/index.txt#L1083

Pointers to change in this dependency:

https://raspberrypi.stackexchange.com/questions/46823/why-does-raspi-config-depend-on-triggerhappy/46924

RPi-Distro/raspi-config#27

Output when running # ./clockmaker --strip:

me# ./clockmaker --strip
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
  bluez-firmware
Use 'apt autoremove' to remove it.
The following packages will be REMOVED:
  bluez* pi-bluetooth* triggerhappy*
0 upgraded, 0 newly installed, 3 to remove and 0 not upgraded.
After this operation, 3,572 kB disk space will be freed.
(Reading database ... 39538 files and directories currently installed.)
Removing pi-bluetooth (0.1.10) ...
Removing bluez (5.43-2+rpt2+deb9u2) ...
Removing triggerhappy (0.5.0-1) ...
Warning: Stopping triggerhappy.service, but it can still be activated by:
  triggerhappy.socket
Processing triggers for man-db (2.7.6.1-2) ...
Processing triggers for dbus (1.10.26-0+deb9u1) ...
(Reading database ... 39464 files and directories currently installed.)
Purging configuration files for pi-bluetooth (0.1.10) ...
Purging configuration files for triggerhappy (0.5.0-1) ...
Purging configuration files for bluez (5.43-2+rpt2+deb9u2) ...
Processing triggers for systemd (232-25+deb9u6) ...
Processing triggers for dbus (1.10.26-0+deb9u1) ...
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
  bluez-firmware
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 250 kB disk space will be freed.
(Reading database ... 39454 files and directories currently installed.)
Removing bluez-firmware (1.2-3+rpt6) ...

me# which raspi-config
/usr/bin/raspi-config

Perhaps the docs can be updated to reflect that removal of raspi-config is no longer something to worry about.

The `clockmaker` script is missing identifiers for more recent Raspberry Pi models

The model revision ID's are missing some recent models, causing the clockmaker script to fail on running clockmaker --config:

https://github.com/ntpsec/stratum-1-microserver-howto/blob/master/clockmaker#L67

The New Style additional revision codes are listed here:

https://www.raspberrypi.org/documentation/hardware/raspberrypi/revision-codes/README.md

Without the addition of the revision code for my Raspberry Pi Model 3B+ this script fails when first used:

pi@raspberrypi:~ $ sudo ./clockmaker --config
SBC type is Raspberry Pi
Can't identify SBC version

Adding the following entry allowed the script to work:

"a020d3" : "Pi 3 Model B+",

Uputronics fudges

Hi. Just to say that I have 2 x PI 3b+ with uputronics GPS hats running on stretch lite , it works well - any my knowledge of PIs up until a couple of days ago was zero so this guide and script were very welcome.

The only thing I have changed is in the ntp.conf , setting the pool servers to be UK and the following refclock line to add a time1 offset otherwise the GPS provided time is offset by ~120 ms.

refclock shm unit 0 refid GPS time1 +0.120

I assume this is the correct way to place a "fudge", and the same fudge seems to hold true for both units give or take a couple of milliseconds, however even so, I have 2 identical units places next to each other and one of them prefers an external NTP source over the GPS which is interesting, although from my understanding the PPS is being used so the tick should be accurate?

*SHM(1) .PPS. 0 l 61 64 377 0.0000 0.0864 0.0067
-SHM(0) .GPS. 0 l 29 64 377 0.0000 0.3343 3.2631
uk.pool.ntp.org .POOL. 16 p - 256 0 0.0000 0.0000 0.0019
-139.59.199.215 81.174.136.35 2 u 51 64 377 2.2418 0.0287 0.9456
+158.43.128.33 .PPS. 1 u 39 64 377 1.4592 0.1109 0.5944

and

*SHM(1) .PPS. 0 l 15 64 377 0.0000 -0.5866 0.4705
+SHM(0) .GPS. 0 l 41 64 377 0.0000 1.5996 1.4535
uk.pool.ntp.org .POOL. 16 p - 1024 0 0.0000 0.0000 0.0019
+ntp0.pipex.net .PPS. 1 u 32 64 377 1.8097 -0.2479 0.2884

One question though the SHM PPS source on both is marked as * instead of o in the tally column - does that affect the usage of PPS in the determination?

Thanks

Steve

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.