- Processeur 1,5GHz - 1 Go de RAM
- 1Mb/s de débit Internet montant et descendant.
- Un ping très bas (le développeur considère à titre personnel que 40ms est son maximum).
- Pour un serveur privé seulement (non publié sur jamulus.fischvolk.de) et qui se trouve derrière un NAT (style box FAI), ouvrir une plage/redirection de ports UDP vers l'ip privée du serveur au port 22124, en fait un port par instance de serveur que vous prévoyez de lancer. Les clients se connecteront alors à ip/nom_public:port_udp_public.
- Pour Linux, le logiciel est distribué sous forme de source à compiler:
Un des membres du groupe devra faire tourner le serveur sur lequel les membres se connecteront, ou alors tous les membres se connecteront à un serveur public publié sur le serveur
jamulus.fischvolk.de. Dans le premier cas (serveur chez un membre), pour le confort de connexion des copains, il lui faudra soit une adresse ip statique, soit enregistrer le serveur (nom et ip publique) dans un compte
noip.com ou
dyndns ou similiaire, ou encore publier le serveur sur le serveur
jamulus.fischvolk.de (mais là, avec une ip dynamique, il peut y avoir des moments où le serveur ne sera pas joignable quelques temps après le changement d'ip).
Télécharger (ouvrir) le source à partir du lien donné en bas de page et l'extraire sur le Bureau.
Dans un terminal (gardez-le ouvert jusqu'à la fin):
cd ~/Bureau/Jamulus3.3.7 # ou le numéro de version téléchargé
Pour une installation conjointe serveur + client sur la même machine (non recommandé, mais en réalité c'est l'exécution simultanée qui est déconseillée: l'installation du client génère aussi la possibilité de lancer jamulus en serveur), la procédure est détaillée dans le § Pour le client.
1) Il faut avoir build-essential et un Qt minimal pour une
installation en pur serveur sans le client :
sudo apt-get install build-essential libqt4-dev
ensuite on compile :
qmake "CONFIG+=nosound" "CONFIG+=noupcasename" "CONFIG+=nocelt" Jamulus.pro
Là vous aurez peut-être une erreur non bloquante concernant Qt-Widget car le développeur utilis
ait Qt5. Les deux dernières options de CONFIG sont apparues depuis la version 3.3.5. À ce jour (Avril 2020, l'option nocelt ne sert plus à rien.
2) puis
make clean
pour nettoyer le dossier source des fichiers inutiles par rapport à votre version de Qt.
3) puis la compilation proprement dite :
make
4) et pour finir, l'"installation", si on peut donner ce nom ronflant à cette manip qui consiste à déplacer le binaire exécutable généré par la compilation vers un dossier qui est déjà dans le PATH du système :
sudo mv jamulus /usr/local/bin/
Pour info :
- Le paquet libqt4-dev doit rester installé sur la machine après la compilation même si vous prévoyez de ne jamais lancer le serveur avec son interface graphique.
- Les préférences sont conservées dans ~/.config/Jamulus/Jamulusserver.ini quand on quitte le serveur.
Pour lancer le serveur je me suis créé un script "jam" dans mon home (* voir note en section Liens pour les codes pays)
!/bin/bash
# chrt 99 ionice -c1 nice -n -20 jamulus -s -n -g -l /var/log/llconserver1 -e "localhost" -o "jamulus.dyndns.org;Aachen;82" &
#
# chrt 99: run a new process with the given real-time scheduling properties
# ionice -c1: sets the io scheduling class to 1 for real time
# nice -n -20: run with modified scheduling priority -20 (highest priority)
# -s: Jamulus server mode
# -n: the server shall be run in deamon mode and no GUI is started
# -g: send ping messages to the servers in the server list to keep NAT ports open
# -l /var/log/llconserver1: store the server statistic in the file llconserver1
# -e: central server address (since this is a central server, set to "localhost")
# -o: set the name, city and country information
# chrt 99 ionice -c1 nice -n -20 jamulus -s -g -l /var/log/jamulus1 -e "localhost" -o "NomServeur;MonBled;74" # Pour inscrire le serveur sur le central jamulus.dyndns.org
# chrt 99 ionice -c1 nice -n -20 jamulus -s -n -e "localhost" -o "NomServeur;MonBled;74" & # Sans fichier log
service minidlna stop # bonus :) (par exemple)
if [[ $(echo $0|grep jamgpub) ]]; then
chrt 99 ionice -c1 nice -n -20 /bin/jamulus -s -g -l /var/log/jamulus.log -e "jamulus.dyndns.org" -o "NomServeur;MonBled;74" & #Serveur public avec Log et GUI
elif [[ $(echo $0|grep pub) ]]; then
chrt 99 ionice -c1 nice -n -20 /bin/jamulus -s -g -n -l /var/log/jamulus.log -e "jamulus.dyndns.org" -o "NomServeur;MonBled;74" & #Serveur public avec Log sans GUI
elif [[ $(echo $0|grep jamg) ]]; then
chrt 99 ionice -c1 nice -n -20 /bin/jamulus -s -e "localhost" -o "NomServeur;MonBled;74" & #Serveur privé avec GUI sans Log
else
chrt 99 ionice -c1 nice -n -20 /bin/jamulus -s -n -e "localhost" -o "NomServeur;MonBled;74" & #Serveur privé sans GUI ni Log
fi
exit
que je pourrai lancer en terminal après avoir fini de préparer le terrain :
chmod +x ~/jam
ln -s ~/jam ~/jamg
ln -s ~/jam ~/jampub
ln -s ~/jam ~/jamgpub
ainsi :
sudo ~/jam
ou avec l'interface graphique
gksudo ~/jamg
suffixer avec pub pour lancer un serveur public visible sur jamulus.dyndns.org
Pour fignoler en cas d'utilisation graphique :
sudo mv src/res/jamulus.desktop /usr/share/applications/
sudo mv src/res/mainicon.png /usr/share/icons/hicolor/16x16/apps/jamulus.png
sudo mv src/res/fronticon.png /usr/share/icons/hicolor/32x32/apps/jamulus.png
gksudo gedit /usr/share/applications/jamulus.desktop
remplacer la ligne
Icon=jamulus
par
Icon=/usr/share/icons/hicolor/32x32/apps/jamulus.png
fermer gedit en enregistrant.
Puis supprimer tout le bourier qui n'est plus nécessaire :
cd ..
rm -rf Jamulus3.3.7 # ou le numéro de version téléchargé
Rebonus :
gedit ~/jam-stop
#!/bin/bash
killall jamulus
service minidlna start # (par exemple)
Alt+F4
Enregistrer
chmod +x ~/jam-stop
!!+Prérequis
Remarque : toutes les illustrations et exemples de cette page sont faits avec le présupposé que l'option de compilation "CONFIG+=noupcasename" a été utilisée, donc que le nom de l’exécutable est
jamulus (et non
Jamulus comme avant la version 3.3.5 et dans d'autres tutoriels comme sur le site officiel).
- Processeur 1,5GHz - 1 Go de RAM
- 1Mb/s de débit Internet montant et descendant.
- Un ping très bas (le développeur considère à titre personnel que 40ms est son maximum).
- Pour un serveur privé seulement (non publié sur jamulus.fischvolk.de) et qui se trouve derrière un NAT (style box FAI), ouvrir une plage/redirection de ports UDP vers l'ip privée du serveur au port 22124, en fait un port par instance de serveur que vous prévoyez de lancer. Les clients se connecteront alors à ip/nom_public:port_udp_public.
- Pour Linux, le logiciel est distribué sous forme de source à compiler:
Un des membres du groupe devra faire tourner le serveur sur lequel les membres se connecteront, ou alors tous les membres se connecteront à un serveur public publié sur le serveur
jamulus.fischvolk.de. Dans le premier cas (serveur chez un membre), pour le confort de connexion des copains, il lui faudra soit une adresse ip statique, soit enregistrer le serveur (nom et ip publique) dans un compte
noip.com ou
dyndns ou similiaire, ou encore publier le serveur sur le serveur
jamulus.fischvolk.de (mais là, avec une ip dynamique, il peut y avoir des moments où le serveur ne sera pas joignable quelques temps après le changement d'ip).
Pour faciliter les mises à jour, le gars Gilgongo nous a pondu
un script qui automatise

tout ça. Il est très facilement modifiable pour utiliser l'option "CONFIG+=noupcasename" et aussi pour mettre le client à jour (enlever l'option nosound).
Après avoir installé Jack, la procédure est la même, sauf qu'en remplaçant les deux commandes au § 1) du chapitre "Pour le serveur" par
sudo apt-get install build-essential libqt4-dev libjack-dev # pour Jack v1
sudo apt-get install build-essential libqt4-dev libjack-jackd2-dev # pour Jack v2
qmake "CONFIG+=noupcasename" "CONFIG+=nocelt" Jamulus.pro
la compilation (make clean puis make) génère à la fois le client et le serveur.
Pour fignoler l'utilisation graphique (sans le -n dans le script de lancement) :
sudo mv src/res/jamulus.desktop /usr/share/applications/
sudo mv src/res/mainicon.png /usr/share/icons/hicolor/16x16/apps/jamulus.png
sudo mv src/res/fronticon.png /usr/share/icons/hicolor/32x32/apps/jamulus.png
gksudo gedit /usr/share/applications/jamulus.desktop
remplacer la ligne
Icon=jamulus
par
Icon=/usr/share/icons/hicolor/32x32/apps/jamulus.png
fermer gedit en enregistrant.
Puis supprimer tout le bourrier qui n'est plus nécessaire:
cd ..
rm -rf Jamulus3.3.7 # ou le numéro de version téléchargé
Créer 2 scripts pour le lancement et l'assassinat automatiques de jamulus par QjackCtl :
echo -e '#!/bin/bash\njamulus &'>~/jam-start
echo -e "#!/bin/bash\npkill jamulus &">~/jamkill
chmod +x ~/jam-start ~/jamkill
Lancer QjackCtl...
Aller dans Réglages/Options, cocher les cases "Exécuter un script après le démarrage" et "Exécuter un script à l'extinction" et indiquez respectivement en face le nom de chaque script créé ci-dessus.
Pour info, les préférences sont conservées dans ~/.config/Jamulus/Jamulus.ini quand on quitte le client. Mais mon script de sauvage jamkill empêche jamulus d'enregistrer sa conf quand il meurt violemment : donc à chaque modif de conf, pensez à arrêter jamulus normalement, puis arrêter QjackCtl et le relancer... jusqu'à ce qu'un linuxien plus malin ne propose ici une modif intelligente de jamkill ou des sources du programme :) voir
ce fil

.
Démarre jack à partir de QjackCtl. Si tout va bien jamulus se lance et tu peux aller faire tes branchements dans la baie de brassage :