====== RASPBERRY PI & Malinette autostart ====== * Porteur du projet : reso-nance * Date : 02/03/2021 * Licence : libre ! * Contexte : Résidence tricylique Dol BrutLab Besançon * Fichiers test 1 : [[https://yunohost.3615mini.tel/brutlabs_share/RP4_puredata/20210226_RPi4_PUREDATA_small.img.gz|RP4_puredata]] * Fichiers test 2 : [[http://reso-nance.org/Pi_malinette/RPI4-headless-Malinette-nogui-shrinked.img.tar.gz|RPI4-headless-Malinette-nogui-shrinked.img.tar.gz]] {{:projets:rpi4-malinette-autostart:bg-rpi4-malinette-wiki.png?400|}} {{tag>RPI3 RPI4 Raspberry Pi PureData Malinette}} ====Objectif ==== [[http://reso-nance.org/Pi_malinette/RPI4-headless-Malinette-nogui-shrinked.img.tar.gz|Dowload Disk image]] conçue pour un usage **HEADLESS** avec **carte son USB** * La Malinette et son patch "projects/malinette-default/new.pd" joue automatiquement au lancement de la RPI. * Accessible via wifi en ssh (idéal pour les installations rapides) et sftp pour remplacer le patch "new.pd" ===== INSTALLATION ===== - **Décompresser le fichier avant de faire l'image !!** - Créer une SDcard clone (16Go) d'apres cette image avec [[https://raspberry-pi.fr/sortie-raspberry-pi-imager/|PI IMAGER]] - Brancher une carte son USB puis secteur Si tout ok après démarrage complet le patch **new.pd** doit être audible sur les **sorties 1 et 2 de la carte son** ==== Contenu de l'image ==== * RASPBERRY PI OS (version: 5.4 / Size: 2,863MB) * PUREDATA (0.51.4-1) * MALINETTE [[http://malinette.info/#downloads|Raspbian version]] * Un service de lancement avec **systemd** * Une recherche automatique de réseau wifi configuré par Default : **ssid="brutlab_wifi" / psk="brutlab_wifi"** ==== Matériel nécessaire ==== * Une RPI3 ou RPI4 * Une carte son USB compatible linux * Une SDcard 16Go * Un réseau wifi * Un ordi linux ou un client SFTP pour OSX et Windows ---- ===== Installer l'image sur une SDCARD 16Go ===== * Télécharger [[https://yunohost.3615mini.tel/brutlabs_share/RP4_puredata/20210226_RPi4_PUREDATA_small.img.gz|RPI4malinette.img]] * Installer [[https://www.raspberrypi.org/software/|Raspberry Pi Imager]] * Sélectionner "Utiliser Image personnalisée" en bas de liste et selectionnez le fichier **RPI4malinette.img** ---- Cette os raspbian fonctionne sans affichage, donc on peut la faire fonctionner en SSH ou SFTP pour acceder aux fichiers.\\ Ou alors en mode graphique en lancant l'affichage =====ACCES SSH et SFTP ===== ==== Configuration wifi ==== * Option n°1 : configurer un réseau wifi avec **ssid="brutlab_wifi" / psk="brutlab_wifi"** * Option n°2 : (necessite linux ) Ajouter votre réseau propre wifi dans la liste wpa_supplicant.conf de la rpi ++++ Comment ajouter votre réseau wifi dans la liste wpa_supplicant.conf | Ouvrir un émulateur de terminal sur votre pc et taper : $ sudo nano "$path"/rootfs/etc/wpa_supplicant/wpa_supplicant.conf // vous devez voir afficher ceci : ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=FR network={ ssid="brutlab_wifi" psk="brutlab_wifi" } // ajouter ces lignes avec les ssid et mdp de votre réseau : network={ ssid="yournetwork" psk="yourpassword" } // Enregistrer et quitter le fichier wpa_supplicant.conf $ Ctrl X yes // Rétablir les autorisations d’accès au fichier wpa_supplicant.conf : $ sudo chmod +r wpa_supplicant.conf ++++ ====Se connecter en SSH et SFTP==== Brancher la RPI et attendre qu'elle soit bien allumée. La RPI est à ce stade normalement connectée sur le même réseau Wifi que votre ordinateur ++++ifconfig & nmap| Depuis un terminal sur votre pc taper : // Identifier votre propre IP ifconfig (ex. **inet 192.168.100.9** wlp2s0: flags=4163 mtu 1500 inet 192.168.100.9 netmask 255.255.255.0 broadcast 192.168.100.255 // Cartographier le réseau pour identifier la RPI. // scanner le reseau d'apres vos plages d'adresses (remplacer les x par les valeurs de votre ip trouvée précédemment. ~$ nmap x.x.x.255/24 -p22 // si besoin d'installer nmap taper: -$ sudo apt-get install nmap Starting Nmap 7.80 ( https://nmap.org ) at 2021-03-20 22:14 CET Nmap scan report for _gateway (192.168.43.1) Host is up (0.011s latency). PORT STATE SERVICE 22/tcp closed ssh Nmap scan report for pi (192.168.43.185) Host is up (0.0092s latency). PORT STATE SERVICE 22/tcp open ssh Nmap scan report for ed-520S (192.168.43.203) Host is up (0.00037s latency). PORT STATE SERVICE 22/tcp closed ssh Nmap done: 256 IP addresses (3 hosts up) scanned in 2.55 seconds ++++ Reperer la ligne : **Nmap scan report for pi (192.168.43.185)** Dans cet exemple, l'adresse IP de la Raspeberry est 192.168.43.185 ====3-a - Connexion SSH ==== ssh -Y pi@192.168.100.185 // password 123 ++++Si problème d'autorisation ssh ?| @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key has just been changed. The fingerprint for the ECDSA key sent by the remote host is SHA256:w5RxONppFZWYQ+w5e/MsKdEgpNQk3E3hM0qruZ8pkXM. Please contact your system administrator. Add correct host key in /home/user/.ssh/known_hosts to get rid of this message. Offending ECDSA key in /home/ed/.ssh/known_hosts:5 remove with: ssh-keygen -f "/home/ed/.ssh/known_hosts" -R "192.168.43.185" ECDSA host key for 192.168.43.185 has changed and you have requested strict checking. Host key verification failed. Alors repérer/copier/coller cette ligne ds votre console ssh-keygen -f "/home/user/.ssh/known_hosts" -R "192.168.100.185" ++++ Vous pouvez maintenant pouvoir accéder a la RPI ssh -Y pi@192.168.100.185 // password 123 pi@pi:~ $ ====3-b - Connexion SFTP ==== * Sur OS Linux, le sftp peut se faire directement via une fenêtre du bureau. * Sur OSx ou Windows, télécharger un c**lient SFTP**, par exemple [[https://cyberduck.io/download/|Cyberduck]] {{:projets:rpi4-malinette-autostart:cyber.png?400|}} {{:projets:rpi4-malinette-autostart:cyber1.png?400|}} ---- =====ACCES MODE GRAPHIQUE ==== Cette image est configurée pour démarrer sur la console.\\ // a la fin des informations de demmarage sur la console de la RPI taper pour lancer l'affichage du bureau Raspbian $ startx // stopper le service pd/malinette pour pouvoir en relancer une occurence unique : $ sudo systemctl stop pd.service // lancer la version graphique de la malinette : $ cd Documents/malinette // lancer le script Malinette de votre choix $ bash start-malinette-gui.sh ---- ===== Autres détails ===== ==== Lister les processus ==== ps -ax :: lister les processus en cours permet de vérifier si **pd** s'est bien lancé via le script start-malinette.sh\\ {{:projets:rpi4-malinette-autostart:ps-ax.png?800|}}lister les processus {{:projets:rpi4-malinette-autostart:ps-ax2.png?800|}}597 est le nb de session puredata lancée par systemd || "killall 597" n'empechera pas la relance auto !! ===== Systemd : Gestion du démarrage automatique ====== Le lancement au démarrage est effectué par le fichier **/etc/systemd/system/pd.service**\\ Quitter pure data (ex. "$ killall pd" ou "killall 457") et il se relance en permanence. il faut stopper le "service" pour pouvoir lancer une occurrence unique de pure data: sudo systemctl stop pd.service // stop pd & malinette // et pour relancer le service avant de quitter $ sudo systemctl start pd.service // restart pd & malinette Le service de démarrage lance le fichier **start-mainette.sh**. Pour plus d'infos : $ sudo nano /etc/systemd/system/pd.service ==== Relancer la Malinette ==== Pour le mode graphique, lancer le script **start-mainette-gui.sh** // se déplacer vers le dossier Malinette $ cd Documents/malinette // verifier le contenu $ ls // lancer le script Malinette de votre choix $ bash start-malinette-gui.sh ==== Accéder aux contenus en sftp avec linux==== - Ouvrir une fenêtre de bureau et taper directement dans la barre d'adresse. - Aller à **/home/Pi/Documents/malinette/malinette-ide/projects/malinette-default/** sftp://pi@192.168.43.185/ // mdp 123 {{:projets:rpi4-malinette-autostart:sftp.png|}} {{:projets:rpi4-malinette-autostart:newpd.png|}} RESPECTER LA STRUCURE DE FICHIER DE LA MALINETTE.\\ e.g. le fichier **new.pd** TOUJOURS dans le dossier **malinette-default**