LIRC sendet nicht (irsend: Hardware unterstützt das Senden nicht)

11

Ich versuche, eine IR-HLK-Einheit in meinem Haus mit einem Raspberry Pi 2 und einem Infrarotschild zu steuern (siehe hier: http://bit.ly/29iC0lr ).

Ich habe die Anweisungen auf der IR-Schild-Produktseite mit Tipps von einigen anderen Stellen befolgt, und das Empfangen von Signalen von der HLK-Fernbedienung funktioniert hervorragend. Ich konnte eine .conf-Datei erstellen und irsend sieht die Schaltflächen, die ich konfiguriert habe, wenn ich den Befehl LIST verwende. Wenn ich jedoch SEND_ONCE versuche, erhalte ich folgende Antwort:

irsend: hardware does not support sending

Ich habe mehrere Stunden damit verbracht, verschiedene Betriebssysteme (einschließlich piCore 6.1-v7 und Raspbian Jesse 2016-05-27 und 2015-11-21) und zwei Versionen von LIRC (0.9.0 und 0.9.4) auszuprobieren, habe aber immer das gleiche Ergebnis erzielt.

Ich habe bestätigt, dass die IR-LED mit einer Digitalkamera und einem Python-Skript funktioniert, das den GPIO-Pin manuell bedient.

Kann mich jemand in die richtige Richtung weisen, um dies zu beheben? Gibt es eine Möglichkeit herauszufinden, warum LIRC zu glauben scheint, dass meine Hardware keinen Sender hat?

Danke im Voraus.

Hinweis: Meine Datei /boot/config.txt enthält diese Zeile für lirc-rpi

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

[EDIT 7-7-2016] Hier sind einige zusätzliche Informationen, einschließlich der Ausgabe mehrerer Befehle im Abschnitt Fehlerbehebung auf dieser Seite: http://aron.ws/projects/lirc_rpi/ Die Ausgabe von cat /sys/kernel/debug/gpiosieht nicht richtig aus, aber ich weiß nicht. Ich weiß nicht, was ich dagegen tun soll. : - \

Ich habe die folgende Zeile in /etc/rc.local:

modprobe lirc_rpi gpio_in_pin=18 gpio_out_pins=17

Ich habe auch ein ähnliches Stück Code in / etc / modules ausprobiert, aber es machte keinen Unterschied.

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
quelle
Könnten Sie die Frage bearbeiten und die LIRC-bezogenen Einträge einfügen, die Sie vorgenommen haben /boot/config.txt?
Joan
Okay, ich habe die Frage aktualisiert.
gq9000
Ein weiteres Update mit einigen Informationen zur Fehlerbehebung von der Projektseite von lirc_rpi. Es sieht so aus, als ob das Modul die GPIO-Pins nicht richtig zuweist. Irgendwelche Ideen, wie man das behebt?
gq9000
Wie genau haben Sie bestätigt, dass IR funktioniert? Könnten Sie bitte dieses Python-Skript teilen? Ich habe das gleiche Problem, meine Konfiguration scheint in Ordnung zu sein, das Lesen über mode2 funktioniert einwandfrei, aber irsend gibt mir immer noch diesen Fehler.
m1gu3l
Ich habe das Skript nicht mehr, aber es war wahrscheinlich ungefähr so: rpiblog.com/2012/09/… Ändern Sie dieses Skript einfach, um den Ausgangs-Pin (17) zu verwenden, führen Sie es aus und richten Sie eine Digitalkamera oder Ihre Handykamera an der LED. In der Mitte der LED sollte ein schwaches weißes Licht blinken.
gq9000

Antworten:

10

Für mich ist dieser zusätzliche Schritt geholfen:
bearbeiten /etc/lirc/lirc_options.confund Satz
driver = devinput
zu
driver = default
und dann neu starten oder neu starten lircd Service

Mikk
quelle
4

Okay, ich habe die Antwort gefunden, oder eher jemand, der sich mit Linux besser auskennt als ich ( /raspberrypi//users/49162/jonathan-dieter ). :) :)

Anstatt das Modul lirc_rpi in / etc / modules oder /etc/rc.local zu laden, schlug er vor, /etc/modprobe.d/ (in meinem Fall /etc/modprobe.d/ir-remote.conf) eine neue Konfigurationsdatei hinzuzufügen ) mit folgender Zeile:

options lirc_rpi gpio_in_pin=18 gpio_out_pin=17

Ich vermute, warum dies den Unterschied ausmachte, dass das Modul mit Standardeinstellungen geladen wurde, BEVOR der Befehl in / etc / modules oder rc.local ausgeführt wurde. Da es bereits geladen war, ignorierte das System meinen nachfolgenden Versuch einfach und der Out-Pin wurde nie richtig konfiguriert (dies ist unter Raspbian Jessie BTW).


Ein weiterer Hinweis zur HLK-Einheit, der hilfreich sein könnte. Ich konnte irrecord nicht verwenden, um die Befehle von der Fernbedienung zu speichern. Es scheint, dass HLK-Systeme etwas anders funktionieren als ein Fernseher oder Videorecorder.

Diese beiden Seiten ( http://www.instructables.com/id/Reverse-engineering-of-an-Air-Conditioning-control/?ALLSTEPS und http://absurdlycertain.blogspot.com/2013/03/lirc-raspi) -remote-control-configuration.html ( insbesondere die ersten beiden Kommentare) haben mir geholfen, herauszufinden, wie ich die Rohausgabe von mode2 aufzeichnen, normalisieren und dann mit irsend übertragen kann.

gq9000
quelle
1

Nachdem ich diesem Handbuch gefolgt bin : http://www.raspberrypiwiki.com/index.php/Raspberry_Pi_IR_Control_Expansion_Board Ich bin auf dasselbe Problem gestoßen, das in dieser Frage angegeben ist:

irsend: hardware does not support sending

Ich habe versucht, diese Zeile hinzuzufügen:

options lirc_rpi gpio_in_pin=18 gpio_out_pin=17

in /etc/modprobe.d/ir-remote.conf, aber das hat auch nicht geholfen.

Als ich den LIRC-Daemon mit folgendem Befehl startete:

sudo lircd --device /dev/lirc0

es funktionierte! Das Gerät muss mit dem in der Datei /etc/lirc/hardware.conf konfigurierten Gerät identisch sein. Die Schritte sind also:

  1. Folgen Sie dieser Anleitung: http://www.raspberrypiwiki.com/index.php/Raspberry_Pi_IR_Control_Expansion_Board
  2. Wenn Sie zum Abschnitt "IR-Sendefunktion" Punkt 5 kommen und eine Fehlermeldung erhalten: irsend: hardware does not support sending
  3. Führen Sie dann den folgenden Befehl in der Konsole aus: sudo lircd --device /dev/lirc0Starten Sie den LIRC-Dämon
  4. Jetzt renn irsend SEND_ONCE /home/pi/lircd.conf KEY_VIDEO_PREV
Igor
quelle
Ich habe die gleichen Ergebnisse. Die Standardinstallation funktioniert nicht, aber mit dem von Ihnen angegebenen Befehl. Haben Sie Verständnis dafür, warum dies wahr ist? Ich möchte init.d so ändern, dass der richtige Befehl beim Booten ausgeführt wird.
tim11g