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…
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 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) 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 CTRL+ENTER 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 ( 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!)
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é"
C'est un peu cracra et il reste à le lancer au démarrage, peut être configurer le client automatiquement aussi
TO BE CONTINUED…