[RESOLU]temps reel sous debian

bon je me lance dans mon premier fil technique

apres avoir fait quelques recherches sur le moteur du forum je n’ai rien trouvé de similaire
d’ailleurs peut-être que ce fil sera à déplacer dans la rubrique programmation, je vous laisse juger

bref, depuis quelque temps je cherche à faire du “temps réel” sur ma debian
je m’explique :
d’un coté j’ai une petite appli qui gere des webcam (usb) et qui fait un peu d’analyse d’image : dans le genre video surveillance
d’un autre coté j’ai un petit démon qui envoie des trains d’impulsions sur le port parallèle (en utilisant la RTC)

chacune des appli tourne bien toute seule mais quand je lance les 2 en même temps mes trains d’impulsions ne sont plus reguliers

je me suis donc documenté sur l’ordonnanceur du noyau et découvert que je pouvais “scheduler” des applis (= changer leur priorité dans l’ordonnanceur(c’est ca non?)). Je l’ai fait et cela a un peu corrigé le probleme.

En continuant à me documenter sur l’ordonnanceur j’ai découvert qu’il avait un temps de “balayage” (je ne sais pas si c’est la bonne expression) de 10ms (j’ai trouvé 1ms aussi)

Bref, quoi que je fasse je n’arrive pas à utiliser la RTC en dessous de la ms des que j’ai des cameras handle-isées sur l’usb.
De la meme manière je ne sais pas comment accéder à des timers en dessous de 10ms dans l’userspace (alors que le kernel le peux lui)

Bon je ne suis plus tres clair la !
En fait ce que je voudrais savoir est : peut-on simplement accéder à des timers en dessous de la ms sans être embêté par les autres appli qui tournent sur le système ou par les IRQ des autres périphériques.

Ca me semble bien être une problématique temps réel ca.

Note : j’ai même commencé à regarder du coté des noyaux linux temps réels mais j’aimerais bien que ce que je fait soit accessible à n’importe quel debianeux (en gros faire un paquet deb qui ne bricole pas tout)

salut,
j’ai fait pas mal de temps réel dans ma jeunesse.
Ce que tu demandes me semble difficile sur un systéme linux de base.
En effet, avec le noyau, les taches sont préenptées, c’est à dire que même si elles ne sont pas terminées, le noyau les met en sommeil pour en lancer une autre au bout de 10 ms (valeur qui change suivant les versins, c’est un paramétre soft).
Pour étre certain que ta tache à la ms s’éxécute, il te faut un noyau temps réel. C’est à dire un noyau qui garanti un temps d’exécution régulier à ta tache, sans interruptions intempestives par d’autres taches.
Si ça peux t’aider.

piratebab: ça existe sous linux et même sous debian !
et il y a même plein d’extensions posix realtime, pour passer ton noyau sur d’autres modes d’ordonnancement que le tourniquet.
Bon, par contre, ma spécialité temps réel de DEA (sisi, je suis spécialiste en temps réel normalement) est tellement lointaine que je ne comprends même plus la terminologie.
Alors:

[code]Paquet : realtime-lsm
État: non installé
Version : 0.8.7-2
Priorité : optionnel
Section : admin
Responsable : Guenter Geiger (Debian/GNU) geiger@debian.org
Taille décompressée : 73,7k
Recommande: realtime-lsm-source, module-assistant
Est en conflit: realtime
Remplace: realtime
Fournit: realtime
Description : Scripts for handling the realtime Linux security module
This package contains scripts for handling the realtime security module. It sets up the system to grant realtime permissions to applications in the
realtime group.

IMPORTANT: The realtime-lsm module is not usable with the standard Debian kernel, you have to compile your own kernel. See
/usr/share/doc/realtime-lsm/README.Debian for more information.

Marqueurs: admin::kernel, admin::user-management, interface::commandline, role::program, scope::utility, special::not-yet-tagged,
special::not-yet-tagged::r, use::configuring
[/code]etPaquet : realtime-lsm-source État: non installé Version : 0.8.7-2 Priorité : optionnel Section : admin Responsable : Guenter Geiger (Debian/GNU) <geiger@debian.org> Taille décompressée : 65,5k Dépend: kernel-package, debhelper, bzip2 Est en conflit: realtime-source Remplace: realtime-source Description : Source for the realtime Linux security module This package provides the source code for the realtime kernel modules. If you want to compile a realtime kernel module from these sources, you will also have to install the kernel-package and module-assistant. bon, je sais que pour utiliser le dernier paquet, il suffit d’installer le module-assistant et faire un m-a a-i realtime-sourcemais je pense que ça ne suffit pas.
En fait, je me suis même fait un noyau temps réel il y a un an pour la musique, mais j’ai mis de coté la tâche et je ne me souviens plus trop comment on s’en sert.
En cherchant un peu sinon:
forums.debian.net/viewtopic.php?t=13123

Il existe un Patch pour rendre linux temps réel, en fait c’est un noyau temps réel qui lui lance linux comme un tâche.
C’est un peu vieux mais il y a un article dessus sur le numéro 52 de Linux Magazine. À la fin de l’article il y des exemples sur RTLinux et RTAI.

Tu es un veinard j’ai trouvé le lien sur l’article

Temps réel sous Linux ainsi que

Temps réel sous Linux (reloaded).
Il semble qu’il existe un paquet RTAI en instable, c’est à confirmer. Je ne peux le vérifier.

Installation on Debian
http://www.rtai.dk/cgi-bin/gratiswiki.pl?Installation_On_Debian_Kernel_2.6.10_And_RTAI_3.2_On_AMD_K7

Après lecture RTAI semble faire partie du passé, on parle maintenant de Xenomai.

Building Debian packages

Tu peux zieuter ça aussi : linuxmao.org/tikiwiki/tiki-i … ge=latence

Bonsoir,
le temps réel débarque dans les PC de salon grâce aux musicos! C’est la magie des systèmes ouvert.
:stuck_out_tongue:

oh oh
merci pour ces infos !
de mon coté j’avais trouvé des infos sur une distro basée debian temps reel sur :
http://www.mnis.fr/fr/products/Mnis-Linux/
il y a aussi des données sur rtlinux
mais je ne connaissais pas realtime-lsm comme paquet debian

donc si je suis bien vos conseils il me faut maintenant chercher du coté de realtime-lsm, Xenomai, RTAI (peut-être obsolete?) et RTLinux (celui-la j’étais dessus).

merci pour toutes ces infos
je vous tiendrai au courant de mes progres et pourquoi pas d’ici quelque temps un petit paquet debian à tester !!
:wink:

voici mes derniers résultats :

j’ai installé realtime-lsm par module-assistant
pour cela j’ai du compiler mon noyau (par la méthode donnée sur ce forum) afin d’avoir l’option suivante :

qui est en dur dans le noyau binaire

j’ai donné les droits realtime à l’utilisateur qui lance ma moulinette de commande de moteur grace au fichier /etc/defaults/realtime

j’ai aussi du recuperer les sources de gspca et les installer via m-a (pour mes cameras)

les resultats sont statisfaisants : mon moteur peut tourner un peu plus vite que ce que mes specs m’imposent (3 tours/seconde) sans être perturbé par les IRQ de l’USB tombant toutes les ms

il me reste à voir ce qui se passe si je veux piloter plusieurs moteurs (3max) avec 4 cameras (actuellement j’en ai 2).

je vais creuser un peu le sujet puis j’ouvrirai un fil dans la rubrique programmation afin de vous presenter mes specs et mes sources
sait-on jamais peut-être que certains trouverons un interet à un logiciel de controle par webcam et activation d’un actionneur par le port parallele

encore merci pour vos conseils

salut antalgeek

j’ai eu besoin du temps réel pour l’audio.

ça c’est le petit script que j’execute pour mettre à jour le module realtime-lsm àc hque fois que je re-recompile mon noyau:

[code]
#!/bin/sh
#met à jour le patch realtime-lsm sur le noyau courrant

apt-get install module-assistant
apt-get install realtime-lsm-source
m-a build realtime-lsm

modprobe commoncap
modprobe realtime gid=29[/code]

je sais pas à quoi sers le commoncap je l’ai mis parce que j’ai du et je sais plus pourquoi.
le gid = 29 c’est pour que le groupe audio profite de la possibilité realtime.
sinon aucun utilisateur n’y a effectivement droit.

j’aurais bien une petite question pour toi si tu as avancé plus que moi:

avec les Security Capabilities en module, et une fois l’installation de realtime-lsm ok, bah j’ai bien des sous-menus supllémentaires pour ce qui concerne le 'pre-empt" du kernel pour mes nouvelles compilations… mais j’ai pas eu accès au sousmenu “Total Realtime 100%”

ce qui pourrait expliquer quelques petits xruns de QJackCtl. ( le routeur d’audio )…

Digital Speed Controller using RTAI/Linux

Intéressant l’api rtai. Et le documentation avec Doxygen c’est bien fait.

j’arrive tard excusez-moi

Anoyzthen, je n’ai pas souvenir d’avoir mis le commoncap
pour le “Total Realtime 100%” je vais regarder

toutes mes confuses si j’arrive en retard ma semaine est bien chargée

edit : je suis tres bete, j’ai le commoncap

edit 2 : sur mon kernel 2.6.22 j’ai l’option “Preemptible kernel (low latency desktop)”

je suis d’accord ca doit vraiment etre le pied d’utiliser RTAI
j’y regarderai un jour mais pour l’instant j’aimerais vraiment faire mes trucs avec une debian de base et un noyau compilé maison

je suis vraiment un crétin parfois
(j’espère ques les modérateurs excuseront mon vocabulaire)

packages.debian.org/unstable/devel/rtai

a l’attaque…

du nouveau sur les opti temps reel
et en particulier pour Anoyzthen
ci-joint une url pour patcher ton noyau en RT :
http://www.linuxmao.org/tikiwiki/tiki-index.php?page=Compiler+un+noyau+2.6RT[/url]