Raspberry Pi – Horloge matériel et serveur NTP

24 Oct 2016 par jj, 1 commentaire »

Bonjour à tous,

Pour un besoin très particulier (donner l’heure à des dongles OTT dans un réseau multicast sans accès à un quelconque autre réseau), j’ai eut besoin d’un serveur NTP dans mon réseau interne.

2016-10-24-15-27-06Je me suis naturellement tourné vers un Raspberry, malheureusement j’avais un peu oublié le fait que le raspberry était dépourvu de hardware clock, mais pas de soucis, j’en avais un ou deux en rab pour mes projets Arduino.

J’avais donc en stock un DS3231 mais ce tuto est le meme pour le module DS1307 (suffit juste de changer le nom aux bons endroits).

Si vous voulez directement commander le meme, voici ou vous pourrez le trouver :

Aliexpress pour 60 centimes environs (Si vous n’etes pas pressé, ça prends entre deux semaines et deux mois)

Amazon pour un peu moins de 6 euros (Mais avec la livraison en un jour ouvré)

 

-Première étape, installation et paramétrage du module RTC.

 

La première étape consiste donc à connecter le module RTC à notre Raspberry grace aux GPIO.

Nous allons donc connecter GND et 5v pour l’alimentation du module et les pates SDA et SCL pour la communication i2c entre le RPI et le module RTC

Voici ce que donne le schémas de câblage à partir d’un Raspberry Rev 2 (Pour le plus vieux, les pins SDA et SCL diffèrent, reportez vous au schémas des pins GPIO de votre modèle de RPI pour être sur du câblage):

RPI Pin RTC Pin
Pin 4 (5V) VCC
Pin 6 (GND) GND
Pin 3 (SDA) SDA
Pin 5 (SCL) SCL

Et voici le schémas des GPIO du Raspberry B :

gpio-raspberry-b

 

Une fois le module correctement cablé, nous allons passer au paramétrage du système  :

Dans Raspbian, l’i2c est désactivé par défaut, nous allons donc l’activer via un terminal :

sudo raspi-config

Via le menu qui s’affiche, sélectionnez Advanced Options puis I2C.

Choisissez Yes, votre interface i2c est maintenant activé.

Nous allons vérifier maintenant que l’ensemble communique bien, pour ce faire, il va falloir installer les packets suivants :

sudo apt-get install python-smbus
sudo apt-get install i2c-tools

Grace à ces outils, nous allons lancer un scan i2c nous permettant de voir que notre module est bien reconnu :

sudo i2cdetect -y 1

Vous devriez voir ceci :

Si vous avez un vieux Raspberry, faites à la place :

sudo i2cdetect -y 0

 

Notre module RTC est bien présent à l’adresse 68.

 

Si cela ne fonctionne pas, vous pouvez essayer de charger les modules i2c-dev et i2c-bcm2708 à la main :

sudo modprobe i2c-dev
sudo modprobe i2c-bcm2708

Si cela fonctionne, vous pourrez alors ajouter ces modules dans /etc/modules en exécutant la commande suivante :

sudo nano /etc/modules

Et ajoutez à la fin du fichier les deux lignes suivantes :

i2c-dev
i2c-bcm2708

Au prochain redémarrage, les modules seront automatiquement chargés, et il ne sera pas nécessaire de faire un modprobe.

 

Nous avons maintenant une Horloge matériel correctement relié à notre Raspberry et bien reconnu.

Nous allons maintenant la déclarer à l’OS pour pouvoir ensuite l’utiliser :

echo ds3231 0x68 | sudo tee /sys/class/i2c-adapter/i2c-1/new_device

Comme je l’ai précisé plus haut, si vous avez un module DS1307, vous devrez taper ds1307 à la place de ds3231.

Nous pouvons maintenant afficher l’heure enrengistré dans le module RTC :

sudo hwclock

Si c’est la première fois que vous utilisez le module, vous devriez avoir une date au 1er janvier 2000.

Nous allons maintenant définir la date et l’heure au module RTC :

 

-Définir la date et l’heure du système depuis internet et l’enregistrer dans le module RTC:

Paramétrons les bons fuseaux horaires de l’OS soit par le menu raspi-config soit par :

sudo dpkg-reconfigure tzdata

Choisissez bien le bon continent et la bonne zone.

Vous pouvez maintenant vérifier la date et l’heure du système en tapant dans un terminal :

date

Si vous etes à la bonne date/heure, nous allons maintenant l’écrire dans le module RTC :

sudo hwclock -w

 

 

-Définir la date et l’heure du système manuellement et l’enregistrer dans le module RTC:

Si votre Raspberry pi n’a pas accès à internet pour se synchroniser à une horloge précise, vous pouvez toujours utiliser la commande suivante pour définir une date arbitraire (ici le 24 Octobre 2016, à 16h15:00s) :

sudo date -s "Sep 24 2016 16:15:00"

Une fois l’horloge système réglé manuellement, nous allons l’écrire dans le module RTC (l’horloge matériel) :

sudo hwclock -w

 

-Configuration du système pour utiliser automatiquement le module RTC

Nous avons donc pu définir la date et l’heure de l’horloge matériel, voyons maintenant comment configurer le RPI pour qu’il utilise ce module à chaque démarrage:

Editez le fichier /etc/rc.local via la commande :

sudo nano /etc/rc.local

Et ajoutez les deux lignes suivantes avant la ligne exit 0  :

echo ds3231 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
sleep 2
hwclock -s
/etc/init.d/ntp start

Nous pouvons maintenant désactiver le service fake-hwclock qui tente de reproduire le fonctionnement d’une horloge temps réel quand on en dispose pas:

sudo update-rc.d fake-hwclock disable

Nous pouvons également désactiver le service NTP qui n’es pas nécessaire :

sudo update-rc.d ntp disable

 

 

Si par la suite on souhaite synchroniser la date et l’heure du système avec celle de serveurs de temp, on pourra utiliser la commande suivante :

sudo ntpd -qg

Sans oublier d’écrire ensuite l’heure dans le module RTC :

sudo hwclock -w

 

Nous avons maintenant un Raspberry Pi avec une Horloge matériel, si la pile bouton que vous avez inséré dans votre module RTC fonctionne, vous pouvez débrancher et rebrancher votre Raspberry, meme sans connexion internet il devrait rester à l’heure !!

 

 

-Seconde étape, installation et paramétrage du serveur NTP.

Commençons par installer les paquets nécessaire :

sudo apt-get install ntp ntpdate

On édite ensuite le fichier /etc/ntp.conf:

sudo nano /etc/ntp.conf

Ajoutez au serveur NTP l’accès a l’horloge RTC:

server  127.127.1.0 # local clock
fudge   127.127.1.0 stratum 10

Commentez la ligne :

restrict 127.0.0.1

Et ajoutez pour accepter toutes les requêtes NTP : (Si vous voulez vous limiter au réseau ex : 192.168.1.0/24 : restrict 192.168.1.0 mask 255.255.255.0)

restrict 0.0.0.0 mask 0.0.0.0

OPTIONNEL : Si vous voulez diffuser l’heure sur votre adresse réseau de broadcast :

broadcast 192.168.1.255

Vous pouvez maintenant redémarrer votre serveur NTP :

sudo /etc/init.d/ntp restart

 

Bon courage pour la suite …

Étiquettes : , , , , , , , ,

Un commentaire

  1. […] Bonjour à tous, Pour un besoin très particulier (donner l’heure à des dongles OTT dans un réseau multicast sans accès à un quelconque autre réseau), j’ai eut besoin d’un se……  […]

Réagissez

Raspberry Pi 2 ou 3 et Raspbian Jessie - VLC 2.4 et accélération matériel (hardware acceleration)

Raspberry Pi 2 ou 3 et Raspbian Jessie – VLC 2.4 et accélération matériel (hardware acceleration)

Aujourd’hui je vais à nouveau publier une mise à jour de l’article : Raspberry Pi 2 – VLC et accélération matériel (hardware [&hellip

Raspberry Pi 2 ou 3 et Raspbian Jessie - VLC 2.2 et accélération matériel (hardware acceleration)

Raspberry Pi 2 ou 3 et Raspbian Jessie – VLC 2.2 et accélération matériel (hardware acceleration)

UPDATE : Raspberry Pi 2 ou 3 et Raspbian Pixel – VLC 2.4 et accélération matériel (hardware acceleration) Aujourd’hui je vais [&hellip

Compilation de la derniere version de FFMPEG

Compilation de la derniere version de FFMPEG

Bonjour à tous, Aujourd’hui un petit tuto pour avoir la dernière version de ffmpeg, ce tutoriel à été utilisé maintes [&hellip

Raspberry Pi 2 - VLC et accélération matériel (hardware acceleration)

Raspberry Pi 2 – VLC et accélération matériel (hardware acceleration)

UPDATE : Raspberry Pi 3 et Raspbian Pixel – VLC 2.4 et accélération matériel (hardware acceleration) Ayant un petit projet de [&hellip

FFMPEG - Diffuser un flux ip multicast en adaptative smooth streaming

FFMPEG – Diffuser un flux ip multicast en adaptative smooth streaming

Un petit script bien utile pour délivrer un flux video multicast en adaptative smooth streaming

Installation de Transform Manager

Installation de Transform Manager

Prérequis – résumé : Télécharger Transform Manager Télécharger IIS Media Services 4.1 Télécharger IIS Managment console Télécharger .NET Framework 3.5 [&hellip

Suivez moi !

Follow Me! Follow Me! Follow Me! Follow Me!

Chercher