Table des matières

, , ,

Ce tutoriel n'est plus maintenu et ne s'applique pas pour les versions supérieures à Ubuntu Hardy. Pour les versions récentes veuillez regarder cette page.

Utilisation du realtime

Ce tuto ne semble pas s'appliquer aux récentes versions de Ubuntu. En effet il semblerait que cela ne soit pas nécessaire, néanmoins le tuto reste en place par respect pour l'auteur. Si je me trompe ou que des compléments doivent être ajoutés, n'hésitez-pas à éditer cette page (c'est ça la magie du wiki !!). \ (^o^) /

Installation des paquets

C'est là qu'intervient le module du noyau appelé realtime-lsm, lui aussi dans l'archive universe. Celui-ci permet de donner la priorité temps réel à certaines applications. Rassurez-vous tout de suite, ce n'est pas si difficile de donner cette priorité à la MAO, c'est totalement transparent une fois le module compilé ;-) et le système configuré. Pour installer les sources du module en ligne de commande :

sudo apt-get install realtime-lsm realtime-lsm-source

Ceci nécessite quelques explications :

Lorsque realtime-lsm est configuré pour la première fois, il demande s'il faut attribuer les droits temps réel aux utilisateurs du groupe audio. Il faut surtout activer cette fonctionnalité car c'est le seul moyen pratique d'utiliser la priorité temps réel sans être root ou assimilé. On n'oubliera pas ensuite de se mettre dans ce groupe !

Pour info le module temps réel n'est généralement pas disponible par défaut dans les Linux car il pose des problèmes de sécurité de la machine. En effet, si une application malveillante obtenait la priorité temps réel, elle pourrait par exemple empêcher les autres de fonctionner en s'emparant de la puissance de calcul de la machine. D'ailleurs LSM dans realtime-lsm signifie Linux Security Module. On est donc maintenant tous convaincus du bien-fondé du groupe audio…

Compilation du module

Debian étant pensé pour être pratique à administrer, Ubuntu hérite de son fabuleux outil de compilation de modules du noyau : le module-assistant issu du paquet éponyme et installé automatiquement avec le paquet realtime-lsm. Ceux qui pensaient aligner les lignes de commande vont être déçus, ça se résume à :

sudo module-assistant

Apparaît alors une interface en mode console. Il faut en gros exécuter les entrées du menu dans l'ordre où elles apparaissent (comme c'est bien conçu !) :

  1. Update pour être sûr d'être à jour, ça ne mange pas de pain…
  2. Prepare qui prépare la compilation d'un module, par exemple en téléchargeant les entêtes du noyau - ah oui on n'y avait pas pensé à ceux-là !
  3. Select pour choisir le module à compiler dans la liste des modules compilables (il doit y avoir realtime-lsm !!!), une fois un module choisi, on entre dans un sous-menu dans lequel on choisit à nouveau dans l'ordre affiché…
  4. Get va vérifier qu'on a bien les sources du module à compiler
  5. Build compile le module, il faut répondre yes à son message disant que peut-être qu'on n'a pas les sources installés et qu'il faut confirmer
  6. Install si on n'a pas déjà cliqué yes lorsqu'il demande s'il faut installer le module à la fin de la compilation
  7. Back, Cancel et Exit pour quitter le module-assistant

Et voilà ! On doit maintenant pouvoir charger le module par la commande suivante :

sudo /etc/init.d/realtime start

Pour être précis, cette commande lance le service installé par le paquet realtime-lsm, lequel charge le module du même nom avec la configuration qui va bien. Le service sera par la suite lancé automatiquement au démarrage de la machine, il s'agit donc juste d'éviter de redémarrer dans ce cas.

Remarque : il faut recompiler le module à chaque mise à jour du noyau.

remarque : le système peut vous demander d'installer des paquets d'en-têtes du noyau (linux-headers). Dans ce cas, vérifiez que tous vos dépôts sont actifs, recharchez-les au besoin et entrez la commande :

sudo apt-get install linux-headers-`uname -r`

Liens

Sur packages.ubuntu.com :

http://packages.ubuntu.com/cgi-bin/search_packages.pl?keywords=realtime&searchon=names&subword=1&version=all&release=all