Historique: PAM
Aperçu de cette version: 302
T' as pas configuré P.A.M. ?
T' as pas la prio temps-réel !
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).
Table des matières
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 nomCopy to clipboard~~blue:$~~ su -c "find /etc/ -name limits.conf"localiser limits.conf grace à son contenuCopy 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 :
- 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 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 :
- la maîtrise des éléments du système,
- l'utilisation d'un noyau RT,
- les optimisations avancées 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 installer PAM. Dans ce cas, une méthode alternative est d'utiliser set_rlimits.
[+]