1 .. SPDX-License-Identifier: GPL-2.0 1 .. SPDX-License-Identifier: GPL-2.0 2 2 3 ============================================== 3 ====================================================== 4 Infrared remote control support in video4linux 4 Infrared remote control support in video4linux drivers 5 ============================================== 5 ====================================================== 6 6 7 Authors: Gerd Hoffmann, Mauro Carvalho Chehab 7 Authors: Gerd Hoffmann, Mauro Carvalho Chehab 8 8 9 Basics 9 Basics 10 ====== 10 ====== 11 11 12 Most analog and digital TV boards support remo 12 Most analog and digital TV boards support remote controllers. Several of 13 them have a microprocessor that receives the I 13 them have a microprocessor that receives the IR carriers, convert into 14 pulse/space sequences and then to scan codes, 14 pulse/space sequences and then to scan codes, returning such codes to 15 userspace ("scancode mode"). Other boards retu 15 userspace ("scancode mode"). Other boards return just the pulse/space 16 sequences ("raw mode"). 16 sequences ("raw mode"). 17 17 18 The support for remote controller in scancode 18 The support for remote controller in scancode mode is provided by the 19 standard Linux input layer. The support for ra 19 standard Linux input layer. The support for raw mode is provided via LIRC. 20 20 21 In order to check the support and test it, it 21 In order to check the support and test it, it is suggested to download 22 the `v4l-utils <https://git.linuxtv.org/v4l-ut 22 the `v4l-utils <https://git.linuxtv.org/v4l-utils.git/>`_. It provides 23 two tools to handle remote controllers: 23 two tools to handle remote controllers: 24 24 25 - ir-keytable: provides a way to query the rem 25 - ir-keytable: provides a way to query the remote controller, list the 26 protocols it supports, enable in-kernel supp 26 protocols it supports, enable in-kernel support for IR decoder or 27 switch the protocol and to test the receptio 27 switch the protocol and to test the reception of scan codes; 28 28 29 - ir-ctl: provide tools to handle remote contr 29 - ir-ctl: provide tools to handle remote controllers that support raw mode 30 via LIRC interface. 30 via LIRC interface. 31 31 32 Usually, the remote controller module is auto- 32 Usually, the remote controller module is auto-loaded when the TV card is 33 detected. However, for a few devices, you need 33 detected. However, for a few devices, you need to manually load the 34 ir-kbd-i2c module. 34 ir-kbd-i2c module. 35 35 36 How it works 36 How it works 37 ============ 37 ============ 38 38 39 The modules register the remote as keyboard wi 39 The modules register the remote as keyboard within the linux input 40 layer, i.e. you'll see the keys of the remote 40 layer, i.e. you'll see the keys of the remote as normal key strokes 41 (if CONFIG_INPUT_KEYBOARD is enabled). 41 (if CONFIG_INPUT_KEYBOARD is enabled). 42 42 43 Using the event devices (CONFIG_INPUT_EVDEV) i 43 Using the event devices (CONFIG_INPUT_EVDEV) it is possible for 44 applications to access the remote via /dev/inp 44 applications to access the remote via /dev/input/event<n> devices. 45 The udev/systemd will automatically create the 45 The udev/systemd will automatically create the devices. If you install 46 the `v4l-utils <https://git.linuxtv.org/v4l-ut 46 the `v4l-utils <https://git.linuxtv.org/v4l-utils.git/>`_, it may also 47 automatically load a different keytable than t 47 automatically load a different keytable than the default one. Please see 48 `v4l-utils <https://git.linuxtv.org/v4l-utils. 48 `v4l-utils <https://git.linuxtv.org/v4l-utils.git/>`_ ir-keytable.1 49 man page for details. 49 man page for details. 50 50 51 The ir-keytable tool is nice for trouble shoot 51 The ir-keytable tool is nice for trouble shooting, i.e. to check 52 whenever the input device is really present, w 52 whenever the input device is really present, which of the devices it 53 is, check whenever pressing keys on the remote 53 is, check whenever pressing keys on the remote actually generates 54 events and the like. You can also use any oth 54 events and the like. You can also use any other input utility that changes 55 the keymaps, like the input kbd utility. 55 the keymaps, like the input kbd utility. 56 56 57 57 58 Using with lircd 58 Using with lircd 59 ---------------- 59 ---------------- 60 60 61 The latest versions of the lircd daemon suppor 61 The latest versions of the lircd daemon supports reading events from the 62 linux input layer (via event device). It also 62 linux input layer (via event device). It also supports receiving IR codes 63 in lirc mode. 63 in lirc mode. 64 64 65 65 66 Using without lircd 66 Using without lircd 67 ------------------- 67 ------------------- 68 68 69 Xorg recognizes several IR keycodes that have 69 Xorg recognizes several IR keycodes that have its numerical value lower 70 than 247. With the advent of Wayland, the inpu 70 than 247. With the advent of Wayland, the input driver got updated too, 71 and should now accept all keycodes. Yet, you m 71 and should now accept all keycodes. Yet, you may want to just reassign 72 the keycodes to something that your favorite m 72 the keycodes to something that your favorite media application likes. 73 73 74 This can be done by setting 74 This can be done by setting 75 `v4l-utils <https://git.linuxtv.org/v4l-utils. 75 `v4l-utils <https://git.linuxtv.org/v4l-utils.git/>`_ to load your own 76 keytable in runtime. Please read ir-keytable. 76 keytable in runtime. Please read ir-keytable.1 man page for details.
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.