LIRC tidak akan mengirim (irsend: perangkat keras tidak mendukung pengiriman)


11

Saya mencoba mengendalikan unit IR HVAC di rumah saya dengan Raspberry Pi 2 dan perisai inframerah (lihat di sini: http://bit.ly/29iC0lr ).

Saya mengikuti instruksi pada halaman produk pelindung IR dengan tips dari beberapa tempat lain dan menerima sinyal dari remote HVAC berfungsi dengan baik. Saya dapat membuat file .conf dan irsend melihat tombol yang saya konfigurasikan ketika saya menggunakan perintah LIST tetapi ketika saya mencoba SEND_ONCE, saya mendapatkan respons ini:

irsend: hardware does not support sending

Saya menghabiskan beberapa jam mencoba berbagai OS (termasuk piCore 6.1-v7 dan Raspbian Jesse 2016-05-27 dan 2015-11-21) dan dua versi LIRC (0.9.0 dan 0.9.4) tetapi selalu mendapatkan hasil yang sama.

Saya mengonfirmasi bahwa LED IR berfungsi menggunakan kamera digital dan skrip python yang mengoperasikan pin GPIO secara manual.

Adakah yang bisa mengarahkan saya ke arah yang benar untuk memecahkan masalah ini? Apakah ada cara untuk mengetahui mengapa LIRC tampaknya berpikir perangkat keras saya tidak memiliki pemancar?

Terima kasih sebelumnya.

Catatan: my /boot/config.txt menyertakan baris ini untuk lirc-rpi

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

[EDIT 7-7-2016] Berikut ini beberapa info tambahan, termasuk keluaran dari beberapa perintah di bagian Pemecahan Masalah di halaman ini: http://aron.ws/projects/lirc_rpi/ Output dari cat /sys/kernel/debug/gpiotidak terlihat benar tetapi saya tidak tahu. Aku tidak tahu harus bagaimana. : - \

Saya memiliki baris berikut di /etc/rc.local:

modprobe lirc_rpi gpio_in_pin=18 gpio_out_pins=17

Saya juga mencoba sedikit kode serupa di / etc / modules tetapi tidak ada bedanya.

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

Bisakah Anda mengedit pertanyaan dan memasukkan entri terkait LIRC yang telah Anda buat /boot/config.txt?
joan

Oke, saya memperbarui pertanyaannya.
gq9000

Pembaruan lain dengan beberapa info pemecahan masalah dari halaman proyek lirc_rpi. Sepertinya modul tidak mengalokasikan pin gpio dengan benar. Ada ide tentang cara memperbaikinya ??
gq9000

Bagaimana tepatnya Anda mengonfirmasi bahwa IR berfungsi? Bisakah Anda berbagi skrip python ini? Saya memiliki masalah yang sama, konfigurasi saya tampaknya baik-baik saja, membaca melalui mode2 berfungsi dengan baik, tetapi irsend masih memberi saya kesalahan ini.
m1gu3l

Saya tidak punya skrip lagi tapi mungkin kira-kira seperti ini: rpiblog.com/2012/09 /... Ubah saja skrip ini untuk menggunakan pin output (17), jalankan dan arahkan kamera digital atau kamera ponsel Anda di LED. Anda akan melihat cahaya putih samar berkedip di tengah LED.
gq9000

Jawaban:


10

Bagi saya langkah tambahan ini membantu:
mengedit /etc/lirc/lirc_options.confdan mengatur
driver = devinput
ke
driver = default
lalu reboot atau restart layanan lircd


4

Oke, saya menemukan jawabannya, atau lebih tepatnya seseorang yang jauh lebih tahu tentang Linux daripada saya ( /raspberrypi//users/49162/jonathan-dieter ) menemukannya. :)

Daripada memuat modul lirc_rpi di / etc / modules atau /etc/rc.local, ia menyarankan menambahkan file konfigurasi baru ke /etc/modprobe.d/ (dalam kasus saya /etc/modprobe.d/ir-remote.conf ) dengan baris berikut:

options lirc_rpi gpio_in_pin=18 gpio_out_pin=17

Tebakan terbaik saya mengapa ini membuat perbedaan adalah bahwa modul sedang memuat dengan pengaturan default SEBELUM perintah di / etc / modules atau rc.local ran. Karena sudah dimuat, sistem hanya mengabaikan upaya saya berikutnya dan pin keluar tidak pernah dikonfigurasi dengan benar (Ini di bawah Raspbian Jessie BTW).


Satu catatan lain tentang unit HVAC yang mungkin bisa membantu. Saya tidak dapat menggunakan irrecord untuk menyimpan perintah dari remote control. Tampaknya sistem HVAC bekerja sedikit berbeda dari TV atau VCR.

Dua halaman ini ( http://www.instructables.com/id/Reverse-engineering-of-an-Air-Conditioning-control/?ALLSTEPS dan http://absurdlycertain.blogspot.com/2013/03/lirc-raspi -remote-control-configuration.html khususnya dua komentar pertama) membantu saya mengetahui cara merekam output mentah dari mode2, menormalkannya dan kemudian mengirimkannya dengan irsend.


1

Setelah mengikuti panduan ini: http://www.raspberrypiwiki.com/index.php/Raspberry_Pi_IR_Control_Expansion_Board Saya mengalami masalah yang sama seperti yang dinyatakan dalam pertanyaan ini:

irsend: hardware does not support sending

Saya mencoba menambahkan baris ini:

options lirc_rpi gpio_in_pin=18 gpio_out_pin=17

di /etc/modprobe.d/ir-remote.conf, tapi itu tidak membantu.

Ketika saya memulai daemon LIRC dengan perintah berikut:

sudo lircd --device /dev/lirc0

itu berhasil! Perangkat harus sama dengan yang Anda konfigurasikan dalam file /etc/lirc/hardware.conf. Jadi langkah-langkahnya adalah:

  1. Ikuti panduan ini: http://www.raspberrypiwiki.com/index.php/Raspberry_Pi_IR_Control_Expansion_Board
  2. Ketika Anda datang ke bagian yang disebut "Fungsi Transmisi IR" poin 5. dan Anda mendapatkan kesalahan: irsend: hardware does not support sending
  3. Kemudian jalankan perintah berikut di konsol: sudo lircd --device /dev/lirc0untuk memulai daemon LIRC
  4. Sekarang jalankan irsend SEND_ONCE /home/pi/lircd.conf KEY_VIDEO_PREV

Saya memiliki hasil yang sama. Pemasangan default tidak berfungsi, tetapi itu berfungsi dengan perintah yang Anda berikan. Apakah Anda memiliki pemahaman mengapa ini benar? Saya ingin memodifikasi init.d sehingga perintah yang tepat dijalankan saat boot.
tim11g
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.