v4l-with-ir.rst 2.9 KB

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