Historique: PAM
Aperçu de cette version: 312
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 GNU/Linux. Elle s'applique à la plupart des distributions actuelles, qu'elles aient un noyau standard ou un noyau temps-réel.
Pour cela, nous allons utiliser et configurer le module P.A.M. (Pluggable Authentication Modules) qui permet d'utiliser le mécanisme rlimits du noyau. 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 :
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 :
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) :
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 :
Il faut les droits d'administration pour éditer ce réglage, on utilisera donc la super-commande su.
n'oubliez pas bien sûr de remplacer mon_utilisateur par le nom de votre utilisateur !
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 :
É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 :
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 :
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 :
Vous pouvez la commenter en mettant un # devant :
Enregistrez et fermez le fichier.
Pour finir, déconnectez vous de votre session puis reconnectez vous pour que les changements prennent effet.
Et hop, à table ! C'est prêt ! 😉
Avant tout, si vous rencontrez le moindre soucis lorsque vous suivez cette procédure, vous avez 2 choses à faire :
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)
[+]
T' as pas configuré P.A.M. ?
T' as pas la prio temps-réel !
Table des matières
Présentation
Comme expliqué plus en détails sur cette page, 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 logiciels (prio temps-réel) : 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 d'utiliser le mécanisme rlimits du noyau. 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
Détails du fichier de configuration
[+]Liens
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 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)
[+]