Chargement...
 
[Voir/Cacher menus de gauche]
[Voir/Cacher menus de droite]


Nous expliquons ici comment obtenir le droit d'utiliser des applications en mode temps réel grâce à P.A.M. sur un système GNU/Linux. Elle s'applique à la plupart des distributions actuelles, qu'elles aient un noyau standard ou un noyau temps-réel.

Si vous utilisez Tango Studio ces réglages sont inutiles (car déjà faits).





T' as pas configuré P.A.M. ?

Image

T' as pas la prio temps-réel !



Présentation

Le noyau linux standard offre la possibilité de donner à certains logiciels un accès privilégié sur les ressources de l'ordinateur avec une priorité maximale sur les autres. Ces logiciels pourront être plus proches du temps-réel et seront moins gênés par les autres.
C'est ce qui nous intéresse car, en MAO, nous n'avons pas forcément envie qu'une pub en flash dans un navigateur internet nous bloque un enregistrement de 4 pistes !

Pour cela, deux configurations sont nécessaires :
  • ajouter le compte utilisé pour la MAO au groupe audio, ce qui se fait via le module P.A.M. (Pluggable Authentication Module)
  • donner le maximum de ressources à ce groupe, en réglant la paramètres du noyau memlock (quantité de mémoire vive qu'une application peut se réserver pour elle seule) et rtprio (priorité maximum accordée à un programme pour accéder aux ressources du processeur)

Ne vous inquiétez pas quant aux détails, le procédé est largement rodé et nous avons les réglages optimums qui conviennent à tous ! wink


Régler PAM en trois étapes

1. Faire partie du groupe d'utilisateurs audio

notenote

Pour Fedora, il s'agit du groupe jackuser et non audio.


Avec les outils d'administration de votre système

Par exemple pour le bureau Gnome (et donc Ubuntu entre autres) :
  • Allez dans Système -> Administration -> Utilisateurs et groupes.
  • Cliquez sur l'icône en forme de clé. On vous demande votre mot de passe administrateur, entrez-le et validez.
  • Cliquez sur Gérer les groupes.
  • Sélectionnez le groupe audio et cliquez sur Propriétés.
  • Cliquez sur la check-box devant votre nom d'utilisateur, validez (sauf si c'est déjà le cas) et fermez la fenêtre.
Image

En ligne de commande

Vérifiez d'abord que votre utilisateur n'est pas déjà dans le groupe visé en émettant cette commande dans un terminal :
groups

Cette commande liste les groupes Linux dans lesquels se trouve l'utilisateur qui l'a lancée. Si audio ou jackuser n'apparaissent pas, vous n'y êtes pas !

Il faut les droits d'administration pour éditer ce réglage, on utilisera donc la super-commande sudo.
Ajouter mon_utilisateur au groupe audio
sudo gpasswd -a ''mon_utilisateur'' audio

n'oubliez pas bien sûr de remplacer mon_utilisateur par le nom de votre utilisateur !

2. Donner l'accès temps-réel au groupe d'utilisateurs audio


Localiser le fichier de configuration de PAM :
Selon votre distribution le fichier à éditer aura un nom différent, essayez dans l'ordre suivant :
  • /etc/security/limits.d/audio.conf : spécifique pour JACK, en général disponible sur système à base de Debian ou Ubuntu
  • /etc/security/limits.d/99-jack.conf : plutôt sous Fedora
  • /etc/security/limits.conf : par défaut et historique il peut coexister avec l'un des fichier ci-dessus, dans ce cas il ne sert pas

Il peut arriver qu'il se trouve ailleurs. Il va donc falloir le localiser, par exemple dans un terminal :
Localiser limits.conf grace à son nom
su -c "find /etc/ -name limits.conf"

Localiser limits.conf grace à son contenu
grep -lir rtprio /etc/security/limits.*


Éditer le fichier de configuration :

Utilisez votre éditeur de texte favori pour modifier le contenu du fichier. Votre éditeur de texte favori peut être gedit si vous utilisez le gestionnaire de bureau gnome, kwrite sous KDE, nano sur un terminal,... On utilisera gedit dans notre cas. Il nous faut ici aussi les droits d'administration :
éditer le fichier de configuration de PAM
su -c "gedit /etc/security/limits.conf"

remplacez bien sûr /etc/security/limits.conf par le fichier trouvé à l'étape ci-dessus.
Vérifiez que les lignes suivantes se trouvent dans le fichier et, si elles n'y sont pas, ajoutez les :
# Support Temps réel pour le groupe audio
@audio  -  rtprio   90
@audio  -  memlock  unlimited

Vérifiez, si ces lignes sont déjà présentes, qu'elles ne commencent pas par un dièse (#) les rendant inopérantes.

Par contre le paramètre suivant est inutile :
@audio  -  nice -15

Vous pouvez le commenter en mettant un # devant :
# @audio  -  nice -15

Enregistrez et fermez le fichier.

3. Relancez la session

Pour finir, déconnectez-vous de votre session puis reconnectez-vous pour que les changements prennent effet.
Et hop, à table ! C'est prêt ! wink

Pour vérifier

ulimit -l -r


Qui vous donnera les valeurs enregistrées :
max locked memory       (kbytes, -l) unlimited
real-time priority              (-r) 90


Détails du fichier de configuration

[+]

Liens et commentaires


Avant tout, si vous rencontrez le moindre soucis lorsque vous suivez cette procédure, vous avez 2 choses à faire :
car, comme dit un peu partout sur LinuxMAO.org, cette étape est critique !
Si la manipulation a fonctionné, vous pouvez à présent retourner à la page d'où vous venez. Si vous êtes tombé sur cette page par hasard, vous devriez aller faire un tour sur la page de configuration de jack, pour régler celui-ci au mieux et en concordance avec la manipulation que vous venez d'effectuer ici.

Si vous possédez un noyau temps-réel il vous faudra aussi vous pencher sur la gestion des priorités des processus IRQ.

Si PAM n'est pas installé, allez voir les alternatives sur la page Temps-réel pour les applications.

Si JACK fonctionne déjà et que vous vous intéressez à rendre votre système encore plus temps-réel, continuez à lire.

Pour aller plus loin
Avec rlimits et PAM, les applications accèdent plus rapidement au noyau ce qui permet d'obtenir des temps de latence très faibles (quelques dizaines de millisecondes) largement suffisants pour la plupart des utilisations en MAO. Cependant si vous avez besoin d'un système encore plus Temps-réel les étapes suivantes sont :
Ceci vous permettra à terme d'obtenir des temps de latence plus bas encore ! (quelques millisecondes)



[+]

Documentation [Afficher / Cacher]

Connexion
[Afficher / Cacher]


Mégaphone [Afficher / Cacher]

bluedid29, 12:27, lun. 01 Sep 2014: C'est un peu plus long mais tout à fait faisable. Un de ces jours, je vais me re-pencher sur LMMS... ...après ma période "piano bar" :-)
bluedid29, 12:26, lun. 01 Sep 2014: Hello jojo, bitwig est un "tout en un". Pour l'expérimentation, la création, l'arrangement... il y a des tas de logiciels libres dispos en MAO performants... C'est juste qu'il faut penser "modularité"...
xzu, 09:58, lun. 01 Sep 2014: the power of Open en français http://bit.ly/m7aV0R
xzu, 09:22, lun. 01 Sep 2014: hey! plus de pseudo en double!
xzu, 22:17, sam. 30 Aug 2014: @Samuel :-D excellent!
Samuel, 16:34, sam. 30 Aug 2014: Une vielle à roue MIDI sous linux ? oui bien sur ! [Lien]
Samuel, 15:16, ven. 29 Aug 2014: Jojo, essaie ((luppp)), qui devrait faire l'affaire pour ce qui est boucles audio
olinuxx, 16:59, jeu. 28 Aug 2014: Salut jojo, tu devrais trouver ton bonheur ici : [Lien]
jojo niglopunk, 16:40, jeu. 28 Aug 2014: hello j ai vu la pub pour bitwig, ca en jette mais le prix aussi...heuuu y a bien une solution croustillante pour l avoir dans l esprit gratos linux?héhéhé merci
olinuxx, 16:45, mer. 27 Aug 2014: toutafé pierrotlo
pierrotlo, 16:27, mer. 27 Aug 2014: Bon Ben... ISSE c'est puissant. Faut travailller sur de petits samples ou machine puissante. Mais bien !
pierrotlo, 10:22, mer. 27 Aug 2014: C'est compilé et cela charge. Ho...ISSE