LIRC sẽ không truyền (irsend: phần cứng không hỗ trợ gửi)


11

Tôi đang cố gắng điều khiển một đơn vị IR HVAC trong nhà tôi bằng Raspberry Pi 2 và tấm chắn hồng ngoại (xem tại đây: http://bit.ly/29iC0lr ).

Tôi đã làm theo các hướng dẫn trên trang sản phẩm lá chắn IR với các mẹo từ một vài nơi khác và nhận được tín hiệu từ điều khiển từ xa HVAC hoạt động rất tốt. Tôi đã có thể tạo tệp .conf và không thấy các nút tôi đã định cấu hình khi tôi sử dụng lệnh LIST nhưng khi tôi thử SEND_ONCE, tôi nhận được phản hồi này:

irsend: hardware does not support sending

Tôi đã dành vài giờ để thử các hệ điều hành khác nhau (bao gồm piCore 6.1-v7 và Raspbian Jesse 2016-05-27 và 2015-11-21) và hai phiên bản LIRC (0.9.0 và 0.9.4) nhưng luôn nhận được kết quả tương tự.

Tôi xác nhận rằng IR LED đang hoạt động bằng máy ảnh kỹ thuật số và tập lệnh python vận hành thủ công pin GPIO.

Bất cứ ai có thể chỉ cho tôi đi đúng hướng để khắc phục sự cố này? Có cách nào để tìm hiểu tại sao LIRC dường như nghĩ rằng phần cứng của tôi không có máy phát không?

Cảm ơn trước.

Lưu ý: /boot/config.txt của tôi bao gồm dòng này cho lirc-rpi

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

[EDIT 7-7-2016] Đây là một số thông tin bổ sung, bao gồm đầu ra từ một số lệnh trong phần Xử lý sự cố trên trang này: http://aron.ws/projects/lirc_rpi/ Đầu ra của cat /sys/kernel/debug/gpiokhông đúng nhưng tôi không ' t biết phải làm gì về nó : - \

Tôi có dòng sau trong /etc/rc.local:

modprobe lirc_rpi gpio_in_pin=18 gpio_out_pins=17

Tôi cũng đã thử một chút mã tương tự trong / etc / mô-đun nhưng nó không tạo ra sự khác biệt nào.

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

Bạn có thể chỉnh sửa câu hỏi và bao gồm các mục liên quan đến LIRC mà bạn đã thực hiện /boot/config.txtkhông?
gia

Được rồi, tôi cập nhật câu hỏi.
gq9000

Một bản cập nhật khác với một số thông tin khắc phục sự cố từ trang dự án của lirc_rpi. Có vẻ như mô-đun không phân bổ chính xác các chân gpio. Bất kỳ ý tưởng về cách khắc phục điều đó ??
gq9000

Làm thế nào chính xác bạn đã xác nhận rằng IR đang làm việc? Bạn có thể vui lòng chia sẻ kịch bản python này? Tôi có cùng một vấn đề, cấu hình của tôi có vẻ ổn, đọc qua mode2 hoạt động tốt, nhưng irsend vẫn cho tôi lỗi này.
m1gu3l

Tôi không có tập lệnh nữa nhưng có lẽ là như thế này: rpiblog.com/2012/09/NH Chỉ cần thay đổi tập lệnh này để sử dụng mã pin đầu ra (17), chạy nó và chỉ một máy ảnh kỹ thuật số hoặc máy ảnh điện thoại di động của bạn tại đèn LED. Bạn sẽ thấy một ánh sáng trắng mờ nhấp nháy ở trung tâm của đèn LED.
gq9000

Câu trả lời:


10

Đối với tôi bước bổ sung này giúp:
chỉnh sửa /etc/lirc/lirc_options.confvà thiết lập
driver = devinput
để
driver = default
rồi khởi động lại hoặc khởi động lại dịch vụ lircd


4

Được rồi, tôi đã tìm thấy câu trả lời, hay đúng hơn là một người am hiểu về Linux hơn tôi ( /raspberrypi//users/49162/jonathan-dieter ) đã tìm thấy nó. :)

Thay vì tải mô-đun lirc_rpi trong / etc / mô-đun hoặc /etc/rc.local, ông đề nghị thêm tệp cấu hình mới vào /etc/modprobe.d/ (trong trường hợp của tôi /etc/modprobe.d/ir-remote.conf ) với dòng sau:

options lirc_rpi gpio_in_pin=18 gpio_out_pin=17

Dự đoán tốt nhất của tôi về lý do tại sao điều này tạo ra sự khác biệt là mô-đun đang tải với cài đặt mặc định TRƯỚC KHI lệnh trong / etc / mô-đun hoặc RC.local chạy. Vì nó đã được tải, hệ thống chỉ cần bỏ qua lần thử tiếp theo của tôi và pin out không bao giờ được cấu hình chính xác (Điều này nằm dưới Raspbian Jessie BTW).


Một lưu ý khác về đơn vị HVAC có thể hữu ích. Tôi không thể sử dụng irrecord để lưu các lệnh từ điều khiển từ xa. Có vẻ như các hệ thống HVAC hoạt động hơi khác so với TV hoặc VCR.

Hai trang này ( http://www.instructables.com/id/Reverse-engineering-of-an-Air-Conditioning-control/?ALLSTEPShttp://absurdlycertain.blogspot.com/2013/03/lirc-raspi -remote-control-configure.html đặc biệt là hai bình luận đầu tiên) đã giúp tôi tìm ra cách ghi lại đầu ra thô từ mode2, chuẩn hóa nó và sau đó truyền nó với irsend.


1

Sau khi làm theo hướng dẫn này: http://www.raspberrypiwiki.com/index.php/Raspberry_Pi_IR_Control_Expansion_Board Tôi gặp phải vấn đề tương tự như đã nêu trong câu hỏi này:

irsend: hardware does not support sending

Tôi đã thử thêm dòng này:

options lirc_rpi gpio_in_pin=18 gpio_out_pin=17

trong /etc/modprobe.d/ir-remote.conf, nhưng điều đó cũng không giúp được gì.

Khi tôi khởi động LIRC daemon bằng lệnh sau:

sudo lircd --device /dev/lirc0

nó đã làm việc! Thiết bị cần phải giống như bạn đã cấu hình trong tệp /etc/lirc/hardware.conf. Vì vậy, các bước là:

  1. Thực hiện theo hướng dẫn này: http://www.raspberrypiwiki.com/index.php/Raspberry_Pi_IR_Control_Expansion_Board
  2. Khi bạn đến phần có tên "Chức năng truyền hồng ngoại" điểm 5. và bạn gặp lỗi: irsend: hardware does not support sending
  3. Sau đó chạy lệnh sau trong console: sudo lircd --device /dev/lirc0để khởi động LIRC daemon
  4. Bây giờ chạy irsend SEND_ONCE /home/pi/lircd.conf KEY_VIDEO_PREV

Tôi có kết quả tương tự. Cài đặt mặc định không hoạt động, nhưng nó hoạt động với lệnh bạn đã cung cấp. Bạn có hiểu tại sao điều này là đúng không? Tôi muốn sửa đổi init.d để lệnh thích hợp được chạy khi khởi động.
tim11g
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.