Provided by: v4l-utils_1.26.1-4build3_amd64 bug

NAME

       cec-ctl - An application to control cec devices

SYNOPSIS

       cec-ctl [-h] [-d <dev>] [many other options]

DESCRIPTION

       The  cec-ctl tool is used to control cec devices. It is able to control almost any aspect of such devices
       covering the full CEC API.

       The easiest way to quickly test a CEC adapter of an HDMI output is:

            cec-ctl -d/dev/cecX --playback -S

       This is what you would use if the HDMI output of your device supports CEC: your  device  will  play  back
       video, so it is a CEC Playback device.

       And for an HDMI input:

            cec-ctl -d/dev/cecX --tv -S

       This is what you would use if your device has an HDMI input, i.e. it acts like a TV.

       Both  commands  configure the CEC adapter and show the CEC topology.  The '--playback' and '--tv' options
       configure your device, they are not about what device you will be talking to.

       To put a display to standby use:

            cec-ctl -d/dev/cecX --to 0 --standby

       To wake up the display:

            cec-ctl -d/dev/cecX --to 0 --image-view-on

       To switch the TV to our  HDMI  output  (replace  the  physical  address  with  what  cec-ctl  -d/dev/cecX
       reported):

            cec-ctl -d/dev/cecX --to 0 --active-source phys-addr=1.0.0.0

       Instead  of  '-d/dev/cecX'  you can also write this as '-dX'.  And instead of '--to 0' you can also write
       this as '-t0'.

OPTIONS

       -d, --device <dev>
              Use device <dev> as the CEC device. If <dev> is a number, then /dev/cec<dev> is used.

       -D, --driver <drv>
              Use a cec device that has driver name <drv>, as  returned  by  the  CEC_ADAP_G_CAPS  ioctl.   This
              option  can  be  combined  with -a to uniquely identify a CEC device without having to rely on the
              device node number.

       -a, --adapter <adap-name>
              Use a cec device that has adapter name <adap-name>, as  returned  by  the  CEC_ADAP_G_CAPS  ioctl.
              This  option  can  be combined with -D to uniquely identify a CEC device without having to rely on
              the device node number.

       -v, --verbose
              Turn on verbose reporting.

       --version
              Show version information.

       -w, --wall-clock
              Show timestamps as wall-clock time. This also turns on verbose reporting.

       -h, --help
              Prints the help message.

       -p, --phys-addr <addr>
              Use this physical address. The address can be a number (e.g. 0 or 0x11b1) or formatted as  a.b.c.d
              where each component is a hex value from 0-f (e.g. 0.0.0.0 or 1.1.b.1).

       -e, --phys-addr-from-edid <path>
              Parse  the  given  EDID  file (in raw binary format) and extract the physical address. If the EDID
              file does not exist or does not contain a physical address, then invalidate the physical address.

       -E, --phys-addr-from-edid-poll <path>
              Parse the given EDID file (in raw binary format) and extract the physical  address.  If  the  EDID
              file  does not exist or does not contain a physical address, then invalidate the physical address.
              Poll for changes in this EDID file every 100 ms and, if changed, update the physical address.

              This provides a way for Pulse-Eight  (or  similar)  USB  CEC  dongles  to  become  aware  of  HDMI
              disconnect and reconnect events.

              Polling  happens  in  the  background  while  cec-ctl  processes  other  requested  actions  (i.e.
              transmitting messages, waiting for replies, etc.) and when that is  all  done  cec-ctl  will  keep
              polling until the user kills cec-ctl (Ctrl-C).

       -o, --osd-name <name>
              Use this OSD name. The maximum length is 14 characters.

       -V, --vendor-id <id>
              Use this vendor ID. The vendor ID is a number from 0x0 to 0xffffff.

       -l, --logical-address
              Show  first  configured  logical  address  or  nothing  if the device is unconfigured.  Useful for
              scripts, e.g.: la=`cec-ctl -s -l`

       -L, --logical-addresses
              Show all configured logical addresses or nothing  if  the  device  is  unconfigured.   Useful  for
              scripts, e.g.: las=`cec-ctl -s -L`

       -C, --clear
              Clear all logical addresses, leaving the CEC device unconfigured.

       -n, --no-reply
              By  default when sending a CEC message that expects a reply this utility will wait for that reply.
              With this option it will just send it without waiting for the reply. This option  applies  to  the
              messages  following  this option.  It acts as a toggle, so after you specify it a second time then
              the following messages will wait for a reply again.

       -N, --non-blocking
              Transmit messages in non-blocking mode.

       -t, --to <la>
              Send the message to the given logical address (0-15).

       -f, --from <la>
              Send message from the given logical address. It is only necessary to use this option  if  multiple
              logical addresses are claimed. By default the first assigned logical address will be used.

       -r, --show-raw
              Show the raw CEC message in hex.

       -s, --skip-info
              Skip the Driver Info output section.

       -S, --show-topology
              Show the CEC topology, detecting which other CEC devices are on the CEC bus.

       -P, --poll
              Send a poll message.

       -T, --trace
              Trace all called ioctls. Useful for debugging.

       --cec-version-1.4
              Use CEC Version 1.4 instead of 2.0 (the default).

       --allow-unreg-fallback
              Allow  fallback to Unregistered if all logical addresses are claimed.  By default the adapter will
              remain unconfigured.

       --no-rc-passthrough
              Disable the RC passthrough. By default  remote  control  CEC  messages  are  passed  on  as  input
              keystrokes    (the    CEC_LOG_ADDRS_FL_ALLOW_RC_PASSTHRU    flag   is   set   when   calling   the
              CEC_ADAP_S_LOG_ADDRS ioctl), but this can be blocked by using this option.

       --reply-to-followers
              The reply will be sent to followers as well. By default the reply will only  go  to  the  follower
              that  initiated  the  CEC message. But if you have other followers running as well, then by giving
              this option they will also receive the reply.

       --timeout <ms>
              Set the reply timeout in milliseconds (default is 1000 ms).

       --tv   Configure the CEC adapter as a TV.

       --record
              Configure the CEC adapter as a recording and playback device.

       --tuner
              Configure the CEC adapter as a tuner device.

       --playback
              Configure the CEC adapter as a playback device.

       --audio
              Configure the CEC adapter as an audio system device.

       --processor
              Configure the CEC adapter as a processor device.

       --switch
              Configure the CEC adapter as a pure CEC switch.

       --cdc-only
              Configure the CEC adapter as a CDC-only device.

       --unregistered
              Configure the CEC adapter as an unregistered device.

       --feat-record-tv-screen
              Signal the Record TV Screen feature.

       --feat-set-osd-string
              Signal the Set OSD String feature.

       --feat-deck-control
              Signal the Deck Control feature.

       --feat-set-audio-rate
              Signal the Set Audio Rate feature.

       --feat-sink-has-arc-tx
              Signal the sink ARC Tx feature.

       --feat-source-has-arc-rx
              Signal the source ARC Rx feature.

       --rc-tv-profile-1
              Signal RC TV Profile 1.

       --rc-tv-profile-2
              Signal RC TV Profile 2.

       --rc-tv-profile-3
              Signal RC TV Profile 3.

       --rc-tv-profile-4
              Signal RC TV Profile 4.

       --rc-src-dev-root
              Signal that the RC source has a Dev Root Menu.

       --rc-src-dev-setup
              Signal that the RC source has a Dev Setup Menu.

       --rc-src-contents
              Signal that the RC source has a Contents Menu.

       --rc-src-media-top
              Signal that the RC source has a Media Top Menu.

       --rc-src-media-context
              Signal that the RC source has a Media Context Menu.

       -m, --monitor
              Start monitoring CEC traffic. This will monitor broadcast messages, messages directed to this  CEC
              adapter  and messages transmitted by this CEC adapter. Directed messages between other CEC devices
              are not monitored. This option requires root.

       -M, --monitor-all
              Start monitoring all CEC traffic. This will monitor all CEC messages, including directed  messages
              between other CEC devices. This option requires root.  Not all CEC devices support this monitoring
              mode. It will fallback to regular monitoring mode if it is not supported.

       --monitor-pin
              Start  monitoring  and  analyzing  the low-level CEC pin transitions. This is only possible if the
              device has the CEC_CAP_MONITOR_PIN capability. This option requires root.  When in pin  monitoring
              mode all 0->1 and 1->0 CEC pin transitions are monitored and analysed. This is effectively a cheap
              CEC bus analyzer.

       --monitor-time <secs>
              Monitor for the given number of seconds, then exit. The default (0) is to monitor forever.

       --ignore <la>,<opcode>
              Ignore  messages from logical address <la> and opcode <opcode> when monitoring.  "all" can be used
              for <la> or <opcode> to match all logical addresses or  opcodes.   To  ignore  poll  messages  use
              "poll" as <opcode>.

       --store-pin <to>
              Store  the  CEC  pin  events  to  the  given  file.  This  can  be read and analyzed later via the
              --analyze-pin option. Use - to write to stdout instead of to a file.

       --analyze-pin <from>
              Read and analyze the CEC pin events from the given file. Use - to read from stdin instead of  from
              a file.

       --test-standby-wakeup-cycle [polls=<n>][,sleep=<secs>][,hpd-may-be-low=<0/1>]
              This  option  tests  the  standby-wakeup  cycle  behavior of the display. It polls up to <n> times
              (default 15), waiting for a state change. If that fails then it waits <secs> seconds (default  10)
              before  retrying  this.   If  <hpd-may-be-low>  is  1,  then  the HPD is allowed to be low when in
              standby.

       --stress-test-standby-wakeup-cycle cnt=<count>[,polls=<n>][,max-sleep=<maxsecs>][,min-
       sleep=<minsecs>][,seed=<seed>][,repeats=<reps>][,sleep-before-on=<secs1>][,sleep-before-
       off=<secs2>][,hpd-may-be-low=<0/1>]
              This option performs a stress test for a display: it cycles the display <count> times in  and  out
              of  standby  using  the CEC Standby and Image View On commands.  If <count> is 0, then never stop.
              It polls up to <n> times (default 30), waiting for a state change.  If <maxsecs> is non-zero (0 is
              the default), then sleep for a random number of seconds between <minsecs> (0 is the  default)  and
              <maxsecs>  before each <Standby> or <Image View On> message.  If <seed> is specified, then set the
              randomizer seed to that value instead of using the current time as seed.  If <reps> is  specified,
              then  repeat the <Image View On> and <Standby> up to <reps> times. Note that this test should work
              without any repeats. If a non-zero <reps> value is needed in order to pass this  test,  then  that
              indicates  a problem.  If <secs1> is specified, then sleep for <secs1> seconds before transmitting
              <Image View On>.  If <secs2> is specified, then sleep  for  <secs2>  seconds  before  transmitting
              <Standby>.  If <hpd-may-be-low> is 1, then the HPD is allowed to be low when in standby.

       --stress-test-random-standby-wakeup-cycle cnt=<count>[,max-sleep=<maxsecs>][,min-
       sleep=<minsecs>][,seed=<seed>][,hpd-may-be-low=<0/1>]
              This  option  performs a stress test for a display: it cycles the display <count> times in and out
              of standby using the CEC Standby and Image View On commands.   After  each  command  wait  between
              <minsecs>  (default  is 0) and <maxsecs> (default is 10) seconds.  This test does not check if the
              display reached the new state, this test is meant to check if the display can handle state  change
              commands  while still transitioning to a new state.  After every 10 cycles it attempts to properly
              wake up the display and check if that works. If not, this test fails.  If <count> is 0, then never
              stop.  If <seed> is specified, then set the randomizer seed to that value  instead  of  using  the
              current  time  as  seed.   If  <hpd-may-be-low>  is  1,  then the HPD is allowed to be low when in
              standby.

       --help-all
              Prints the help message for all options.

       --help-audio-rate-control
              Show help for the Audio Rate Control feature.

       --help-audio-return-channel-control
              Show help for the Audio Return Channel Control feature.

       --help-capability-discovery-and-control
              Show help for the Capability Discovery and Control feature.

       --help-deck-control
              Show help for the Deck Control feature.

       --help-device-menu-control
              Show help for the Device Menu Control feature.

       --help-device-osd-transfer
              Show help for the Device OSD Transfer feature.

       --help-dynamic-audio-lipsync
              Show help for the Dynamic Audio Lipsync feature.

       --help-htng
              Show help for the Hospitality Profile Next Generation feature.  This is an optional CEC  extension
              for  Hotel  displays  and is not generally available for regular displays. See http://www.htng.org
              for more information.

       --help-osd-display
              Show help for the OSD Display feature.

       --help-one-touch-play
              Show help for the One Touch Play feature.

       --help-one-touch-record
              Show help for the One Touch Record feature.

       --help-power-status
              Show help for the Power Status feature.

       --help-remote-control-passthrough
              Show help for the Remote Control Passthrough feature.

       --help-routing-control
              Show help for the Routing Control feature.

       --help-standby
              Show help for the Standby feature.

       --help-system-audio-control
              Show help for the System Audio Control feature.

       --help-system-information
              Show help for the System Information feature.

       --help-timer-programming
              Show help for the Timer Programming feature.

       --help-tuner-control
              Show help for the Tuner Control feature.

       --help-vendor-specific-commands
              Show help for the Vendor Specific Commands feature.

EXIT STATUS

       On success, it returns 0. Otherwise, it will return the error code.

BUGS

       This manual page is a work in progress.

       Bug  reports  or  questions  about  this  utility  should  be  sent  to  the  linux-media@vger.kernel.org
       mailinglist.

v4l-utils                                          August 2016                                        CEC-CTL(1)