Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 02/11/2006, à 00:50

harlock

[Résolu] Télécommande Terratec Cinergy 1400T et lirc (Edgy Eft)

Bonjour,

J'ai une carte DVB-T Terratec Cinergy 1400T qui fonctionne bien avec kaffeine sous Kubuntu Edgy Eft. Je souhaiterais désormais faire fonctionner la télécommande et là c'est un vrai casse-tête.

Le soft adéquate pour la faire fonctionner est lirc.

J'ai identifié le device:

cat /proc/bus/input/devices
I: Bus=0001 Vendor=153b Product=1166 Version=0001
N: Name="cx88 IR (TerraTec Cinergy 1400 "
P: Phys=pci-0000:00:09.2/ir0
S: Sysfs=/class/input/input1
H: Handlers=kbd event1
B: EV=100003
B: KEY=108fc210 2043 0 0 0 0 8000 2080 1 9e1680 0 0 ffc

Du coup, udev me donne cela

udevinfo -a -p /class/input/input1

udevinfo starts with the device the node belongs to and then walks up the
device chain, to print for every device found, all possibly useful attributes
in the udev key format.
Only attributes within one device section may be used together in one rule,
to match the device for which the node will be created.

  looking at device '/class/input/input1':
    KERNEL=="input1"
    SUBSYSTEM=="input"
    SYSFS{modalias}=="input:b0001v153Bp1166e0001-e0,1,14,k71,72,73,74,77,80,A7,AD,CF,160,161,166,16D,184,189,18E,18F,190,191,192,193,197,19C,ramlsfw"
    SYSFS{uniq}==""
    SYSFS{phys}=="pci-0000:00:09.2/ir0"
    SYSFS{name}=="cx88 IR _TerraTec Cinergy 1400 "

  looking at device '/devices/pci0000:00/0000:00:09.2':
    ID=="0000:00:09.2"
    BUS=="pci"
    DRIVER=="cx88-dvb"
    SYSFS{modalias}=="pci:v000014F1d00008802sv0000153Bsd00001166bc04sc80i00"
    SYSFS{local_cpus}=="ff"
    SYSFS{irq}=="5"
    SYSFS{class}=="0x048000"
    SYSFS{subsystem_device}=="0x1166"
    SYSFS{subsystem_vendor}=="0x153b"
    SYSFS{device}=="0x8802"
    SYSFS{vendor}=="0x14f1"

  looking at device '/devices/pci0000:00':
    ID=="pci0000:00"
    BUS==""
    DRIVER==""

Je lance le démon lircd avec un device /dev/input/event1, pas de problème.
Mais quand je teste avec irw, le démon lircd tombe.
J'ai oublié de préciser que j'ai placé dans /etc/lirc/lircd.conf la configuration pour la télécommande de la cinergy 1400T trouvée sur le site de lirc: http://www.lirc.org

Toute aide serait la bienvenue.

Cordialement.

Dernière modification par harlock (Le 05/11/2006, à 14:07)


ubuntu hardy heron (8.04) Athlon 3800+ 3Go RAM
mythbuntu karmic koala (9.10) Core 2 duo E6300 1Go RAM Asrock 775Dual-VSTA (mythtv box)

Hors ligne

#2 Le 02/11/2006, à 11:06

harlock

Re : [Résolu] Télécommande Terratec Cinergy 1400T et lirc (Edgy Eft)

Bonjour,

En complément, je joins le fichier /etc/lirc/hardware.conf

cat /etc/lirc/hardware.conf
# /etc/lirc/hardware.conf
#
# Arguments which will be used when launching lircd
LIRCD_ARGS=""

#Don't start lircmd even if there seems to be a good config file
#START_LIRCMD=false

#Try to load appropriate kernel modules
LOAD_MODULES=true

# Run "lircd --driver=help" for a list of supported drivers.
DRIVER=""
# If DEVICE is set to /dev/lirc and devfs is in use /dev/lirc/0 will be
# automatically used instead
DEVICE="/dev/input/event1"
MODULES=""

# Default configuration files for your hardware if any
LIRCD_CONF=""
LIRCMD_CONF=""

La question que je me pose est : dois-je préciser une valeur pour DRIVER et MODULES, et si oui laquelle ?

En démarrant le démon lircd comme suit : sudo /etc/init.d/lirc start, je n'ai pas trouvé de fichier de log dans /var/log. Du coup, j'ai démarré lircd en mode interatif et voici ce que j'obtiens:

sudo lircd --nodaemon --device=/dev/input/event1
lircd-0.8.0[10901]: lircd(userspace) ready
lircd-0.8.0[10901]: accepted new client on /dev/lircd
lircd-0.8.0[10901]: could not get hardware features
lircd-0.8.0[10901]: this device driver does not support the new LIRC interface
lircd-0.8.0[10901]: major number of /dev/input/event1 is 13
lircd-0.8.0[10901]: LIRC major number is 61
lircd-0.8.0[10901]: check if /dev/input/event1 is a LIRC device
lircd-0.8.0[10901]: caught signal
Complété
harlock@mythtvbox:/etc/lirc$ sudo lircd --nodaemon --device=/dev/input/event1
lircd-0.8.0[10903]: lircd(userspace) ready
lircd-0.8.0[10903]: accepted new client on /dev/lircd
lircd-0.8.0[10903]: could not get hardware features
lircd-0.8.0[10903]: this device driver does not support the new LIRC interface
lircd-0.8.0[10903]: major number of /dev/input/event1 is 13
lircd-0.8.0[10903]: LIRC major number is 61
lircd-0.8.0[10903]: check if /dev/input/event1 is a LIRC device
lircd-0.8.0[10903]: caught signal
Complété

Cordialement.

Dernière modification par harlock (Le 02/11/2006, à 11:10)


ubuntu hardy heron (8.04) Athlon 3800+ 3Go RAM
mythbuntu karmic koala (9.10) Core 2 duo E6300 1Go RAM Asrock 775Dual-VSTA (mythtv box)

Hors ligne

#3 Le 02/11/2006, à 11:19

harlock

Re : [Résolu] Télécommande Terratec Cinergy 1400T et lirc (Edgy Eft)

Les logs du démon lirc sont dans /var/log/syslog.


ubuntu hardy heron (8.04) Athlon 3800+ 3Go RAM
mythbuntu karmic koala (9.10) Core 2 duo E6300 1Go RAM Asrock 775Dual-VSTA (mythtv box)

Hors ligne

#4 Le 02/11/2006, à 11:34

harlock

Re : [Résolu] Télécommande Terratec Cinergy 1400T et lirc (Edgy Eft)

J'ai trouvé une url intéressante : ici http://vesta.homelinux.free.fr/dotc … 1400-dvb-t

J'ai suivi les instructions. Après installation du paquet dvb-utils, les tests avec evtest sont encourageants, hormis le fait que les touches sont répétées 1 fois.

Par contre, après démarrage de lircd et test avec irw, toujours le même résultat.


ubuntu hardy heron (8.04) Athlon 3800+ 3Go RAM
mythbuntu karmic koala (9.10) Core 2 duo E6300 1Go RAM Asrock 775Dual-VSTA (mythtv box)

Hors ligne

#5 Le 03/11/2006, à 10:37

sancho

Re : [Résolu] Télécommande Terratec Cinergy 1400T et lirc (Edgy Eft)

Salut,

Je travaille en ce moment aussi sur l'utilisation de lirc avec ma télécommande intégré à mon unité centrale.

En tapant la commande suivante :

lircd --driver=help

tu peux obtenir la liste des drivers utilisables. Entre autre, un qui m'a semblé être utile pour moi, vu que mon récepteur n'est pas sur un port TTY mais bien /dev/input/eventXX , et qui est :

dev/input

J'ai donc mis celui là dans mon fichier hardware.conf.
J'avance doucement car je ne connais pas très bien lirc et ce qu'il peut offrir, mais voilà une idée gratuite.

Sancho

P.S : ton lien est mort et devrait être celui là.

Dernière modification par sancho (Le 03/11/2006, à 10:38)


Lucid Lynx
Giada Slim N-10

Hors ligne

#6 Le 03/11/2006, à 10:54

sancho

Re : [Résolu] Télécommande Terratec Cinergy 1400T et lirc (Edgy Eft)

Complément à ma réponse :

J'ai ouvert deux shell. Dans le premier, j'ai lancé lircd comme suit :

 sudo lircd --driver=dev/input --device=/dev/input/by-id/usb-13ec_000f-event-kbd --nodaemon

Le shell se bloque, d'où l'utilité de mon deuxième shell pour tester, où je lance :

irw

Et voilà, ce que j'obtiens dans mon premier shell pour l'exécution de lircd :

lircd-0.8.0[9900]: config file contains no valid remote control definition
lircd-0.8.0[9900]: lircd(userspace) ready
lircd-0.8.0[9900]: accepted new client on /dev/lircd
lircd-0.8.0[9900]: initializing '/dev/input/by-id/usb-13ec_000f-event-kbd'
====== J'appuie sur des touches de ma télécommande : ======
lircd-0.8.0[9900]: devinput_rec
lircd-0.8.0[9900]: time 1162547089.523511  type 1  code 103  value 1
lircd-0.8.0[9900]: code 80010067
lircd-0.8.0[9900]: devinput_rec
lircd-0.8.0[9900]: time 1162547089.523517  type 0  code 0  value 0
lircd-0.8.0[9900]: code 00000000
lircd-0.8.0[9900]: devinput_rec
lircd-0.8.0[9900]: time 1162547089.611495  type 1  code 103  value 0
lircd-0.8.0[9900]: code 00010067
lircd-0.8.0[9900]: devinput_rec
lircd-0.8.0[9900]: time 1162547089.611500  type 0  code 0  value 0
lircd-0.8.0[9900]: code 00000000
lircd-0.8.0[9900]: devinput_rec
lircd-0.8.0[9900]: time 1162547089.667485  type 1  code 103  value 1
lircd-0.8.0[9900]: code 80010067
lircd-0.8.0[9900]: devinput_rec
lircd-0.8.0[9900]: time 1162547089.667490  type 0  code 0  value 0
lircd-0.8.0[9900]: code 00000000
lircd-0.8.0[9900]: devinput_rec
lircd-0.8.0[9900]: time 1162547089.755471  type 1  code 103  value 0
lircd-0.8.0[9900]: code 00010067
lircd-0.8.0[9900]: devinput_rec
lircd-0.8.0[9900]: time 1162547089.755477  type 0  code 0  value 0
lircd-0.8.0[9900]: code 00000000
lircd-0.8.0[9900]: devinput_rec
lircd-0.8.0[9900]: time 1162547181.868574  type 1  code 103  value 1
lircd-0.8.0[9900]: code 80010067
.........

Je pense que c'est tout bon.
Voilà, maintenant, j'ai trouvé ce tuto, qui me permettra d'insérer le module lircd au démarrage et *zou* big_smile

Donc, pour toi, si tu es sous edgy, les périphériques sont maintenant indexées par ID dans /dev/input/by-id . Le classement par id est plus sûr car lui ne change pas entre deux redémarrage. Si tu es sous dapper, garde ton /dev/input/event3 et prie pour qu'il ne change pas au démarrage.
Complète effectivement le champ DRIVER avec dev/input, je viens de tester sans (cad avec le driver default) et cela ne fonctionne pas.

Voilà, bon courage encore.

Sancho


Lucid Lynx
Giada Slim N-10

Hors ligne

#7 Le 05/11/2006, à 14:03

harlock

Re : [Résolu] Télécommande Terratec Cinergy 1400T et lirc (Edgy Eft)

Bonjour,

Un grand merci à toi Sancho, effectivement en choississant le driver dev/input, ça fonctionne mieux et j'obtiens des résultats proches de ceux ton poste. Par contre toutes les touches pressées sur la télécommande sont répétées. Est-ce également le cas pour toi ? En fait, je ne sais pas dire si c'est normal ou pas.

Pour ceux que cela interesserait voici mon /etc/lirc/hardware.conf

# /etc/lirc/hardware.conf
#
# Arguments which will be used when launching lircd
LIRCD_ARGS=""

#Don't start lircmd even if there seems to be a good config file
#START_LIRCMD=false

#Try to load appropriate kernel modules
LOAD_MODULES=true

# Run "lircd --driver=help" for a list of supported drivers.
DRIVER="dev/input"
# If DEVICE is set to /dev/lirc and devfs is in use /dev/lirc/0 will be
# automatically used instead
DEVICE=""
MODULES=""

# Default configuration files for your hardware if any
LIRCD_CONF=""
LIRCMD_CONF=""

Pour le périphérique au démarrage (je suis Edgy), ta solution est tout à fait bonne. Mais j'ai choisi d'insérer une règle pour udev qui me permet d'avoir un device /dev/lirc, cela apporte de la flexibilité. Voici mon fichier /etc/udev/lirc.rules :

KERNEL=="event[0-9]*",SYSFS{vendor}=="0x14f1",SYSFS{device}=="0x8800",SYSFS{subsystem_vendor}=="0x153b",SYSFS{subsystem_device}=="0x1166",NAME="input/%k",SYMLINK+="lirc"

Ensuite, j'ai fait un lien symbolique comme suit :

#cd /etc/udev/rules.d
#sudo ln -s ../lirc.rules 19-lirc.rules

Ensuite :

#sudo udevtrigger
#sudo udevtest /class/input/event2

Et ca y est j'ai un device /dev/lirc.

Je suis pas très calé en udev mais si cela t'intéresse, Sancho, je te propose mon aide.

En tout cas, je réitère mes remerciements à Sancho.

Cordialement.

Dernière modification par harlock (Le 05/11/2006, à 14:06)


ubuntu hardy heron (8.04) Athlon 3800+ 3Go RAM
mythbuntu karmic koala (9.10) Core 2 duo E6300 1Go RAM Asrock 775Dual-VSTA (mythtv box)

Hors ligne

#8 Le 06/11/2006, à 09:43

sancho

Re : [Résolu] Télécommande Terratec Cinergy 1400T et lirc (Edgy Eft)

ReBonjour l'ami,

Depuis mon dernier message, j'ai pas mal avancé sans problème en fait. Actuellement, j'en suis à faire fonctionner mes applications en définissant mes règles le touche/appli avec un bon gros fichier ~/.lircrc

Je peux donc affirmer sans trop de problème que tout est OK chez moi. big_smile

Je vais tenté de t'expliquer ce que j'ai compris.

Le principe de lirc est le suivant (du matériel au programme final):

[/dev/input/ton-entree-de-telecommande] :
C'est le point d'entré matériel des signaux de ta télécommande. Un infame tas de bit.

Par dessus:
Un module (daemon) lirc, qui lance, lircd et lircmd (pour la souris).
[lircd] ne fait que lire le [/dev/...] et le transforme en information plus pertinentes (type de touche, répété ou pas, etc ...)
[lircd] à besoin de hardware.conf, lircd.conf et lircmd.conf (optionnel) pour être lancé avec succès. Un fois lancé avec succès, le module produira ces codes (pertinents) sur le lien symbolique /dev/lirc.

Maintenant que [lircd] a transformé le tas de bits en quelquechose de générique, on peut y envoyer des clients, qui consomeront les données sur /dev/lirc (et non pas /dev/input/<ta_telecommande> ) :
[irw], [irexec], et j'en passe. Ils sont tous des clients de ce que fournit le daemon [lircd].
[irexec] entre autre, transforme ce qui sort de [lircd] en message "Lance VLC", "Fait Play", etc ... La châine est donc terminé big_smile
Donc, un résumé :

[/dev/...] ---> [lircd] -----> [/dev/lirc] -----> [irw, irexec, ou ...]

Voilà.

Je n'ai pas tellement compris ton soucis sous Edgy quand tu as dû tripatouiller udev et autres lirc.rules. J'avais automatiquement un device /dev/lirc de monté au lancement du module lirc. Ce module est déjà installé par défaut avec edgy mais il a besoin en fait de deux fichiers pour monter correctement au démarrage : /etc/lirc/hardware.conf et /etc/lirc/lircd.conf. Effectivement, ceci tu ne peux pas le voir car les messages de démarrage et autre erreurs ne sont pas visible. J'ai donc vu que le module était ok mais que le module envoyait des erreurs au démarrage. Et ça m'a permis de comprendre comment tout ça était orchestré.

Entre autre, dans un shell, tu peux lancer la commande :

tail -f /var/log/daemon.log

Tu pourras ainsi voir la vie de module lirc. Garde ce shell sous le coude, il te servira.

Premier truc que tu vas faire, c'est de décharger le module lirc qui tourne sans que tu le saches. Dans un autre shell, tu fais :

sudo /etc/init.d/lirc stop

(Au passage, le répertoire /etc/init.d/ contient tous les scripts de démarrage, jette y un coup d'oeil, c'est très instructif.)

Ok, le module est arrêté, tu as du le voir dans la console où tu as lancé la commande tail.

Préparons les deux fichiers nécessaires au module [lircd]. C'est à dire, hardware.conf et lircd.conf.
Ton fichier hardware.conf est presque parfait, il te faut juste y renseigner le champ DEVICE="", ainsi, il chargera autmagiquement [lircd] sur le bon device.
Pour moi, il est égal à

DEVICE="/dev/input/by-id/usb-13ec_000f-event-kbd"

que tu as surrement dû déterminé précedemment.

Génerons le fichier lircd.conf : Place toi dans le repertoire /etc/lirc/ :

cd /etc/lirc/

Vu que ton module est arrêté, on peut lancé à présent le générateur de fichier lircd.conf qui est irrecrod. Chez moi, ça donne :

sudo irrecord -H dev/input -d /dev/input/by-id/usb-13ec_000f-event-kbd lircd.conf.MA_CONFIG

Biensûr adapte la commande à ta config.
Suit les instructions, et tu auras généré le fichier lircd.conf.MA_CONFIG qui correspond à ta télécommande. C'est long certe mais au moins tu auras le fichier de ta télécommande perso.

Remplace, à présent le fichier /etc/lirc/lircd.conf par le tiens, en le renommant ou pas. Moi, j'ai fait un lien symbolique lircd.conf vers lircd.conf.MA_CONFIG, et ça marche très bien.

Voilà, tu es prêt à lancer à nouveau le module par :

sudo /etc/init.d/lirc start

Regardes le module démarrer dans le shell où tail à été lancé.

Maintenant, dans notre chaîne, il ne nous manque plus qu'à lancer un client.

[irw] n'est qu'un client pour la console et voir instantanément ce que ça donne.
[irexec] lui utilise un fichier ~/.lircrc que tu placeras dans ton home pour lancé les bonnes applis avec la bonne touche appuyée.

Lance irw dans ton shell. Normalement, dans ton shell de control avec tail, tu vera que [lircd] ouvre correctement le bon device, et attends les touches de ta télécommande.

Appuie, et tu veras aussi bien réagir [lircd] et irw mais avec des messages différents, respectivement, messages bruts, messages traduit.

Voilà, pour terminé, écrit un bon gros fichier .lircrc, et rajoute le programme irexec dans la liste de tes programme au démarrafe de la session.

ET VOILA big_smile

Dernière modification par sancho (Le 06/11/2006, à 10:20)


Lucid Lynx
Giada Slim N-10

Hors ligne

#9 Le 21/12/2006, à 21:21

eurika

Re : [Résolu] Télécommande Terratec Cinergy 1400T et lirc (Edgy Eft)

Salut,

Merci beaucoup pour vos contributions !!!!! elles sont géniales...

Concernant la maitrise de votre pc avec la télécommande je vous recommande irkick (kde, mais qui tourne sans prob sous gnome) et qui permet de gérer des applis kde ... (oki mais alors pk je suis sous gnome ??? ). En fait ça utilise "dcop", ça permet d'envoyer des instructions aux appli (en ligne de commande, ou avec la zappette tongue)
C'est là que ça devient intéressant :
- irkick permet de définir des modes (1 modes = 1 logiciels que l'on peut maitriser)
- il est en graphique, c'est un peu rébarbatif, mais quand ça fonctionne c'est niquel.

Perso je l'utilise pour : amarok, kaffeine, kdeTV avec une seule zappette.

Vous me direz pourquoi je reste sous gnome simplement car je préfère ça simplicité mais ils manquent des choses des fois wink.
si vous voulez je peux vous faire parvenir des screenshots


Je sollicite votre aide pour mon soucis avec le boitier cinergyT2 de mon frère.

J'ai fait :
- install/compilation des drivers OK

Je bloque sur le lancement du service lircd, car il n'arrive pas à lire mon /dev/inputX

Voici mes logs :

lorsque je branche le boitier

Dec 21 21:02:48 izhenah kernel: [17180034.904000] usb 5-3: new high speed USB device using ehci_hcd and address 6
Dec 21 21:02:48 izhenah kernel: [17180035.036000] usb 5-3: configuration #1 chosen from 1 choice
Dec 21 21:02:48 izhenah kernel: [17180035.036000] DVB: registering new adapter (TerraTec/qanu USB2.0 Highspeed DVB-T Receiver).
Dec 21 21:02:48 izhenah kernel: [17180035.036000] input: TerraTec/qanu USB2.0 Highspeed DVB-T Receiver remote control as /class/input/input7

lorsque je lance :

$  sudo lircd --driver=dev/input --device=/class/input/input7 --nodaemon
lircd: could not open config file '/etc/lircd.conf'
lircd: No such file or directory
lircd: lircd(devinput) ready
lircd: accepted new client on /dev/lircd
lircd: initializing '/class/input/input6'
lircd: unable to open '/class/input/input6'
lircd: caught signal
Complété

Il se ferme quand je lance irw par "complété".

j'ai essayé la méthode d'harlock

#/etc/udev/rules.d# sudo udevtest /class/input/event7
main: unable to open '/class/input/event7'

------------------------------------------------------------

Pour info voici mon hardware.conf :

# /etc/lirc/hardware.conf
#
# Arguments which will be used when launching lircd
LIRCD_ARGS=""

#Don't start lircmd even if there seems to be a good config file
#START_LIRCMD=false

#Try to load appropriate kernel modules
LOAD_MODULES=true

# Run "lircd --driver=help" for a list of supported drivers.
DRIVER="dev/input"
# If DEVICE is set to /dev/lirc and devfs is in use /dev/lirc/0 will be
# automatically used instead
DEVICE=""
MODULES=""

# Default configuration files for your hardware if any
LIRCD_CONF=""
LIRCMD_CONF=""

Et les deux dernières questions :
- Pourquoi, sachant que je suis sous edgy je n'ai pas de /dev/input/by-id/usb-13ecXXXXX ?
- Est-ce que c'est normal lorsque je branche le boîtier et que je presse les touches dans une console ça fait comme si j'appuyais sur les touches du clavier ?

Merci d'avance smile

Dernière modification par eurika (Le 21/12/2006, à 21:24)

Hors ligne

#10 Le 21/01/2007, à 20:36

harlock

Re : [Résolu] Télécommande Terratec Cinergy 1400T et lirc (Edgy Eft)

Salut Eurika,

On va y aller par étape. Pour répondre à ta première question
/class/input/input7 te donne le chemin dans sysfs.
Pour connaître le chemin du device, je te conseille de regarder dans le fichier /var/log/udev.
Dans ce fichier, quand tu verras le chemin qui t'intéresse, cela devrait être /class/input/input7/event7
tu auras une ligne de la forme

DEVNAME=/dev/input/event7

Alors tu pourras tester lirc comme suit:

sudo lircd --driver=dev/input --device=/dev/input/event7 --nodaemon

Cordialement.

N.B. : si problème pourrais-tu envoyer ton fichier /var/log/udev


ubuntu hardy heron (8.04) Athlon 3800+ 3Go RAM
mythbuntu karmic koala (9.10) Core 2 duo E6300 1Go RAM Asrock 775Dual-VSTA (mythtv box)

Hors ligne