LIRC ne transmettra pas (irsend: le matériel ne prend pas en charge l'envoi)

11

J'essaie de contrôler une unité IR HVAC dans ma maison avec un Raspberry Pi 2 et un bouclier infrarouge (voir ici: http://bit.ly/29iC0lr ).

J'ai suivi les instructions sur la page produit du blindage IR avec des conseils provenant de quelques autres endroits et la réception des signaux de la télécommande HVAC fonctionne très bien. J'ai pu créer un fichier .conf et irsend voit les boutons que j'ai configurés lorsque j'utilise la commande LIST mais quand j'essaye SEND_ONCE, j'obtiens cette réponse:

irsend: hardware does not support sending

J'ai passé plusieurs heures à essayer différents systèmes d'exploitation (y compris piCore 6.1-v7 et Raspbian Jesse 2016-05-27 et 2015-11-21) et deux versions de LIRC (0.9.0 et 0.9.4), mais j'ai toujours obtenu le même résultat.

J'ai confirmé que la LED IR fonctionne à l'aide d'une caméra numérique et d'un script python qui actionne manuellement la broche GPIO.

Quelqu'un peut-il m'orienter dans la bonne direction pour résoudre ce problème? Existe-t-il un moyen de savoir pourquoi le LIRC semble penser que mon matériel n'a pas d'émetteur?

Merci d'avance.

Remarque: mon /boot/config.txt inclut cette ligne pour lirc-rpi

dtoverlay=lirc-rpi,gpio_in_pin=18,gpio_out_pin=17

[EDIT 7-7-2016] Voici quelques informations supplémentaires, y compris la sortie de plusieurs commandes dans la section Dépannage de cette page: http://aron.ws/projects/lirc_rpi/ La sortie de cat /sys/kernel/debug/gpione semble pas correcte mais je ne ' Je ne sais pas quoi faire à ce sujet. : - \

J'ai la ligne suivante dans /etc/rc.local:

modprobe lirc_rpi gpio_in_pin=18 gpio_out_pins=17

J'ai également essayé un peu de code similaire dans / etc / modules mais cela n'a fait aucune différence.

pi@raspberrypi:~ $ ls -l /dev/lirc*
crw-rw---- 1 root video 244, 0 Jul  7 11:27 /dev/lirc0
lrwxrwxrwx 1 root root      21 Jul  7 11:27 /dev/lircd -> ../var/run/lirc/lircd

pi@raspberrypi:~ $ dmesg | grep lirc
[    5.219904] lirc_dev: IR Remote Control driver registered, major 244
[    5.230067] lirc_rpi: module is from the staging directory, the quality is unknown, you have been warned.
[    6.196796] lirc_rpi: auto-detected active low receiver on GPIO pin 18
[    6.197243] lirc_rpi lirc_rpi: lirc_dev: driver lirc_rpi registered at minor = 0
[    6.197248] lirc_rpi: driver registered!


pi@raspberrypi:~ $ sudo cat /sys/kernel/debug/gpio
GPIOs 0-53, platform/3f200000.gpio, pinctrl-bcm2835:
 gpio-35  (?                   ) in  hi
 gpio-47  (?                   ) out lo


pi@raspberrypi:~ $ cat /proc/interrupts
           CPU0       CPU1       CPU2       CPU3
 16:          0          0          0          0   ARMCTRL  16 Edge      bcm2708_fb dma
 20:       1500          0          0          0   ARMCTRL  20 Edge      DMA IRQ
 32:     145314          0          0          0   ARMCTRL  32 Edge      dwc_otg, dwc_otg_pcd, dwc_otg_hcd:usb1
 49:          0          0          0          0   ARMCTRL  49 Edge      3f200000.gpio:bank0
 50:          0          0          0          0   ARMCTRL  50 Edge      3f200000.gpio:bank1
 65:         26          0          0          0   ARMCTRL  65 Edge      3f00b880.mailbox
 66:          2          0          0          0   ARMCTRL  66 Edge      VCHIQ doorbell
 75:          1          0          0          0   ARMCTRL  75 Edge
 77:        120          0          0          0   ARMCTRL  77 Edge      DMA IRQ
 82:        192          0          0          0   ARMCTRL  82 Edge      mmc0
 83:          5          0          0          0   ARMCTRL  83 Edge      uart-pl011
 96:          0          0          0          0   ARMCTRL  96 Edge      arch_timer
 97:       3798       2724       1275       1139   ARMCTRL  97 Edge      arch_timer
FIQ:              usb_fiq
IPI0:          0          0          0          0  CPU wakeup interrupts
IPI1:          0          0          0          0  Timer broadcast interrupts
IPI2:       2225       2478       3697       2901  Rescheduling interrupts
IPI3:          7          6          8          9  Function call interrupts
IPI4:          3          5          0          1  Single function call interrupts
IPI5:          0          0          0          0  CPU stop interrupts
IPI6:          0          0          0          0  IRQ work interrupts
IPI7:          0          0          0          0  completion interrupts

pi@raspberrypi:~ $ lsmod
Module                  Size  Used by
cfg80211              419759  0
rfkill                 16659  2 cfg80211
8192cu                528485  0
evdev                  10226  1
snd_bcm2835            19739  0
bcm2835_gpiomem         3023  0
snd_pcm                74833  1 snd_bcm2835
snd_timer              18164  1 snd_pcm
lirc_rpi                6638  0
snd                    52116  3 snd_bcm2835,snd_timer,snd_pcm
lirc_dev                8169  1 lirc_rpi
rc_core                16910  1 lirc_dev
uio_pdrv_genirq         2966  0
uio                     8228  1 uio_pdrv_genirq
ipv6                  341892  30
gq9000
la source
Pourriez-vous modifier la question et inclure les entrées liées au LIRC que vous avez apportées /boot/config.txt?
joan
D'accord, j'ai mis à jour la question.
gq9000
Une autre mise à jour avec quelques informations de dépannage de la page du projet de lirc_rpi. Il semble que le module n'alloue pas correctement les broches gpio. Des idées sur la façon de résoudre ce problème ??
gq9000
Comment avez-vous confirmé exactement que l'IR fonctionne? Pourriez-vous s'il vous plaît partager ce script python? J'ai le même problème, ma configuration semble correcte, la lecture via mode2 fonctionne bien, mais irsend me donne toujours cette erreur.
m1gu3l
Je n'ai plus le script mais c'était probablement quelque chose comme ça: rpiblog.com/2012/09/… Il suffit de changer ce script pour utiliser la broche de sortie (17), l'exécuter et pointer un appareil photo numérique ou votre appareil photo de téléphone portable à la LED. Vous devriez voir une faible lumière blanche clignoter au centre de la LED.
gq9000

Réponses:

10

Pour moi , cette étape supplémentaire a permis:
modifier /etc/lirc/lirc_options.confet ensemble
driver = devinput
à
driver = default
puis redémarrer ou redémarrer le service lircd

Mikk
la source
4

D'accord, j'ai trouvé la réponse, ou plutôt quelqu'un de bien plus informé sur Linux que moi ( /raspberrypi//users/49162/jonathan-dieter ) l'a trouvée. :)

Plutôt que de charger le module lirc_rpi dans / etc / modules ou /etc/rc.local, il a suggéré d'ajouter un nouveau fichier de configuration à /etc/modprobe.d/ (dans mon cas /etc/modprobe.d/ir-remote.conf ) avec la ligne suivante:

options lirc_rpi gpio_in_pin=18 gpio_out_pin=17

Ma meilleure estimation de la raison pour laquelle cela a fait la différence est que le module se chargeait avec les paramètres par défaut AVANT l'exécution de la commande dans / etc / modules ou rc.local. Puisqu'il était déjà chargé, le système a simplement ignoré ma tentative suivante et la broche de sortie n'a jamais été configurée correctement (c'est sous Raspbian Jessie BTW).


Une autre note sur l'unité HVAC qui pourrait être utile. Je n'ai pas pu utiliser irrecord pour enregistrer les commandes de la télécommande. Il semble que les systèmes CVC fonctionnent un peu différemment d'un téléviseur ou d'un magnétoscope.

Ces deux pages ( http://www.instructables.com/id/Reverse-engineering-of-an-Air-Conditioning-control/?ALLSTEPS et http://absurdlycertain.blogspot.com/2013/03/lirc-raspi -remote-control-configuration.html (en particulier les deux premiers commentaires) m'a aidé à comprendre comment enregistrer la sortie brute de mode2, la normaliser puis la transmettre avec irsend.

gq9000
la source
1

Après avoir suivi ce guide: http://www.raspberrypiwiki.com/index.php/Raspberry_Pi_IR_Control_Expansion_Board J'ai rencontré le même problème que celui indiqué dans cette question:

irsend: hardware does not support sending

J'ai essayé d'ajouter cette ligne:

options lirc_rpi gpio_in_pin=18 gpio_out_pin=17

dans /etc/modprobe.d/ir-remote.conf, mais cela n'a pas aidé non plus.

Quand j'ai démarré le démon LIRC avec la commande suivante:

sudo lircd --device /dev/lirc0

ça a marché! Le périphérique doit être le même que celui que vous avez configuré dans le fichier /etc/lirc/hardware.conf. Les étapes sont donc:

  1. Suivez ce guide: http://www.raspberrypiwiki.com/index.php/Raspberry_Pi_IR_Control_Expansion_Board
  2. Lorsque vous arrivez à la section intitulée «Fonction de transmission IR», point 5. et vous obtenez une erreur: irsend: hardware does not support sending
  3. Exécutez ensuite la commande suivante dans la console: sudo lircd --device /dev/lirc0pour démarrer le démon LIRC
  4. Maintenant, lancez irsend SEND_ONCE /home/pi/lircd.conf KEY_VIDEO_PREV
Igor
la source
J'ai les mêmes résultats. L'installation par défaut ne fonctionne pas, mais elle fonctionne avec la commande que vous avez fournie. Comprenez-vous pourquoi cela est vrai? Je voudrais modifier init.d pour que la commande appropriée soit exécutée au démarrage.
tim11g