Apprendre ou enseigner le codage avec la météo et le climat : Démarrage avec une Raspberry Pi et les ressources de l'ENS-IFÉ

Motivations

Le but de cet article est de décrire la procédure de démarrage d'une Raspberry Pi, en utilisant l'image proposée par le projet Tremplin de l'ENS-IFÉ, pour apprendre et enseigner le codage avec des outils interactifs web. La marche à suivre est détaillée depuis la récupération en ligne de l'image jusqu'à la mise à disposition de données, il ne requiert pas de compétences avancées en programmation ou en administration système, ce blog reprend les traces de la mise en oeuvre réalisée et devrait correspondre à ce qu'un utilisateur va effectivement observer.

Le processus de construction et de mise à disposition du système d'exploitation utilisé ici est décrit dans le blog de création de l'image et la page de présentation des images disponibles. Ce processus est aussi intégralement ouvert et met en oeuvre des logiciels libres et des ressources sous licence creative commons mais requiert une maîtrise un peu plus avancée de la configuration d'un ordinateur. Il n'est pas nécessaire de consulter le processus de création pour utiliser ce blog.

Remerciements

Carole Larose, Myriam Bentoumi, Éric le Jan et Charles-Henri Eyraud.


Sommaire

  1. Récupération de l'image en ligne et copie sur la micro-SD de la Raspberry Pi

    a. Préambule de précaution : Formatage de la SD sous GNU/Linux

    b. Préambule de précaution : Formatage de la SD avec un autre OS

    c. Téléchargement de l'image mise à disposition

    d. Préparation de la micro-SD cible

    • Copier l'image téléchargée sur la microSD sous linux
    • Copier l'image téléchargée sur la microSD (autre OS)

    e. Ajustement de la taille de l'image avant le démarrage

  2. Modifications sur la SD pour que la Raspberry Pi puisse se connecter au réseau

    a. Utilisation du serveur de terminaux

    b. Configuration manuelle

  3. Premier démarrage et configuration opérationnelle de la Raspberry Pi

    a. Ajustement de la taille de l'image après le démarrage

    b. Changement de nom des mots de passe, ajout d'utilisateurs et finalisation du réseau et du système

    • utilisateurs connus
    • interfaces réseau disponibles
    • Nom de la Raspberry
    • Modification du pare-feu

    c. Configuration du logiciel d'interface avec la station météorologique : weewx

    d. Modifications des paramètres de la base de données locale


Téléchargements

  1. image proposée par le projet Tremplin de l'ENS-IFÉ
  2. g_vidal rpi23-gen-image
  3. logiciel weewx
  4. Images raspberryPi du projet Tremplin

1. Récupération de l'image en ligne et copie sur la micro-SD de la Raspberry Pi

La procédure proposée ici est homologue de celle utilisée pour installer n'importe quel système d'exploitation pour une Raspberry Pi. Le principe est de recopier puis de configurer un système d'exploitation sur une micro-SD qui est l'espace de stockage de la Raspberry Pi. Avant d'effectuer une installation, nous allons vérifier que la carte micro-SD que nous allons utiliser est correctement formatée. Le travail est effectué avec une autre Raspberry ou une autre machine linux debian, il est commode d'utiliser une distribution live sur une clef USB qui permet de disposer d'Ordinateur sous linux sans toucher à l'installation de la machine; une procédure de création de clef USB live avec persistance est disponible sur le même blog.

1.a Préambule de précaution : Formatage de la SD sous GNU/Linux

Formater la micro-SD avec une seule partition FAT32 occupant la totalité de l'espace disponible. Attention si la mico-SD contient des données que vous souhaitez conserver sauvegardez-les AVANT le formatage.

sudo gparted

Si on n'utilise pas une carte neuve, il peut se produire que la carte ne soit pas montée automatiquement par l'ordinateur, il est probable que la carte soit abîmée ou impropre à l'usage qu'on lui destine. Toutefois, on peut utiliser la commande dmesg pour obtenir des informations sur l'erreur; si le message est du type :

mmc0: cannot verify signal voltage switch
mmc0: error -110 whilst initialising SD card

cela confirme que la carte est en mauvais état; la meilleure solution est probablement d'en prendre une neuve ! Toutefois, en cas de besoin, il est possible de tenter d'utiliser un adaptateur mico-SD-> USB; dans beaucoup de cas la carte est montée comme une clef USB et permet d'effectuer les opérations proposées ci-dessous en contournant une partie des vérifications spécifiques aux cartes SD. La micro-SD construite a des chances de fonctionner correctement mais elle doit cependant être considérée comme douteuse.

1.b Préambule de précaution : Formatage de la SD avec un autre OS

Windows ne reconnait pas et ne sait pas traiter les systèmes de fichiers ext4 qu'utilisera la Raspberry Pi, il est donc nécessaire d'installer sur votre ordinateur un logiciel fournissant cette fonctionnalité, par exemple SD Card Formatter) voir image ci-dessous.

SD Card Formatter

1.c Téléchargement de l'image mise à disposition

L'image Raspberry Pi3 se trouve sur le serveur de media du projet Tremplin des Sciences.

  • Les chiffres YYYY-MM-DD représentent la date de création,
  • rpi3 rpiW3 et rpi2 représentent la Raspberry Pi cible :
  • rpi3 -> Raspberry Pi3,
  • rpiW3 -> Raspberry Pi3 pour station météo sans gestionnaire graphique,
  • rpi2 -> Raspberry Pi2,
  • stretch ou buster la distribution cible.

La valeur est à paramétrer dans ce qui suit en fonction de ce qui est disponible en ligne. Pour obtenir ce numéro, se connecter avec un navigateur web à l'adresse Raspberry Pi3 http://mediaserv.climatetmeteo.fr/images/RaspBerry/. Pour télécharger l'image, il suffit de copier-coller le nom de l'image dans la barre d'adresse et le téléchargement sera lancé, ou alors utiliser la commande linux wget ou curl. Les deux commandes ci-dessous permettent de télécharger l'image et le fichier bmap (non obligatoire) qui avec l'outil bmaptool permet de minimiser les temps de transfert.

wget http://mediaserv.climatetmeteo.fr/images/RaspBerry/DebianStretchPi3/YYYY-MM-DD-rpi?-DIST.bmap 
wget http://mediaserv.climatetmeteo.fr/images/RaspBerry/DebianStretchPi3/YYYY-MM-DD-rpi?-DIST.img.xz  

1.d Préparation de la micro-SD cible

Copier l'image téléchargée sur la microSD sous linux

L'image est en format compressé (.xz), si on utilise l'outil bmaptool proposé ici car avec lui il n'est pas nécessaire de la décompresser pour la copier ce qui économise de la bande passante et du temps :

  • le fichier avec l'extension bmap qui est un fichier de configuration permettant une copie accélérée par l'utilitaire bmap-tool (ce fichier est inutile si vous utilisez un sytème d'exploitation moins puissant ne sachant pas exploiter le descriptif de l'image)

  • l'image compressée avec l'extension .img.xz fait une taille de l'ordre de 2.2 Go alors que la taille originelle est l'ordre de 7.5Go et l'extension .img.

L'utilitaire bmap-tools utilise la description de l'image et raccourcit le temps nécessaire en ne copiant pas les blocs vides et en optimisant la taille des blocs copiés. Ci-dessous, exemple de trace de la copie en utilisant un adapteur SD (/dev/mmcblk0). Avec un adaptateur USB, on aurait un autre device cible (/dev/sdc) pour la copie. Les commandes ci-dessous sont exécutées depuis le répertoire où ont été téchargés les fichiers avec l'image buster du 2018-04-08; changer les valeurs en fonction de l'image choisie. Attention bien copier l'intégralité de la ligne de commande si un ascenseur horizontal apparait au pied.

sudo bmaptool copy --bmap 2018-04-08-rpi3-buster.bmap 2018-04-08-rpi3-buster.img.xz /dev/mmcblk0
bmaptool: info: block map format version 2.0
bmaptool: info: 1894400 blocks of size 4096 (7.2 GiB), mapped 1882112 blocks (7.2 GiB or 99.4%)
bmaptool: info: copying image '2018-04-08-rpi3-buster.img.xz' to block device '/dev/mmcblk0' using bmap file '2018-04-08-rpi3-buster.bmap'
bmaptool: info: 100% copied
bmaptool: info: synchronizing '/dev/mmcblk0'
bmaptool: info: copying time: 2m 49.9s, copying speed 43.3 MiB/sec

Copier l'image téléchargée sur la microSD (autre OS)

L'image téléchargée depuis le site est en format compressé (img.xz), elle ne doit pas être recopiée sous forme compressée, pour la décompresser utiliser un logiciel de décompression come par exemple 7z.

Sous windows la manipulation d'images ISO n'est pas non plus possible en standard, télécharger le logiciel Win32Disk puis l'utiliser pour recopier l'image téléchargée sur la carte SD (voir image ci-dessous):

Logiciel Win32diskmanager

Vous disposez maintenant d'une carte micro-SD, qui une fois insérée dans la RaspBerri Pi, va lui permettre de démarrer et de récupérer le réseau filaire. Pour se connecter à un réseau WIFI, le plus simple est de connecter un écran, un clavier et une souris pour le configurer avec l'interface graphique, il est possible de se connecter au WIFI sans écran voir le paragraphe ci-dessous.

1.e Ajustement de la taille de l'image avant le démarrage

L'image qui vient d'être recopiée est inscrite sur une partition ajustée à sa taille (inférieure à 8 Go), afin de pouvoir travailler confortablement et utiliser tout l'espace disponible, il est impératif d'agrandir la partition. Cette opération peut se faire avant ou après le premier démarrage. Pour modifier la taille avant le premier démarrage utiliser le commande gparted :

sudo gparted

Dans le logiciel gparted :

  • démonter les deux partitions de la SD
  • redimensionner la seconde partition (ext4)
  • choisir une dimension compatible avec la SD utilisée ou avec les SD cibles, penser à prendre un peu de marge car toutes les SD ne proposent pas effectivement tout l'espace annoncé et par ailleurs ne pas oublier que les constructeurs annoncent les tailles en unités du Système International (puissances de 10), alors que les ordinateurs mesurent les tailles en binaire (pussances de 2). Ainsi une SD achetée pour 8 Gio contiendra au mieux 8 x 10 ^ 9 octets = 8 000 000 000 octets et pas les 8Go 8 x 2 ^ 30 = 8 x 1073741824 = 8 589 934 592 que vous souhaiteriez y mettre ! (Dans cet exemple 7.4 Go est voisin de la limite des 8Gio)

2. Modifications sur la SD pour que la Raspberry Pi puisse se connecter à un réseau WIFI sans écran

La connection a un réseau WIFI impose une authentification et pour qu'elle soit possible, il faut fournir à la raspberry Pi les paramètres d'authentification de l'usager. Quand on ne dispose pas d'écran et donc pas de visualisation de l'application graphique directe depuis la raspberry pi, deux solutions sont possibles : * utiliser le serveur de terminaux pré-installé et lancé au démarrage sur la raspberry qui va permettre d'afficher sur n'importe quel ordinateur disposant d'un client de serveur de terminaux l'écran de notre Raspberry Pi (cette opération se fait après le premier démarrage de la raspberry pi avec une connection filaire) * recopier dans le fichier de configuration de l'outil wicd les paramètres de connexion au réseau WIFI choisi

2.a Utilisation du serveur de terminaux

Utiliser un client de serveur de terminaux comme tightvnc ou remmina pour afficher l'écran de la raspberry Pi sur l'écran de l'ordinateur compagnon (user tsuser et mot de passe raspife3) puis cliquer sur l'outil de gestion du réseau en bas à droite, choisir le réseau WIFI, cliquer sur propriétés et configurer les paramètres du réseau. Sauvegarder, cocher la case "se connecter automatiquement à ce réseau" puis cliquer sur se connecter.

Gestionnaire de WiFI de la raspberry Pi

2.b Configuration manuelle

Cette opération requiert des compétences un peu plus avancées et n'est proposée ici qu'en dernier recours ! Elle s'effectue avant de placer la micro-SD dans la Raspberry Pi. Dans le répertoire etc/wicd de la carte, éditer le fichier wireless-settings.conf (qui doit être vide) :

sudo nano etc/wicd/wireless-settings.conf

et ajouter les paramètres suivants:

L'adresse mac de la borne à laquelle on souhaite se connecter [##:##:##:##:##:##], ainsi que les paramètres énumérés ci-dessous dans le format proposé.

[##:##:##:##:##:##]
dhcphostname = raspife3
bssid = ##:##:##:##:##:##
ip = None
dns_domain = None
gateway = None
use_global_dns = 0
encryption = True
hidden = False
channel = 9 #canal
mode = Master
netmask = None
usedhcphostname = 0
bitrate = auto
enctype = wpa-psk #type de chiffrage
allow_lower_bitrates = 0
dns3 = None
dns2 = None
dns1 = None
use_settings_globally = 0
use_static_dns = 0
apsk = passphrase d'aythentification
encryption_method = WPA
essid = nom du réseau
search_domain = None
beforescript = None
afterscript = None
predisconnectscript = None
postdisconnectscript = None

Les modifications ci-dessous sont cruciales pour la connexion au réseau de l'image lors de son premier démarrage, elles doivent être faites directement sur la SD depuis un environnement capable de lire les partitions ext4. Éditer le fichier /etc/systemd/network/50-wired.network de la micro-SD. Attention à ne pas modifier le /etc/systemd/network/50-wired.network de l'ordinateur utilisé pour faire la configuration s'il existe. Par défaut, le fichier contient des *** à la place des numéros de l'IP fixe qui sera utilisée, et un domaine local est utilisé 192.168.***.***.

[Match]
Name=enx*

[Network]
DHCP=no
Address=192.168.***.***/24
Gateway=192.168.***.***
DNS=192.168.***.***

Il doit être transformé avec l'adresse IP fixe choisie pour la Raspberry Pi, l'adresse de la passerelle du serveur de noms du réseau qui va l'accueillir. Dans notre exemple, la Raspberry Pi est installée dans le réseau 10.5.10.0/24 à l'adresse 10.5.10.111/24 la passerelle et le DNS se trouvent à l'adresse 10.5.10.253 qui conduit au fichier suivant :

[Match]
Name=enx*

[Network]
DHCP=no
Address=10.5.10.111/24
Gateway=10.5.10.253
DNS=10.5.10.253

tant que l'adresse de l'interface réseau n'est pas connue on conserve le nom d'adresse générique enx*.

Éditer ensuite le fichier /etc/hosts pour attribuer la bonne adresse au nom de la Raspberry pi (encore par défaut pour le moment).

127.0.0.1       localhost
10.5.10.111       raspife3

::1             localhost ip6-localhost ip6-loopback
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

L'image est pré-configurée pour qu'elle puisse démarrer et se connecter au réseau filaire ou au réseau WIFI, il n'est pas nécessaire de modifier le fichier /etc/systemd/network/55-wireless.network car le réseau WIFI porte le nom générique de wlan0.

3. Premier démarrage et configuration opérationnelle de la Raspberry Pi

Démonter et retirer la micro-SD puis l'installer dans la Raspberry Pi, connecter au réseau filaire puis brancher l'alimentation, la Raspberry démarre et se connecte avec une adresse IP fournie par le DHCP. Il est impératif d'avoir quelques connaissances minimales des paramètres du réseau sur lequel a été connecté la raspberry : * S'il s'agit d'un réseau personnel ou d'un réseau pour lequel on a accès à la table d'attribution d'adresses, se connecter au routeur (ou à la box) et récupérer l'adresse IP; la raspberry porte le nom raspife3 * Si on n'a pas accès au routeur utiliser la machine linux déjà employée pour les premières étapes et taper la commande : nmap -sP -n XXX.XXX.XXX.XXX/YY les nombres XXX.XXX.XXX.XXX et YY désignat les paramètres du réseau. Ils sont fournis si on ne les connait pas par la commande ip addr sur la ligne contenant le mot inet.

On se connecte avec la commande ci-dessous (dans cet exemple la Raspberry se trouve à l'IP 10.5.10.111), on fournit le mot de passe par défaut "AChanger1$" et on accède à la Raspberry.

ssh localadm@10.5.10.111


localadm@10.5.10.111's password: 
Linux raspife3 4.15.14-v7 #1 SMP Tue Apr 3 00:36:04 CEST 2018 armv7l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.

3.a Ajustement de la taille de l'image après le démarrage

Si la modification n'a pas été effectuée avant le démarrage, elle peut être effectuée maintenant en utilisant la commande fdisk en tant que superutilisateur comme proposé ci-dessous. Si la modification de taille a déjà été effectuée il est inutile de la refaire!

sudo fdisk /dev/mmcblk0
  • Taper m pour voir la liste des commandes (juste pour information)
  • Taper p pour voir la liste des partitions disponibles, normalement il y en deux

    • une FAT : /dev/mmcblk0p1 * 2048 133119 131072 64M c W95 FAT32 (LBA)
    • une linux : /dev/mmcblk0p2 133120 62517247 62384128 29,8G 83 Linux
  • Taper ensuite

    • d puis
    • 2 puis
    • n puis
    • p puis
    • 2 puis
    • accepter la valeurs par défaut qui correspondent au premier bloc disponible
    • +7600M afin de produire une image qui puisse fonctionner sur une petite carte SD
    • N pour "remove signature",
    • pour finir taper w.

puis :

sudo resize2fs /dev/mmcblk0p2

3.b Changement de nom des mots de passe, ajout d'utilisateurs et finnalisation du réseau et du système

La Raspberry démarre avec le nom générique raspife3 et le même mot de passe générique pour tous les utilisateurs et tous les services sauf moon, ce qui est commode mais absolument pas sécurisé. Pour des raisons de sécurité, il est impératif de changer immédiatement les mots de passe des utilisateurs. On commence par l'utilisateur localadm qui est connecté avec la commande suivante :

localadm@raspife3:~$  passwd
Changement du mot de passe pour localadm.
Mot de passe UNIX (actuel) : 
Entrez le nouveau mot de passe UNIX : 
Retapez le nouveau mot de passe UNIX : 
passwd: password updated successfully

utilisateurs connus

Pour avoir la liste des utisateurs créés pour le projeton utilisez la commande ci-dessous. Attention on ne touchera qu'aux utilisateurs créés pour le projet, le reste du système devant resté dans l'état standard.

localadm@raspife3:~$ cat /etc/passwd

Les utilisateurs ajoutés à modifier se trouvent à la fin du fichier.

root:x:0:0:root:/root:/bin/bash

.../...

localadm:x:1001:1003:localadm user,,,:/home/localadm:/bin/bash
weewx:x:1002:1004:weewx user,,,:/home/weewx:/bin/bash
moon:x:1003:1005:moon user,,,:/home/moon:/bin/bash
callisto:x:1004:1006:callisto user,,,:/home/callisto:/bin/bash
tsuser:x:1005:1007:tsuser user,,,:/home/tsuser:/bin/bash

On conserve à localadm son mot de passe que l'on vient de changer et on change les mots de passe de tsuser, moon, callisto et weewx.

localadm@raspife3:~$ sudo passwd moon
Entrez le nouveau mot de passe UNIX : 
Retapez le nouveau mot de passe UNIX : 
passwd: password updated successfully
localadm@raspife3:~$ sudo passwd tsuser
Entrez le nouveau mot de passe UNIX : 
Retapez le nouveau mot de passe UNIX : 
passwd: password updated successfully
localadm@raspife3:~$ sudo passwd weewx
Entrez le nouveau mot de passe UNIX : 
Retapez le nouveau mot de passe UNIX : 
passwd: password updated successfully
localadm@raspife3:~$ sudo passwd callisto
Entrez le nouveau mot de passe UNIX : 
Retapez le nouveau mot de passe UNIX : 
passwd: password updated successfully

En cas de besoin, pour des connexions sécurisées ajouter les clés ssh des utilisateurs dans le répertoire .ssh des usage(par exemple weewx pour accéder à la base de données de centralisation des données opendata).

Mise à jour du système

Il a pu s'écouler du temps entre la création de l'image et sa mise en oeuvre, il est important de faire une mise à jour du système avec les 3 commandes énumérées ci-dessous.

localadm@raspife3:~$ sudo apt-get update
Ign:1 http://debian.mirrors.ovh.net/debian stretch InRelease
Réception de:2 http://debian.mirrors.ovh.net/debian stretch-updates InRelease [91,0 kB]
Réception de:3 http://security.debian.org stretch/updates InRelease [63,0 kB]
Réception de:4 http://debian.mirrors.ovh.net/debian stretch Release [118 kB]
272 ko réceptionnés en 2s (94,1 ko/s)                       
Lecture des listes de paquets... Fait

localadm@raspife3:~$ sudo apt-get upgrade
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Calcul de la mise à jour... Fait
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.

localadm@raspife3:~$ sudo apt-get dist-upgrade
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Calcul de la mise à jour... Fait
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.

Interfaces réseau disponibles

Pour obtenir la liste des interfaces disponibles, on utilise la commande ip token, on a deux interfaces par défaut, l'une (WIFI) est identifiée par wlan0 l'autre commence par enx et ajoute des informations tirées de l'adresse MAC de l'interface filaire.

localadm@raspife3:~$ ip token
token :: dev enx123456789abc
token :: dev wlan0

L'adresse trouvée doit être copiée dans le fichier /etc/systemd/network/50-wired.network qui devient :

[Match]
Name=enx123456789abc

Le reste du fichier est inchangé, de même le fichier /etc/systemd/network/55-wireless.network n'est pas touché.

Il est possible pour des raisons de sécurité de choisir pour les connexions ssh un autre port que le port 22 en modifiant le paramètre port du fichier /etc/ssh/sshd_config.

Port xxxxx

Nom de la Raspberry

On obtient le nom de la Raspberry par la commande hostname, on cherche ensuite toutes les occurrences de ce nom dans le répertoire de confguration /etc

localadm@raspife3:~$ hostname
raspife3
localadm@raspife3:~$ sudo rgrep -e 'raspife3' /etc

.../...

/etc/systemd/network/50-wired.network:Host=raspife3
/etc/systemd/network/55-wireless.network:Host=raspife3
/etc/wicd/wired-settings.conf:dhcphostname = raspife3
/etc/wicd/wireless-settings.conf:dhcphostname = raspife3
/etc/hosts:127.0.1.1       raspife3

Le fichier /etc/hostname contient aussi l'identification de la Raspberry Pi.

On modifie les fichiers trouvés en remplaçant raspife3 par le nom choisi pour cette Raspberry (ici six fichiers doivent être modifiés). Pour terminer, on réalise une mise à jour du système et on vérifie la langue ansi que le fuseau horaire utilisés. La commande suivante permet de reconfigurer les langues français-UTF8 et anglais-UTF8 dans cet exemple. Puis fuseau horaire Europe/Paris.

localadm@raspife3:~$ sudo dpkg-reconfigure locales
Generating locales (this might take a while)...
  en_US.UTF-8...
 done
  fr_FR.UTF-8... done
Generation complete.

localadm@raspife3:~$ sudo dpkg-reconfigure tzdata

Current default time zone: 'Europe/Paris'
Local time is now:      dimanche 21 janvier 2018, 17:09:29 (UTC+0100).
Universal Time is now:  Sun Jan 21 16:09:29 UTC 2018.

Ajout d'utilisateurs personnalisés et de services

Il est possible d'ajouter autant d'utilisateurs qu'on le souhaite ainsi que tous les services et toutes les fonctions que propose un ordinateur portable à un serveur. La seule limitation est la puissance délivrée par le processeur ARM de la Raspberry et la mémoire disponible. Les services Snap (programmation par blocs identique à scratch), jupyter et jupyterhub ont été testés en situation de formation avec une vingtaine d'usagers. Il est possible d'activer la connexion à un annuaire de type LDAP ou à un serveur d'espaces personnalisés du cloud et bien d'autres choses...

Pour ajouter un utilisateur, utiliser la commande sudo adduser :

sudo adduser vidal
[sudo] Mot de passe de ens-ife : 
Ajout de l'utilisateur « vidal » ...
Ajout du nouveau groupe « vidal » (1008) ...
Ajout du nouvel utilisateur « vidal » (1006) avec le groupe « vidal » ...
Création du répertoire personnel « /home/vidal »...
Copie des fichiers depuis « /etc/skel »...
Entrez le nouveau mot de passe UNIX : 
Retapez le nouveau mot de passe UNIX : 
passwd: password updated successfully
Changing the user information for vidal
Enter the new value, or press ENTER for the default
    Full Name []: vidal gerard
    Room Number []: 
    Work Phone []: 
    Home Phone []: 
    Other []: 
Cette information est-elle correcte ? [O/n]

Ne pas oublier d'ajouter les nouveaux utilisateurs dans les groupes requis. La commande ci-dessous ajoute le user vidal aux groupes dialout, audio, video, plugdev, users, netdev, i2c, gpio, jupyterhub.

for i in dialout audio video plugdev users netdev i2c gpio jupyterhub ; do sudo adduser vidal $i; done

3.3 Services web opérationnels pour le codage : snap (->scratch), jupyter(python et JS IDE Arduino

La raspberry propose plusieurs services permettant d'accomoder une large gamme de stratégies pour enseigner ou apprendre le codage. La raspberry IFÉ-ENS propose même l'IDE Arduino pour programmer le microcontroleur le plus célèbre du monde des makers !

Les bus GPIO, i2c, SPI sont tous opérationnels et les Cahiers de programmes, développés par le projet Tremplin, peuvent immédiatement être mis en oeuvre. Les cahiers de programmes sont pré-installés pour l'utilisateur moon

Snap

Le serveur snap (équivalent scratch) est directement opérationnel et disponible à l'adresse : http://XXX.XXX.XXX.XXX/snap.

Jupyterhub

Le serveur jupyterhub est directement accessible à l'adresse http://XXX.XXX.XXX.XXX:8000 avec tout login, mot de passe d'un utilisateur enregistré sur la raspberry (la connexion à un LDAP est possible mais requiert un savoir plus avancé hors du champ de cette introduction).

3.b Configuration du logiciel d'interface avec la station météorologique : weewx

Le logiciel weewx permet de gérer un grand nombre de stations météorologiques, nous utiliserons dans cet exemple une station TFA Meteotime Duo. La préconfiguration de l'image installe weewx comme un service activé par défaut. Pour vérifier l'état du service, on utilise la commande sudo systemctl status weewx.

sudo systemctl status weewx
● weewx.service - LSB: weewx weather system
   Loaded: loaded (/etc/init.d/weewx; generated; vendor preset: enabled)
   Active: active (exited) since Sun 2018-01-21 17:11:22 CET; 1h 11min ago
     Docs: man:systemd-sysv-generator(8)
  Process: 1607 ExecStart=/etc/init.d/weewx start (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/weewx.service

On arrête le système avec la commande sudo systemctl stop weewx

localadm[~] raspiw1-ife-€ :  sudo systemctl stop weewx
localadm[~] raspiw1-ife-€ :  sudo service weewx status
● weewx.service - LSB: weewx weather system
   Loaded: loaded (/etc/init.d/weewx; generated; vendor preset: enabled)
   Active: inactive (dead) since Sun 2018-01-21 18:26:00 CET; 3s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 2506 ExecStop=/etc/init.d/weewx stop (code=exited, status=0/SUCCESS)
  Process: 1607 ExecStart=/etc/init.d/weewx start (code=exited, status=0/SUCCESS)

La connexion à la station météorologique est maintenant interrompue, il est possible de modifier le fichier de configuration /etc/weewx/weewx.conf, les modifications des éléments suivants sont effectuées

    [[RSYNC]]
        server = xxxxx.xxxxx..fr
        path = /xxxxx/xxxxx/xxxxx
        user = xxxxxx

[StdReport]

    # Where the skins reside, relative to WEEWX_ROOT
    SKIN_ROOT = /etc/weewx/skins

    # Where the generated reports should go, relative to WEEWX_ROOT
    HTML_ROOT = /var/www/html/weewx

    # The database binding indicates which data should be used in reports.
    data_binding = wx_mariadbextern_binding

    [[archive_mysql]]
        database_type = MySQL
        database_name = MABase

    [[MySQL]]
        driver = weedb.mysql
        host = stationsdata.climatetmeteo.fr
        user = Mon_user
        password = MonMotdePasse
        port = xxxxx

On redémarre le service weewx qui va se connecter à la base de données fournie dans le fichier de configuration et si besoin créer toutes les tables nécessaires pour le bon fonctionnement du dispositif et l'enregistrement des données.

localadm[~] raspiw1-ife-€ :  sudo systemctl start weewx

Webographie

  1. Création de l'image
  2. présentation des images disponibles
  3. weewx

Commentaires