在 Unbuntu 20.04 上,我想配置 lirc 以通过串行端口进行红外发射。但最新的 Linux 内核似乎缺少必要的“lirc_serial.ko”模块(至少从 Linux 4.15 开始就缺少该模块)。
我发现了许多关于使用串行端口配置 lirc 的说明,但它们似乎都非常过时,并且依赖于“lirc_serial.ko”的存在。
如何将必要的“lirc_serial.ko”模块添加到我的系统?我找到了一个“serial_ir.ko”模块,但我认为它不一样。我必须自己构建 lirc 吗?
答案1
在最近的 Ubuntu 版本中,lirc 的大部分功能已被移至内核。
因此,您需要卸载 lirc 并确保已ir-keytable
安装。然后,输入terminal
以man ir-keytable
开始。
插入远程加密狗,然后在 中terminal
输入ir-keytable
,这将为您提供入门所需的基本信息。然后使用ir-keytable -t
获取/查看您的扫描代码。您将在 中保存一个键盘映射/etc/rc_keymaps
(您可以从 中获取预建的键盘映射文件/lib/udev/rc_keymaps/
),并/etc/rc_maps.cfg
根据需要进行编辑。
如果你用 Google 搜索,ir-keytable
你会找到很多可以帮助你的操作方法文章。请参阅http://madaboutbrighton.net/articles/2015/remote-control-media-player-without-lirc-using-ir-keymap
答案2
感谢 Arch Linux 的朋友们,我成立在最新的内核(从 4.9 开始)中,该选项lirc_serial
已被删除,取而代之的是serial_ir
我必须将以下文件添加/etc/modprobe.conf/serial-ir.conf
到配置中serial_ir
以使用所需端口,其内容如下:
options serial_ir irq=4 io=0x3f8 #COM1 equivalent, /dev/ttyS0
install serial_ir /usr/bin/setserial /dev/ttyS0 uart none;/usr/sbin/modprobe --ignore-install serial_ir
options
行定义要使用的端口(例如 COM1、/dev/ttyS0)install
行指示内核放弃相关端口的控制
只需创建以下内容serial_ir
即可加载模块:/etc/module-load.d/serial_ir.conf
serial_ir
或者
在lirc
v10+ 中,通过将以下内容添加到文件lirc_options.conf
:
[modinit]
code = /usr/sbin/modprobe serial_ir
或者在lirc
v9 中,通过扩展文件TRANSMITTER_MODULE
中的变量hardware.conf
,如下所示:
TRANSMITTER_MODULES="...serial_ir"
...
文件中已指定的其他模块在哪里。