Attention, vous êtes ici dans la page Archives du site qui sert à conserver certaines anciennes pages à des fins historiques et les informations contenus ici ne sont probablement plus à jour !
Si vous vous intéressez aux anciennes manières utilisées sous GNU/Linux pour donner à ses applications un accès Temps-réel, voilà qui devrait vous contenter. Nous vous rappelons cependant que cette page est conservée dans un but historique, que ces méthodes sont à présent considérées obsolètes et que les manières actuelles de procéder se trouvent sur la page accès temps-réel pour les applications. Il faut donc bien comprendre que les solutions envisagées ici et sur accès temps-réel pour les applications sont totalement incompatibles les unes avec les autres !
Table des matières
PAM versions inférieures à 0.80
Seules les versions de PAM au moins égales à la version 0.80 comportent les fonctionnalités indispensables pour le support temps-réel pour les applications (le support de rlimits).Il existe heureusement des patchs pour offrir le support nécessaire de "rlimits" aux versions de PAM plus anciennes.
Cela vous offre plusieurs choix, en fonction de ce que vous permet votre distribution :
- Installer/Utiliser PAM > 0.80. (se reporter à accès temps réel pour les applications)
- Utiliser PAM < 0.8 prépatchée (certaines distributions offrent cette possibilité).
- Patcher soit-même une version de PAM < 0.8 (pour les courageux .
PAM < 0.8 prépatchée
Gentoo, l'overlay "pro audio production applications" (voir page gentoo) vous offre la version de PAM adéquate (emerge -av sys-libs/pam).
Pour Debian et dérivés, il existe également une version patchée.
wget http://www.ubuntustudio.com/uploads/breezy/libpam-modules_0.76-22ubuntu3studio1_i386.deb sudo dpkg -i libpam-modules_0.76-22ubuntu3studio1_i386.deb rm libpam-modules_0.76-22ubuntu3studio1_i386.deb
Vous pouvez consulter la page http://ubuntustudio.com/wiki/index.php/Breezy:Rlimits-Aware_PAM pour plus d'informations.
Patcher PAM < 0.8 soit-même
Je ne suis pas sûr que cette solution soit plus simple que l'installation même manuelle d'une version plus récente ! Mais bon, vous pouvez trouver un patch pour la version 0.76 ici :
http://www.ubuntustudio.com/uploads/pam-0.76-rlimits.patch
Si vous utilisez la distribution Ubuntu, vous vous inspirerez des instructions mentionnées ici : http://ubuntustudio.com/wiki/index.php/Breezy:Rlimits-Aware_PAM
le module realtime-lsm (Realtime Linux Security Module)
Cette solution est désormais considérée comme obsolète, cependant, elle fonctionne toujours, et n'est pas trop difficile à mettre en œuvre !Le module realtime-lsm permet de donner des privilèges particuliers à certains utilisateurs ou groupes d'utilisateurs en utilisant le mécanisme rlimits du noyau. Ce module est intégré au noyau linux à partir de la version 2.6.12.
C'est un module qui permet aux utilisateurs (donc à JACK par exemple) d'accéder aux possibilités "temps réel" du noyau, chose d'ordinaire autorisée uniquement pour le super utilisateur (root). Ce module fonctionne sur tout type de noyau linux, RT-kernel ou pas ! (l'idéal en MAO est néanmoins d'utiliser les deux .
Ce module a été remplacé par une autre méthode plus sécurisée basée sur PAM, les deux méthodes étant nécessaires pour faire fonctionner JACK en mode RT.
Installation
Elle nécessite que vous ayez les sources de votre noyau. De plus, des options particulières doivent y être activées (voir Tuto Compiler un noyau Temps-Réel).Il peut s'agir selon les distributions d'un module "à part" ou au contraire intégré dans le noyau
Vous pouvez le télécharger ici :
http://sourceforge.net/project/showfiles.php?group_id=106645
La plupart des distributions proposent une installation plus simple du module par le biais de leur gestionnaire de packages :
apt-get realtime-lsm-source && m-a build realtime-lsm
emerge -av realtime-lsm
- n'oubliez pas d'activer les options suivantes dans le noyau si vous le compilez vous-meme :.
Security options ---> [*] Enable different security models <M> Default Linux Capabilities (indispensable pour le module "Realtime-lsm")
à la compilation du noyau, sélectionnez les modules :
Security options ---> [*] Enable different security models <M> Default Linux Capabilities (indispensable pour le module "Realtime-lsm") <M> Realtime Capabilities (installe le module "Realtime-lsm").
Utilisation
Pour des raisons de sécurité, nous demanderons à realtime-lsm de n'accorder les privilèges souhaités qu'aux utilisateurs membres du groupe "audio". Attention à remplacer NB dans les lignes suivantes par le numéro de groupe pour audio qu' utilise votre distribution. Ce GID est variable d'une distribution à l'autre (18 sous Gentoo, 29 sous Debian, 81 sous Mandriva, etc...)
Consultez le fichier /etc/group pour connaitre le numéro/GID du group "audio". Vérifiez par la même occasion que vous faites bien partie de ce groupe !
Vous devriez avoir une ligne du type :
audio:x:NB:Votre_nom_d'utilisateur
Si votre nom d'utilisateur n'apparaît pas sur la ligne du groupe audio, c'est que vous n'en faites pas partie. Inutile de préciser que c'est assez indispensable pour faire de la MAO ! Pour rétablir cette oubli (en root) :
gpasswd -a VOTRE_NOM-D'UTILISATEUR audio
Lancez le module realtime-lsm de cette façon (en adaptant le GID à votre système) :
modprobe realtime-lsm gid=NB
Ainsi, toutes les applications lancées par les utilisateurs du groupe "audio" bénéficieront du temps réel (c'est à dire, pour ceux qui comprennent : processus lancés en classe "SCHED_FIFO" + mlock & mlockall pour éviter le swapping).
Si tout fonctionne, pour lancer le module automatiquement à chaque démarrage avec les bonnes options :
echo "modprobe realtime-lsm gid=NB" >> /etc/modprobe.conf
# echo "realtime" >> /etc/modules.autoload.d/kernel-2.6
Ensuite on passe les options au module realtime-lsm en tapant la commande :
# echo "options realtime gid=NB" >> /etc/modules.d/realtime update-modules
(ou NB est le numéro (gid) du groupe audio.)