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]

olinuxx, 12:50, mar. 16 Sep 2014: Hola Didier :-)
bluedid29, 12:04, mar. 16 Sep 2014: Hola Olivier !
programLyrique, 12:37, dim. 14 Sep 2014: Donnez votre avis sur les compétitions musicales LinuxMAO : [Lien]
m2v2, 09:15, dim. 14 Sep 2014: @programLyrique Le Steinway est beau, mais avec un bruit de fond très gênant dans les aiguës pianissimo
programLyrique, 12:30, sam. 13 Sep 2014: Des SFZ d'instruments de l'orchestre sous licence CC-BY-ND : [Lien]
Samuel, 12:24, sam. 13 Sep 2014: Supportez les derniers greffons ArtyFX : [Lien]
olinuxx, 09:29, sam. 13 Sep 2014: Hola Didier !
jam's, 11:43, ven. 12 Sep 2014: @ stanlea: Sur quelle distribution?
stanlea, 21:07, jeu. 11 Sep 2014: J'ai testé podolski, ça marche très bien
Samuel, 22:31, mer. 10 Sep 2014: Une caméra libre ? oui ! [Lien]
jam's, 18:44, mar. 09 Sep 2014: @ pierrotlo: J'ai essayé de le tester mais l'install.sh d'emblée plante (erreur de syntaxe) et installé à la main Ardour ou renoise ne voient pas le plugin ...
pierrotlo, 15:16, mar. 09 Sep 2014: Quelqu'un aurait-il testé :[Lien]