MotionEye sur Clef USB

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

–> Article mis à jour le 27/04/2019 suite à un commentaire de Victor. En effet, ce tuto à 2 ans ce qui revient à une éternité en informatique. Merci Victor !

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 Raspbian x86 (Debian with Raspberry Pi Desktop)

Avant toute chose, il faut télécharger l’image de Pixel_x86 (lien direct retiré car trop vieux ; actuellement, en avril 2019, c’est “2019-04-11-rpd-x86-stretch.iso”) 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 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

Édit du 27/04/2019 : NOUVEAUTÉ des versions récentes = la suite n’est plus valable car tout est simplifié par une prise en mais guidée pas à pas donc suivez “bêtement” ce que le système vous dit.

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

Edit du 27/04/2019 = modifications pour que le tuto fonctionne toujours. Il vous suffit d’ignorer les lignes barrées.

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

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

La ligne

sudo 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
sudo apt-get install python-pip python-dev python-setuptools curl libssl-dev libcurl4-openssl-dev libjpeg-dev libz-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

Et c’est tout !!!

Note ; si vous avez besoin de mettre à jour dans quelques jours ou semaines (ou mois) ; ça se fera comme ça

sudo pip install motioneye --upgrade
sudo systemctl restart motioneye

Bon, maintenant, on va vérifier que tout va bien 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.

13 commentaires à propos de “MotionEye sur Clef USB”

  1. Bonjour Alban

    Tout d’abord merci pour ce tuto vraiment intéressant, je suis coincé au niveau du localhost (rien ne s’affiche……) malgré 3 installations intégrales sur ma clé usb., j’aimerai tellement faire tourner ce systéme.
    Merci

    • Bonsoir Victor,
      Ce tuto date un peu ; je vais tenter de le suivre sur une de mes clefs pour vérifier et je te redis.
      Tu as quoi comme version de Linux (Raspian x86, Debian, LinuxMint, Ubuntu, …) ?
      @+

      • Merci Alban pour ta réactivité !
        J’ai suivi intégralement le tuto et du coup ma clé est à base de rasbian x86 ,le pixel ….
        Pour précision , j’ai biensur essayé la clé sur plusieurs pc portable et c’est toujours la meme chose !
        A plus et merci

        • Je viens d’écrire 2019-04-11-rpd-x86-stretch.iso mais ma clef est trop petite lors des MàJ …
          Je sauvegarde ce que j’ai sur une clef de 8Go pour réinstaller cette image et j’installe MotionEye.
          Je te redis,

          • OK, c’est bon, ça fonctionne chez moi.
            Je modifie le tuto qui date un peu.
            En 2 mots :
            – Il faut passer par Debian Stretch with Raspberry Pi Desktop qui est, à ce jour, “2019-04-11-rpd-x86-stretch.iso”.
            – Ensuite, il faut ajouter quelques paquets lors de l’installation initiale des dépendances.
            Le tuto est modifié en conséquences et est donc fonctionnel.
            Merci pour ton intervention qui me permet de parfaire la chose grâce à cette mise à jour.

            • A nouveau merci d’avoir pris de ton temps pour répondre à mon problème….Je m’empresse d’essayer et je te ferai un retour.
              A trés vite

              • Bon,
                Comme je suis un peu taré (comment ça seulement un peu ???), j’ai écrit Debian with Raspberry Pi Desktop dans sa dernière version (“2019-04-11-rpd-x86-stretch.iso”) sur un disque dur interne 3’5 de récup mis en USB avec un adaptateur (plus rapide que ma clef).
                Une fois Raspbianx86 paramétré, le tuto MotionEye m’a pris 5 minutes pour obtenir une écran fonctionnel.
                Donc, je confirme que, grâce à toi, j’ai remis le tuto au goût du jour.
                Merci Victor,

                La preuve en image : (il parait que j’ai une tête de déterré ce soir)
                Heu ... Il fatigue un peu le gars, non ?!? Il n'a pas l'air très frais !!!

                • Salut Alban

                  Je suis ravi par mes questions,auxquelles tu as répondu super rapidement, d’avoir participé à la mise à jour du tuto (j’ai pas fait grand chose….simple utilisateur !!)
                  Je te confirme que ca fonctionne parfaitement!
                  Merci encore pour ton partage et surtout ne change rien à ta tête 🙂 juste un peu de repos peut-etre….
                  Merci
                  Victor

  2. 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 *

*