Skip to main content

Historique: PAM

Aperçu de cette version: 292

Doc > Optimisations système > Le temps réel pour les applications



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

Image

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



Introduction


Les versions actuelles de JACK proposent le mode temps-réel par défaut, une raison de plus pour s'y mettre dès maintenant !
Mais qu'en est-il exactement ? Comment configurer le système et le régler au mieux ?
Cette page de documentation explique comment obtenir le droit d'utiliser des applications en mode temps réel grâce à P.A.M. sur un système Linux. Elle s'applique à toutes les distributions linux qu'elles aient un noyau standard ou un noyau temps-réel (Ceci dit, les utilisateurs du noyau temps-réel devront aussi se pencher sur la gestion du temps-réel des IRQ pour compléter le réglage).



Présentation

Le noyau linux 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 logiciels : 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, nous allons utiliser et configurer le module P.A.M. (Pluggable Authentication Modules) qui permet une utilisation facile de cette fonctionnalité. Il s'agit donc de dire à P.A.M. de laisser les ressources de notre choix accessibles pour les applications audio et, deux ressources nous intéressent particulièrement :

  • memlock : La quantité de mémoire vive qu'une application peut se réserver pour elle seule
  • rtprio : la 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 ! 😉 Trois étapes (faciles) sont nécessaires :

  • Faire partie du groupe d'utilisateurs audio
  • Donner l'accès temps-réel au groupe d'utilisateurs audio
  • Déconnecter/reconnecter la session


Régler PAM en trois étapes

Faire partie du groupe d'utilisateurs audio

note : pour Fedora, il faut substituer le groupe jackuser à audio.
Pour faire partie du groupe d'utilisateurs audio, il existe plusieurs méthodes dont les deux ci-dessous.

Méthode graphique

Une première façon de faire et d'utiliser 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.


Méthode lignes de commandes

Vérifiez d'abord que votre utilisateur n'est pas dans le groupe visé en émettant cette commande dans un terminal :
Copy to clipboard
~~blue:$~~ groups

Il faut les droits d'administration pour éditer ce réglage, on utilisera donc la super-commande su.
ajouter mon_utilisateur au groupe audio
Copy to clipboard
~~blue:$~~ su -c "gpasswd -a ''mon_utilisateur'' audio"

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



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


Localiser le fichier de configuration de PAM :

Comme il ne s'agit pas exactement du même fichier en fonction de la distribution utilisée, voici les différentes possibilités rapportées sur le forum :
  • Pour les systèmes basés sur Debian (squeeze et plus) et ubuntu (ou ubuntustudio 10.04 et plus), le fichier s'appelle audio.conf, et il est installé par JACK. Il se situe ici : /etc/security/limits.d/audio.conf (voir cette discussion).
  • Pour les versions récentes de Fedora, il s'agit du fichier /etc/security/limits.d/99-jack.conf
  • Sur les autres systèmes, on trouvera généralement un fichier /etc/security/limits.conf, mais il peut arriver que ça ne soit pas le cas. Il va donc falloir le localiser, par exemple dans un terminal :
    localiser limits.conf grace à son nom
    Copy to clipboard
    ~~blue:$~~ su -c "find /etc/ -name limits.conf"

    localiser limits.conf grace à son contenu
    Copy to clipboard
    ~~blue:$~~ 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
Copy to clipboard
~~blue:$~~ su -c "gedit /etc/security/limits.conf"

remplacez biensû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 :
Copy to clipboard
# 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.

Si vous avez une ligne du genre :
Copy to clipboard
@audio - nice -15

Vous pouvez la commenter en mettant un # devant :
Copy to clipboard
# @audio - nice -15

Enregistrez et fermez le fichier.

Déconnecter/reconnecter 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 ! 😉

Pour vérifier


Copy to clipboard
~~blue:$~~ ulimit -l -r max locked memory (kbytes, -l) 700000 real-time priority (-r) 90


Et ensuite ?


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 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 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)

Dans certains cas exceptionnels, il est possible que PAM ne soit pas installé. Par exemple, si vous construisez vous même votre propre distribution (méthode Linux From Scratch), ou que vous utilisez Slackware et que vous choisissez de ne pas installer PAM. Dans ce cas, une méthode alternative est d'utiliser set_rlimits.



À des fins historiques, nous gardons aussi de coté une page sur les anciennes méthodes pour autoriser l'accès temps réel aux applications. Cette page regroupe les informations concernant :
  • realtime-lsm : une ancienne méthode utilisée avant P.A.M.,
  • les manipulations à effectuer pour utiliser les anciennes versions de PAM < 0.8.
Il est à noter que ces deux méthodes sont à présent obsolètes 😉


[+]

Historique

Information Version
Samedi 12 mai 2012 17:51 pianolivier mise en page 307
Afficher
Samedi 12 mai 2012 17:50 pianolivier 306
Afficher
Samedi 12 mai 2012 17:36 pianolivier restructuration partielle 305
Afficher
Samedi 12 mai 2012 17:25 pianolivier +alias(PAM) 304
Afficher
Samedi 12 mai 2012 17:15 pianolivier intégration de la page ((PAM)) 303
Afficher
Lundi 09 avril 2012 16:30 pianolivier +BOX 302
Afficher
Lundi 09 avril 2012 13:11 pianolivier déplacement d'infos dans ((Gestion des prios)) 301
Afficher
Mercredi 21 mars 2012 19:36 pianolivier fil d'ariane 300
Afficher
Mardi 20 mars 2012 22:01 pianolivier mise en page 299
Afficher
Mardi 20 mars 2012 22:01 pianolivier suppression BOX (début de réorga du dossier) 298
Afficher
Dimanche 11 mars 2012 16:04 pianolivier 297
Afficher
Dimanche 11 mars 2012 16:03 pianolivier 296
Afficher
Dimanche 11 mars 2012 16:02 pianolivier 295
Afficher
Dimanche 11 mars 2012 16:02 pianolivier 294
Afficher
Dimanche 11 mars 2012 16:01 pianolivier mise en page 293
Afficher
Dimanche 11 mars 2012 14:46 pianolivier 292
Afficher
Dimanche 11 mars 2012 14:06 pianolivier 291
Afficher
Dimanche 11 mars 2012 14:05 pianolivier mise en page 290
Afficher
Mercredi 22 février 2012 20:02 Dominique ajour cgroup dans box 289
Afficher
Lundi 09 janvier 2012 19:05 pianolivier auto-correction 288
Afficher
Lundi 09 janvier 2012 19:05 pianolivier +1alias 287
Afficher
Mardi 03 janvier 2012 19:53 pianolivier mode stylo rouge 286
Afficher
Lundi 02 janvier 2012 12:49 olinuxx alias 285
Afficher
Mardi 27 décembre 2011 13:24 olinuxx ponctuation 284
Afficher
Mardi 27 décembre 2011 13:23 olinuxx mise a jour 283
Afficher
Mardi 27 décembre 2011 13:22 olinuxx grrrr :) 282
Afficher
Mardi 27 décembre 2011 13:21 olinuxx mise en page 281
Afficher
Mardi 27 décembre 2011 13:16 olinuxx coquille 280
Afficher
Mardi 22 novembre 2011 19:59 pianolivier mise en page 279
Afficher
Samedi 27 août 2011 15:40 pianolivier 278
Afficher
Samedi 27 août 2011 15:34 pianolivier +fedora + qques améliorations de lecture 277
Afficher
Mercredi 24 août 2011 18:41 pianolivier 276
Afficher
Mercredi 24 août 2011 18:38 pianolivier 275
Afficher
Dimanche 19 juin 2011 11:53 elboulangero 274
Afficher
Mercredi 08 juin 2011 19:29 pianolivier 273
Afficher
Samedi 28 mai 2011 22:58 pianolivier lien qJackctl_configuration > Jack_configuration 272
Afficher
Dimanche 10 avril 2011 23:04 pianolivier 271
Afficher
Dimanche 10 avril 2011 23:02 pianolivier simplification de la formulation 270
Afficher
Dimanche 10 avril 2011 23:00 pianolivier 269
Afficher
Mardi 04 janvier 2011 13:24 olinuxx BOX 268
Afficher
Lundi 20 décembre 2010 22:03 olinuxx + box 267
Afficher
Lundi 13 décembre 2010 19:24 pianolivier 266
Afficher
Lundi 13 décembre 2010 18:55 pianolivier 265
Afficher
Lundi 06 décembre 2010 11:58 olinuxx tests 264
Afficher
Lundi 06 décembre 2010 11:35 olinuxx changement lien interne 263
Afficher
Lundi 06 décembre 2010 10:53 olinuxx retirage d'un lien non utile 262
Afficher
Lundi 06 décembre 2010 10:52 olinuxx changement lien 261
Afficher
Vendredi 03 décembre 2010 20:27 olinuxx 260
Afficher
Vendredi 03 décembre 2010 20:25 olinuxx 259
Afficher
Vendredi 03 décembre 2010 20:24 olinuxx ptits trucs 258
Afficher