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 LibraZiK ou Ubuntu Studio (LTS 14.04) 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.
Pour Archlinux, il s'agit du groupe realtime 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 !

Il est possible de vérifier que vous êtes bien dans le groupe audio en utilisant cette ligne de code :
fgrep -ie 'audio' /etc/group

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


notenote

Sous certaines distributions telles que Debian ou dérivées (Ubuntu,...), ce qui suit peut être fait automatiquement en installant JACK par le terminal ou, par la suite, à l'aide la commande suivante avec les droits du super-utilisateur :
dpkg-reconfigure jackd2

Ce qui fait apparaître la question "Faut-il activer la gestion des priorités de processus en temps réel ?" à laquelle il faudra répondre "oui".


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 fichiers 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 grâce à son nom
su -c "find /etc/ -name limits.conf"

Localiser limits.conf grâce à 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]

Faire un don
[Afficher / Cacher]

Connexion
[Afficher / Cacher]



Mégaphone [Afficher / Cacher]

olinuxx, 11:48, ven. 15 mars 2024: Bonjour et bienvenue à Jerry cool
calixtus06, 18:03, mer. 13 mars 2024: Bonjour et bienvenue à tanguero :-)
olinuxx, 11:01, dim. 10 mars 2024: Bonjour et bienvenue à lolo cool
bda, 16:59, sam. 09 mars 2024: Chapeau pour l'édito. Vous êtes au top les gars :-)
allany, 07:20, jeu. 07 mars 2024: Ça ne fait jamais de mal, c'est l'éditorial ! [Lien]
olinuxx, 19:52, mer. 06 mars 2024: Bonjour et bienvenue à TrkNrk cool
calixtus06, 11:17, mar. 05 mars 2024: Bonjour et bienvenue à D752 :-)
calixtus06, 18:59, lun. 04 mars 2024: Bonjour et bienvenue à Hborsa et Adjudandouille :-)
olinuxx, 18:34, jeu. 29 Feb 2024: Bonjour et bienvenue à anto45500 cool
jujudusud, 23:38, mar. 27 Feb 2024: Venez participer à la joute numéro 17 : [Lien]
calixtus06, 18:36, jeu. 22 Feb 2024: Bonjour et bienvenue à nikartri et rckloar :-)
calixtus06, 10:15, mer. 14 Feb 2024: Bonjour et bienvenue à smonff, Alphascorpii, tadumtss et letoII :-)