forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
2.9 KiB
76 lines
2.9 KiB
.. SPDX-License-Identifier: GPL-2.0 |
|
|
|
====================================================== |
|
Infrared remote control support in video4linux drivers |
|
====================================================== |
|
|
|
Authors: Gerd Hoffmann, Mauro Carvalho Chehab |
|
|
|
Basics |
|
====== |
|
|
|
Most analog and digital TV boards support remote controllers. Several of |
|
them have a microprocessor that receives the IR carriers, convert into |
|
pulse/space sequences and then to scan codes, returning such codes to |
|
userspace ("scancode mode"). Other boards return just the pulse/space |
|
sequences ("raw mode"). |
|
|
|
The support for remote controller in scancode mode is provided by the |
|
standard Linux input layer. The support for raw mode is provided via LIRC. |
|
|
|
In order to check the support and test it, it is suggested to download |
|
the `v4l-utils <https://git.linuxtv.org/v4l-utils.git/>`_. It provides |
|
two tools to handle remote controllers: |
|
|
|
- ir-keytable: provides a way to query the remote controller, list the |
|
protocols it supports, enable in-kernel support for IR decoder or |
|
switch the protocol and to test the reception of scan codes; |
|
|
|
- ir-ctl: provide tools to handle remote controllers that support raw mode |
|
via LIRC interface. |
|
|
|
Usually, the remote controller module is auto-loaded when the TV card is |
|
detected. However, for a few devices, you need to manually load the |
|
ir-kbd-i2c module. |
|
|
|
How it works |
|
============ |
|
|
|
The modules register the remote as keyboard within the linux input |
|
layer, i.e. you'll see the keys of the remote as normal key strokes |
|
(if CONFIG_INPUT_KEYBOARD is enabled). |
|
|
|
Using the event devices (CONFIG_INPUT_EVDEV) it is possible for |
|
applications to access the remote via /dev/input/event<n> devices. |
|
The udev/systemd will automatically create the devices. If you install |
|
the `v4l-utils <https://git.linuxtv.org/v4l-utils.git/>`_, it may also |
|
automatically load a different keytable than the default one. Please see |
|
`v4l-utils <https://git.linuxtv.org/v4l-utils.git/>`_ ir-keytable.1 |
|
man page for details. |
|
|
|
The ir-keytable tool is nice for trouble shooting, i.e. to check |
|
whenever the input device is really present, which of the devices it |
|
is, check whenever pressing keys on the remote actually generates |
|
events and the like. You can also use any other input utility that changes |
|
the keymaps, like the input kbd utility. |
|
|
|
|
|
Using with lircd |
|
---------------- |
|
|
|
The latest versions of the lircd daemon supports reading events from the |
|
linux input layer (via event device). It also supports receiving IR codes |
|
in lirc mode. |
|
|
|
|
|
Using without lircd |
|
------------------- |
|
|
|
Xorg recognizes several IR keycodes that have its numerical value lower |
|
than 247. With the advent of Wayland, the input driver got updated too, |
|
and should now accept all keycodes. Yet, you may want to just reassign |
|
the keycodes to something that your favorite media application likes. |
|
|
|
This can be done by setting |
|
`v4l-utils <https://git.linuxtv.org/v4l-utils.git/>`_ to load your own |
|
keytable in runtime. Please read ir-keytable.1 man page for details.
|
|
|