Bonjour,
Je travaille actuellement avec des drivers RTDM (ce sont des drivers temps-réel qui s'exécutent sur un noyau Linux patché avec Xenomai), cependant j'ai un problème lorsque je les décharge. Je débute un peu alors corrigez moi si je me trompe.
Ce qui se passe c'est que quand je lance un reboot, un des scripts dans /etc/init.d/ va décharger les modules avec la commande rmmod, pas de soucis avec les modules non temps réel, ceux-ci se déchargent sans renvoyer d'erreur. Ce n'est pas le cas des drivers RTDM. Dans la fonction exit de ceux-ci, rtdm_dev_unregister va renvoyer EAGAIN.
L'argument poll_delay étant à zéro, j'augmente un peu la valeur de celui-ci, je vais donc voir le message "Device ... still in use - waiting for release" et puis plus rien... Même après le délai, le message sera toujours affiché et le module non déchargé, indéfiniment (j'ai laissé tourné pendant un certain temps et rien n'a changé). A ce moment là je ne peux d'ailleurs plus rentrer de commandes, je suis obligé de redémarrer le hardware manuellement.
Donc j'en déduis qu'un processus utilise le device mais qui ? Je ne vois pas trop où trouver ça, j'ai fouillé dans /proc et /proc/xenomai/rtdm sans succès. Après il se peut aussi que je me trompe de piste mais dans ce cas là je ne vois pas où serait le problème.
Voilà, j'espère avoir été assez clair, n'hésitez pas si vous avez des questions
Partager