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/gpio
sieht 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
/boot/config.txt
?Antworten:
Für mich ist dieser zusätzliche Schritt geholfen:
bearbeiten
/etc/lirc/lirc_options.conf
und Satzdriver = devinput
zu
driver = default
und dann neu starten oder neu starten lircd Service
quelle
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:
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.
quelle
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:
Ich habe versucht, diese Zeile hinzuzufügen:
in /etc/modprobe.d/ir-remote.conf, aber das hat auch nicht geholfen.
Als ich den LIRC-Daemon mit folgendem Befehl startete:
es funktionierte! Das Gerät muss mit dem in der Datei /etc/lirc/hardware.conf konfigurierten Gerät identisch sein. Die Schritte sind also:
irsend: hardware does not support sending
sudo lircd --device /dev/lirc0
Starten Sie den LIRC-Dämonirsend SEND_ONCE /home/pi/lircd.conf KEY_VIDEO_PREV
quelle