Historique: PAM
Aperçu de cette version: 256
T' as pas configuré P.A.M. ?
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 "normal" ou un noyau RT (Ceci dit, les utilisateurs du noyau RT devront après avoir suivi les procédures décrites ici se rendre obligatoirement sur la page gestion des irq pour compléter le réglage).
Table des matières
Présentation
Pour faire simple, le système interne du noyau linux propose la possibilité de donner à certaines applications (audios dans notre cas) un accès privilégié sur les ressources de l'ordinateur avec une priorité maximale sur toutes les autres applications et 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 dont 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
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
Il faut les droits d'administration pour éditer ce réglage, on utilisera donc la super-commande sudo ou su suivant votre distribution.
Entrer la/les commande(s) suivante(s) dans un terminal :
ajouter mon_utilisateur au groupe audio
Copy to clipboard
===pour ubuntu :=== %%%~~blue:$~~ sudo gpasswd -a ''mon_utilisateur'' audio %%%===pour les autres :=== %%%~~blue:$~~ su %%%~~blue:$~~ gpasswd -a ''mon_utilisateur'' audio %%%
n'oubliez pas bien sûr de remplacer mon_utilisateur par le nom de votre utilisateur !
Pour vérifier
dans un terminal :
lister les groupes actuels
Copy to clipboard
~~blue:$~~ groups
Donner l'accès temps-réel au groupe d'utilisateur audio
La configuration de P.A.M. se fait au travers d'un fichier de configuration :limits.conf ou audio.conf suivant votre distribution.Localiser le fichier de configuration :
- Pour les systèmes basés sur Debian à partir de squeeze et ubuntu ou ubuntustudio à partir de 10.04, le fichier s'appelle
audio.conf, il se situe ici :/etc/security/limits.d/audio.conf(voir cette discussion).
- Sur les autres systèmes, le fichier
limits.confse trouve souvent dans le répertoire/etc/security/, mais il peut arriver que ça ne soit pas le cas. Il va donc falloir le localiser, par exemple grâce à un terminal :localiser limits.conf avec la commande findCopy to clipboard===pour la plupart des systèmes :=== %%%~~blue:$~~ su %%%~~blue:$~~ find / -name limits.conf
Le retour devrait vous donner quelque chose du genre /etc/security/limits.conf, où /etc/security/ est le répertoire où se trouve le fichier limits.conf
É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
===pour ubuntu 10.04 et suivants :=== %%%~~blue:$~~ gksudo gedit /etc/security/limits.d/audio.conf %%%===ubuntu < 10.04 :=== %%%~~blue:$~~ gksudo gedit /etc/security/limits.conf %%%===debian à partir de squeeze :=== %%%~~blue:$~~ su %%%~~blue:$~~ gedit /etc/security/limits.d/audio.conf %%%===pour le reste :=== %%%su %%%~~blue:$~~ gedit /etc/security/limits.conf %%%(remplacez '' /etc/security/limits.conf'' par le résultat obtenu avec la commande ''find'' ci-dessus)
Le terminal vous demandera votre mot de passe et, une fois entré correctement, l'éditeur de texte va s'ouvrir avec le contenu du fichier de configuration de P.A.M..
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.
Enregistrez et fermez le fichier.
Si vous avez une ligne du genre :
Copy to clipboard
@audio - nice -15
veillez à la commenter en mettant un # devant :
Copy to clipboard
# @audio - nice -15
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 ! 😉
Et ensuite ?
Avant tout, si vous rencontrez le moindre soucis lorsque vous suivez cette procédure, vous avez 2 choses à faire :
- essayer de trouver une résolution en consultant la FAQ sur Jack,
- venir nous en parler dans le forum dédié aux O.S. : "Les distributions et les noyaux",
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 QJackCtl, 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, que vous retrouverez dans le menu gauche, section Maîtriser, sont :
- la maîtrise des éléments du système,
- l'utilisation d'un noyau RT,
- les optimisations avancées,
- et l'optimisation du système et des composants.
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 utiliser PAM. Dans ce cas, une méthode alternative est d'utiliser set_rlimits (voir sur la page dédiée à l'accès temps réel avancé).
À 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.