Outils pour utilisateurs

Outils du site


votre temps local: :: ()

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

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

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
fr:ntp_raspberry [2015/05/06 11:38]
emeyer [Installations logicielles préliminaires]
fr:ntp_raspberry [2015/05/11 15:08] (Version actuelle)
emeyer [Pour l'entrée PPS]
Ligne 4: Ligne 4:
   * Une carte Raspberry PI 2, équipée d'une carte micro-SD contenant le système Raspbian.   * 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).   * 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 ​préliminaires ​=====+===== 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. 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.
-  ​- Mettre à jour la distribution ​Raspbian ​et du micro-logiciel ​de la carte +  ​*La Version de Raspbian ​au moment ​de l'​écriture de ces lignes :<​code>​ 
-Mettre à jour la liste des fichiers disponibles dans les dépôts APT +uname -a 
-  ​apt-get update +Linux raspberrypi 3.18.12-v7+ ​#782 SMP PREEMPT Tue Apr 28 19:54:13 BST 2015 armv7l GNU/​Linux ​ </​code>​
-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+
  
 +==== 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 \\<​code>​
 +# apt-get update </​code>​
 +  * Mettre à jour tous les paquets installés vers les dernières versions en installant de nouveaux paquets si nécessaire \\<​code>​
 +# apt-get dist-upgrade </​code>​
 +  * Mettre à jour le firmware \\<​code>​
 +# rpi-update </​code>​
 +  * 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]]) <​code>​
 +# apt-get install pps-tools </​code>​
 +
 +==== 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 ) <​code>​
 +# apt-get install libcap-dev libssl-dev </​code>​
 +  * Enregistrement des sources de NTP
 +     * Se placer dans un répertoire. Si besoin le créer, par exemple :<​code>​
 +# cd /home
 +# mkdir root
 +# cd root
 +# mkdir ntp
 +# cd ntp  </​code>​
 +     * obtenir les sources : <​code>​
 +# wget http://​archive.ntp.org/​ntp4/​ntp-4.2/​ntp-4.2.8p2.tar.gz </​code>​
 +     * Décompresser le fichier "​tar"​ : <​code>​
 +# tar xvfz ntp-4.2.8p2.tar.gz </​code>​
 +   * compiler : <​code>​
 +# 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
 +</​code>​
 +   * installer les binaires : <​code>​
 +# make install
 +# /​etc/​init.d/​ntp stop 
 +# cp /​usr/​local/​bin/​ntp* /usr/bin/
 +# cp /​usr/​local/​sbin/​ntp* /usr/sbin/
 +</​code>​
 +
 +===== 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. <​code>​
 +#  nano /​boot/​config.txt </​code>​ Ajouter la ligne suivante, puis enregistrer le fichier : <​code>​
 +dtoverlay=pps-gpio,​gpiopin=18 </​code> ​
 +   * Rajouter pps-gpio à la liste des modules : \\ Editer <​code>​
 +# nano /​etc/​modules </​code>​ Rajouter cette ligne puis enregistrer le fichier : <​code>​
 +pps-gpio </​code>​
 +=== 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 :
 +{{ :​fr:​rpi_gpio_pinout.jpg?​500 | Connecteur GPIO et brochage}}
 +
 +
 +=== Tests ===
 +   * Pour vérifier que le module est bien chargé, vous devriez obtenir quelque chose comme ça  : <​code>​
 +# lsmod | grep pps
 +pps_gpio ​               2547  1 
 +pps_core ​               6855  2 pps_gpio </​code>​
 +   * 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 : <​code>​
 +# 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 </​code>​ Ctrl + C pour arrêter.
 +==== Pour NTP ====
 +   * Modifier le fichier de configuration,​ <​code>​
 +# nano /​etc/​ntp.conf </​code>​ en ajoutant les lignes : <​code>​
 +# 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 </​code>​ 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 : <​code>​
 +#  /​etc/​init.d/​ntp start </​code>​
 +=== Test ===
 +Pour vérifier l'​action de NTP : <​code>​
 +# 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 </​code>​ 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é.\\ \\
 +[[https://​www.raspberrypi.org/​documentation/​usage/​gpio-plus-and-raspi2/​README.md| Documentation de la carte Raspberry PI 2]]
 + ​======
  
  
fr/ntp_raspberry.1430905130.txt.gz · Dernière modification: 2015/05/06 11:38 par emeyer