Bagaimana saya dapat memeriksa apakah daemon NTP saya memiliki dukungan PPS?

3

Saya sudah membaca tentang mengkompilasi NTP dengan timepps.h disediakan untuk mendapatkan dukungan PPS. Apakah ada cara mudah untuk memeriksa versi repositori yang sudah dikompilasi atau lebih diinstal Ubuntu 14.04.1, Kernel 3.13.0-37 ) untuk dukungan PPS?

EDIT beberapa googles nanti ...

Saya memasukkan ini ke dalam /etc/ntp.conf dan mulai ulang ntpd. Tampaknya konfigurasi ini benar? Saya menggunakan ini Papan breakout GPS di /dev/ttyS0. Menurut dokumentasi ini harus memuaskan GPS dengan PPS. Baudrate adalah 9600 .

server 127.127.20.0 mode 18 minpoll 4 iburst prefer true
fudge 127.127.20.0 flag1 1 flag2 0 flag3 1 flag4 1

Saya menghabiskan beberapa waktu untuk membuatnya bekerja karena apparmor memblokir ntpd membuka port serial. Saya menemukan itu dari syslos. Karenanya saya menambahkan baris ini ke /etc/apparmor.d/tunables/ntpd. Lalu berhasil.

@{NTPD_DEVICE}="/dev/ttyS0"

Izin pada perangkat adalah

$ ll /dev/ttyS0 /dev/pps* /dev/gps*
lrwxrwxrwx 1 root root          5 Okt 18 23:00 /dev/gps0 -> ttyS0
lrwxrwxrwx 1 root root          4 Okt 18 23:00 /dev/gpspps0 -> pps0
crw-rw-rw- 1 root dialout 251,  0 Okt 18 23:00 /dev/pps0
crw-rw-rw- 1 root dialout   4, 64 Okt 18 23:09 /dev/ttyS0
$ id ntp
uid=106(ntp) gid=113(ntp) Gruppen=113(ntp),20(dialout)

Untuk mencapai ini secara permanen, saya membuat beberapa udev aturan. Sedangkan perintah setserial tampaknya tidak berpengaruh jika saya memeriksa port setserial -a /dev/ttyS0 setelah boot sistem.

$ cat /etc/udev/rules.d/09-pps.rules
# Provide a symlink to /dev/ttyS0 and set low_latency for latency improvement
KERNEL=="ttyS0", SYMLINK+="gps0", MODE="0666"
KERNEL=="ttyS0", RUN+="/bin/setserial /dev/%k low_latency"
KERNEL=="ttyS0", RUN+="/usr/sbin/ldattach pps /dev/%k"

# Symlink /dev/pps0 to /dev/gpspps0
KERNEL=="pps0", SUBSYSTEM=="pps", DRIVER=="", SYMLINK+="gpspps0"
KERNEL=="pps0", GROUP="dialout"
KERNEL=="pps0", MODE="0666"

Setelah itu saya harus menghapus /var/lib/ntp/ntp.conf.dhcp sekali. Karena itu berasal dari /etc/ntp.conf di setiap acara DHCP atau hanya reboot. Jadi itu akan menghasilkan yang baru di startup.

Apakah saya masih perlu 127.127.22. * Entri (driver ATOM PPS)? Karena sebagaimana tercantum dalam dokumentasi jika saya gunakan flag1=1 PPS akan digunakan secara implisit? Tidak, ini berfungsi hanya dengan GPS NMEA (127.127.20.u).

Output saya dari ntpq -p sekarang

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
-fritz.box       185.31.136.34    3 u   36   64  177    0.298    4.496   0.076
*arcticfox.dorid 192.53.103.104   2 u   43   64  177   14.125    2.041   1.307
+monitman.com    158.43.128.33    2 u   44   64  177   25.325    4.703   0.314
+spacys.de       212.82.32.15     2 u   43   64  177   24.156   -1.503   2.094
-cse-server.com  122.227.206.195  3 u   38   64  177   24.372   -3.421   0.618
oGPS_NMEA(0)     .GPS.            0 l    1   16  377    0.000   -0.270   0.024

Untuk dukungan jam ATOM saya harus mengkompilasi ntp dengan dukungan jam ATOM yang diaktifkan.

wenzul
sumber

Jawaban:

0

Mengapa tidak membuatnya mudah pada diri Anda dan cobalah untuk menggunakan fungsi PPS. Edit file config Anda dan untuk menyertakan flag PPS yang relevan dan mulai ntpd. Ini nampak begitu jelas sehingga saya tidak yakin apakah saya melewatkan kendala.

Tidak jelas bagi saya apa yang Anda maksud dengan "versi repositori yang diinstal"? Apakah maksud Anda distribusi linux? Jika Anda melakukan jawabannya adalah ya tetapi itu tergantung pada distribusi apa yang Anda gunakan. Tapi hanya mencoba memanfaatkan PPS sepertinya tes terbaik.

Membangun kembali ntp dengan dukungan PPS

Setelah Anda memverifikasi bahwa Anda telah mengkonfigurasi perangkat gps dengan benar, Anda dapat membangun kembali ntp dengan dukungan pps dengan:

 # apt-get build-dep ntp
 # apt-get install pps-tools ubuntu-dev-tools
 # apt-get source ntp
 # cd <The ntp version directory something like ntp-4.2.6.p5+dfsg >
 # dpkg-buildpackage -uc -us -nc 
 # dpkg -i ../ntp*.deb 

Untuk menghindari bahwa apt tidak menginstal versi baru, sekali lagi tanpa dukungan jam ATOM, gunakan

 # echo ntp hold  | dpkg --set-selections
dfc
sumber
Terima kasih balasannya. Maksud saya Ubuntu & gt; = 14.04.1 repositori. Ok, jadi saya mengharapkan pesan kesalahan jika NTP tidak dapat mendukung PPS?
wenzul
Saya tidak berpikir PPS diaktifkan secara default dengan ubuntu. Bisakah Anda menambahkan output ntpq -pcrv untuk pertanyaan Anda? Jika GPS tidak muncul sama sekali itu kemungkinan besar berarti Anda memiliki masalah dengan konfigurasi perangkat serial Anda. Apakah pengguna ntp di grup dialout atau grup apa pun yang memiliki pps0 dan port serial? Saya akan menambahkan instruksi untuk membangun kembali ntp dengan pps.
dfc
1
PPS tidak diaktifkan. Tanda bintang di sebelah GPS adalah a o Static-ip.blah mencetak PPS karena disinkronkan ke sumber PPS.
dfc
Bangunan berhasil! Terima kasih banyak. Sekarang muncul oGPS_NMEA(0). Terima kasih atas langkah-langkah pembuatan di atas! Membuat hidup lebih mudah. Kompilasi gagal pada cetak debug di refclock_jupiter.c. Memperbaikinya lalu bekerja. Setelah saya atur waktu2 o muncul. Jadi saya tidak butuh tambahan PPS Clock Discipline masuk ntp.conf kanan? Selanjutnya, haruskah saya menggunakan sisi jatuh atau naik (flag2)? Dan haruskah saya menggunakan ntp clock atau disiplin kernel? Saya telah membaca bahwa min / maxpoll 4 dan ntp clock disiplin lebih baik daripada kernel karena algoritma median.
wenzul
Saya telah menjawab sejumlah pertanyaan ntp untuk Anda dan Anda belum menandai semua yang diterima. Alih-alih memperluas fokus pertanyaan ini, tandai sebagai diterima jika saya menjawab pertanyaan Anda tentang memverifikasi dukungan PPS dan atau bagaimana membangun dengan dukungan PPS. Jika Anda memiliki pertanyaan lain, silakan buat posting baru dan saya akan dengan senang hati membantu.
dfc