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