Cela partait d'un bon sentiment : je voulais installer un noyau Linux temps-réel sur un ordinateur pour

  1. raisons professionnelles : m'informer sur l'état de fonctionnement de ces fameuses extensions temps-réel, regarder quelles latences on obtient, expérimenter en chargeant la barque, etc.
  2. raisons personnelles : avoir un audio à faible latence pour utiliser Jack.

La machine est une Ubuntu 10.04LTS amd64.

Comme souvent avec ce qui part d'un bon sentiment, les choses ont été pénibles et ont pris des tournants imprévus, et comme souvent avec l'informatique « pratique » dès qu'on touche à un bout, on a des dépendances inattendues.

  1. make-kpkg m'a fait des misères parce que le noyau s'appellait 3.2.0-rc5-rt8 et qu'il n'aimait pas le rt8 (erreurs bizarroïdes)
  2. Je vous passe les problèmes de place disque.
  3. Ensuite, le pilote nvidia ne s'installait plus via dkms, ce qui empêchait la création du initrd à l'installation des paquets noyau.
  4. Il s'avère que le pilote nvidia livré avec ma distribution a des tests codés en dur dans des scripts et ailleurs qui supposent que le noyau est en version 2.x, et le simple fait de passer à 3.x puis 3.2 fait planter ces tests vu qu'ils ne vérifient parfois que la première décimale (je sais, c'est ballot).
  5. J'ai donc pris le dernier pilote nvidia mais il ne compile pas parce que si l'on utilise le noyau intégralement préemptif, les symboles migrate_enable et migrate_disable sont GPL-only.
  6. Il semble que l'impossibilité de compiler les pilotes nvidia gêne la création normale du initrd.
  7. Je ne peux pas utiliser le pilote nv libre, parce qu'il envoie n'importe quoi sur l'écran externe de ce portable.

Bon, avec linux-3.2.0-rc5-rt8 CONFIG_PREEMPT_RT_FULL + NVidia 285 ça ne fonctionne pas, écran noir bloqué au lancement de Xorg. Je garde CONFIG_PREEMPT, CONFIG_PREEMPTLL (low latency desktop) et je vire CONFIG_PREEMPT_FULL. Bien entendu, nulle documentation n'explique la différence entre CONFIG_PREEMPTLL et CONFIG_PREEMPT_RTB.

PS linux-3.2.0-rc5-rt8 CONFIG_PREEMPT__LL + NVidia 285, utiliser rtirq, couper l'USB2 → 4 ms de latence au lieu de 64 auparavant.