如何在 Ubuntu 上为 Raspberry Pi 设置 LIRC?

如何在 Ubuntu 上为 Raspberry Pi 设置 LIRC?

我安装了适用于 Raspberry Pi 的 Ubuntu Server 20.04.2 LTS在我的 Raspberry Pi 3 B+ 上。

$ uname -a
Linux ubuntu 5.4.0-1042-raspi #46-Ubuntu SMP PREEMPT Fri Jul 30 00:35:40 UTC 2021 aarch64 aarch64 aarch64 GNU/Linux
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.2 LTS
Release:        20.04
Codename:       focal

我安装了 LIRC 并尝试了以下操作本指南。我的目标是能够收到红外遥控命令。

我的/etc/lirc/lirc_options.conf文件:

[lircd]
nodaemon        = False
driver          = default
device          = /dev/lirc0
output          = /var/run/lirc/lircd
pidfile         = /var/run/lirc/lircd.pid
plugindir       = /usr/lib/aarch64-linux-gnu/lirc/plugins
permission      = 666
allow-simulate  = No
repeat-max      = 600

但是,没有/boot/config.txt文件(我的意思显然是,因为这是特定于 Raspberry Pi OS 的),所以我无法告诉 LIRC 使用哪个 GPIO 引脚,正如指南所述:

dtoverlay=gpio-ir,gpio_pin=17

我尝试重新启动,然后按照指南的建议:

$ sudo systemctl stop lircd.service
Warning: Stopping lircd.service, but it can still be activated by:
  lircd.socket
$ sudo systemctl stop lircd.socket
$ sudo mode2 -d /dev/lirc0
Using driver default on device /dev/lirc0
Cannot initiate device /dev/lirc0

设备/dev/lirc0甚至没有安装,ls /dev | grep lirc没有结果。我能做些什么让它工作吗?我不知道该怎么做,也找不到任何最近的指南。


额外信息:

  • 我在 GPIO 17 上使用 TSOP4838 红外接收器
  • 我能够使用 GPIO 从该接收器读取原始数据。引脚正确处于高电平,仅当我按下遥控器按钮时才接收低电平。我认为我需要 LIRC 来提供硬件支持,因为使用 Python 脚本实现遥控器 IR 协议并不可靠(或者说可靠?),因为您需要以完美的时间间隔进行读取。这是低级库或硬件 CLK 等的工作。
  • 附加问题:遥控器是 LG AKB73655802,这款特定遥控器是否有 LIRC 配置,还是我需要自己制作?

答案1

我今天遇到了类似的问题,将我的 Raspberry 操作系统从 Raspbian 切换到 Ubuntu Server。在搜索此问题的解决方案时,我偶然发现了这篇文章: https://forums.raspberrypi.com/viewtopic.php?t=302355

并将其调整到适合我的设置后,以下操作有效:

sudo vim /boot/firmware/usercfg.txt

并插入:

#output
dtoverlay=gpio-ir-tx,gpio_pin=24
#input
dtoverlay=gpio-ir,gpio_pin=23

相关内容