我安装了适用于 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