7

经过大量搜索后,我对如何为我的 RPi 项目设置红外遥控器的相互矛盾的信息感到惊讶和沮丧。我认为这很容易,但设置 Linux InfraRed Control (LIRC) 长期以来一直存在问题

但是在 2019 年 6 月,随着 Raspbian Buster 版本的发布,许多教程变得毫无价值,发生了很大变化。许多教程让您创建了一个 hardware.conf 文件,但 LIRC 不需要也不想要它,并且 lirc-rpi 模块已被 gpio-ir 模块取代。

那么如何使用 Raspbian(Buster)在 RPi 上设置 LIRC?

4

2 回答 2

12

此答案假设 RPi 正在运行 raspbian(版本 Buster Jun 2019)。还假设终端的工作知识、来自命令提示符的基本命令和编辑文本文件。

第 1 步:安装 lirc

1)打开终端窗口并安装LIRC。请注意,这可能会引发错误“无法启动灵活的 IR 远程输入/输出应用程序支持”,因为安装的文件现在附加了 .dist 并且必须删除后缀,如下所述。不难但令人沮丧。

$ sudo apt-get update
$ sudo apt-get install lirc

- - 不用担心!因为这可能会引发错误“无法启动灵活的 IR 远程输入/输出应用程序支持”,因为需要从 lirc_options.conf 中删除 .dist 后缀。只需复制文件,如图所示。

$ sudo cp /etc/lirc/lirc_options.conf.dist /etc/lirc/lirc_options.conf

2) 重新安装 lirc 现在 lirc_options.conf 文件已被重命名

$ sudo apt-get install lirc

第 2 步:编辑 lirc_options.conf

通过更改这两行来编辑 /etc/lirc/lirc_options.conf 如下:

:
:
driver = default
device = /dev/lirc0
:
:

第 3 步:执行复制以从 lircd.conf.dist 中删除 .dist 后缀

从 /etc/lirc/lircd.conf.dist 中删除后缀 .dist

$ sudo cp /etc/lirc/lircd.conf.dist /etc/lirc/lircd.conf

第 4 步:编辑 config.txt

通过在 lirc-rpi 模块部分添加一行来编辑 /boot/config.txt,如下所示。此示例假设 RPi 在 BCM 引脚 17 上为 IR 接收器“侦听”,但可以使用任何 RPi IO 引脚。我还没有尝试过,但是如果您想从 RPi 发送命令,请添加并取消注释第 4 行,如下所示以在 BCM 引脚 18 上发送 IR 命令

:
:
:
# Uncomment this to enable the lirc-rpi module
#dtoverlay=lirc-rpi
dtoverlay=gpio-ir,gpio_pin=17
#dtoverlay=gpio-ir-tx,gpio_pin=18
:
:
:

第 5 步:检查状态并重新启动

1) 停止、启动和检查lircd的状态,确保没有错误!

$ sudo systemctl stop lircd.service
$ sudo systemctl start lircd.service
$ sudo systemctl status lircd.service

2) 重启

$ sudo reboot

第 6 步:测试遥控器

此步骤假设您在 config.txt 中指定的引脚上连接到您的 RPi 的 IR 接收器。

1)停止LIRCD服务并使用mode2命令测试远程

$ sudo systemctl stop lircd.service
$ sudo mode2 -d /dev/lirc0

3) 将遥控器指向接收器并按下一些按钮。你应该看到这样的东西:

:
:
space
pulse
:
:

4) 按 Ctrl-C 退出

5) 您的 IR 接收器已设置好,可以继续进行第 2 部分并在 python 中访问。

于 2019-08-09T21:37:14.030 回答
0

上述解决方案不适用于Raspbian Buster Kernel 4.19. 我已经检查过了(Raspbian Buster 版本 2020-05-27)

但是,如果您只使用irsend发送 IR 信号的设备,它就可以正常工作。如果您想使用 、 或 命令接收和记录 IR 信号irrecord,则mode2需要一些人员。irwirexec

步骤 - 1:安装补丁以使用内核 4.19.X 和 gpio-ir 的 irrecord

sudo su -c "grep '^deb ' /etc/apt/sources.list | sed 's/^deb/deb-src/g' > /etc/apt/sources.list.d/deb-src.list"
sudo apt update
sudo apt install devscripts

Step - 2:如果你已经用apt安装了lirc,请按如下方式卸载

sudo apt remove lirc liblirc0 liblirc-client0

步骤 - 3:在 Raspbian Buster 中安装 gpio-ir 补丁

sudo apt install dh-exec doxygen expect libasound2-dev libftdi1-dev libsystemd-dev libudev-dev libusb-1.0-0-dev libusb-dev man2html-base portaudio19-dev socat xsltproc python3-yaml dh-python libx11-dev python3-dev python3-setuptools
mkdir build
cd build
apt source lirc
wget https://raw.githubusercontent.com/neuralassembly/raspi/master/lirc-gpio-ir-0.10.patch
patch -p0 -i lirc-gpio-ir-0.10.patch
cd lirc-0.10.1
debuild -uc -us -b
cd ..
sudo apt install ./liblirc0_0.10.1-5.2_armhf.deb ./liblircclient0_0.10.1-5.2_armhf.deb ./lirc_0.10.1-5.2_armhf.deb

注意:最终安装命令将失败。您必须配置/boot/config.txt/etc/lirc/lirc_options.conf文件。

步骤 - 4:编辑 /boot/config.txt

:
:
:
# Uncomment this to enable the lirc-rpi module
#dtoverlay=lirc-rpi
dtoverlay=gpio-ir,gpio_pin=17
#dtoverlay=gpio-ir-tx,gpio_pin=18
:
:
:

步骤 - 5:执行复制以从 lirc_options.conf.dist 和 lircd.conf.dist 中删除 .dist 后缀

sudo cp /etc/lirc/lirc_options.conf.dist /etc/lirc/lirc_options.conf
sudo cp /etc/lirc/lircd.conf.dist /etc/lirc/lircd.conf

步骤 - 6:重新安装

sudo apt install ./liblirc0_0.10.1-5.2_armhf.deb ./liblircclient0_0.10.1-5.2_armhf.deb ./lirc_0.10.1-5.2_armhf.deb 

步骤 - 7:编辑 /etc/lirc/lirc_options.conf

:
:
driver = default
device = /dev/lirc0
:
:

步骤 - 8:检查状态并重新启动

查看:

$ sudo systemctl stop lircd.service
$ sudo systemctl start lircd.service
$ sudo systemctl status lircd.service

重启:

$ sudo reboot

步骤 - 9:测试遥控器

$ sudo systemctl stop lircd.service
$ sudo mode2 -d /dev/lirc0

这是完整描述的参考

于 2020-06-13T10:31:14.787 回答