Raspberry Pi Episode 2: Bien configurer Raspbian et installer domoticz.

Dans cet article nous allons regarder comment configurer et optimiser l'environnement système et logiciel de notre magnifique Raspberry afin de disposer d'une base performante pour faire de la domotique mais aussi bien d'autres choses.


Introduction 


Les prérequis sont les suivants:

  1. Disposer d'un Raspberry PI 1 modèle B minimum (ce qui ne sera pas compliqué car il s'agit quasiment des plus anciens). Si vous n'en avez pas encore, vous pouvez vous en procurer un de dernière génération, le Raspberry 3 modèle B+, pour un prix allant de 37€ à 42€ (le moins cher que j'ai trouvé, port compris, est sur Amazon ICI). Et si vous débutez dans l'univers de la framboise et que vous pouvez vous permettre une petite folie autours de 90€, vous trouverez un kit complet avec le RPI3B+ mais aussi son boitier, son alimentation, ses câbles ... ICI. Ca revient un peu plus cher mais c'est le prix à payer pour tout recevoir d'un coup avec la garantie de la compatibilité. 
  2. Avoir correctement installé Rasbian dessus et savoir y accéder en SSH. Si ce n'est pas votre cas, vous pouvez vous référer à l'article précédent qui décrit précisément la marche à suivre. Vous le trouverez ICI.
  3. Avoir un minimum de notions sur l'administration d'un système linux (commandes de base, système de fichiers, gestion des droits et des utilisateurs, gestion réseau, ...). Bien que l’âme de ce blog soit justement d'apporter des connaissances pour comprendre les choses, dans le cadre de cet article si vous n'avez jamais entendu parler d'une commande shell cela risque d'être compliqué pour vous de suivre.

Contexte en place au départ:


Bien que ce dont nous allons parler dans cet article puisse certainement s'appliquer quelque soit votre contexte, en ce qui me concerne je suis parti du principe que je souhaite installer ce Raspberry autour d'équipements mobiles. C'est à dire qu'il sera facile de tout mettre dans une boite à chaussure, de changer de lieux et en quelques secondes pouvoir retrouver tout notre écosystème: notre réseau local, notre connexion internet, notre environnement PC bureautique et notre environnement serveurs installés sur le raspberry.

Voici dans le schéma ci-dessous tous les composants que j'utilise et comment ils se connectent entre eux:


Cette architecture à base d'un téléphone 4G qui va servir de modem internet, de routeur et de serveur DHCP, aura pour conséquence d'imposer un plan d'adressage spécifique pour notre réseau.
Effectivement, en mode "Point d'accès Wifi" les téléphones distribuent des adresses IP aux clients qui se connectent en wifi, qui sont dans un sous réseau qu'il est impossible de modifier.

Les téléphones Android distribuent des adresses IP dans le réseau 192.168.43.*. L'adresse de la gateway étant 192.168.43.1
Les téléphones Apple distribuent des adresses IP dans le réseau 172.20.10.*.  L'adresse de la gateway étant 172.20.10.1.

Ceci n'a pas vraiment d'importance sauf si, comme moi:
  1. Vous n'aimez pas vous laisser imposer un plan d'adressage (non mais!)
  2. Vous souhaitez pouvoir connecter sur votre LAN d'autres équipements qui eux aussi imposent un sous réseau. Par exemple une box internet d'un opérateur qui souvent a une adresse IP privée imposée qui est 192.168.1.1 (ou 192.168.1.0). 
Donc dans mon cas, je vais devoir configurer mon raspberry pour prendre en compte cette contrainte. C'est à dire qu'il va avoir une adresse IP dans le sous réseau 192.168.43.* afin de pouvoir accéder à la gateway et donc à Internet. Mais il va aussi avoir une adresse IP en 192.168.1.*.

Si dans votre cas vous ne gérez pas cette difficulté alors vous n'aurez pas à prendre en compte ce que je vais expliquer pour donner plusieurs adresses IP aux différents équipements du réseau local. 

Objectifs de l'article: 

Dans cet article nous allons essayer de réaliser les choses suivante: 
  • Mettre à jour la configuration de Raspbian
  • Overclocker le Raspberry.
  • Personnaliser l'installation avec des alias et un prompt bien à nous 😄!
  • Récupérer la dernière version du système et des logiciel
  • Installer un éditeur de texte (emacs)
  • Définir une adresse IP fixe (ou deux dans mon cas)
  • Partager un répertoire de la carte SD du Raspberry avec notre PC.
  • Installer domoticz
  • Superviser notre raspberry avec domoticz
Allez on y va ! On va avoir du boulot !

Sens de l'humour

Configuration Raspbian avec raspi-config

Lors de votre première connexion en SSH au système, il se peut que vous soyez tombé sur une interface qui ressemble à ça: 


Si c'est le cas alors ne touchez à rien vous êtes au bon endroit. 
Si ce n'est pas le cas, il va falloir la lancer à la main en tapant la commande suivante:
sudo raspi-config

Cette interface va nous permettre de configurer tout un ensemble paramètres système. Nous allons explorer les différents menu. La navigation n'est pas d'une évidence triviale mais en bidouillant avec les flèches de direction et la touche <tab> on arrive à s'en sortir.

Il est préférable de rebooter le Raspberry après avoir modifié la configuration avec cet outil.


1- Change User Password Change password for the current user 

Comme son nom l'indique, cette fonction va vous permettre de changer le mot de passe pour l'utilisateur en cours. Comme nous nous sommes connectés en tant qu'utilisateur "pi" nous allons changer le mot de passe pour ce dernier qui actuellement, je le rappelle, est "raspberry". Comme je trouve que c'est un peu long je vais changer pour mettre ... "pi" à la place! Bon ok ce n'est pas très secure mais au moins c'est simple. Mettez ce que vous voulez.
Si vous voulez tester que cela a bien été pris en compte, sortez de l'interface en selectionnant <Finish> et tapez "exit". Ensuite reconnectez vous avez Putty et relancer "sudo raspi-config".

 2 Network Options 

Ce menu vous propose 3 possibilités:

N1 Hostname:

Vous permet de changer le nom de l'hôte, qui, tel que nous l'avions déjà vu ensemble dans le précédent article, est "raspberrypi.local" (ou "raspberrypi"). Je vous conseille de changer ce nom afin qu'il n'y pas de conflit si vous installez un autre raspberry sur votre réseau. En ce qui me concerne, je vais l'appeler "domocticz2" car ce sera le deuxième serveur domoticz que je vais gérer. 

N2 Wi-fi

Permet de définir les paramètres pour une connexion wifi. Comme ici je n'en ai pas je vais passer.

N3 Network interface names 

Ca c'est une nouveauté apportée par la version "stretch". En gros cela permet de donner un nom "prévisible" aux interfaces réseau. Jusqu'à présent, nous avions l'habitude de nommer les interfaces réseau sous linux par des noms du genre "eth0, eth1, wlan0, ...". Cette manière de nommer les interfaces avait certains inconvénients comme celui de pouvoir changer d'un reboot à l'autre. 
Le nouveau système défini une logique bien précise pour attribuer un nom aux interfaces réseau. 
Plus précisément, les noms d'interface commenceront par "en" pour Ethernet ou "wl" pour le sans fil, suivi d'un "x" pour indiquer qu'il sera suivi par l'adresse mac, puis de manière prévisible l'adresse mac. Par exemple, si un port Ethernet a une adresse mac de b827ebfe26b1, le nom de l'interface sera enxb827ebfe26b1. 

Pour vérifier le nom que porte les interfaces réseau sur le raspberry, il faut lancer la commande:
sudo ifconfig

Pour plus d'information sur le nouveau nommage des interfaces réseau vous pouvez parcourir les sites suivants:

Ils sont en Anglais mais même moi qui suis la pire des buses dans la langue de Shakespeare j'ai réussi à comprendre. 

Quoi qu'il en soit, pour le moment je vais laisser désactivé cette fonctionnalité de nouveau nommage et rester à l'ancienne. Mais comme cela va être la nouvelle norme, il va bien falloir s'y mettre. Nous reviendrons donc peut être dessus par la suite.

3 Boot Options

Pour le moment je ne vais pas toucher à ces options sauf "B2 Wait for Network at Boot". 

Elle signifie que pour démarrer le raspberry doit attendre d'avoir une connexion réseau. Je l'ai passée à "No" car s'il n'y a pas de réseau je ne veux pas que le PI attende avant de démarrer. Si vous faite de la domotique, tout ne passe pas par le réseau. Certain événement arrivent sur des équipements connectés en zwave ou RF433. Le PI doit donc pouvoir démarrer et gérer ces événements même si le réseau est tombé.
Par contre, passez la à "Yes" si l'accès au réseau est nécessaire pour certaines fonctions systèmes essentielles. Par exemple si vous souhaitez monter une partition système sur un disque réseau.

4 Localisation Options

Ce menu va nous permettre de "localiser" notre système. C'est à dire, le personnaliser pour correspondre à la langue et à la localisation géographique de notre choix. En ce qui me concerne, puisque le Normand n'est pas disponible, je vais choisir le français.

I1 Change Locale

Dans ce sous menu nous allons pouvoir charger les éléments d'affichage pour la langue choisie.
Avec la barre d'espace sélectionnez "fr_FR.UTF-8 UTF-8". Puis <OK>.
Le système va charger les données et va ensuite demander de selectionner les locales par défaut. Choisissez celle que vous venez de charger.

I2 Change Timezone

Dans ce menu nous allons définir la "timezone". Je ne rentre pas dans les détails car c'est trivial. Choisissez votre continent et ensuite la capitale correspondant à votre fuseau horaire.



I3 Change Keyboard Layout et I4 Change Wi-fi Country 

Je vous laisse explorer ces deux options que je ne vais pas utiliser. Vous pouvez toutefois tout de même exécuter "Keyboard Layout" qui va prendre en compte les informations de localisation précédentes pour définir la disposition du clavier. 

5 Interfacing Options

Vous trouverez dans ce menu tout un ensemble de sous menu qui vous permettra d'activer ou désactiver l'accès au système depuis les équipements, protocoles ou interfaces suivantes : 

  • Camera
  • SSH (Normalement cette option est activée puisque nous l'utilisons).
  • VNC: Permet la prise en main à distance depuis un autre ordinateur équipé de VNC.
  • SPI, I2C, Serial, 1-wire : Qui sont des protocoles de communication spécifiques qui seront utilisés si nous faisons de la domotique ou de l'électronique avec le RPI. 
  • Remote GPIO: active le démon "pigpio" et permet à tout ordinateur exécutant cette librairie d'accéder aux GPIO de notre raspberry.


6 Overclock  

Ce menu va nous permettre d'overcloker notre raspberry. En fonction du modèle que vous avez, les choix seront différents. Sur mon vieux PI modèle B, donc le processeur tourne à 700Mhz, j'ai les choix suivants:

Choix des fréquences CPU et RAM en overclocking
Il y a 4 niveaux au choix: Modest, Medium, Hight et Turbo.
A partir du niveau Medium, les puces doivent commencer à chauffer et je conseille d'ajouter quelques dissipateurs thermiques comme ICI (attention à votre modèle de raspberry, ceux-ci sont adapté au PI modèle B). Pour le niveau turbo je pense qu'il faudra en plus ajouter un petit ventilateur.
Pour ma part, n'ayant pas vraiment de besoins en performances pour le moment, je vais me contenter de mettre le niveau Modest, juste pour le fun.

Pour que la fréquence choisie soit prise en compte vous devez rebooter le système en selectionnant <Finish> dans le menu principal et en acceptant le reboot proposé.

Une fois le système rebooté, pour voir la fréquence du processeur, il faut utiliser la commande vcgencmd:

sudo vcgencmd measure_clock arm

Vous pourrez également, avec cette commande, vérifier la température du processeur:

sudo vcgencmd measure_temp


La fréquence étant en Hz on retrouve bien les 800MHz demandé et la température, pour le moment, est tout à fait correcte. Il faut savoir que vous pouvez monter jusqu'à des température de 70'C sans que cela ne soit un problème pour le CPU. Au dessus il faudra commencer à s'inquiéter et prévoir des systèmes de refroidissement.

7 Advanced Options 


Ce menu nous permet d'accéder à d'autres options. Parmis celles disponibles je n'en retiendrais que deux.

 A1 Expand Filesystem

Utilisez cette option pour être sur que le système de fichier Debian dispose de toute la place disponible sur la carte SD. Ce n'est pas toujours le cas. Vous pourrez également utiliser cette option si vous souhaitez changer de carte SD en recopiant tout le contenu de l'actuelle sur une de taille plus importante.

A3 Memory Split 

Cette option vous sera utile si vous souhaitez attribuer plus de mémoire au processeur graphique (GPU). Par défaut, 64Mo lui sont attribué. Si vous ne comptez pas utiliser l'interface graphique linux, vous pouvez baisser cette valeur à 16Mo.


8 Update 

Ce choix permet de mettre à jour raspi-config. En toute logique il faudrait l'avoir sélectionné avant toute utilisation du logiciel.







Mise à jour du système et personnalisations

Après avoir configuré notre système, nous allons maintenant voir comment être sur que nous avons bien les dernières mises à jour, que ce soit pour le système que pour les logiciel installés.

Ensuite nous nous attaquerons à quelques premières personnalisations.

Mises à jour Debian et logiciels

Pour simplifier à l’extrême, nous pouvons considérer que sous linux, les logiciels s'appellent des paquets.
Et contrairement à d'autres OS, comme Windows, où chaque logiciel est disponible quelque part sur internet, sous linux, les ils sont disponibles dans des dépôts (repository). Il existe de nombreux dépôts à des adresses IP différentes mais ces dépôts contiennent quasiment toujours le même contenu. Et ce contenu ce sont tous les logiciels (paquets ou package en Anglais) qui sont téléchargeables sous linux. C'est pratique!
Lorsque l'on installe une nouvelle version du système, il est configuré pour aller chercher les paquets (logiciels) sur un dépôt par défaut. En général il s'agit du dépôt officiel de la distribution utilisée.
Mais ce dernier est parfois très utilisé et encombré. Il est donc possible de le changer par un dépot moins chargé ou plus proche de la zone géographique où nous sommes.

Si vous souhaitez voir le dépot auquel vous allez accéder ou même en changer, il faudra aller dans le fichier "/etc/apt/sources.list"

Ces quelques explications rapides vont nous permettre de comprendre les commandes que nous allons utiliser pour mettre à jour notre système et les logiciels qui y sont installé.

apt-get update

Cette commande va permettre de connaitre la liste des logiciels disponibles sur notre dépôt, avec pour chacun sa dernière version et ses dépendances avec d'autres paquets.
C'est la première qui devra être lancée. Elle n'est pas nécessaire à chaque fois mais seulement si nous n'avons pas réalisé de mise à jour depuis plusieurs semaines ou si nous venons de changer de dépôt.

sudo apt-get update

apt-get upgrade

La commande « upgrade » permet de lancer les mises à jour de manière non invasive. Elle ne provoquera pas l'installation de nouveaux paquets ou la suppression de paquets existants. Elle ne déclenchera pas non plus la mise à jour d'un paquet si celle-ci casse le fonctionnement d'un autre paquet. La liste des paquets qui ne peuvent être mis à jour sera affichée. Cela est en général du au fait qu'ils dépendent de nouveaux paquets ou qu'ils entrent en conflit avec d'autres paquets. 

sudo apt-get upgrade

En cas de problème de conflit vous pouvez forcer l'installation avec la commande apt-get install qui permet d'installer des paquets par nom. Le paquet à installer est automatiquement récupéré et installé. La commande « install » résout automatiquement les problèmes de dépendances pour les paquets concernés.

apt-get dist-upgrade

La commande « dist-upgrade » est une commande de mise à jour complète du noyau du système

sudo apt-get dist-upgrade

Il se peut que la commande finisse par une erreur d'archives non réceptionnées ou de délais de connexion dépassé. Si cela vous arrive, relancez la commande à plusieurs reprises. Si aucun essai n'abouti, dans ce cas suivez la suggestion de correction qui vous est proposée ou essayez de changer de dépôt.

rpi-update

Pour finir la série de commandes à lancer qui vont nous permettre d'avoir un système totalement à jour, il y a rpi-update. Cette commande permet la mise à jour du firmware du raspberry. Il s'agit du logiciel qui est en interaction directement à avec le matériel. Le système d'exploitation s'appuie sur ce firmware pour accéder aux composants physique de la machine. 

sudo rpi-update



Vous pouvez lancer toute cette série de commande l'une après l'autre, mais vous pouvez aussi demander au système de les lancer pour vous. Dans ce cas vous pourrez taper la ligne suivante:

sudo apt-get update && sudo apt-get -y upgrade && sudo apt-get -y dist-upgrade && sudo rpi-update

Un reboot est nécessaire après toutes ces commandes. La commande la plus propre pour le faire est:
sudo shutdown -r now



Personnalisations

Emacs

L'environnement linux dispose de plusieurs éditeurs de texte. Souvent "nano" et "vi" sont installés par défaut. En ce qui me concerne, j'aime utiliser emacs. Pour l'installer rien de plus simple:

sudo apt-get install emacs


Pour info, si vous recherchez un logiciel dont vous ignorez le nom du package, vous pouvez utiliser la commande "sudo apt-cache search cequevousvoulez".


Personnalisation de l'environnement bash

Pour nous mettre en jambe afin de personnaliser notre environnement sous le shell bash, nous allons commencer par nous créer quelques alias qui nous serons bien utiles au quotidien. 
Je laisse libre à chacun d'entre vous de déterminer les alias qu'il souhaite ajouter en fonction de vos envies et habitudes. L'important ici est de comprendre comment faire. 

Pour ajouter un alias il suffit d'utiliser la commande:
alias petit_nom_sympa="commande shell associée"

Par exemple moi j'utilise sans cesse la commande: ls -al
C'est fastidieux à taper. Alors je vais définir un alias, qui me permettra, en tapant seulement "ll" d'exécuter "ls -al". Il suffit d'exécuter la commande suivante:
alias ll="ls -al"

Afin de ne pas avoir à retaper tous les alias à chaque connexion, nous allons les ajouter à la fin du fichier nommé ".bashrc" qui se trouve directement dans votre "home directory". Si ce n'est pas la cas vous devrez le créer.

Ce fichier est interprété par le shell bash à chaque fois qu'un utilisateur se connecte.
Voici les lignes que j'ai ajouté à la fin de mon fichier. Vous noterez que je me suis amusé à écrire quelques lignes avec des couleurs qui apparaîtrons comme message à chaque connexion.
Si vous voulez en savoir plus sur l'écriture avec des couleurs en mode console linux, vous trouverez des explications ICI.

#############################################################################
# Zone du fichier qui contient des éléments de personnalisation.
# L'interprétation est réalisée par le shell bash lorsque l'utilisateur se connecte
#
# Version : 1.0
# (c) AMD
############################################################################
# Définition de quelques couleurs pour faire des affichages plus jolis
rouge="\033[31m"
vert="\033[32m"
normale="\033[0m"

# Affiche un petit message pour indiquer qu'on exécuter le script
echo ""
echo -e "$rouge""Bienvenue $USER$normale"
echo -e "$vert$SHELL:$normale Execution .bashrc"

# définition des alias
echo -e "Definition des alias ..."

alias ll="ls -al"
alias e="emacs"

echo "...Done"

# Autres actions:
# Ajouter ici toutes les actions qui devront être effectuées à la connexion


# Fin du fichier.

Modification du prompt


Le prompt c'est le texte qui apparaît sur la ligne de commande en mode console.
En général, le prompt est constitué par:

  • Le nom d'utilisateur (ici pi).
  • Le nom du host qui est le nom réseau que nous avons attribué à notre raspberry (ici domoticz2).
  • Le nom du répértoire dans lequel nous nous trouvons (le home directory de l'utilisateur en cours est symbolisé par ~ ).
Voici ce que cela donne:

Le format de cette chaîne de caractère est défini dans la variable "PS1" qui elle même est définie dans le fichier .bashrc. Pour comprendre le fonctionnement exact de ce format, vous pouvez vous référer au site ICI ou encore ICI.
En ce qui me concerne, j'ai juste envie d'ajouter un petit texte personnalisé devant le prompt, sans modifier le reste. Je vais donc ajouter dans la zone personnalisée du fichier .bashrc, la section suivante:

#Modification du prompt
MyPrompt="A vos ordres Maitre"
PS1="$MyPrompt $PS1"

Et voici ce que cela donne (bon ok ça fait un peu ado attardé mais le but c'est de savoir comment faire):




Adresse IP fixe

Maintenant que nous nous sommes amusé avec nos alias et notre prompt, nous allons voir comment attribuer une adresse IP fixe à notre merveilleuse machine.
Pourquoi une IP fixe me direz vous ? Et moi je vous répondrais: pour plein de raisons! La principale est qu'il est essentiel pour une machine sur laquelle on se connecter via son adresse IP et sur laquelle on souhaite installer des serveurs, de pouvoir être adressé avec toujours la même adresse IP. Si l'adresse IP changer de temps en temps, il faudra refaire à chaque fois toutes les manipulations que nous avons vu dans l'article précédent (ICI), pour retrouver la nouvelle adresse.

Une adresse IP permet d'identifier une interface spécifique sur un réseau. Comme nous l'avons vu, depuis la version 9 de raspbian (stretch), le système peut nommer les interfaces avec des noms "prévisibles". C'est à dire qui sont construits en prenant en compte des caractéristiques fixes de la machine (le type d'interface, l'adresse MAC, ...).

Mais dans le chapitre concernant la configuration avec raspi-config, j'avais décidé de laisser l'ancien système de nommage.

Donc si vous avez fait comme moi, nous allons donner une adresse IP fixe à l'interface qui se nomme "eth0". Si vous avez choisi d'être moderne et d'utiliser le système de nommage prédictif, il faudra que vous trouviez le nom de votre interface:

Exécutez la commande:
sudo ifconfig

Ensuite repérez le nom de l'interface qui commence par enx puis des chiffres et des lettres (par exemple enxb827ebfe26b1). Ce chiffres et lettres correspondent à l'adresse MAC du raspberry.

Maintenant que nous connaissons le nom de l'interface à laquelle nous voulons attribuer l'adresse IP, il va falloir aller dans le fichier /etc/dhcpcd.conf et ajouter les lignes suivantes: 

# Fixe l'adresse IP statique
interface eth0
static ip_address=192.168.43.151/24
static routers=192.168.43.1
static domain_name_servers=192.168.43.1

Depuis la version Jessy de raspbian, il est recommandé de définir la configuration des interfaces réseau dans le fichier /etc/dhcpcd.conf. Mais cette directive a des limites et lorsque l'on souhaite définir des configurations plus complexes il va falloir également travailler avec le fichier /etc/network/interfaces, comme nous allons le constater ci-dessous.

Ensuite on reboot (ou on peut utiliser la commande sudo /etc/init.d/networking restart pour relancer les services réseau mais elle ne fonctionne pas toujours pour ce type de modifications):
sudo shutdown -r now

Affectation de plusieurs adresses IP fixes sur la même interface:

Comme nous l'avons vu en début de cet article, je souhaite que mon raspberry puisse communiquer dans deux sous réseaux d'adressage différents. Pour le moment, avec sont adresse IP fixe dans le sous réseau 192.168.43.* il ne peut pas communiquer avec des équipements qui auraient une adresse IP en 192.168.1.*. Je vais donc lui ajouter une adresse IP dans ce dernier sous réseau, associé a son interface ethernet eth0.
Pour ce faire, nous allons déclarer ces deux adresses dans le fichier /etc/network/interfaces en ajoutant les lignes suivantes:

auto eth0
allow-hotplug eth0
iface eth0 inet static
      address 192.168.43.151
      netmask 255.255.255.0
      gateway 192.168.43.1

auto eth0:1
allow-hotplug eth0:1
iface eth0:1 inet static
      address 192.168.1.151
      netmask 255.255.255.0

A noter qu'on ne déclare pas de gateway pour l'alias secondaire.

On reboot:
sudo shutdown -r now
En on contrôle:
sudo ifconfig


On constate bien que l'interface eth0 dispose de deux adresses IP. La seconde étant associée à son alias eth0:1.

Pour contrôler on peut se connecter sur notre Raspberry avec Putty en utilisant les deux adresses IP, faire un ping depuis windows sur les deux adresses IP ou alors, vérifier la table de routage du raspberry avec la commande "route":

sudo route -n

Ce qui nous donne:


On constate que toutes les requêtes à destination d'internet (route par défaut = 0.0.0.0) vont être dirigées vers la gateway 192.168.43.1.
Les requêtes à destination des réseaux 192.168.1.* ou 192.168.43.* sont des routes directes.

Accéder aux fichiers du raspberry depuis windows

Pour la suite il nous sera très utile de pouvoir accéder aux fichiers stockés sur la carte SD de notre Raspberry depuis windows. Il y a plusieurs raisons à cela. Pour moi les principales sont de pouvoir faire des sauvegardes de fichiers, de faire des transfert de données entre les deux environnements et aussi de pouvoir éditer des documents depuis des applications sur le PC en les enregistrant sur le raspberry (par exemple pour faire des programmes avec l'excellent Notepad++ sur windows).

Malheureusement, le système de fichier linux n'est pas compatible avec windows. Ce dernier ne peut pas lire ou écrire directement des données sur la carte SD. Il va donc falloir passer par un logiciel sur le raspberry qui fera l'interface. Il s'agit de Samba.

Définition Wikipédia: Samba est un logiciel d'interopérabilité qui implémente le protocole propriétaire SMB/CIFS de Microsoft Windows dans les ordinateurs tournant sous le système d'exploitation Unix et ses dérivés de manière à partager des imprimantes et des fichiers dans un réseau informatique. Samba facilite l'interopérabilité entre systèmes hétérogènes Windows-Unix. Il offre la possibilité aux ordinateurs d'un réseau d'accéder aux imprimantes et aux fichiers des ordinateurs sous Unix et permettent aux serveurs Unix de se substituer à des serveurs Windows.

Installation samba:

Nous allons donc installer samba. C'est tout simple. Avant je lance également les commande de mise à jour système pour m'assurer que je vais bien installer Samba sur une base à jour.

sudo apt-get update && sudo apt-get -y upgrade && sudo apt-get -y dist-upgrade && sudo rpi-update
sudo apt-get install samba samba-common-bin

C'est aussi simple que cela.

Pour l'installation de Samba, si vous rencontrez des problèmes ou que vous souhaitez aller plus loin dans sa configuration, vous pouvez vous référer au Wiki https://elinux.org/R-Pi_NAS.

Une fois l'installation terminée, vous devriez voir le raspberry apparaître dans la liste des ordinateur présents sur le réseau windows (chez moi il s'appelle domoticz2):
Mais on constate qu'on ne peux encore rien faire et qu'il n'y a pas de répertoires visibles quand on clic sur l'icone.


Création d'un répertoire partagé: 

Nous allons ensuite devoir créer un répertoire qui sera visible par tous les utilisateurs qui se connecteront au réseau. C'est dans ce répertoire que nous placeront tous les fichiers partagés.
Pour ma part j'ai décidé de créer un dossier "/home/shares" mais vous pouvez le créer à l'emplacement et avec le nom que vous souhaitez.

sudo mkdir /home/shares sudo chown -R root:root /home/shares
sudo chmod -R ugo+rwx /home/shares


J'ai décidé d'attribuer ce répertoire à l'utilisateur et au groupe "root". Pour permettre à tous les utilisateurs de créer des fichiers je donne les droits en lecture, écriture à tous. 

Configuration de Samba:

Il nous reste à configurer Samba pour lui dire que le répertoire shares doit être partagé par tous les clients sur le réseau qui souhaitent y accéder.
Pour plus de simplicité j'ai choisi de rendre l'accès libre et de faire en sorte qu'il n'y ait pas besoin de rentrer un login et mot de passe.

Il suffit d'ajouter les lignes suivantes à la fin du fichier "/etc/samba/smb.conf"

[shares]
comment = Partage Samba
path = /home/shares
writable = yes
guest ok = yes
guest only = yes
create mode = 0777
directory mode = 0777
share modes = yes

Je ne vais pas rentrer dans les détails de la configuration Samba. Ce n'est pas très compliqué quand on veut faire des choses simples mais c'est suffisamment puissant pour faire aussi des choses très complexes avec une gestion très fine des droits.
Si cela vous interesse pour approfondir, je vous indique quelques liens : ICI, ICI, ICI ou encore ICI.
Tous ces sites vous apporteront chacun un petit bout de connaissance.

Dans ce que je vous ai indiqué, tout ce qui est en bleu devra être modifié en fonction de votre contexte. Avec :
  • [shares] = un nom de section que vous choisissez comme bon vous semble.
  • comment = un commentaire de votre choix. 
  • path = le chemin complet du dossier à partager. 
Et c'est tout ! Le reste est à reprendre à l'identique et va dire à Samba de laisser accéder tous les utilisateurs au répertoire, les laisser écrire et modifier les fichiers, avec les droit en lecture, ecriture, exécution pour tous et sans nom de propriétaire ni de groupe.

Pour la sécurité c'est largement améliorable si vous en avez le désir.

Il suffit ensuite de relancer Samba:

sudo /etc/init.d/samba restart

Ajout d'un lecteur réseau Windows

Et pour finir les choses proprement, nous allons demander à Windows de considérer ce répertoire partagé comme un lecteur réseau.
Pour ce faire :


  1. Dans l'explorateur sélectionnez le raspberry (ici DOMOTICZ2).
  2. Clic droit sur le répertoire partagé (ici shares).
  3. Cliquez sur connecter un lecteur réseau. Une fenetre vous demandant de choisir la lettre du lecteur vous sera proposé. Choisissez la lettre qui vous convient et avant de valider, cochez la case "Se reconnecter à l'ouverture de session". 
Notre partage est désormais prêt ! 






Installation domoticz

Installation du serveur


Pour installer domoticz sur un raspberry, rien de plus simple.Il suffit de lancer la commande suivante:

sudo curl -L install.domoticz.com | bash

Je vais supposer que, comme moi, vous partez d'une version 9 (stretch) récente de Raspbian. Si ce n'est pas le cas, l'installation de domoticz pourrait nécessiter l'installation de certaines librairies pour que domoticz se lance correctement.
Si vous avez un soucis au lancement, vous pouvez exécuter la commande (le répertoire est à adapter en fonction de votre dossier d'installation de domoticz):
sudo ldd /home/pi/domoticz/domoticz

Cette commande affiche la liste des librairies nécessaires. Si sur certaines lignes vous voyez "not found", il vous faudra installer la librairie en question.

Ne touchez à rien. Après un temps vous allez voir un écran bleu avec des questions auquelles vous devrez répondre (indiquer les numéros de port, l'activation du SSL, ...)  et lorsque vous voyez le message comme quoi l'installation est terminée, vous pouvez vous connecter depuis votre navigateur sur le serveur:

Premier affichage de domoticz
Une fois cette installation terminée, la première choses à faire, sera d'aller dans Setup>Parameters et de vous amuser à définir vos préférences. Pour ma part j'ai juste passé l'interface en Français et recherché mes coordonnées géographiques (qui seront utiles entre autre pour la météo).

Superviser le RPI

Pour le moment nous n'avons installé aucun capteur. Par contre domoticz offre la capacité de superviser quelques fonctions du raspberry. Nous allons pouvoir superviser (entre autres):

  • La charge du CPU.
  • La température du CPU.
  • Le taux d'occupation des différentes partitions (dont la partition principale de notre carte SD).
  • L'occupation mémoire RAM.

Pour ce faire, nous allons déclarer le raspberry dans la liste des matériel. Dans l'interface domoticz il faut sélectionner:
Réglages > Matériel

Et dans le menu "Type" sélectionner "Motherboard sensors". Puis valider après avoir donné un nom.


Ensuite dans le menu:
Réglages > Dispositifs

Vous allez voir apparaître tout un ensemble de capteurs correspondant aux fonctions que nous avons vu précédemment du Raspberry PI. Sélectionnez celles qui vous intéressent (en cliquant sur la flèche verte).


Ensuite, en fonction du type de capteur, vous pourrez en réaliser le suivi dans les onglets correspondants de l'interface domoticz. Par exemple, voici ce que je vois dans l'onglet "Mesures" (le capteur de température du CPU sera visible dans l'onglet "Température"):


Notre installation est maintenant terminée et nous sommes désormais prêt à nous lancer dans des choses un peu plus compliquées.

Quelques liens utiles




Pour comprendre comment modifier le prompt, vous pouvez vous référer au site ICI ou encore ICI.

Si vous voulez en savoir plus sur l'écriture avec des couleurs en mode console linux, vous trouverez des explications ICI.

Wiki sur l'installation de Samba ICI.

Pour tout savoir sur la configuration réseau sous debian et en Français c'est ICI




Faites vos emplettes


Si la lecture de cet article vous a donnée envie de faire quelques achats, voici un liste de liens à partir desquels vous pourrez vous procurer tout les matériels que j'ai évoqués.





Le Raspberry PI (certains disent la Raspberry PI): Désormais la dernière version est la 3B+. Vous pourrez le trouver à un prix compétitif ICI
N'hésitez pas à vous procurer le chargeur USB 5V, 3A proposé en option.

Et si vous overclockez votre raspberry il vous faudra:
Dissipateur thermiques pour RPI c'est ICI.



La carte micro SD (avec adaptateur pour faire carte SD): La Samsung EVO 32Go pour moins de 15€ est un excellent choix et vous la trouverez ICI.











Soutenez la blogoculture ...


Le plus simplement du monde, si vous avez un achat à faire sur Amazon, accédez au site à partir de ce lien (que vous pouvez ajouter dans vos favoris)https://amzn.to/2nbe4sm





Soutenez la blogoculture ...


Le plus simplement du monde, si vous avez un achat à faire sur Amazon, accédez au site à partir de ce lien (que vous pouvez ajouter dans vos favoris)https://amzn.to/2nbe4sm


... mais aussi ...


Vous appréciez les articles frais et vitaminés de ce blog et vous voulez faire un geste pour encourager ce partage, saluer le travail, ou parce que vous y avez trouvé des choses utiles ( et que vous êtes sympa ) ?

... c'est possible et vous avez le choix !
Si vous avez un compte Paypal et quelques euros à offrir sans vous mettre sur la paille, subventionnez la culture domotique à l'ancienne !
Vous ne dépenserez pas un radis de plus en faisant un achat sur eBay à partir de ce lien.
Economisez du blé avec Amazon Prime ! Offre d'essais 1 mois gratuit (et renouvelable).
Soyez chou et aidez les petits producteurs de blog à se faire connaitre auprès de vos amis facebook !

Merci

Commentaires

Enregistrer un commentaire