NTP-Stratum-1-Server auf Raspberry

(noch in Arbeit)
Anschließen des Moduls an GPIO():
VIN to pin 4 (5V)
GND to pin 6 (GND)
RX to pin 8 (TXD0)
TX to pin 10 (RXD0)
PPS to pin 12 (GPIO18)

Serielle Konsole deaktivieren:

Datei /boot/cmdline.txt

# Remove these in cmdline.txt:
# `console=ttyAMA0,115200`
# and `kgdboc=ttyAMA0,115200`.

dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

Raspberry Pi 3:

# Remove these in cmdline.txt:
# `console=console=serial0,115200`
# and `kgdboc=ttyAMA0,115200`.

dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

In /etc/inittab (sofern vorhanden) die Konsole ttyAMA deaktivieren (auskommentieren)

#Spawn a getty on Raspberry Pi serial line
#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

Modul pps-gpio beim Starten laden:

echo 'pps-gpio' >> /etc/modules

GPIO18 als PPS-Eingang festlegen, serielle Schnittstelle am GPIO aktivieren:

sudo echo 'dtoverlay=pps-gpio,gpiopin=18' >> /boot/config.txt
sudo echo 'enable_uart=1' >> /boot/config.txt

Zugriff auf ttyAMA0/ttyS0 für ntpd erlauben und symbolischen Link für  Device gps0 erstellen. Dafür die Datei /etc/udev/rules.d/80-gps-to-ntp.rules erstellen und folgendes eintragen:

Version mit ttyAMA0:

# Change MODE of ttyAMA0 so it is readable by NTP and provide a symlink to
# /dev/gps0
KERNEL=="ttyAMA0", SUBSYSTEM=="tty", DRIVER=="", SYMLINK+="gps0", MODE="0666"
# Symlink /dev/pps0 to /dev/gpspps0
KERNEL=="pps0", SUBSYSTEM=="pps", DRIVER=="", SYMLINK+="gpspps0", MODE="0666"

Version mit ttyS0:

# Change MODE of ttyAMA0 so it is readable by NTP and provide a symlink to
# /dev/gps0
KERNEL=="ttyS0", SUBSYSTEM=="tty", DRIVER=="", SYMLINK+="gps0", MODE="0666"
# Symlink /dev/pps0 to /dev/gpspps0
KERNEL=="pps0", OWNER="root", GROUP="tty", MODE="0660", SYMLINK+="gpspps0"

 

 

ntpd mit PPS-Unterstützung übersetzen:

 

$ sudo apt-get update
$ sudo apt-get dist-upgrade
$ sudo apt-get install pps-tools
$ sudo apt-get install libcap-dev
$ sudo apt-get install build-essential fakeroot devscripts
$ sudo apt-get build-dep ntp
$ mkdir ~/debian-packages; cd ~/debian-packages
$ apt-get source ntp
$ cd ntp-*

Datei „debian/rules“ editieren. Ersetze:

./configure CFLAGS='$(CFLAGS)' CPPFLAGS='$(CPPFLAGS)' LDFLAGS='$(LDFLAGS)' \
--prefix=/usr \
--enable-all-clocks --enable-parse-clocks --enable-SHM \
--disable-debugging --sysconfdir=/var/lib/ntp \
--with-sntp=no \
--with-lineeditlibs=edit \
--without-ntpsnmpd \
--disable-local-libopts \
--enable-ntp-signd \
--disable-dependency-tracking \
--with-openssl-libdir=/usr/lib/$(DEB_HOST_MULTIARCH)

durch

./configure CFLAGS='$(CFLAGS)' CPPFLAGS='$(CPPFLAGS)' LDFLAGS='$(LDFLAGS)' \
--prefix=/usr \
--enable-all-clocks --enable-parse-clocks --enable-SHM \
--disable-debugging --sysconfdir=/var/lib/ntp \
--with-sntp=no \
--with-lineeditlibs=edit \
--without-ntpsnmpd \
--disable-local-libopts \
--enable-ntp-signd \
--disable-dependency-tracking \
--with-openssl-libdir=/usr/lib/$(DEB_HOST_MULTIARCH) \
--enable-ATOM --enable-NMEA --with-ATOM --with-NMEA

Versionsnummer erhöhen, Paket übersetzen:

$ dch -i
(Editor wird geöffnet, diesen einfach schließen)
$ debuild -rfakeroot -uc -us
$ cd ..