MotionEye sur Clef USB

Article débuté le 12/02/2017 – Bon Anniversaire Anne P 😉

Installation de MotionEye sur Raspberry Pi OS ou
la version ultime du système de videosurveillance à la demande.

 

Image de la Framboise utilisée comme logo par la Fondation Raspberry Pi
La jolie Framboise de la Fondation Raspberry Pi

En Français de base : Un système nomade de vidéo-surveillance sur clef USB autonome.

Ou : Comment transformer en quelques secondes votre PC portable en caméra de vidéo-surveillance IP.

Cet article va aborder 3 choses :

  1. La création d’un système Linux très léger sur Clef USB afin de ne rien modifier sur la machine.
  2. L’installation de MotionEye afin de basculer un PC (votre PC perso ou pro) en mode Serveur de Vidéo Surveillance à la demande.
  3. La sécurisation du système en modifiant le mot de passe du compte par défaut et en empêchant la connexion automatique afin que personne n’accède aux données en clair (impossible de lancer la clef)
  4. Script additionnel pour notification par SMS et/ou alarme sonore

Ce système sera donc, à la fin de l’article, un ensemble simple où il suffira de brancher la clef USB sur l’ordinateur (portable ou fixe) puis de démarrer sur cette clef en lieu et place du Disque Dur … et … c’est tout ! Le système de Vidéo Surveillance sera actif et fonctionnel. 🙂

Alors, pour débuter, il faut installer un système léger dit “Live” ; c’est à dire une version de Linux qui va tourner sur une clef USB (puisque le but est de ne rien modifier sur le PC cible).

Évidemment, il faut que cette distribution de Linux Live dispose d’un mode persistant puisque le but est d’y installer un programme et … de conserver les modifications pour le futur. Sinon … 🙂

Comme l’idée est que ça soit facile et rapide, on va partir sur une distribution de Raspbian Jessie PIXEL modifiée pour fonctionner sur des processeurs i386 : ça tourne sur PC et MAC et, en plus, ça intègre, de base, sans rien faire, le mode persistant. Trop cool. (en plus, c’est gratuit)

Je vous laisse lire l’article de la Fondation Raspberry Pi à ce sujet.

A noter que Raspbian est déjà un portage de Debian, une distribution de Linux très connue et très réputée. Ça devrait le faire en terme de sécurité et d’offre logiciels.

1 – Installation de Raspibian Jessie x86

Avant toute chose, il faut télécharger l’image de Pixel_x86 et l’installer sur une clé USB avec l’outil (recommandé par la fondation et qui est vraiment très simple) qui s’appelle Etcher.

Et ?

Et bien, c’est tout pour installer Raspbian Pixel x86 !

Trop cool, non ?!? 🙂

Il suffit ensuite d’insérer la clef dans un PC et de démarrer en ayant pris soin de modifier le bios pour démarrer sur la clef ou d’appuyer sur la bonne touche (sur le PC sur lequel je suis (et oui, j’écris l’article depuis Raspbian Jessie x86), c’est juste la touche “Echap” ; sur une autre machine testée, c’était F9 ; à vous de trouver la touche idoine selon votre machine).

Au bout de quelques secondes (45′ pour moi), on a un joli bureau comme celui-ci.

Capture d'écran du bureau de Raspbian pixel
Le bureau de Raspbian pixel

Ensuite, vous pouvez améliorer les choses en passant le clavier en Français. Facile, c’est graphique en quelques clics :

Framboise (en haut à gauche) –> Preferences –> Mouse and Keyboard Settings

Choisir l’onglet “Keyboard” (Yes, je suis bilingue 😉 Je gère)

Ensuite, “Keyboard Layout” puis “France” puis “French (alternative)” Ou autre chose ; ça, c’est mon choix
(je le partage et je m’en félicite dirait un politicien)

Et puis, comme je suis Français et que je vis en France, je modifie la “TimeZone” pour avoir l’heure idoine. Ça se passe en ligne de commande :

tzselect

Choisir “8” (pour “Europe”) puis “15” (pour “France”) puis “1” (pour “Yes”).

Après, vous faites afficher les fichiers cachés et vous modifiez le fichier “.profile” en ajoutant juste “TZ=’Europe/Paris’; export TZ” à la fin

(ou vous faites nano /home/pi/.profile pour ajouter cette ligne à la manière d’un vieux Linuxien qui maîtrise la ligne de commande ou d’un diététicien qui essaye de se persuader qu’il est trop méga-fort en informatique).

2 – Installation de MotionEye

Pour cette installation, je suis parti de la page du Github du projet qui traite de l’installation sur Debian puisque Raspbian est à l’origine une version de Debian portée pour les processeurs ARM (pour le Raspberry Pi), mais que les PC en architeture x86 sont juste des PC normaux.

L’adresse en question ? C’est ici : https://github.com/ccrisan/motioneye/wiki/Install-On-Debian

Pour débuter, il faut mettre à jour les dépots (pour installer ffmpeg notamment).

Le problème, c’est que ça a merdouillé dès le début.

La ligne

echo "deb http://www.deb-multimedia.org jessie main non-free" >> /etc/apt/sources.list

renvoie

bash: /etc/apt/sources.list: Permission denied

… Pas cool …

Bon, j’ai résolu le souci en faisant

sudo nano /etc/apt/sources.list

puis j’ai entré la ligne

deb http://www.deb-multimedia.org jessie main non-free

à la fin du fichier.

Puis, faire “Ctrl+x” puis “Y” puis “Entrer” pour valider les changements.

Ensuite,

sudo apt-get update
sudo apt-get install deb-multimedia-keyring
sudo apt-get update

Ensuite, installation de motion + ffmpeg + v4l-utils :

sudo apt-get install motion ffmpeg v4l-utils

Puis les dépendances :

sudo apt-get install python-pip python-dev curl libssl-dev libcurl4-openssl-dev libjpeg-dev

Installation de MotionEye lui-même (le truc qui permet de piloter Motion en somme)

sudo pip install motioneye

Puis configuration de la chose :

sudo mkdir -p /etc/motioneye
sudo cp /usr/local/share/motioneye/extra/motioneye.conf.sample /etc/motioneye/motioneye.conf
sudo mkdir -p /var/lib/motioneye

Ensuite, on automatise le lancement à l’allumage de la machine

sudo cp /usr/local/share/motioneye/extra/motioneye.systemd-unit-local /etc/systemd/system/motioneye.service
sudo systemctl daemon-reload
sudo systemctl enable motioneye
sudo systemctl start motioneye
sudo pip install motioneye --upgrade
sudo systemctl restart motioneye

Et voilà !

Maintenant, on va vérifier en allant sur http://localhost:8765/ et on découvre …

Heu … Un truc vide :

Capture d'écran de l'inviation à ajouter une caméra dans MotionEye
Première connexion à MotionEye

Mais il suffit d’ajouter la WebCam (je suis sur un portable et j’ai essayé sur 2 autres portables = c’est idem = la WebCam est détectée immédiatement).

Capture d'écran de l'ajout d'une caméra
Ajout d’une caméra locale, mais on peut intégrer une caméra réseau également

On apparaît alors à l’écran ! (j’avoue, j’ai une drôle de tête)

Capture d'écran de MotionEye avec flux image actif
Panneau de contrôle à gauche et image en direct à droite

Après, pensez à mettre la détection à “off” (Motion Detection) ; cela vous permettra de farfouiller dans les options sans être photographié en boucle !!!

Dans les options, vous pouvez enregistrer les images en cas de détection de mouvement (pensez à la taille de votre clef USB et faites des essais pour voir ce que ça prend comme place en réglant les sous-paramètres ou mettez en place une tâche cron pour les effacer toutes les 24 ou 48h ou quand ça vous chante)

Et vous pouvez aussi lancer une commande personnalisée en allant dans “Motion Notification” et en activant “Run a Command”.

Vous pouvez ainsi vous faire envoyer un SMS comme j’en parle dans cet article “VideoSurveillance et notification SMS” ou faire jouer un son comme une alarme ou un texte de votre voix disant “Intrusion détectée – Photos de preuve envoyées par courriel + SMS d’alerte – La police est avertie – Quittez les lieux au plus vite” voire, si vous êtes du genre pas drôle et même un brin belliqueux, un truc genre “Hop là mon p’tit gars ; Je te vois et j’ai ta photo ; tu vas goûter de ma hâche ; tu ne touches à rien et tu te sauve, vite. Fais ça pour toi …”

Allez, je vous apprends à le faire :

On installe un lecteur (pour lire le fichier son) :

sudo apt-get install mplayer

On créé le script :

sudo nano /home/pi/notification.sh

Perso, je mets ceci :

#!/bin/sh
# Script pour jouer un son
mplayer /home/pi/Downloads/fichier.mp3

Où “/home/pi/Downloads/” est le chemin et “fichier.mp3” le son en question.

Fermez et enregistrez les modif.

Attention, n’oubliez pas de rendre le script exécutable avec un petit coup de

sudo chmod +x /home/pi/notification.sh

Pour le moment, j’ai mis un son trouvé sur le Net (banque de sons) qui est une alarme militaire (ça arrache un peu).

3- Désactivation de l’autolog et du mot de passe

Par défaut, le système démarre de manière automatique avec lancement du compte par défaut.

Ce n’est pas un souci si on est en mode non persistant comme sur les clefs USB dites “Live” comme LinuxMint ou HandyLinux par exemple.

Là, cela peut poser problème du fait de la persistance puisque la clef va contenir des informations et nos modifications.

Donc, on commence par modifier le mot de passe avec un petit coup de :

sudo passwd pi

Qui nous renvoie :

Enter new UNIX password:

Puis

Retype new UNIX password:

Et enfin

passwd: password updated successfully

Bon, ça, c’est fait ! (A noter que lors du log, le clavier sera en anglais donc le mot de passe “az45m” deviendra “qw'(;” ; faut juste connaitre l’emplacement des touches ; et ça rajoute un cran de difficulté pour celui qui vous pique votre clef 😉 Et ça, c’est bon !)

Ensuite, on retire l’autolog simplement en éditant le fichier /etc/lightdm/lightdm.conf avec un petit coup de

sudo nano /etc/lightdm/lightdm.conf

Et là, il faut décommenter la ligne autologin-user=pi en #autologin-user=pi

Aller, je suis sympa ; pour faire vite, faites “Ctrl+w” puis taper “autologin-user=pi” et zou, vous y êtes !

Ensuite, une fois le # ajouté, faites “Ctrl+x” puis “y” puis “Entrer”

C’est tout.

Résultat :

  • Clef non visible sur un Mac ; ça note “Le disque que vous avez inséré n’est pas lisible par cet ordinateur.”
  • Clef qui ne semble pas accessible sur Windows (mais, bon, je n’ai pas de windows chez moi).
  • Le volume “persistance” est monté automatiquement sur mon LinuxMint et les captures d’écran que j’avais réalisées pour cet article étaient visibles dans le répertoire “pi” du répertoire “home”.

Je pense que cet article sera enrichi et finalisé peu à peu … car … je rappelle que je travaille le jour.

Et avec une femme et 4 enfants, je ne peux pas y passer bcp de temps. Et malheureusement, je dois dormir la nuit, car même si je suis parfait, je ne suis pas un (encore) SuperHéro 😉

A bientôt,

A propos de Alban

Papa de 4 enfants étant lui même resté un enfant. Tombé par obligation dans l'informatique à 22 ans pour le boulot et s'étant "un peu" pris au jeu ... Pas un génie de l'informatique (loin de là), mais intéressé et carrément orienté Linux et entraide.

4 commentaires à propos de “MotionEye sur Clef USB”

  1. Merci, Alban, pour ta réponse rapide, et cette précision importante sur le port 8765 (est-il modifiable?)!
    0ui effectivement, en frappant http://localhost:8765, j’ai eu un visuel, cependant la camera du raspberry branchée directement sur la broche de la carte ne semble pas avoir été reconnue… pas d’image ni de camera détectée, je n’ai pas essayé pour l’instant de webcam branchée sur l’usb (n’en n’ayant pas à disposition)
    Cependant ce qui me chiffone, c’est que motion ne me donne plus ni image ni video dans le dossier que je lui avais offert pour travailler. Avant l’installation de motioneye, à l’allumage du raspberry, j’avais motion qui tournait et détectait du mouvement et délivrait des fichiers… !?.

    • Re,

      Le port 8765 est modifiable.
      Tu peux aller dans /etc/motioneye et lire le fichier motioneye.conf afin de vérifier la ligne
      “# the TCP port to listen on”
      Elle doit être suivie de :
      port 8765

      Sinon, si tu as MotionEye sur un Raspberry Pi avec le module Caméra, je te propose plutôt cet article :
      https://trevilly.com/installation-de-motioneye-sur-raspbian-strech-sur-raspberry-pi3/

      Tu peux choisir ta caméra avec l’écran d’accueil.
      Il faut, sur la première ligne, sélectionne “Local V4L2 Camera”puis, sur la seconde “mmal service …”

      Pour ton dossier de stockage, MotionEye ne stocke pas au même endroit que Motion.
      Une fois que tu auras le visuel, tu seras en détection mais sans prise de cliché par défaut.
      Dans “Still images”, tu devras sélectionner “Motion Triggered”.

      ++

      PS : tu as bien désinstallé Motion avant de faire l’installation ?

    • Bonjour Ivaneo,

      Merci pour les compliments.

      MotionEye utilise le port 8765 pour être accessible.
      C’est le port utilisé par défaut par le concepteur.
      Depuis lui-même (le PC ou le Raspberry Pi où il tourne), on y accède via http://localhost:8765
      La première question est : as-tu un visuel en tapant http://localhost:8765 depuis ton appareil destiné à la surveillance ?
      C’est déjà primordial d’avoir accès à cette page.
      (Sinon, tape “sudo systemctl start motioneye” et recharge avec F5 au bout de 30 secondes)

      Ensuite, pour y accéder depuis ailleurs :
      Toujours depuis ce PC, tu ouvres le “Terminal” et tapes “ifconfig” (sans les guillements) afin d’obtenir ton adresse IP ; par exemple 192.168.0.15
      Ensuite, tu tapes cette IP suivi de :8765 depuis un autre PC du réseau ; par exemple 192.168.0.15:8765
      Sinon, tu peux télécharger Angry IP Scanner sur un PC et scanner tout ton réseau pour connaitre l’IP de ta machine (et de toutes les machines du réseau sauf celle où Angry IP Scanner tourne).

      Redis-moi,
      @+

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*