lirc mysteriously stopped working when I upgraded to kernel 4.19.66-v7+ on my Raspberry Pi a while back. After an initial battle that lead to no success, I let it collect dust until this fateful night when she returned to her full functionality.
The kernel module
lirc_rpi has been replaced with two modules:
gpio_ir_recv (for receiving) and
gpio_ir_tx (for sending, naturally). There are handful of configurations that need to point to and load the new modules.
- GPIO 22 for IR transmission.
- lircd 0.9.4c
- kernel 4.19.66-v7+
- Raspbian GNU/Linux 9 (stretch)
Replace lirc-rpi with gpio-ir-tx. Take note that gpio_out_pin is now gpio_pin (see
/boot/overlays/README for more info [search for gpio-ir-tx]).
Replace loading of lirc_rpi with gpio_ir_tx.
Remove lirc_* in /etc/modules (or comment out).
I had my remote configurations in lircd.conf and the upgrade to kernel 4.19. These were blown away, unfortunately. Fortunately, I had copies elsewhere. The new
lircd.conf contains a single line that loads in all
.conf files in
/etc/lirc/lircd.conf.d/. I copied my remote conf files here and called it good (just in case another update blows things away =]
This file was unnecessary for my setup so I renamed it so it would not be loaded. See
/etc/lirc/lircd.conf.d/README.conf.d for more info.
mv devinput.lircd.conf devinput.lircd.conf.dist
- If you need IR receive functionality, the
dtoverlay will be
gpio-ir (and not
gpio-ir-recv, like the module). See
/boot/overlays/README for more information. Also see
modinfo gpio-ir-recv and
modinfo gpio-ir-tx for more info.