Skip directly to content

Irfake - codes IR

Portrait de zozodesbois
on dim, 25/09/2011 - 18:51
  1. Intercepter les signaux de la télécommande
  2. Recherche des codes IR
  3. Capturer les codes IR avec votre HMB
  4. Description du fichier de config
    1. Option -R
    2. Exemple de fichier
    3. Les commentaires
    4. Configurer la touche pour allumer
  5. Des fichiers de config tout prêts
  6. Mettre Irfake au démarrage
  7. Cross Firmware avec Irfake
  8. Codes IR des télécommandes de nos HMB
  9. Conclusion
  10. A voir aussi
Crédit Photo: © Zozodesbois Saint Galmier (Loire) Photo Infra rouge
Niveau de difficulté Moyen Geek
Fiche écrite avec le FW C750/748
Prérequis vi et Telnet

Intercepter les signaux de la télécommande      

Irfake ! C'est un petit utilitaire qui s'installe sur nos HMB.
Il va nous permettre de faire pas mal de choses avec la télécommande:

  • Configurer tous les boutons.
  • Affecter un script shell à un bouton.
  • Utiliser une autre télécommande que celle d'origine
  • Outil de base pour le Cross Firmware (C'est le fait d'installer un firmware qui n'est pas du tout prévu pour notre machine)

Irfake va intercepter les signaux envoyés par la télécommande. Il va ensuite envoyer un code de substitution au DvdPlayer.

Pour cela, Irfake va utiliser une table de correspondance. Vous devrez la définir dans un fichier de configuration en fonction de ce que vous avez besoin de faire.

Recherche des codes IR

Un Code IR, c'est la représentation par un chiffre hexadécimal, sur 8 positions, des signaux Infra Rouge de la télécommande. Par exemple bb44f708, correspond au bouton "0" de la télécommande de nos HMB.
Le code IR pour cette même touche "0" sur un O2Media HMR-2000, ce sera f50adf20. Pourtant le O2Media MR-5000 aura le même code que nos HMB (Movie Palace, R600, R620, R3150, R3250...).

Les codes des touches, la totalité ou seulement quelques-uns, vont être référencés dans une table qui va se trouver dans un fichier de configuration. C'est cette table qu'il va falloir fabriquer.

Irfake possède une fonction de capture de codes. Avec cette option, vous pouvez faire vous-même votre liste des codes avec la télécommande que vous possédez. Plus bas, vous avez un tableau de correspondances des codes. Vous avez aussi une liste de fichiers de config tout prêts. Vous n'avez plus qu'à intervertir les codes que vous voulez, affecter un script shell à une touche, ou à une combinaison, etc...

Par contre, si vous voulez vous lancer dans le Cross Firmware, c'est plus compliqué... Il faut avoir les codes IR de la télécommande que l'on n'a pas ! indecision
J'ai eu à mon anniversaire, une télécommande universelle Logiteck Harmony 650 (merci à Hellboy pour tes conseils).
Elle a ses inconvénients, mais elle est surtout pratique pour essayer d'autres firmwares, sans avoir besoin d'utiliser Irfake : Il suffit de configurer la télécommande pour le modèle de player du Firmware que l'on vient d'installer et le tour est joué.

Mais, si comme moi vous avez une télécommande universelle programmable, je vous invite à penser à ceux qui n'en ont pas et qui voudraient utiliser un fichier de config.
Vous avez tous les outils ici, alors pensez à partager ! wink

Capturer les codes IR avec votre HMB

Nous allons installer Irfake sur notre HMB.
Puis nous l'activerons dans un mode capture : il va afficher sur la console telnet le code IR de la télécommande que vous voulez tester.
Il n'y a plus qu'à recopier ces codes dans votre fichier de config.

enlightenedEssayez avec les télécommandes d'autres appareils que vous avez chez vous... Ca peut vous donner des idées marantes ! smiley

En telnet sous le profil 4geek

cd /usr/local/etc
mkdir Irfake
cd Irfake

Téléchargez le programme Irfake (ajustez son nom en fonction de la version en ligne) directement sur votre HMB (vous pouvez aussi passer par une clé USB)

wget http://irfake.googlecode.com/files/bin-package-30062011.tar.bz2

Décompressez l'archive récupérée

tar xjvf bin-package-*.tar.bz2

Avec vi, ajoutez la ligne qui crée le service au tout début du fichier /usr/local/etc/rcS

/sbin/insmod /usr/local/etc/Irfake/venus_ir_new.ko

Rebootez votre hmb

reboot

ATTENTION à partir de ce moment, vous ne pourrez plus piloter votre HMB avec votre télécommande.

Lancez Irfake en mode capture

/usr/local/etc/Irfake/irfake4 -c

Pour chaque touche appuyée sur la télécommande, le code IR va s'afficher sur la session telnet. Il va falloir noter toutes les références des touches qui vous intéressent, dans un tableau pour en faire l'inventaire. Pensez bien à ajouter un commentaire pour vous aider à identifier la touche.

Lorsque vous avez fini, faites Ctrl C pour arrêter la capture.

A partir d'ici, vous avez le choix :

  • soit vous désinstallez.
  • soit vous ajoutez Irfake au démarrage du HMB. C'est ce dernier point que nous allons voir après la constitution d'un fichier de config.

Pour désinstaller, il suffit d'enlever la ligne que vous aviez ajoutée dans rcS.
Puis vous supprimez le dossier

rm -r /usr/local/etc/Irfake

Vous terminez par un reboot.

reboot

Description du fichier de config

Grace à ce fichier vous allez pouvoir substituer un code IR par un autre ou par une commande shell.

enlightened Vous pouvez utiliser des combinaisons de touches (type 3, 4 et 5) pour ne pas avoir à déprogrammer une touche.

Option -R

L'option -R permet d'écrire uniquement les codes IR des touches que l'on veut modifier. Les touches non précisées seront fonctionnelles normalement.

Si cette option n'est pas précisée, les touches qui n'apparaissent pas dans le fichier de config seront ignorées.

Il y a d'autres options dont je ne parlerai pas, mais qui ont leur utilité, comme le délai des touches. Lisez le fichier readme.txt fourni avec Irfake.

Exemple de fichier

# Fichier de config Irfake

"0","fc03f708","be41f708", commentaire
"1","be41f708","/bin/sh -c reboot", commentaire
"2","ba45f708","left", commentaire
"3","aa55f708","e51ab708","/bin/sh -c reboot", commentaire
"4","aa55f708","e51ab708","left", commentaire
"5","aa55f708","e41bb708","af50686c", commentaire
# commentaire

Chaque élément d'une ligne de code est séparé par une virgule. Le premier élément, repéré ici en fluo, c'est le type de syntaxe de la ligne de configuration.

Type Description
0 2ème code c'est celui de la télécommande. 3ème c'est celui qui est envoyé au player.
1 2ème code c'est celui de la télécommande. 3ème c'est une ligne de commande shell : un script de ménage, de maj etc...
2 2ème code c'est celui de la télécommande. 3ème c'est le code interne (SDK4 IpodCGI), (je n'ai pas réussi à l'utiliser)
3 Idem que le type 1, mais il faut appuyer consécutivement sur deux touches de la télécommande
4 Idem que le type 2, mais il faut appuyer consécutivement sur deux touches de la télécommande
5 Idem que le type 0, mais il faut appuyer consécutivement sur deux touches de la télécommande

Les commentaires

Dans ce fichier, tous les caractères qui suivent un # sont considérés comme du commentaire. C'est un élément très important pour vous. N'hésitez pas à en abuser. C'est le seul moyen que vous avez de vous rappeler de ce que vous avez voulu faire.

Le dernier élément (optionnel) de chaque ligne est considéré comme un commentaire. Utilisez-le pour identifier la touche que vous avez voulu programmer.

Configurer la touche pour allumer

Par défaut, c'est la touche "Power" qui sert à allumer votre HMB. Mais vous pouvez décider que ce soit une autre touche. Vous pouvez mettre celle que vous voulez. Les combinaisons de touche ne marchent pas pour la touche en question.

Il faudra utiliser la valeur "POWERKEY_IRRP" (marche seulement avec les Type 0, 1 et 2 ).

Exemple pour chaque type.

"0","aa55f708","a05f686c","POWERKEY_IRRP"
"1","aa55f708","/bin/sh /usr/local/etc/MonScript.sh","POWERKEY_IRRP"
"2","aa55f708","left","POWERKEY_IRRP"

Pour faire mes tests, j'ai configuré la touche 3 de ma télécommande. Ca marche... mais c'est débile ! Je ne peux plus saisir l'heure ou la date. Dès qu'il y a un 3, le HMB s'éteint... indecision
Ce sera plutôt utilisé pour faire du Crossfirwmare. Ou depuis une autre télécommande ça peut servir à allumer plusieurs appareils à la fois...

Des fichiers de config tout prêts

Collection de fichier de config IR pour les modèles de  télécommandes de nos HMB.

N'hésitez pas à signaler les anomalies s'il y en a. Les touches peuvent être mal repérées...

Télécom. Fichier de config Info
HMB HMB-HMB.conf Fichier de base. A vous de modifier un code.
HMB HMB-Iamm_NTR82.conf (Cross Firmware) Pour le firmware d'un Iamm NTR 82
HMB HMB-O2.conf (Cross Firmware) Pour le firmware d'un O2
O2 O2-HMB.conf (Cross Firmware) Pour le firmware d'un HMB
O2 O2-Iamm_NTR82.conf (Cross Firmware) Pour le firmware d'un Iamm NTR 82
O2 O2-O2.conf Fichier de base. A vous de modifier un code.

Mettre Irfake au démarrage

C'est la même méthode que pour la capture des codes

Il faut mettre dans /usr/local/etc/rcS les lignes suivantes (si vous avez suivi le tuto, vous avez déjà la première ligne).

/sbin/insmod /usr/local/etc/Irfake/venus_ir_new.ko
/usr/local/etc/Irfake/irfake4 -R -f /usr/local/etc/Irfake/MonFichier.conf &

Surtout ne pas oublier le & à la fin de la commande, sinon le HMB va rester indéfiniment sur cette commande. Il n'ira pas plus loin que l'affichage du logo au démarrage du HMB.

ATTENTION si après cette manip, votre HMB reste figé sur le logo au démarrage, c'est qu'il y a un problème dans le fichier de config ou dans le fichier rcS, ou que vous avez oublié le &. La seule solution, c'est de réinstaller le firmware...

Cross Firmware avec Irfake

Lorsque vous venez d'installer un Firmware aliène, la première chose qui vous est demandée, c'est de configurer l'interface avec la langue, l'heure, la date etc... Puis bien sûr, la configuration réseau... Mais voilà, tant que la télécommande n'est pas reconnue, rien ne bouge à l'écran, ce n'est pas possible de configurer le réseau. sad

La solution, c'est d'insérer ce module dans le firmware lui-même.

Dans un environnement Linux (votre ordinateur en Linux, ou bien si vous êtes sous Windows ou Mac, utilisez Virtalbox) :

irfake4
shadow_irrp.dat
venus_ir_new.ko
  • Copiez votre fichier de config pour la substitution des codes IR
  • Ajoutez les lignes suivantes au tout début du fichier /usr/local/etc/rcS
/sbin/insmod /usr/local/etc/Irfake/venus_ir_new.ko
/usr/local/etc/Irfake/irfake4 -f /usr/local/etc/Irfake/MonFichier.conf &

Codes IR des télécommandes de nos HMB

Les HMB englobent les machines suivantes: Movie Palace, R600, R620, R3150, R3250, ... O2Media MR5000, ... Ellion HMP-1000X / HMP-500H,... Radiogears iTab48P0S..., 4Geek...

Les O2 englobent les O2Media HMR-1000 et HMR-2000 (pas les O2Media MR-5000).

P: Fonctions communes, pour les HMB (commun aux deux télécommandes)
E: Spécifique pour la télécommande des HMB qui enregistrent.

Boutons Nom P E Code IR HMB Code IR O2
 0  ZERO x x bb44f708 f50adf20
 1  UN x x ad52f708 e01fdf20
 2  DEUX x x af50f708 fc03df20
 3  TROIS x x ed12f708 fb04df20
 4  QUATRE x x b14ef708 fa05df20
 5  CINQ x x b34cf708 e31cdf20
 6  SIX x x f10ef708 f906df20
 7  SEPT x x b54af708 f807df20
 8  HUIT x x b748f708 f708df20
 9  NEUF x x f50af708 e21ddf20
AFFICHAGE x x e51af708 bc43df20
REPETER x x eb14f708 e619df20
BOUCLE x x e916f708 ?
ALLER A x x b946f708 ad52df20
SUIVANT x x fc03f708 b748df20
PRECEDENT x x be41f708 bf40df20
AVANCE RAPIDE x x ba45f708 bd42df20
RETOUR RAPIDE x x f807f708 e41bdf20
SAUT - x x bd42f708 b44bdf20
SAUT + x x a25df708 b04fdf20
ARRET x x b24df708 b24ddf20
PAUSE x x f00ff708 ea15df20
LECTURE x x f20df708 b649df20
SOUS-TITRE x x ab54f708 ec13df20
AUDIO x x a956f708 f10edf20
VOLUME - x x e21df708 fe01df20
VOLUME + x x ff00f708 e11edf20
MUET x x a55af708 b14edf20
GUIDE x x ee11f708 bb44df20
GAUCHE x x aa55f708 e817df20
DROITE x x ea15f708 f30cdf20
HAUT x x e41bf708 e916df20
BAS x x ec13f708 ed12df20
RETOUR x x ae51f708 af50df20
ENTREE x x e817f708 e718df20
EDITER x x f906f708 f40bdf20
SOURCE   x ? f20ddf20
Zoom.jpg ZOOM x x f30cf708 ae51df20
DTV   x e619f708 ba45df20
Electronic Program Guide   x ? f609df20
 REC  ENRG   x fd02f708 eb14df20
 TIMESHIFT  TIMESHIFT   x bf40f708 ff00df20
RESEAU   x fe01f708 b34cdf20
DISQUE     be41f708 a45bdf20
TEXTE   x b946f708 ?
USB  

x

fc03f708 b847df20
 TV/HMR  TV PERITEL   x a758f708 a857df20
SYSTEME TV x x fe01f708 fd02df20
MARCHE ARRET x x e718f708 ef10df20

Conclusion

Comme vous avez pu vous en rendre compte, les utilisations d'Irfake sont nombreuses. J'espère que cela vous donnera de bonnes idées avec vos télécommandes !
Bons Geeks ! wink

A voir aussi

Utilisation de la télécommande
Simuler la saisie sur la télécommande

Votez: 
Pas encore de vote

Commentaires

Portrait de Dom1066

Avec ceci nous allons peut-etre faire démarrer nos HBM sur DTV ou sur le Jukebox !

peut-être une piste =>http://forum.xtreamer.net/topic/15324-jukebox-default-at-startup/ 

(J'ai essayé mais pas de résultat concluant )

[Hyundai MBox P3100S(FW:757)+ Sony KDL-32 EX500+ Edifier S330D+ Harmony 300]