LIRC не передает (irsend: аппаратное обеспечение не поддерживает отправку)

11

Я пытаюсь управлять блоком IR HVAC в моем доме с помощью Raspberry Pi 2 и инфракрасного экрана (см. Здесь: http://bit.ly/29iC0lr ).

Я следовал инструкциям на странице продукта ИК-щита с советами из нескольких других мест, и прием сигналов с пульта HVAC прекрасно работает. Мне удалось создать файл .conf, и я вижу, какие кнопки я настроил, когда использую команду LIST, но при попытке SEND_ONCE я получаю следующий ответ:

irsend: hardware does not support sending

Я потратил несколько часов, пробуя различные ОС (включая piCore 6.1-v7 и Raspbian Jesse 2016-05-27 и 2015-11-21) и две версии LIRC (0.9.0 и 0.9.4), но всегда получал один и тот же результат.

Я подтвердил, что ИК-светодиод работает с использованием цифровой камеры и скрипта Python, который вручную управляет выводом GPIO.

Может ли кто-нибудь указать мне правильное направление для устранения этой проблемы? Есть ли способ узнать, почему LIRC считает, что у моего оборудования нет передатчика?

Заранее спасибо.

Примечание: мой /boot/config.txt включает эту строку для lirc-rpi

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

[РЕДАКТИРОВАТЬ 7-7-2016] Вот некоторая дополнительная информация, включая вывод нескольких команд в разделе «Устранение неполадок» на этой странице: http://aron.ws/projects/lirc_rpi/ Вывод cat /sys/kernel/debug/gpioне выглядит правильным, но я не не знаю, что с этим делать. : - \

У меня есть следующая строка в /etc/rc.local:

modprobe lirc_rpi gpio_in_pin=18 gpio_out_pins=17

Я также попробовал подобный фрагмент кода в / etc / modules, но это не имело никакого значения.

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
источник
Не могли бы вы отредактировать вопрос и включить в него записи, связанные с LIRC /boot/config.txt?
Джоан
Хорошо, я обновил вопрос.
gq9000
Еще одно обновление с информацией об устранении неполадок со страницы проекта lirc_rpi. Похоже, модуль неправильно распределяет контакты GPIO. Любые идеи о том, как это исправить ??
gq9000
Как именно вы подтвердили, что ИК работает? Не могли бы вы поделиться этим скриптом Python? У меня та же проблема, моя конфигурация, кажется, в порядке, чтение через mode2 работает нормально, но irsend все еще дает мне эту ошибку.
m1gu3l
У меня больше нет сценария, но, вероятно, он был примерно таким: rpiblog.com/2012/09/… Просто измените этот сценарий, чтобы использовать выводной штифт (17), запустите его и укажите цифровую камеру или камеру вашего мобильного телефона. на светодиод. Вы должны увидеть слабый белый свет, мигающий в центре светодиода.
gq9000

Ответы:

10

Для меня это еще один шаг помог:
редактировать /etc/lirc/lirc_options.confи набор
driver = devinput
для
driver = default
последующей перезагрузкой или перезапустить службу lircd

Микк
источник
4

Хорошо, я нашел ответ, точнее, кто-то, кто гораздо лучше осведомлен о Linux, чем я ( /raspberrypi//users/49162/jonathan-dieter ) нашел его. :)

Вместо загрузки модуля lirc_rpi в / etc / modules или /etc/rc.local он предложил добавить новый файл конфигурации в /etc/modprobe.d/ (в моем случае /etc/modprobe.d/ir-remote.conf ) со следующей строкой:

options lirc_rpi gpio_in_pin=18 gpio_out_pin=17

Мое лучшее предположение относительно того, почему это имело значение, состоит в том, что модуль загружался с настройками по умолчанию ПЕРЕД командой в / etc / modules или rc.local. Поскольку он уже был загружен, система просто проигнорировала мою последующую попытку, и вывод вывода никогда не был настроен правильно (это под Raspbian Jessie BTW).


Еще одно замечание о блоке HVAC, которое может быть полезным. Я не смог использовать irrecord для сохранения команд с пульта дистанционного управления. Кажется, что системы HVAC работают немного иначе, чем телевизор или видеомагнитофон.

Эти две страницы ( http://www.instructables.com/id/Reverse-engineering-of-an-Air-Conditioning-control/?ALLSTEPS и http://absurdlysure.blogspot.com/2013/03/lirc-raspi -remote-control-configuration.html, особенно первые два комментария, помогли мне понять, как записать необработанный вывод из mode2, нормализовать его, а затем передать его с помощью irsend.

gq9000
источник
1

После следования этому руководству: http://www.raspberrypiwiki.com/index.php/Raspberry_Pi_IR_Control_Expansion_Board Я столкнулся с той же проблемой, как указано в этом вопросе:

irsend: hardware does not support sending

Я попытался добавить эту строку:

options lirc_rpi gpio_in_pin=18 gpio_out_pin=17

в /etc/modprobe.d/ir-remote.conf, но это тоже не помогло.

Когда я запустил демон LIRC с помощью следующей команды:

sudo lircd --device /dev/lirc0

это сработало! Устройство должно быть таким же, как вы настроили в файле /etc/lirc/hardware.conf. Итак, шаги:

  1. Следуйте этому руководству: http://www.raspberrypiwiki.com/index.php/Raspberry_Pi_IR_Control_Expansion_Board
  2. Когда вы заходите в раздел под названием «Функция ИК-передачи», пункт 5., и вы получаете ошибку: irsend: hardware does not support sending
  3. Затем выполните в консоли следующую команду: sudo lircd --device /dev/lirc0запустить демон LIRC
  4. Теперь беги irsend SEND_ONCE /home/pi/lircd.conf KEY_VIDEO_PREV
Игорь
источник
У меня такие же результаты. Установка по умолчанию не работает, но она работает с предоставленной вами командой. Есть ли у вас понимание того, почему это правда? Я хотел бы изменить init.d, чтобы при загрузке запускалась правильная команда.
Тим11г