LIRC จะไม่ส่งสัญญาณ (irsend: ฮาร์ดแวร์ไม่รองรับการส่ง)


11

ฉันพยายามควบคุม IR HVAC ในบ้านของฉันด้วย Raspberry Pi 2 และอุปกรณ์ป้องกันอินฟราเรด (ดูที่นี่: http://bit.ly/29iC0lr )

ฉันทำตามคำแนะนำในหน้าผลิตภัณฑ์ป้องกัน IR พร้อมด้วยเคล็ดลับจากที่อื่นและรับสัญญาณจากรีโมท HVAC ใช้งานได้ดี ฉันสามารถสร้างไฟล์. conf และไม่เห็นปุ่มที่ฉันกำหนดค่าเมื่อฉันใช้คำสั่ง LIST แต่เมื่อฉันลอง SEND_ONCE ฉันจะได้รับการตอบกลับนี้:

irsend: hardware does not support sending

ฉันใช้เวลาหลายชั่วโมงในการลองใช้ OS ต่าง ๆ (รวมถึง piCore 6.1-v7 และ Raspbian Jesse 2016-05-27 และ 2015-11-21) และ LIRC สองเวอร์ชัน (0.9.0 และ 0.9.4) แต่ได้ผลลัพธ์เดียวกันเสมอ

ฉันยืนยันว่า IR LED ทำงานโดยใช้กล้องดิจิตอลและสคริปต์ python ที่ใช้งาน GPIO pin ด้วยตนเอง

ทุกคนสามารถชี้ให้ฉันในทิศทางที่ถูกต้องเพื่อแก้ไขปัญหานี้หรือไม่? มีวิธีใดบ้างที่จะทราบว่าเหตุใด 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

คุณสามารถแก้ไขคำถามและรวมรายการที่เกี่ยวข้องกับ LIRC ที่คุณทำไว้ได้/boot/config.txtหรือไม่?
joan

ตกลงฉันอัปเดตคำถาม
gq9000

อัปเดตอีกครั้งพร้อมข้อมูลการแก้ไขปัญหาเบื้องต้นจากหน้าโครงการ lirc_rpi ดูเหมือนว่าโมดูลจะจัดสรรพิน gpio ไม่ถูกต้อง ความคิดใด ๆ เกี่ยวกับวิธีการแก้ไขที่?
gq9000

คุณยืนยันว่า IR ทำงานอย่างไร คุณกรุณาแบ่งปันสคริปต์หลามนี้ได้ไหม ฉันมีปัญหาเดียวกันการกำหนดค่าของฉันดูเหมือนว่าไม่เป็นไรการอ่านผ่าน mode2 ทำงานได้ดี แต่ก็ยังทำให้ฉันมีข้อผิดพลาดนี้
m1gu3l

ฉันไม่มีสคริปต์อีกต่อไป แต่อาจเป็นเช่นนี้: rpiblog.com/2012/09/… เพียงแค่เปลี่ยนสคริปต์นี้เพื่อใช้ขาออก (17) เรียกใช้แล้วชี้กล้องดิจิทัลหรือกล้องโทรศัพท์มือถือของคุณ ที่ LED คุณควรเห็นแสงสีขาวจาง ๆ กระพริบที่กึ่งกลางของ LED
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 เขาแนะนำให้เพิ่มไฟล์ config ใหม่ไปยัง /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 ทำงานแตกต่างจากทีวีหรือ VCR เล็กน้อย

สองหน้านี้ ( http://www.instructables.com/id/Reverse-engineering-of-an-Air-Conditioning-control/?ALLSTEPSและhttp://absurdlycertain.blogspot.com/2013/03/lirc-raspi -remote-control-configuration.htmlโดยเฉพาะความคิดเห็นสองข้อแรก) ช่วยฉันหาวิธีการบันทึกเอาท์พุทดิบจาก mode2, ทำให้เป็นมาตรฐานและส่งด้วย irsend


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 daemon ด้วยคำสั่งต่อไปนี้:

sudo lircd --device /dev/lirc0

มันใช้งานได้! อุปกรณ์ต้องเหมือนกันกับที่คุณกำหนดค่าในไฟล์ /etc/lirc/hardware.conf ดังนั้นขั้นตอนคือ:

  1. ทำตามคำแนะนำนี้: http://www.raspberrypiwiki.com/index.php/Raspberry_Pi_IR_Control_Expansion_Board
  2. เมื่อคุณมาถึงส่วนที่เรียกว่า "ฟังก์ชั่นการส่งสัญญาณ IR" จุดที่ 5 และคุณได้รับข้อผิดพลาด: irsend: hardware does not support sending
  3. จากนั้นรันคำสั่งต่อไปนี้ในคอนโซล: sudo lircd --device /dev/lirc0เพื่อเริ่ม LIRC daemon
  4. ตอนนี้ทำงาน irsend SEND_ONCE /home/pi/lircd.conf KEY_VIDEO_PREV

ฉันมีผลลัพธ์เหมือนกัน การติดตั้งเริ่มต้นไม่ทำงาน แต่ทำงานได้กับคำสั่งที่คุณระบุ คุณเข้าใจไหมว่าทำไมเรื่องนี้ถึงเป็นจริง ฉันต้องการแก้ไข init.d ดังนั้นคำสั่งที่ถูกต้องจะถูกเรียกใช้ตอนบูต
tim11g
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.