Bonjour,
J'ai une carte TV avec un périphérique infrarouge associé une télécommande. Le problème c'est que certains bouttons de cette télécommande ne répondent pas.
En ragardant les sources du noyau, j'ai l'impression que les codes reçus par le périphérique infrarouge sont transformés en des évènnemebts clavier ... sauf qu'il semble manquer des touches ... dans le fichier drivers/media/common/ir-common.c
Cela me fait poser plusieurs questions ...
- Pourquoi les codes télécommande sont-ils codés en dur dans le noyau ? Il est a mon avis indispensable de pouvoir les modifier sans recompiler (si on change de télécommande par exemple).
- Comment faire pour que mes touches soient prises en compte ? m'amuser avec /sys/module/cx88xx/parameters/ir_debug et dmesg ? Solution qui a l'avantage de pouvoir modifier les associations facilement.
Ou modifier le kernel en modifiant quelques fichiers ? Solution qui me déplaît le plus, car manque de souplesse.
- Où pourrais-je poser des questions ? sur la mailing list du kernel ?
Il me semble que lirc permettait de configurer tout cela simplement, et aussi de pouvoir faire beaucoup plus de choses inté&ressantes (utiliser la téélécommanbde comme une souris, notament). Mais le problème c'est que l'installation n'est pas aisée et je n'ai pas encore réussi a le faire fonctionner le module :( peut être que deux modules cherchant a utiliser le même périphérique, ca ne marche pas bien ...
Merci
# Idem
Posté par Ph Husson (site web personnel) . Évalué à 3.
Donc
Je vais commencer par la fin apres le debut puis le milieu (je sais je suis tordu)
Donc dire que lirc configurer tout simplement franchement j'ai essayé de le faire marcher longtemps avant de.......abandonner!
Les touches codées en dur?
Ben voui c'est la vie ils savent pas trop comment faire autrement, si t'as une idée propose!
Enfin bon il est excessivement facile de rajouter des touches (par cotrne faut rajouter un printk ou le decommenter je sais plus pour savoir à quel code la touche correspond), vu la structure.
Pour surveiller les evenements c'est avec un /dev/input qui correspond
Voici un code d'exemple
Le code en commentaire permet de detecter les devices qui existent et de donner leur nom (c'est aussi possible par /sys mais c'est moins drole :)
Apres on a le open bon ben lui c'est pas compliqué (faut peut être changer le device). Le ioctl qui n'est pas obligatoire permet de verouiller le périphérique, càd qu'il n'est utilisé par personne d'autre et qu'il n'emule plus un clavier (comme ca on peut utiliser la telecommande sans se faire chier avec une appli en arriere plan pendant qu'on fait autre chose sur une appli devant)
Et finalement dans le switch evenement.code on fait les cases pour les différentes touches (les define sont dans /usr/include/linux/input.h, regarde dans cx88-ir.c (de mémoire) pour connaitre les codes qu'il renvoie (et aussi pour en ajouter/les corriger))
Voila je crois que j'ai rien oublié
Ah si quand meme pour lirc si t'y tiens vraiment tu prends le driver devinput pour pouvoir etre compatible avec le driver la
[^] # Re: Idem
Posté par Mildred (site web personnel) . Évalué à 2.
Par contre, pour l'instant, lirc a un avantage énorme par rapport au module cx88xx ... on peut configurer les touches de la télécommande :)
Car quand même, la carte utilisée ne permet en aucun cas de dire quelle télécommande se trouve derrière.
Et je dois dire que recompiler mon kernel, je n'ai pas trop envie ... surtout que je devrais le refaire pour chaque version du kernel .... :(
[^] # Re: Idem
Posté par Ph Husson (site web personnel) . Évalué à 2.
Sinon si tu veux pouvoir changer de telecommande tu peux mettre pour que toutes les touches renvoient ce code meme, et comme ca tu peux changer la map de la telecommande du côté de ton appli user land
Mais bon c'est bof quand même, enfin les gouts les couleurs
[^] # Re: Idem
Posté par Mildred (site web personnel) . Évalué à 2.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.