====== 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**