Just completed a project and thought I'd post here "how I did it".

I got NTP (v4) working with a GPS receiver (NMEA data) and PPS (pulse per second).

I could not get much of this working reliably with the OS that came with NanoPi. After 4 or 5 distro experiments, I found the "perfect one" which is the Armbian distribution for NanoPi Neo. It had the drivers for PPS and most other things already set up, including NTP.

What I used was:

1. Armbian Distro
2. NTP package (already installed)
3. PPS-Gpio driver. Note that Armbia already has the PPS-Core driver built in, which is AWESOME. The "gpsd" driver is useless for a "Real" NTP server, don't use it. Just don't. Oh, and PPS-Gpio module is already included in Armbian.

My NMEA data came thru serial port 1, PPS was on GPIO #2. This was easy to set up as Armbian only required I add "Serial port 1" to it's "armbianEnv.txt" file. GPIO was just a parameter setting inside the armbianEnv.txt file along with including PPS-Gpio driver. My NMEA data is at 38,400 baud by default so telling NTP to read at that speed with the flag1: field on the address was easy. Of course, PPS came thru