在网上折腾了一圈,试遍各种方法,Raspbian自带的lirc版本较高,使用起来方便一些,而Volumio里面的版本较低,添加设置的方法相似却不同,不过终于还是配置成功了
1、
首先自然是安装lirc
sudo apt-get update
sudo apt-get install lirc
很多方法里都有设置/etc/modules,然而并没用,不用折腾
2、
Volumio低版本lirc的配置文件
sudo nano /etc/lirc/hardware.conf
高版本Lirc的配置文件
sudo nano /etc/lirc/lirc_options.conf
将配置文件中相应部分修改为如下
driver =default
device =/dev/lirc0
3、
修改/boot/config.txt,在这一步之前要先检查gpio使用情况
sudo gpio readall
不要使用MODE是ALT0的GPIO端口
sudo nano /boot/config.txt
大部分配置案例中修改为lirc-rpi,然而volumio中并没有这个module
dtoverlay=lirc-rpi 不行~~
根据Raspbian的配置,按如下添加就成功了,第二行为ir的发射设置
dtoverlay=gpio-ir,gpio_pin=18
#dtoverlay=gpio-ir-tx,gpio_pin=17
如果使用了MODE为ALT0的端口,会导致gpio占用而影响其他设备无法使用,我加装了hifi
digi,未注意端口就导致设备无法使用,更换gpio_pin口立刻解决
保存后
reboot
之后查看lirc是否加载成功,端口是否开启
sudo dmesg | grep lirc
volumio@volumio-my:~$
sudo dmesg | grep lirc [sudo] password for volumio: [ 16.384967] rc
rc0: lirc_dev: driver gpio_ir_recv registered at minor = 0, raw IR
receiver, no transmitter
sudo cat /sys/kernel/debug/gpio
volumio@volumio-my:~$
sudo cat /sys/kernel/debug/gpio gpiochip0: GPIOs 0-53, parent:
platform/20200000.gpio, pinctrl-bcm2835: gpio-18 ( |ir-receiver@12
) in hi IRQ gpio-35 ( |led1 ) in hi gpio-47 ( |led0 ) out
lo
4、查看按键并学习红外发射器
irrecord --list-namespace | grep -i key_
选择一些需要使用的按键
KEY_PLAY KEY_STOP KEY_VIDEO_NEXT KEY_VIDEO_PREV KEY_VOLUMEUP KEY_VOLUMEDOWN KEY_MUTE
开始录制,程序会寻找遥控器的gap,然而并不是很重要,随便按,然后进入到key学习的部分,然而可能也无法正常学习,能保存就保存,不能保存就直接修改lircd.conf文件
录制遥控器
irrecord -f -d /dev/lirc0
修改遥控配置文件
sudo nano /etc/lirc/lircd.conf
# Please take the time to finish this file as described in
# https://sourceforge.net/p/lirc-remotes/wiki/Checklist/
# and make it available to others by sending it to
#
#
# This config file was automatically generated
# using lirc-0.10.1(default) on Mon Oct 14 14:10:56 2019
# Command line used: -f
# Kernel version (uname -r): 4.19.75+
#
# Remote name (as of config file): VOLUMIO
# Brand of remote device, the thing you hold in your hand:
# Remote device model nr:
# Remote device info url:
# Does remote device has a bundled capture device e. g., a
# usb dongle? :
# For bundled USB devices: usb vendor id, product id
# and device string (use dmesg or lsusb):
# Type of device controlled
# (TV, VCR, Audio, DVD, Satellite, Cable, HTPC, ...) :
# Device(s) controlled by this remote:
begin remote
name VOLUMIO
flags RAW_CODES
eps 30
aeps 100
gap 19991
begin raw_codes
name KEY_PLAY
8852 4515 495 616 477 671
503 609 505 621 493 617
483 666 522 585 514 609
502 1737 469 1736 479 1735
485 1741 467 1764 468 1740
472 1741 464 1780 467 703
444 625 470 667 528 1678
471 640 480 641 468 1787
457 640 479 1736 470 1768
473 1739 477 643 484 1765
444 1761 470 648 472 1738
441
name KEY_STOP
8847 4513 468 645 468 671
493 627 475 644 476 642
445 695 474 643 494 638
487 1732 451 1813 449 1718
471 1742 485 1751 476 1735
473 1749 457 1769 473 641
494 1721 469 1766 473 645
477 647 473 642 469 1772
479 639 475 1769 443 667
474 648 467 1747 468 1737
472 1762 497 619 530 1692
457
name KEY_PAUSE
8859 4519 452 642 501 640
479 640 478 646 475 654
494 634 475 651 476 646
473 1772 439 1758 475 1748
458 1737 488 1751 477 1732
476 1738 469 1768 477 1735
482 1733 468 1765 476 1750
471 644 469 667 450 1763
472 649 482 694 406 673
588 562 451 636 490 1737
464 1745 481 638 476 1741
467
name KEY_VIDEO_NEXT
8875 4478 502 635 457 668
496 626 499 616 501 619
467 673 498 620 500 619
500 1740 442 1781 493 1717
504 1722 467 1747 491 1711
499 1732 449 1769 501 1708
501 620 468 1764 500 621
527 590 499 646 442 1766
502 618 500 620 469 1766
471 654 495 1718 503 1740
463 1739 503 652 466 1733
439
name KEY_VIDEO_PREV
8872 4510 476 636 500 640
474 644 480 641 477 645
467 673 476 641 482 638
475 1748 467 1772 470 1735
496 1710 477 1757 494 1715
475 1736 467 1763 478 639
480 1749 493 635 473 1742
527 1684 475 644 469 1768
476 642 485 1739 464 674
480 1733 470 647 488 649
446 1769 491 619 550 1663
470
name KEY_VOLUMEUP
8850 4506 477 646 495 643
476 652 468 641 477 651
463 671 475 642 478 646
472 1740 468 1774 472 1746
502 1697 469 1775 500 1706
478 1796 403 1772 472 638
476 649 466 670 447 671
477 1759 453 648 466 1763
477 640 478 1750 511 1721
469 1742 477 1754 480 624
456 1776 469 650 471 1747
450
name KEY_VOLUMEDOWN
8879 4497 474 644 497 643
475 642 479 643 483 635
467 671 475 642 478 642
474 1743 466 1767 476 1745
470 1745 471 1798 433 1745
463 1737 488 1747 476 638
483 1734 468 1763 476 1740
487 632 474 647 467 1764
477 641 476 1742 466 670
477 644 487 639 472 1749
465 1767 463 643 471 1743
464
name KEY_MUTE
8868 4489 476 642 498 640
475 649 474 639 478 648
494 639 479 641 479 640
476 1735 469 1777 473 1740
528 1762 384 1770 477 1727
494 1718 496 1735 480 1731
511 618 493 1737 542 573
480 1733 476 642 470 1778
475 632 477 642 499 1746
476 636 478 1748 460 668
471 1745 475 658 488 1709
492
name KEY_POWER2
8953 4410 563 556 503 637
559 558 569 551 567 553
504 641 560 553 590 537
566 1659 544 1682 637 1566
561 1650 545 1688 591 1619
572 1645 502 1730 567 549
578 545 503 650 522 1677
567 551 565 555 502 637
565 552 568 1655 499 1743
526 1678 597 535 555 1643
527 1705 563 1642 565 1666
495
end raw_codes
end remote
name后对应键名,键名以下为按键对应红外码,通过以下方式可以获得正确值,只需轻按一下键,不要长按,可以多按几次观察相似码段
# -m --mode 使用行列显示模式,不显示pulse、space
mode2 -m -d /dev/lirc0
配置完成后,重启服务
sudo /etc/init.d/lirc restart
测试录制下来的指令
sudo lircd -d /dev/lirc0
sudo irw
按对应的按键,屏幕会有对应输出,如果无输出则码设定有问题
5、配置按键对应指令
sudo pico ~/.lircrc
根据需求添加相应按键的功能,并保存
begin
prog = irexec
button = KEY_PLAY
config = volumio toggle
end
begin
prog = irexec
button = KEY_PAUSE
config = volumio pause
end
begin
prog = irexec
button = KEY_STOP
config = volumio stop
end
begin
prog = irexec
button = KEY_VIDEO_NEXT
config = volumio next
end
begin
prog = irexec
button = KEY_VIDEO_PREV
config = volumio prev
end
begin
prog = irexec
button = KEY_VOLUMEUP
config = volumio volume plus
end
begin
prog = irexec
button = KEY_VOLUMEDOWN
config = volumio volume minus
end
begin
prog = irexec
button = KEY_MUTE
config = volumio volume toggle
end
begin
prog = irexec
button = KEY_POWER2
config = sudo shutdown -h now
end
保存完毕,重启服务
sudo /etc/init.d/lirc restart
sudo lircd -d /dev/lirc0
sudo irexec -d ~/.lircrc
此时可以控制Volumio了
测试完成
修改/etc/rc.local
sudo nano /etc/rc.local
在exit0前添加如下内容
(sleep 3;
sudo lircd -d /dev/lirc0
sudo -u volumio irexec -d ~/.lircrc
)&
exit 0
大功告成
reboot
The END