Outils pour utilisateurs

Outils du site

Traductions de cette page:

votre temps local: :: ()

heure officielle (en France) : ::(TZ:)

Heure UTC client: :: Offset client: s - delai: ms - - timeZone: Heure UTC: ::

Panneau latéral

  • Corrélateurs
  • Bruits inhérent au numérique : bruit de phase, gigue, stabilité temporelle des circuits numériques
  • Compteur à intervalle de temps
  • Détection synchrone
  • Choix ADC/DAC pour applications TF
  • Mesure Sphi(f) et sigma_y(tau)
  • Servo controls (Liens fibrés, …)
  • Manipulation d'objets et fréquences (atomes froids, spectral hole burning, ions ….)
  • Datations « officielles »
  • Compteurs, avec et sans temps morts.
  • Logiciel / Pilotes
  • IP cores (FPGA)
  • Chipscope
fr:ntp_raspberry

NTP avec entrée PPS sur Raspberry PI 2

A l'Observatoire de Besançon, nous avons voulu vérifier la stabilité du système NTP lorsqu'il est relié à la fois à un serveur de temps et un signal PPS. Dans notre cas, le signal PPS est issu de la même horloge de référence que celle utilisée par le serveur de temps.

Moyens

  • Une carte Raspberry PI 2, équipée d'une carte micro-SD contenant le système Raspbian.
  • Un signal PPS issu de l'horloge de référence (CS1321), avec un atténuateur pour adapter le signal en amplitude (entrées 3,3V pour les GPIO du Raspaberry PI 2).

Installations logicielles

Toutes les opérations suivantes sont effectuées en utilisateur “root” et considèrent que les étapes de configurations éventuelles d'un proxy ont été faites préalablement.

  • La Version de Raspbian au moment de l'écriture de ces lignes :
    # uname -a
    Linux raspberrypi 3.18.12-v7+ #782 SMP PREEMPT Tue Apr 28 19:54:13 BST 2015 armv7l GNU/Linux  

Préliminaires

  • Mettre à jour la distribution Raspbian et du micro-logiciel de la carte \\Mettre à jour la liste des fichiers disponibles dans les dépôts APT \\
    # apt-get update 
  • Mettre à jour tous les paquets installés vers les dernières versions en installant de nouveaux paquets si nécessaire \\
    # apt-get dist-upgrade 
  • Mettre à jour le firmware \\
    # rpi-update 
  • Installer le paquet pps-tools \\Le projet LinuxPPS est une implémentation d'une API du PPS pour le noyau Linux. Elle utilise le système de fichiers pour échanger entre l'espace utilisateur et le noyau. Cela permet d'ajouter des sources PPS au noyau simplement (http://linuxpps.org/wiki/index.php)
    # apt-get install pps-tools 

Recompiler et installer NTP

En effet, la version implémentée dans la distribution Raspbian n'inclue pas la prise en compte d'un PPS externe. Pour cela, l'installation de bibliothèques de développement est nécessaire.

  • Installation de bibliothèques
    • libcap : librairie permettant l'utilisation de certaines propriétés du système de fichiers
    • libssl : c'est la partie de OpenSSL qui supporte le protocole TLS ( SSL et TLS )
      # apt-get install libcap-dev libssl-dev 
  • Enregistrement des sources de NTP
    • Se placer dans un répertoire. Si besoin le créer, par exemple :
      # cd /home
      # mkdir root
      # cd root
      # mkdir ntp
      # cd ntp  
    • obtenir les sources :
      # wget http://archive.ntp.org/ntp4/ntp-4.2/ntp-4.2.8p2.tar.gz 
    • Décompresser le fichier “tar” :
      # tar xvfz ntp-4.2.8p2.tar.gz 
  • compiler :
    # cd ntp-4.2.8p2.tar.gz 
    # ./configure --enable-linuxcaps # un peu moins de 6 min
    # make -j2 # un peu moins de 5 min contre presque 8 min avec un simple make
  • installer les binaires :
    # make install
    # /etc/init.d/ntp stop 
    # cp /usr/local/bin/ntp* /usr/bin/
    # cp /usr/local/sbin/ntp* /usr/sbin/

Configuration

Pour l'entrée PPS

Fichiers à modifier

  • Indiquer sur quelles entrée se trouve le PPS :
    Nous avons choisi l'entrée BCM18 (broche 12) du connecteur GPIO du Raspberry PI 2.
    #  nano /boot/config.txt 

    Ajouter la ligne suivante, puis enregistrer le fichier :

    dtoverlay=pps-gpio,gpiopin=18 
  • Rajouter pps-gpio à la liste des modules :
    Editer
    # nano /etc/modules 

    Rajouter cette ligne puis enregistrer le fichier :

    pps-gpio 

Connecter le PPS

Connecter le signal PPS entre la masse électrique et l'entrée choisie. Pour notre exemple, nous avons pris la masse broche 39 et l'entrée 18 broche 12. Voici l'organisation du bornier :  Connecteur GPIO et brochage

Tests

  • Pour vérifier que le module est bien chargé, vous devriez obtenir quelque chose comme ça :
    # lsmod | grep pps
    pps_gpio                2547  1 
    pps_core                6855  2 pps_gpio 
  • Pour vérifier si le PPS est bien pris en compte, une fois le signal appliqué à l'entré GPIO concernée (ATTENTION : 3,3 V), vous deviez pouvoir utiliser la commande ppstest et obtenir une information par seconde :
    # ppstest /dev/pps0
    trying PPS source "/dev/pps0"
    found PPS source "/dev/pps0"
    ok, found 1 source(s), now start fetching data...
    source 0 - assert 1430922986.000009024, sequence: 12990 - clear  0.000000000, sequence: 0
    source 0 - assert 1430922987.000007107, sequence: 12991 - clear  0.000000000, sequence: 0
    source 0 - assert 1430922988.000007013, sequence: 12992 - clear  0.000000000, sequence: 0
    source 0 - assert 1430922989.000006034, sequence: 12993 - clear  0.000000000, sequence: 0
    source 0 - assert 1430922990.000006461, sequence: 12994 - clear  0.000000000, sequence: 0 

    Ctrl + C pour arrêter.

Pour NTP

  • Modifier le fichier de configuration,
    # nano /etc/ntp.conf 

    en ajoutant les lignes :

    # LAN servers
    server kronos prefer
    server saturne.obs-besancon.fr
    
    # kernel-mode PPS ref-clock
    server 127.127.22.0 minpoll 6 maxpoll 6
    fudge 127.127.22.0 refid PPS 

    Les lignes avec 127.127.22.X définissent les entrées PPS sur /dev/ppsX avec des temps de consultation réglés par nimpoll et maxpoll en puissance de 2 secondes.

  • Redémarrer le service NTP :
    #  /etc/init.d/ntp start 

Test

Pour vérifier l'action de NTP :

# ntpq -p 
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
oPPS(0)          .PPS.            0 l   52   64  377    0.000   -0.017   0.002
*kronos.ltfb.lan .PPS.            1 u   43   64  377    0.264   -0.089   0.034
+saturne.obs-bes .PPS.            1 u    8   64  377    0.434    0.010   0.031 

Le jitter et le délais se stabilisent au bout de quelques heures.

Références

Je n'ai fait que reprendre une part des informations trouvées sur cette page qui est très bien faite :
http://www.satsignal.eu/ntp/Raspberry-Pi-NTP.html
Tout y est très bien expliqué.

Documentation de la carte Raspberry PI 2

fr/ntp_raspberry.txt · Dernière modification: 2015/05/11 15:08 par emeyer