Guide complet : Mise à l’Heure Automatique d’un Raspberry Pi


Vous avez des problèmes avec le réglage de l’heure sur votre Raspberry Pi ?
Où peut être vous voulez synchroniser l’heure avec un autre serveur ?
Je vais vous aider dans cet article avec tout ce qui tourne autour du réglage de l’heure sur Raspberry Pi (et donc sur Linux en général)

Comment régler l’heure automatiquement sur Raspberry Pi ?
Cela dépend de la distribution et de la version utilisée, mais il est probable que le réglage de l’heure sur votre Raspberry Pi soit déjà automatique
Vous pouvez utiliser la commande timedatectl pour voir la configuration active
Vous aurez parfois besoin d’éditer la configuration ou d’utiliser le service NTP

Je vais vous expliquer ici le fonctionnement de la synchronisation automatique de l’heure sur Linux, et comment la configurer de la manière dont vous le souhaitez

Nous verrons les deux manières de gérer ça sur un Raspberry Pi :
Timedatectl : inclus directement sur Raspbian, et facile à configurer
NTP : la manière classique de faire ceci sous Linux, pour une meilleure compatibilité avec les autres systèmes
Et pour finir, je vous donnerai toutes les commandes utiles pour manier la date et l’heure sur Raspberry Pi

A propos de la synchronisation de l’heure

Avant d’aller plus loin dans les informations techniques et les commandes, je voudrais vous expliquer comment fonctionne la synchronisation de l’heure sur Linux, sur le Raspberry Pi et sur la plupart des systèmes modernes

Sur un réseau, il est crucial que tous les ordinateurs soient à la même heure
Par exemple, il n’est généralement pas possible d’ouvrir une session Active Directory ou d’accéder à un partage Samba si votre ordinateur est en retard ne serait ce que de 5 minutes
Il faut donc configurer une synchronisation de l’heure sur l’ensemble des systèmes du réseau

Le protocole NTP joue ce rôle (Network Time Protocol)
En bref vous configurez votre ordinateur pour demander l’heure à un autre, et utiliser la réponse pour régler sa propre heure (c’est un peu plus compliqué que ça, mais si vous retenez cela c’est déjà bien)

Voici un schéma du fonctionnement (source : Wikipédia) :

Généralement, il y a serveur maître sur chaque réseau qui se synchronise avec Internet
Et ensuite, tous les ordinateurs se synchronisent avec ce serveur maitre

Dans cet article je vais vous montrer comment configurer tout cela, soit avec timedatectl, soit avec NTP directement

Timedatectl

Introduction

Les dernières versions de Raspbian (Lite ou Desktop) intègrent timedatectl par défaut
Il s’agit d’un outil pour gérer la date et l’heure en ligne de commande sur le Raspberry Pi

La première commande que je vais vous expliquer est celle qui permet d’afficher le statut actuel :
timedatectl status

Vous devriez obtenir quelque chose de similaire :

Donc vous avez :

  • L’heure locale
  • Le temps universel (ce qui devrait être identique par défaut)
  • L’heure RTC si configuré (cela n’est pas inclus sur Raspberry Pi)
  • Le fuseau horaire utilisé (par défaut c’est GMT)
  • Et enfin le statut de la synchronisation automatique

Donc comme vous pouvez le voir, le Raspberry Pi est livré avec une synchronisation de l’heure déjà active (mis à part le fuseau horaire qui devrait être modifié)

Les commandes

Avant de regarder comment configurer tout ceci, je voudrais commencer par vous donner les commandes utiles (ou les options plutôt) que vous allez pouvoir utiliser avec timedatectl

Liste des fuseaux horaires

Changer la configuration du fuseau horaire c’est bien beau, mais encore faut-il connaître les valeurs possibles
Pour ceci, utilisez la commande suivante :
timedatectl list-timezones

Étant donné qu’il y a beaucoup de possibilités, vous pouvez utiliser grep pour filtrer les résultats :
timedatectl list-timezones | grep Europe
timedatectl list-timezones | grep Paris

Notez le fuseau horaire correspondant à votre situation, et utilisez-le dans la prochaine commande

Régler le fuseau horaire

Pour régler le fuseau horaire, voici la commande à utiliser :
sudo timedatectl set-timezone <valeur>

Par exemple :
sudo timedatectl set-timezone America/New_York
sudo timedatectl set-timezone Europe/Paris
sudo timedatectl set-timezone Australia/Sydney

N’hésitez pas à refaire un timedatectl status pour vérifier que tout est ok

À noter que pour changer le fuseau horaire vous pouvez également utiliser raspi-config : Localization options > Change time zone

Réglage de l’heure manuelle

Ce n’est pas vraiment l’objectif de cet article, mais si jamais vous avez besoin de régler l’heure manuellement, voici comment faire avec timedatectl :
sudo timedatectl set-time 'A:M:J HH:mm:ss'
sudo timedatectl set-time 'A:M:J'
sudo timedatectl set-time 'HH:mm:ss'

Par exemple :
sudo timedatectl set-time '12:00:00'

Avant de faire cela, il faut toutefois désactiver la mise à jour automatique (sinon l’heure reviendra toute seule à celle qui était configurée avant)
Voir le paragraphe suivant à ce sujet

Activation ou désactivation de la mise à jour automatique

Si vous préférez désactiver la synchronisation automatique de l’heure (ou la réactiver), voici les commandes à utiliser :
sudo timedatectl set-ntp false
sudo timedatectl set-ntp true

Note : Un redémarrage du Raspberry Pi peut être nécessaire pour que la modification prenne effet

Vous connaissez maintenant toutes les commandes utiles basées sur timedatectl

Configuration

La dernière chose à savoir à propos de timedatectl, c’est qu’il existe un fichier de configuration
Il vous permet notamment de changer le serveur utilisé pour la synchronisation
Voici comment faire :

  • Ouvrez le fichier de configuration :
    sudo nano /etc/systemd/timesyncd.conf
  • Décommentez la dernière ligne et remplacez les serveurs par défaut par ceux que vous souhaitez utiliser (que ce soit un serveur local ou sur Internet)
  • Par exemple :
    [Time]
    #NTP=
    FallbackNTP=0.us.pool.ntp.org 1.us.pool.ntp.org

NTP

Introduction

L’autre manière de faire de la synchronisation de l’heure sur Linux est d’utiliser NTP
Même si Debian et Ubuntu le remplacent progressivement par timedatectl, c’est toujours un logiciel très courant sur les systèmes Linux

Je ne suis pas sûr de comprendre exactement la différence entre les deux et pourquoi on remplacerait l’un par l’autre
Mais j’ai l’impression que timedatectl est parfait pour les clients, facile à utiliser et à configurer dès l’installation du système
NTP serait probablement plus dédié aux serveurs, pour les utiliser comme serveur de temps ou avoir plus d’options de configuration

Configuration

Installation

Comme évoqué précédemment, NTP n’est pas disponible par défaut sur Raspbian
Vous devrez utiliser apt pour l’installer :
sudo apt install ntp

Configuration

Le fichier de configuration pour NTP est disponible ici : /etc/ntpd.conf
Vous pouvez l’éditer pour utiliser un nouveau serveur de temps (c’est les lignes qui commencent par « pool »)
Chaque option est commentée donc vous devriez vous y retrouver facilement

Si vous voulez utiliser votre Raspberry Pi comme un serveur de temps, c’est aussi dans ce fichier que vous pouvez le configurer (options « restrict access », « broacast time », etc.)

Les commandes

NTP est un service, avec un fichier de configuration uniquement
NTP a donc moins de commandes que timedatectl (tout doit être fait dans le fichier de configuration)
Voici la commande à utiliser pour gérer le service :
sudo service ntp status | start | stop | restart

Par exemple : sudo service ntp restart pour redémarrer et appliquer les changements

La commande ntpdate

ntpdate est une commande additionnelle que vous pouvez installer et utiliser pour forcer la synchronisation de l’heure

Installation :
sudo apt install ntpdate

Vérifier le décalage de temps entre votre Raspberry Pi et son serveur référence :
ntpdate -q 0.fr.pool.ntp.org

Dans mon cas j’ai bien moins d’une seconde de décalage, ce qui confirme que NTP fonctionne correctement

Forcer un rattrapage en cas de décalage important :
Le service NTP aura tendance à régler l’heure avec le serveur référence petit à petit, progressivement
Si vous souhaitez régler l’heure en une fois, ntpdate va vous être utile :
sudo service ntp stop
sudo ntpdate 0.fr.pool.ntp.org
sudo service ntp start

Il est nécessaire de stopper le service NTP avant d’utiliser ntpdate afin de libérer le port
Vous devriez obtenir quelque chose du genre :

Conclusion

Vous savez maintenant tout ce qu’il y a à savoir sur le réglage de l’heure sur un Raspberry Pi, et la synchronisation du temps sur les systèmes Linux en général

Cela n’est peut-être pas indispensable à la maison, mais c’est très utile dans les réseaux un peu plus grands

Patrick Fromaget

Je suis l'auteur principal et le créateur de RaspberryTips. Mon but est de vous aider sur tous vos problèmes qui concernent Raspberry Pi and publiant des guides détaillés et des tutorials rapides. Dans la vraie vie, je suis administrateur système (Linux principalement) avec un expérience dans le développement web.

Recent Content