cec-intro.rst 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. .. _cec-intro:
  2. Introduction
  3. ============
  4. HDMI connectors provide a single pin for use by the Consumer Electronics
  5. Control protocol. This protocol allows different devices connected by an
  6. HDMI cable to communicate. The protocol for CEC version 1.4 is defined
  7. in supplements 1 (CEC) and 2 (HEAC or HDMI Ethernet and Audio Return
  8. Channel) of the HDMI 1.4a (:ref:`hdmi`) specification and the
  9. extensions added to CEC version 2.0 are defined in chapter 11 of the
  10. HDMI 2.0 (:ref:`hdmi2`) specification.
  11. The bitrate is very slow (effectively no more than 36 bytes per second)
  12. and is based on the ancient AV.link protocol used in old SCART
  13. connectors. The protocol closely resembles a crazy Rube Goldberg
  14. contraption and is an unholy mix of low and high level messages. Some
  15. messages, especially those part of the HEAC protocol layered on top of
  16. CEC, need to be handled by the kernel, others can be handled either by
  17. the kernel or by userspace.
  18. In addition, CEC can be implemented in HDMI receivers, transmitters and
  19. in USB devices that have an HDMI input and an HDMI output and that
  20. control just the CEC pin.
  21. Drivers that support CEC will create a CEC device node (/dev/cecX) to
  22. give userspace access to the CEC adapter. The
  23. :ref:`CEC_ADAP_G_CAPS` ioctl will tell userspace what it is allowed to do.
  24. In order to check the support and test it, it is suggested to download
  25. the `v4l-utils <https://git.linuxtv.org/v4l-utils.git/>`_ package. It
  26. provides three tools to handle CEC:
  27. - cec-ctl: the Swiss army knife of CEC. Allows you to configure, transmit
  28. and monitor CEC messages.
  29. - cec-compliance: does a CEC compliance test of a remote CEC device to
  30. determine how compliant the CEC implementation is.
  31. - cec-follower: emulates a CEC follower.