Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
ressource:logiciel:foxdot_troop:configuration_serveur_troop_debian_10 [2021/09/28 22:57] emoc |
ressource:logiciel:foxdot_troop:configuration_serveur_troop_debian_10 [2022/02/01 15:42] (Version actuelle) grandk |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{tag> livecoding troop foxdot em}} | ||
+ | |||
====== Configuration d'un serveur Troop sur debian 10 ====== | ====== Configuration d'un serveur Troop sur debian 10 ====== | ||
+ | |||
+ | Page créée le 28 septembre 2021 / Projet en cours | ||
But : avoir un ordinateur capable de lancer rapidement un serveur troop pour livecoder de la musique à plusieurs sans passer une plombe à régler des petits bidules techniques... \\ | But : avoir un ordinateur capable de lancer rapidement un serveur troop pour livecoder de la musique à plusieurs sans passer une plombe à régler des petits bidules techniques... \\ | ||
En somme : une machine avec un bouton on-off et qui affiche l'adresse IP, la version de troop nécessaire en gros caractères! | En somme : une machine avec un bouton on-off et qui affiche l'adresse IP, la version de troop nécessaire en gros caractères! | ||
- | Pour se faire, un [[materiel:inventaire_client_leger_hp_t510#cl21meridion|client léger M73]] est utilisé | + | Pour se faire, un [[materiel:inventaire_client_leger_hp_t510#cl21meridion|client léger M73]] est utilisé (CL21 Meridion) |
+ | |||
+ | ===== Configuration ===== | ||
+ | |||
+ | Système : Debian 10.9 Buster avec LXDE | ||
+ | |||
+ | **Réglage des polices** : | ||
+ | |||
+ | * en commande ''lxappearance'', puis régler la police en 8 | ||
+ | * dans //menu/préférences/openbox configuration manager// : passer les tailles de police en 8 | ||
+ | * cliquer droit sur le bureau / préférences du bureau : changer la taille de police en 8 | ||
+ | |||
+ | **Configuration du dongle wifi ( Realtek RTL8188CUS)** ... | ||
+ | |||
+ | Ajouter les paquets non-free dans ''/etc/apt/sources.list'' | ||
+ | |||
+ | deb http://deb.debian.org/debian/ buster main contrib non-free | ||
+ | deb-src http://deb.debian.org/debian/ buster main contrib non-free | ||
+ | |||
+ | deb http://security.debian.org/debian-security buster/updates main contrib non-free | ||
+ | deb-src http://security.debian.org/debian-security buster/updates main contrib non-free | ||
+ | |||
+ | Suivant le modèle de clé wifi il peut être nécessaire d'installer des paquets. Pour identifier un firmware manquant, dans un terminal taper | ||
+ | sudo dmesg |grep firm | ||
+ | Puis rechercher dans votre moteur de recherche préféré le paquet qui fourni le firmware désiré, par exemple pour une clé Ralink RT5370 identifiée 148f:5370, le firmware rt2870.bin est fourni par le paquet firmware-ralink | ||
+ | |||
+ | Puis en commande | ||
+ | su # passer en root | ||
+ | apt-get update # mise à jour de la liste des paquets | ||
+ | apt install firmware-realtek # installer les drivers wifi | ||
+ | |||
+ | Le module est reconnu mais n'apparait pas dans wicd, pour qu'il apparaisse il a fallu récupérer le nom de l'interface wifi avec ''ip ad'' et l'écrire dans les préférences de wicd (parametres généraux / interfaces réseau / interface sans fil), puis actualiser. Il peut être nécessaire de redémarrer la machine. \\ | ||
+ | |||
+ | **Installation de quelques paquets logiciels** | ||
+ | su # passer en root | ||
+ | apt-get update # mise à jour de la liste des paquets | ||
+ | apt install htop terminator git # outils de base | ||
+ | |||
+ | **Installation pip** (python2 et python3 sont pré-installés sur Debian 10) [[https://computingforgeeks.com/how-to-install-pip-2-pip-3-on-debian/|source]] | ||
+ | su | ||
+ | apt install python-pip # installer pip2, confirmer avec pip --version ou pip2 --version | ||
+ | apt install python3-venv python3-pip # installer pip3, confirmer avec pip3 --version | ||
+ | apt install python3-tk # pour tkinter | ||
+ | pip3 install tk | ||
+ | |||
+ | **Installation supercollider** | ||
+ | su | ||
+ | apt install supercollider | ||
+ | |||
+ | **Installer foxdot** | ||
+ | su | ||
+ | pip3 install FoxDot | ||
+ | exit | ||
+ | |||
+ | Démarrer supercollider (dans LXDE : menu //démarrer / son et vidéo / supercollider IDE// ) | ||
+ | Dans l'éditeur de supercollider, écrire la ligne suivante, puis <key>CTRL</key>+<key>ENTER</key> pour l'activer | ||
+ | Quarks.install("FoxDot") | ||
+ | Puis dans le menu //Language//, choisir //Recompile class library// | ||
+ | |||
+ | (Je n'installe pas les sc3-plugins, nécessaires pour certains effets : https://github.com/supercollider/sc3-plugins) | ||
+ | |||
+ | Ensuite on démarre avec FoxDot.start dans l'IDE de supercollider (et CTRL+ENTER), ça c'est si tout marche bien, dans le cas présent, ça n'a pas marché aussi vite (cf problème avec jackd ci-dessous) | ||
+ | |||
+ | **Installer troop** \\ | ||
+ | |||
+ | Récupérer depuis github : https://github.com/Qirky/Troop \\ | ||
+ | Décompresser, puis pour démarrer | ||
+ | python3 /home/xor/troop-0.10.3/run-server.py | ||
+ | Eventuellement | ||
+ | python3 /home/xor/troop-0.10.3/run-client.py | ||
+ | |||
+ | |||
+ | ==== Problèmes rencontrés et résolus ==== | ||
+ | |||
+ | === Problème avec jackd === | ||
+ | |||
+ | Lancer FoxDot.start déclenchait le message suivant : | ||
+ | could not initialize audio. | ||
+ | Server 'localhost' exited with exit code 0. | ||
+ | Du à un problème avec jackd qui n'arrivait pas à se lancer ...\\ | ||
+ | En fait la carte audio n'est pas hw:0 (on peut s'en rendre compte avec le résultat de ''aplay -l'' ) | ||
+ | Il faut lancer jackd au préalable, sur la bonne carte audio hardware ( [[https://github.com/jackaudio/jack2/issues/312|source]] ) | ||
+ | pulseaudio -k # stopper pulseaudio | ||
+ | jackd -rd alsa -d hw:1 # lancer jackd sur la bonne carte audio! | ||
+ | |||
+ | ===== Démarrage ===== | ||
+ | |||
+ | Procédure pour démarrer FoxDot et Troop **(à retester)** | ||
+ | pulseaudio -k # stopper pulseaudio, peut-être superflu | ||
+ | jackd -rd alsa -d hw:1 # lancer jackd sur la bonne carte audio! | ||
+ | # dans l'IDE supercollider : | ||
+ | # FoxDot.start suivi de CTRL + ENTER | ||
+ | python3 -m FoxDot & | ||
+ | # | ||
+ | python3 /home/xor/troop-0.10.3/run-server.py | ||
+ | # dans un autre terminal | ||
+ | python3 /home/xor/troop-0.10.3/run-client.py & | ||
+ | ===== Démarrage automatique ===== | ||
+ | **TO BE CONTINUED...** | ||
+ | démarrer tout, récupérer l'adresse IP, créer un fichier html à la volée et l'afficher avec xdg-open | ||
+ | Le script ressemble à ça : (et fonctionne!) | ||
+ | <code> | ||
+ | pulseaudio -k # arrêter pulseaudio | ||
+ | jackd -rd alsa -d hw:1 & # démarrer jack sur la carte audio adaptée à cet ordi | ||
+ | sleep 2 | ||
+ | sclang /home/xor/troop-0.10.3/start_foxdot.scd & # démarrer le serveur supercollider et foxdot | ||
+ | sleep 6 | ||
+ | python3 -m FoxDot & # démarrer un IDE foxdot | ||
+ | sleep 4 | ||
+ | python3 /home/xor/troop-0.10.3/run-server.py --port=57890 --password="ok" & # serveur troop | ||
+ | sleep 3 | ||
+ | variable=`hostname -I` # récupérer l'adresse IP dans une variable | ||
+ | echo $variable | ||
+ | # créer un fichier HTML avec les infos du serveur | ||
+ | echo "<html><h1>Pour se connecter au serveur Troop : </h1><h1>IP : $variable</h1><h1>Port : 57890</h1><h1>password : ok</h1></html>" > troop.html | ||
+ | sleep 2 | ||
+ | xdg-open ./troop.html # afficher le fichier (le navigateur sera choisi automatiquement) | ||
+ | sleep 2 | ||
+ | python3 /home/xor/troop-0.10.3/run-client.py & # ouvrir un client troop | ||
+ | echo "tout est lancé" | ||
+ | </code> | ||
+ | C'est un peu cracra et il reste à le lancer au démarrage, peut être configurer le client automatiquement aussi | ||
+ | **TO BE CONTINUED...** |