GithubHelp home page GithubHelp logo

pulse-eight / libcec Goto Github PK

View Code? Open in Web Editor NEW
709.0 53.0 285.0 5.42 MB

USB CEC Adapter communication Library http://libcec.pulse-eight.com/

License: Other

CMake 3.08% C++ 74.47% C 14.70% NSIS 1.62% Python 4.70% Batchfile 1.03% Shell 0.05% SWIG 0.34%

libcec's Introduction

Pulse-Eight logo

About

This library provides support for Pulse-Eight's USB-CEC adapter and other CEC capable hardware, like the Raspberry Pi.

A list of FAQ (Frequently Asked Questions) can be found on libCEC's FAQ page.

.Net client applications, previously part of this repository, have been moved to this repository.

Supported platforms

Linux & BSD

See docs/README.linux.md.

Apple OS X

See docs/README.osx.md.

Microsoft Windows

See docs/README.windows.md.

Supported hardware

Developers

See docs/README.developers.md.

Vendor specific notes

Panasonic

  • On Panasonic to enable media control buttons on bottom of the remote, you may have to change the operation mode. To change it, press bottom Power-button, keep it pressed, and press 7 3 Stop. After releasing Power-button, Play, Pause, etc should work in XBMC.

Raspberry Pi

  • If your TV cannot detect the Raspberry Pi's CEC, or if the the Pi can't detect the TV, try adding the following line in /boot/config.txt and reboot the Pi: hdmi_force_hotplug=1

libcec's People

Contributors

bachp avatar bman46 avatar bobo1on1 avatar daunator avatar davilla avatar gdachs avatar jerome-benoit avatar kdschlosser avatar kingosticks avatar ksooo avatar malard avatar mark-kendall avatar memphiz avatar mhitchens avatar michaelarnauts avatar mk01 avatar nedimlisica avatar newam avatar nfriedly avatar nhellfire avatar opdenkamp avatar p8-jenkins avatar pks-t avatar popcornmix avatar rbalint avatar robbiet480 avatar stweil avatar vavassor avatar warped-rudi avatar wsnipex avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

libcec's Issues

Wrong HDMI input is activated during resume from standby.

Hello,

After update to libcec 2.0.0 my Panasonic plasma doesn't properly wake anymore. I'm using Raspberry Pi with OpenELEC (Milhouse KODI builds). There are following scenarios:

  1. TV in standby; RPi switched off

When I start RPi it properly boots up but at the end it doesn't switch my TV to the right HDMI input. It switches to the other HDMI and I have to manually select right HDMI using TV remote. As a side effect TV resolution defaults to 720p/50Hz and I can't change it in OpenELEC. It looks like it didn't recognized all available resolutions. Below you can find debug log for this scenario.

http://pastebin.com/8Zpupg8f

  1. TV active and set to right HDMI input; RPi switched off

RPi boots up properly and everything seems to be fine at this stage. I can set all available resolutions and refresh rates and choose my default 1080p/23.98. Problems arise when I want to put RPi in sleep mode. It sleeps properly and TV switches to standby too but TV it's not able to properly resume. RPi wakes TV but selects wrong HDMI input so I always have to select right HDMI from TV remote. Then everything works fine till next sleep when I have to repeat this procedure. Below debug log from this scenario.

http://pastebin.com/VRY3GHC2

I never had such problems with old LibCEC.
P.S. Tried to physically connect RPi to the other HDMI input but it didn't helped at all.

USB CEC Adapter not fully working with Samsung UE55F6500

Hi,

I have a PC with Ubuntu 12.10, using the Pulse8 USB CEC Adapter and a Samsung UE55F6500 TV.

I have installed the Pulse8 XBMC build using the install script from the home page. The CEC communication seems to work, including powering off the TV when closing XBMC.

I also see the XBMC device in the Anynet+ Menu on the TV. However, I cannot control XBMC at all with the TV remote.

I have set the XBMC log level to 1, and there are no log entries when I press any of the buttons on the remote. There is some communication when I choose the Anynet+ "XBMC MENU" item in the TV menu.

Please find my XBMC log file here: https://gist.github.com/robertscherer/9158221

Let me know if you need further information or debugging.

Thanks,
Robert

request: mingw (windows gcc) support

I have a project that I cross compile on linux with mingw (i686-mingw32), which supports libcec, but libcec seems to only compile under Visual C++.

Dealing with the stuff not found (after commenting out a few libs/headers in configure.ac) is a bit above my skill level, so can someone look at making it compatible?

Or if the C api has the same capabilities would I be better modifying it to use the C api?

Not working with new Sharp LC46LD266K (Aquos)

I have just replaced my old TV which was working fine with CEC on Openelec. When connected this Sharp produces the output below via cec-client. TV has latest Sharp firmware 2.16 from 23/6/14.

http://www.sharp.co.uk/cps/rde/xbcr/documents/documents/Marketing/Datasheet/pdf_DS_Datasheet_LC46LD266K_en_gb.pdf

using HDMI port '1'
No device type given. Using 'recording device'
CEC Parser created - libCEC version 2.1.4
no serial port given. trying autodetect: 
 path:     Raspberry Pi
 com port: RPI

opening a connection to the CEC adapter...
DEBUG:   [             327] unregistering all CEC clients
DEBUG:   [             331] Broadcast (F): osd name set to 'Broadcast'
DEBUG:   [             335] InitHostCEC - vchiq_initialise succeeded
DEBUG:   [             337] InitHostCEC - vchi_initialise succeeded
DEBUG:   [             338] InitHostCEC - vchi_connect succeeded
DEBUG:   [             341] logical address changed to Broadcast (f)
DEBUG:   [             344] RegisterLogicalAddress - registering address e
DEBUG:   [             528] logical address changed to Recorder 1 (1)
DEBUG:   [             528] logical address changed to Free use (e)
DEBUG:   [             529] Open - vc_cec initialised
NOTICE:  [             530] connection opened
DEBUG:   [             534] << Broadcast (F) -> TV (0): POLL
DEBUG:   [             535] initiator 'Broadcast' is not supported by the CEC adapter. using 'Free use' instead
TRAFFIC: [             535] << e0
DEBUG:   [             539] processor thread started
DEBUG:   [             568] >> POLL sent
DEBUG:   [             568] TV (0): device status changed into 'present'
DEBUG:   [             568] << requesting vendor ID of 'TV' (0)
TRAFFIC: [             568] << e0:8c
TRAFFIC: [             804] >> 0f:87:6b:74:6d
DEBUG:   [             805] >> TV (0) -> Broadcast (F): device vendor id (87)
DEBUG:   [             805] TV (0): vendor = Vizio (6b746d)
DEBUG:   [             805] expected response received (87: device vendor id)
NOTICE:  [             805] registering new CEC client - v2.1.4
DEBUG:   [             806] detecting logical address for type 'recording device'
DEBUG:   [             806] trying logical address 'Recorder 1'
DEBUG:   [             806] << Recorder 1 (1) -> Recorder 1 (1): POLL
TRAFFIC: [             806] << 11
DEBUG:   [             806] UnregisterLogicalAddress - releasing previous logical address
DEBUG:   [             808] logical address changed to Broadcast (f)
DEBUG:   [             810] logical address changed to Broadcast (f)
DEBUG:   [             810] RegisterLogicalAddress - registering address 1
DEBUG:   [            1083] logical address changed to Free use (e)
DEBUG:   [            1083] logical address changed to Recorder 1 (1)
DEBUG:   [            1083] logical address changed to Recorder 1 (1)
TRAFFIC: [            1085] << 11
DEBUG:   [            1085] >> POLL not sent
DEBUG:   [            1085] using logical address 'Recorder 1'
DEBUG:   [            1085] Recorder 1 (1): device status changed into 'handled by libCEC'
DEBUG:   [            1085] Recorder 1 (1): power status changed from 'unknown' to 'on'
DEBUG:   [            1085] Recorder 1 (1): vendor = Pulse Eight (001582)
DEBUG:   [            1086] Recorder 1 (1): CEC version 1.4
DEBUG:   [            1088] AllocateLogicalAddresses - device '0', type 'recording device', LA '1'
DEBUG:   [            1088] Recorder 1 (1): osd name set to 'CECTester'
DEBUG:   [            1089] Recorder 1 (1): menu language set to 'eng'
DEBUG:   [            1091] GetPhysicalAddress - physical address = 1000
DEBUG:   [            1091] AutodetectPhysicalAddress - autodetected physical address '1000'
DEBUG:   [            1093] Recorder 1 (1): physical address changed from ffff to 1000
DEBUG:   [            1093] << Recorder 1 (1) -> broadcast (F): physical adddress 1000
TRAFFIC: [            1095] << 1f:84:10:00:01
WARNING: [            1233] unhandled response received: opcode=87 initiator=1 destination=f response=0
NOTICE:  [            1385] CEC client registered: libCEC version = 2.1.4, client version = 2.1.4, firmware version = 1, logical address(es) = Recorder 1 (1) , physical address: 1.0.0.0, host: armv6zk-openelec-linux-gnueabi, features: 'P8 USB' 'P8 USB detect' 'RPi', git revision: 26bd487, compiled on: Tue Jul  8 19:34:16 UTC 2014 by [email protected] on Linux 3.14.4-200.fc20.x86_64 (x86_64)
DEBUG:   [            1385] << Recorder 1 (1) -> TV (0): OSD name 'CECTester'
TRAFFIC: [            1386] << 10:47:43:45:43:54:65:73:74:65:72
DEBUG:   [            1692] << requesting power status of 'TV' (0)
TRAFFIC: [            1692] << 10:8f
TRAFFIC: [            1815] >> 01:46
DEBUG:   [            1815] >> TV (0) -> Recorder 1 (1): give osd name (46)
DEBUG:   [            1816] << Recorder 1 (1) -> TV (0): OSD name 'CECTester'
TRAFFIC: [            1818] << 10:47:43:45:43:54:65:73:74:65:72
WARNING: [            2361] unhandled response received: opcode=47 initiator=1 destination=0 response=0
TRAFFIC: [            2362] >> 01:90:00
DEBUG:   [            2363] >> TV (0) -> Recorder 1 (1): report power status (90)
DEBUG:   [            2363] TV (0): power status changed from 'unknown' to 'on'
DEBUG:   [            2364] expected response received (90: report power status)
waiting for input
TRAFFIC: [           33768] >> 0f:84:00:00:00
DEBUG:   [           33769] >> TV (0) -> Broadcast (F): report physical address (84)
DEBUG:   [           33769] << Recorder 1 (1) -> broadcast (F): physical adddress 1000
TRAFFIC: [           33769] << 1f:84:10:00:01
WARNING: [           34074] unhandled response received: opcode=84 initiator=1 destination=f response=0
TRAFFIC: [           34187] >> 0f:87:6b:74:6d
DEBUG:   [           34187] >> TV (0) -> Broadcast (F): device vendor id (87)
DEBUG:   [           34188] << Recorder 1 (1) -> Broadcast (F): vendor id Pulse Eight (1582)
TRAFFIC: [           34188] << 1f:87:00:15:82
WARNING: [           34491] unhandled response received: opcode=87 initiator=1 destination=f response=0
TRAFFIC: [           34732] >> 0f:80:00:00:10:00
DEBUG:   [           34733] >> TV (0) -> Broadcast (F): routing change (80)
DEBUG:   [           34733] making Recorder 1 (1) the active source
NOTICE:  [           34733] >> source activated: Recorder 1 (1)
DEBUG:   [           34734] sending active source message for 'Recorder 1'
NOTICE:  [           34734] << powering on 'TV' (0)
TRAFFIC: [           34734] << 10:04
NOTICE:  [           34824] << Recorder 1 (1) -> broadcast (F): active source (1000)
TRAFFIC: [           34824] << 1f:82:10:00
WARNING: [           34884] unhandled response received: opcode=4 initiator=1 destination=0 response=0
DEBUG:   [           35066] << Recorder 1 (1) -> TV (0): menu state 'activated'
TRAFFIC: [           35066] << 10:8e:00
WARNING: [           35188] unhandled response received: opcode=82 initiator=1 destination=f response=0
WARNING: [           35339] unhandled response received: opcode=47 initiator=1 destination=0 response=0
TRAFFIC: [           35462] >> 01:46
DEBUG:   [           35462] >> TV (0) -> Recorder 1 (1): give osd name (46)
DEBUG:   [           35462] << Recorder 1 (1) -> TV (0): OSD name 'CECTester'
TRAFFIC: [           35463] << 10:47:43:45:43:54:65:73:74:65:72
WARNING: [           35521] unhandled response received: opcode=4 initiator=1 destination=0 response=0
TRAFFIC: [           35885] >> 01:83
DEBUG:   [           35885] >> TV (0) -> Recorder 1 (1): give physical address (83)
DEBUG:   [           35885] << Recorder 1 (1) -> broadcast (F): physical adddress 1000
TRAFFIC: [           35885] << 1f:84:10:00:01
WARNING: [           36004] unhandled response received: opcode=82 initiator=1 destination=f response=0
WARNING: [           36307] unhandled response received: opcode=84 initiator=1 destination=f response=0
TRAFFIC: [           36350] >> 01:8c
DEBUG:   [           36350] >> TV (0) -> Recorder 1 (1): give device vendor id (8C)
DEBUG:   [           36350] << Recorder 1 (1) -> TV (0): vendor id Pulse Eight (1582)
TRAFFIC: [           36351] << 1f:87:00:15:82
WARNING: [           36653] unhandled response received: opcode=87 initiator=1 destination=f response=0
TRAFFIC: [           36746] >> 01:46
DEBUG:   [           36747] >> TV (0) -> Recorder 1 (1): give osd name (46)
DEBUG:   [           36747] << Recorder 1 (1) -> TV (0): OSD name 'CECTester'
TRAFFIC: [           36747] << 10:47:43:45:43:54:65:73:74:65:72
WARNING: [           37230] unhandled response received: opcode=47 initiator=1 destination=0 response=0
TRAFFIC: [           37269] >> 01:46
DEBUG:   [           37269] >> TV (0) -> Recorder 1 (1): give osd name (46)
DEBUG:   [           37269] << Recorder 1 (1) -> TV (0): OSD name 'CECTester'
TRAFFIC: [           37269] << 10:47:43:45:43:54:65:73:74:65:72
WARNING: [           37757] unhandled response received: opcode=47 initiator=1 destination=0 response=0
TRAFFIC: [           39893] >> 01:83
DEBUG:   [           39894] >> TV (0) -> Recorder 1 (1): give physical address (83)
DEBUG:   [           39894] << Recorder 1 (1) -> broadcast (F): physical adddress 1000
TRAFFIC: [           39894] << 1f:84:10:00:01
WARNING: [           40198] unhandled response received: opcode=84 initiator=1 destination=f response=0
TRAFFIC: [           43149] >> 01:83
DEBUG:   [           43149] >> TV (0) -> Recorder 1 (1): give physical address (83)
DEBUG:   [           43149] << Recorder 1 (1) -> broadcast (F): physical adddress 1000
TRAFFIC: [           43150] << 1f:84:10:00:01
WARNING: [           43455] unhandled response received: opcode=84 initiator=1 destination=f response=0
TRAFFIC: [           43496] >> 01:8c
DEBUG:   [           43496] >> TV (0) -> Recorder 1 (1): give device vendor id (8C)
DEBUG:   [           43496] << Recorder 1 (1) -> TV (0): vendor id Pulse Eight (1582)
TRAFFIC: [           43496] << 1f:87:00:15:82
WARNING: [           43801] unhandled response received: opcode=87 initiator=1 destination=f response=0
TRAFFIC: [           43894] >> 01:46
DEBUG:   [           43895] >> TV (0) -> Recorder 1 (1): give osd name (46)
DEBUG:   [           43895] << Recorder 1 (1) -> TV (0): OSD name 'CECTester'
TRAFFIC: [           43895] << 10:47:43:45:43:54:65:73:74:65:72
WARNING: [           44379] unhandled response received: opcode=47 initiator=1 destination=0 response=0

[question] exclusive / shared mode

how can the cec-hardware opened in shared mode?
it seems to me that the exclusive mode is the default way for kodi.
is the exclusive / shared mode hardware related?

cec_set_configuration not correclty exported for C

Hi guys,

I found that in the latest code (and in the 2.1.4 PPA release, at least) the declaration of cec_set_configuration at https://github.com/Pulse-Eight/libcec/blob/master/src/lib/LibCECC.cpp#L349 is missing the const keyword. This results in it not being correctly exported for C and I get an undefined symbol error when I try and use it. Running nm -D libcec.so --demangle --defined-only | grep cec_set_configuration shows the library only has the C++ symbol:

0000000000036bd0 T cec_set_configuration(CEC::libcec_configuration*)

Rather than what you get if you fix the missing const:

0000000000036bb0 T cec_set_configuration

assertion failure with XBMC Gotham beta3

Hi,

I get a assertion failure from rpi-userland when using XBMC with libcec 2.1.4.
I tracked it down and I am using following fix:
--- libcec-2.1.4.orig/src/lib/adapter/RPi/RPiCECAdapterCommunication.cpp 2013-12-15 12:48:14.000000000 +0100
+++ libcec-2.1.4/src/lib/adapter/RPi/RPiCECAdapterCommunication.cpp 2014-04-04 16:42:04.781854374 +0200
@@ -353,7 +353,9 @@ void CRPiCECAdapterCommunication::Close(
else
return;
}

  • vc_tv_unregister_callback(rpi_tv_callback);
  • if (m_bInitialised)
  • vc_tv_unregister_callback(rpi_tv_callback);

UnregisterLogicalAddress();

See following issue for full backtrace:
raspberrypi/userland#159

libcec and philips tv

theres an issue with the cec on the philips tv... it doesn't repeat remote buttons when you keep them pressed... holding buttons to scroll in the tv menus work fine..
this happened on the raspberry pi/pi2 and now I got a usb pulse-eight adapter and the same happens...
is there anything that can be done?
if you guys need any log please tell me how to get it and I'll gladly dump it

also as a test... the button repeat works fine on my other LG tv

LibCEC hangs when a device is powered on.

Currently i am developing a plugin for vdr (http://www.uli-eckhardt.de/vdr/cec.en.shtml) and encountered a problem when the TV is powered on and off. I could also reproduce this problem via cec-client.

The TV is powered off (really no power) and I start cec-client:

vdr:/tmp # cec-client 
No device type given. Using 'recording device'                                                              
CEC Parser created - libCEC version 2.2.0                                                                              
no serial port given. trying autodetect:                                                                                  
 path:     /sys/devices/pci0000:00/0000:00:14.0/usb1/1-3    
 com port: /dev/ttyACM0                                                                                              
opening a connection to the CEC adapter...
DEBUG:   [              27]     unregistering all CEC clients
DEBUG:   [              27]     Broadcast (F): osd name set to 'Broadcast'
DEBUG:   [              28]     connection opened, clearing any previous input and waiting for active transmissions to end before starting
DEBUG:   [              29]     communication thread started
DEBUG:   [              40]     turning controlled mode on
NOTICE:  [              63]     connection opened
DEBUG:   [              64]     processor thread started
DEBUG:   [              64]     << Broadcast (F) -> TV (0): POLL
TRAFFIC: [              64]     << f0
DEBUG:   [              64]     setting the line timeout to 3
DEBUG:   [             101]     CEC transmission - received response - TRANSMIT_FAILED_ACK
TRAFFIC: [             101]     << f0
DEBUG:   [             132]     CEC transmission - received response - TRANSMIT_FAILED_ACK
DEBUG:   [             133]     >> POLL not sent
DEBUG:   [             133]     TV (0): device status changed into 'not present'
NOTICE:  [             133]     registering new CEC client - v2.2.0
DEBUG:   [             133]     detecting logical address for type 'recording device'
DEBUG:   [             133]     trying logical address 'Recorder 1'
DEBUG:   [             133]     << Recorder 1 (1) -> Recorder 1 (1): POLL
TRAFFIC: [             133]     << 11
DEBUG:   [             171]     CEC transmission - received response - TRANSMIT_FAILED_ACK
TRAFFIC: [             171]     << 11
DEBUG:   [             204]     CEC transmission - received response - TRANSMIT_FAILED_ACK
DEBUG:   [             204]     >> POLL not sent
DEBUG:   [             205]     using logical address 'Recorder 1'
DEBUG:   [             205]     Recorder 1 (1): device status changed into 'handled by libCEC'
DEBUG:   [             205]     Recorder 1 (1): power status changed from 'unknown' to 'on'
DEBUG:   [             205]     Recorder 1 (1): vendor = Pulse Eight (001582)
DEBUG:   [             205]     Recorder 1 (1): CEC version 1.4
DEBUG:   [             205]     AllocateLogicalAddresses - device '0', type 'recording device', LA '1'
DEBUG:   [             205]     setting ackmask to  2
DEBUG:   [             210]     Recorder 1 (1): osd name set to 'CECTester'
DEBUG:   [             210]     Recorder 1 (1): menu language set to 'eng'
DEBUG:   [             210]     GetPhysicalAddress - trying to get the physical address via ADL
DEBUG:   [             210]     GetPhysicalAddress - ADL returned physical address 0000
DEBUG:   [             210]     GetPhysicalAddress - trying to get the physical address via nvidia driver
DEBUG:   [             210]     GetPhysicalAddress - nvidia driver returned physical address 0000
DEBUG:   [             210]     GetPhysicalAddress - trying to get the physical address from the OS
DEBUG:   [             211]     GetPhysicalAddress - OS returned physical address 0000
DEBUG:   [             211]     SetDevicePhysicalAddress - not setting invalid physical address 0000
NOTICE:  [             211]     setting HDMI port to 1 on device TV (0)
DEBUG:   [             211]     << Recorder 1 (1) -> TV (0): POLL
TRAFFIC: [             211]     << 10
DEBUG:   [             242]     CEC transmission - received response - TRANSMIT_FAILED_ACK
TRAFFIC: [             242]     << 10
DEBUG:   [             275]     CEC transmission - received response - TRANSMIT_FAILED_ACK
DEBUG:   [             275]     >> POLL not sent
DEBUG:   [             275]     Recorder 1 (1): physical address changed from ffff to 1000
DEBUG:   [             275]     << Recorder 1 (1) -> broadcast (F): physical adddress 1000
TRAFFIC: [             275]     << 1f:84:10:00:01
DEBUG:   [             413]     using persisted autonomous mode setting: 'enabled'
DEBUG:   [             418]     using persisted CEC version setting: '1.4'
DEBUG:   [             424]     using persisted logical address setting: 'Recorder 1'
DEBUG:   [             429]     using persisted device type setting: 'recording device'
DEBUG:   [             434]     using persisted logical address mask setting: '206'
DEBUG:   [             451]     using persisted device name setting: 'CECTester'
DEBUG:   [             456]     using persisted physical address setting: '1000'
NOTICE:  [             457]     CEC client registered: libCEC version = 2.2.0, client version = 2.2.0, firmware version = 4, firmware build date: Thu Dec  6 11:15:20 2012 +0000, logical address(es) = Recorder 1 (1) , base device: TV (0), HDMI port number: 1, physical address: 1.0.0.0, host: x86_64-suse-linux-gnu, features: 'P8 USB' 'P8 USB detect' 'EXYNOS'
DEBUG:   [             457]     << Recorder 1 (1) -> TV (0): OSD name 'CECTester'
DEBUG:   [             457]     << Recorder 1 (1) -> TV (0): POLL
TRAFFIC: [             457]     << 10
DEBUG:   [             489]     CEC transmission - received response - TRANSMIT_FAILED_ACK
TRAFFIC: [             489]     << 10
DEBUG:   [             521]     CEC transmission - received response - TRANSMIT_FAILED_ACK
DEBUG:   [             521]     >> POLL not sent
DEBUG:   [             521]     not sending command 'set osd name': destination device 'TV' marked as not present
DEBUG:   [             521]     << requesting power status of 'TV' (0)
DEBUG:   [             521]     << Recorder 1 (1) -> TV (0): POLL
TRAFFIC: [             521]     << 10
DEBUG:   [             560]     CEC transmission - received response - TRANSMIT_FAILED_ACK
TRAFFIC: [             560]     << 10
DEBUG:   [             593]     CEC transmission - received response - TRANSMIT_FAILED_ACK
DEBUG:   [             593]     >> POLL not sent
DEBUG:   [             593]     not sending command 'give device power status': destination device 'TV' marked as not present

When I do a scan the result is the expected one:

CEC bus information
===================
device #1: Recorder 1
address:       1.0.0.0
active source: no
vendor:        Pulse Eight
osd string:    CECTester
CEC version:   1.4
power status:  on
language:      eng

currently active source: unknown (-1)

Next I power on the TV:

TRAFFIC: [          140835]     >> 0f:a0:00:80:45:20:00:01
DEBUG:   [          140835]     >> TV (0) -> Broadcast (F): vendor command with id (A0)
TRAFFIC: [          141000]     >> 0f:80:00:00:20:00
DEBUG:   [          141000]     >> TV (0) -> Broadcast (F): routing change (80)
DEBUG:   [          141000]     TV (0): power status changed from 'unknown' to 'on'
DEBUG:   [          141000]     device TV (0) status changed to present after command routing change
TRAFFIC: [          141606]     >> 0f:86:20:00
DEBUG:   [          141607]     >> TV (0) -> Broadcast (F): set stream path (86)
DEBUG:   [          141607]     >> TV (0) sets stream path to physical address 2000
TRAFFIC: [          141649]     >> 01
DEBUG:   [          141649]     << POLL: TV (0) -> Recorder 1 (1)
TRAFFIC: [          141699]     >> 02
DEBUG:   [          141699]     << POLL: TV (0) -> Recorder 2 (2)
TRAFFIC: [          141743]     >> 02
DEBUG:   [          141743]     << POLL: TV (0) -> Recorder 2 (2)
TRAFFIC: [          141793]     >> 03
DEBUG:   [          141793]     << POLL: TV (0) -> Tuner 1 (3)
TRAFFIC: [          141836]     >> 03
DEBUG:   [          141837]     << POLL: TV (0) -> Tuner 1 (3)
...
DEBUG:   [          144761]     << POLL: TV (0) -> Free use (e)
TRAFFIC: [          144811]     >> 0e
DEBUG:   [          144811]     << POLL: TV (0) -> Free use (e)
TRAFFIC: [          144882]     >> 01:83
DEBUG:   [          144882]     >> TV (0) -> Recorder 1 (1): give physical address (83)
DEBUG:   [          144883]     << Recorder 1 (1) -> broadcast (F): physical adddress 1000
TRAFFIC: [          144883]     << 1f:84:10:00:01
TRAFFIC: [          145085]     >> 01:8c
DEBUG:   [          145085]     >> TV (0) -> Recorder 1 (1): give device vendor id (8C)
DEBUG:   [          145085]     << Recorder 1 (1) -> TV (0): vendor id Pulse Eight (1582)
TRAFFIC: [          145085]     << 1f:87:00:15:82
TRAFFIC: [          145406]     >> 01:a0:00:80:45:06:05
DEBUG:   [          145406]     >> TV (0) -> Recorder 1 (1): vendor command with id (A0)
DEBUG:   [          145406]     sending abort with opcode a0 and reason 'invalid operand' to TV
DEBUG:   [          145406]     << transmitting abort message
TRAFFIC: [          145406]     << 10:00:a0:03 >

Now I enter a scan command:

scan
requesting CEC bus information ...
DEBUG:   [          216303]     << requesting active source
TRAFFIC: [          216303]     << 1f:85
DEBUG:   [          217361]     expected response not received (82: active source)
TRAFFIC: [          217361]     << 1f:85
DEBUG:   [          218422]     expected response not received (82: active source)
DEBUG:   [          218422]     << requesting vendor ID of 'TV' (0)
TRAFFIC: [          218422]     << 10:8c
TRAFFIC: [          218622]     >> 0f:87:00:80:45
DEBUG:   [          218622]     >> TV (0) -> Broadcast (F): device vendor id (87)
DEBUG:   [          218622]     TV (0): vendor = Panasonic (008045)
DEBUG:   [          218622]     << Recorder 1 (1) -> Broadcast (F): vendor id Pulse Eight (1582)
TRAFFIC: [          218622]     << 1f:87:00:15:82
DEBUG:   [          218754]     expected response received (87: device vendor id)
DEBUG:   [          218754]     replacing the command handler for device 'TV' (0)
DEBUG:   [          218754]     Recorder 1 (1): vendor = Panasonic (008045)
DEBUG:   [          218754]     replacing the command handler for device 'Recorder 1' (1)
NOTICE:  [          218754]     changing device type 'recording device' into 'playback device'
NOTICE:  [          218754]     unregistering client: libCEC version = 2.2.0, client version = 2.2.0, firmware version = 4, firmware build date: Thu Dec  6 11:15:20 2012 +0000, logical address(es) = Recorder 1 (1) , base device: TV (0), HDMI port number: 1, physical address: 1.0.0.0, host: x86_64-suse-linux-gnu, features: 'P8 USB' 'P8 USB detect' 'EXYNOS'
DEBUG:   [          218754]     Recorder 1 (1): power status changed from 'on' to 'unknown'
DEBUG:   [          218754]     Recorder 1 (1): vendor = Unknown (000000)
DEBUG:   [          218754]     Recorder 1 (1): CEC version unknown
DEBUG:   [          218754]     Recorder 1 (1): osd name set to 'Recorder 1'
DEBUG:   [          218754]     Recorder 1 (1): device status changed into 'unknown'
DEBUG:   [          218754]     setting ackmask to  0
DEBUG:   [          218759]     turning controlled mode off
DEBUG:   [          218764]     turning controlled mode on >

I get no scan result. Also no further inputs are pocessed by cec-client. I have killed cec-client with "kill-11" to force a core and get the following backtrace:

[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `cec-client'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007f6ee410f408 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
Missing separate debuginfos, use: zypper install glibc-debuginfo-2.19-16.9.1.x86_64 libcec2-debuginfo-2.2.0-5.1.x86_64 libgcc_s1-debuginfo-4.8.3+r212056-2.2.4.x86_64 liblockdev1-debuginfo-1.0.3_git201003141408-27.2.1.x86_64 libstdc++6-gcc49-debuginfo-4.9.0+r211729-2.1.7.x86_64 libudev1-debuginfo-210-25.12.1.x86_64
(gdb) bt
#0  0x00007f6ee410f408 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f6ee32dc78b in CEC::CCECProcessor::RegisterClient(CEC::CCECClient*) () from /usr/lib64/libcec.so.2
#2  0x00007f6ee32ed7e9 in CEC::CCECClient::ChangeDeviceType(CEC::cec_device_type, CEC::cec_device_type) () from /usr/lib64/libcec.so.2
#3  0x00007f6ee330410c in CEC::CVLCommandHandler::InitHandler() () from /usr/lib64/libcec.so.2
#4  0x00007f6ee32f420d in CEC::CCECBusDevice::ReplaceHandler(bool) () from /usr/lib64/libcec.so.2
#5  0x00007f6ee32f5746 in CEC::CCECBusDevice::RequestVendorId(CEC::cec_logical_address, bool) () from /usr/lib64/libcec.so.2
#6  0x00007f6ee32f1774 in CEC::CCECBusDevice::GetVendorId(CEC::cec_logical_address, bool) () from /usr/lib64/libcec.so.2
#7  0x00007f6ee32e7678 in CEC::CCECClient::GetDeviceVendorId(CEC::cec_logical_address) () from /usr/lib64/libcec.so.2
#8  0x0000000000409c57 in ProcessCommandSCAN (parser=parser@entry=0xb1fb60, command="scan", UNUSED_arguments="") at main.cpp:910
#9  0x000000000040b3af in ProcessConsoleCommand (parser=0xb1fb60, input="") at main.cpp:982
#10 0x0000000000402e46 in main (argc=, argv=) at main.cpp:1304

Sometimes I get a result, but without the TV. In this case I get the additonal log output:

DEBUG:   [           37170]     expected response received (87: device vendor id)
DEBUG:   [           37170]     replacing the command handler for device 'TV' (0)
DEBUG:   [           37170]     Recorder 1 (1): vendor = Panasonic (008045)
DEBUG:   [           37170]     replacing the command handler for device 'Recorder 1' (1)
NOTICE:  [           37170]     changing device type 'recording device' into 'playback device'
NOTICE:  [           37170]     unregistering client: libCEC version = 2.2.0, client version = 2.2.0, firmware version = 4, firmware build date: Thu Dec  6 11:15:20 2012 +0000, logical address(es) = Recorder 1 (1) , base device: TV (0), HDMI port number: 1, physical address: 1.0.0.0, host: x86_64-suse-linux-gnu, features: 'P8 USB' 'P8 USB detect' 'EXYNOS'

The cec-client crashes in this case when quitting.

running System reserves CEC Hardware

It's not really a Issue, but i'm looking for a possibility to pass custom cec-commands to the running system.
I use Openelec, but Openelec doesn't use a single pid for cec-client, therefor xbmc.bin reserves the cec-hardware, and i'm not able to use cec-client to control anything before i stop xbmc.

Is there a file or any other way to pass custom cec-commands to the running system without stopping xbmc?!

Thanks in advance!

LibCecSharp not working on Windows 8.1

Hi,

I recently bought a Pulse Eight USB - CEC Adapter.
I’m a developper and would like to use the LibCECSharp dll in order to use it in my .NET C# app running on a Windows 8.1 Zotac. However I can’t use the DLL.

I used dependency walker which lead me to the fact that some dll were missings such as

API-MS-WIN-CORE-KERNEL32-PRIVATE-L1-1-1.DLL
API-MS-WIN-CORE-PRIVATEPROFILE-L1-1-1.DLL
API-MS-WIN-SERVICE-PRIVATE-L1-1-1.DLL
API-MS-WIN-CORE-SHUTDOWN-L1-1-1.DLL
EXT-MS-WIN-NTUSER-UICONTEXT-EXT-L1-1-0.DLL
IESHIMS.DLL

I read that those were missing because the app is running on Window 8.1 devices. Do you have a fix so that I can use the LibCECSharp.dll on Windows 8.1 ?

Thanks in advance,

Florent

Compatibility with "HDMI CEC framework" support in mainline Linux 4.8 kernel and later?

Update! Linux 4.8 release finally include this HDMI-CEC framework in the mainline kernel.

http://www.phoronix.com/scan.php?page=news_item&px=HDMI-CEC-Linux-4.8

Details on the framework in this PDF:

http://events.linuxfoundation.org/sites/events/files/slides/cec-wide_1.pdf

HDMI CEC Framework project was revived for the Linux Kernel, read some history here:

http://lists.freedesktop.org/archives/dri-devel/2015-March/079678.html

http://www.phoronix.com/scan.php?page=news_item&px=HDMI-CEC-Framework-Linux

http://www.phoronix.com/scan.php?page=news_item&px=MTIwMTk

http://lists.freedesktop.org/archives/dri-devel/2012-October/028716.html

Question is if libCEC can be supported through this framework too? See:

https://hverkuil.home.xs4all.nl/cec.html#cec-api

This new CEC API uses a CEC bus with CEC clients.

Guess this means that LibCEC could be a CEC client usable via this API?

PS: Looks like this "HDMI CEC framework" is sponsored by Samsung & Cisco.

At least the main developers are "Kamil Debski"[email protected] / Kamil Debski [email protected] and "Hans Verkuil" [email protected] / "Hans Verkuil" [email protected]

http://lists.freedesktop.org/archives/dri-devel/2015-March/thread.html#79678
http://lists.freedesktop.org/archives/dri-devel/2015-March/079679.html
http://lists.freedesktop.org/archives/dri-devel/2015-March/079680.html
http://lists.freedesktop.org/archives/dri-devel/2015-March/079681.html
http://lists.freedesktop.org/archives/dri-devel/2015-March/079682.html
http://lists.freedesktop.org/archives/dri-devel/2015-March/079683.html
http://lists.freedesktop.org/archives/dri-devel/2015-March/079684.html
http://lists.freedesktop.org/archives/dri-devel/2015-March/079685.html
http://lists.freedesktop.org/archives/dri-devel/2015-March/079686.html
http://lists.freedesktop.org/archives/dri-devel/2015-March/079687.html

TV remote actions executed twice

Ever since OpenElec 4 beta 1 (including beta 2), the actions of my TV remote are often applied twice. It happens throughout the UI. E.g. in lists where pressing "down" once results in going down two steps, or when pressing a button, etc.

Here's a log where it happened again: http://xbmclogs.com/show.php?id=150377
Note that there's a major snip at line 255, due to a different test I performed first.

In this case I navigated to the shutdown button, pressed it, and it went strait through to powering down because that would have been the next selected option, even though I only pressed the button once. This is where the log, obviously, stops.

System: Raspberry Pi
OS: OpenElec 4.0 beta 2
TV+remote: Panasonic VIERA G30

Let me know if you need any more information.

Panasonic remote - multimedia keys stopped working

Hi,

just upgraded my Pi today and my Panasonic remote multimedia keys stopped working in XBMC - keys bellow volume + and - http://photos.expertreviews.co.uk/images/front_picture_library_Expert_Reviews/dir_296/er_photo_148213_52.jpg

Only the programme Up and Down work and now they change Chapters in my mkv films. The fast forward and backward, play/pause and stop doesn't work. Before today I had libcec-rpi-2.1.3-1 and today it was upgraded to libcec-2.1.4-1.1. Also an xbmc was upgraded(it included the patch for fixing doublekey presses on my remote witch happened randomly due to a firmware bug in my Panasonic plasma TV). When I run cec-client I can see that it doesn't register the multimedia keys when I press them, here is the output, multimedia keys was pressed last but no entry:

EDIT: here is the output of XBMC debug log when the multimedia keys worked, it includes output of CEC also http://tinyurl.com/pb4w7ef

EDIT 2: this could be the problem in firmware of Pi because that also changed in upgrade today?

No device type given. Using 'recording device'
CEC Parser created - libCEC version 2.1.4
no serial port given. trying autodetect:
path: Raspberry Pi
com port: RPI

opening a connection to the CEC adapter...
DEBUG: [ 181] unregistering all CEC clients
DEBUG: [ 182] Broadcast (F): osd name set to 'Broadcast'
DEBUG: [ 183] InitHostCEC - vchiq_initialise succeeded
DEBUG: [ 184] InitHostCEC - vchi_initialise succeeded
DEBUG: [ 185] InitHostCEC - vchi_connect succeeded
DEBUG: [ 186] logical address changed to Broadcast (f)
DEBUG: [ 191] RegisterLogicalAddress - registering address e
DEBUG: [ 372] logical address changed to Playback 1 (4)
DEBUG: [ 372] logical address changed to Free use (e)
DEBUG: [ 372] Open - vc_cec initialised
NOTICE: [ 373] connection opened
DEBUG: [ 374] << Broadcast (F) -> TV (0): POLL
DEBUG: [ 374] initiator 'Broadcast' is not supported by the CEC adapter. using 'Free use' instead
TRAFFIC: [ 374] << e0
DEBUG: [ 376] processor thread started
DEBUG: [ 406] >> POLL sent
DEBUG: [ 406] TV (0): device status changed into 'present'
DEBUG: [ 406] << requesting vendor ID of 'TV' (0)
TRAFFIC: [ 407] << e0:8c
TRAFFIC: [ 615] >> 0f:87:00:80:45
DEBUG: [ 615] >> TV (0) -> Broadcast (F): device vendor id (87)
DEBUG: [ 615] TV (0): vendor = Panasonic (008045)
DEBUG: [ 616] expected response received (87: device vendor id)
DEBUG: [ 616] replacing the command handler for device 'TV' (0)
NOTICE: [ 616] registering new CEC client - v2.1.4
DEBUG: [ 617] detecting logical address for type 'playback device'
DEBUG: [ 617] trying logical address 'Playback 1'
DEBUG: [ 617] << Playback 1 (4) -> Playback 1 (4): POLL
TRAFFIC: [ 617] << 44
DEBUG: [ 618] UnregisterLogicalAddress - releasing previous logical address
DEBUG: [ 619] logical address changed to Broadcast (f)
DEBUG: [ 620] RegisterLogicalAddress - registering address 4
DEBUG: [ 890] logical address changed to Free use (e)
DEBUG: [ 891] logical address changed to Playback 1 (4)
DEBUG: [ 891] logical address changed to Playback 1 (4)
TRAFFIC: [ 891] << 44
DEBUG: [ 891] >> POLL not sent
DEBUG: [ 892] using logical address 'Playback 1'
DEBUG: [ 892] Playback 1 (4): device status changed into 'handled by libCEC'
DEBUG: [ 892] Playback 1 (4): power status changed from 'unknown' to 'on'
DEBUG: [ 892] Playback 1 (4): vendor = Pulse Eight (001582)
DEBUG: [ 892] Playback 1 (4): CEC version 1.4
DEBUG: [ 893] AllocateLogicalAddresses - device '0', type 'playback device', LA '4'
DEBUG: [ 893] Playback 1 (4): osd name set to 'CECTester'
DEBUG: [ 893] Playback 1 (4): menu language set to 'eng'
DEBUG: [ 894] GetPhysicalAddress - physical address = 1000
DEBUG: [ 895] AutodetectPhysicalAddress - autodetected physical address '1000'
DEBUG: [ 895] Playback 1 (4): physical address changed from ffff to 1000
DEBUG: [ 895] << Playback 1 (4) -> broadcast (F): physical adddress 1000
TRAFFIC: [ 895] << 4f:84:10:00:04
NOTICE: [ 1047] CEC client registered: libCEC version = 2.1.4, client version = 2.1.4, firmware version = 1, logical address(es) = Playback 1 (4) , physical address: 1.0.0.0, host: armv6l-unknown-linux-gnueabihf, features: 'P8 USB' 'P8 USB detect' 'RPi', compiled on: Thu Jan 9 21:46:03 UTC 2014 by nobody on Linux 3.4.75-1-ARCH (armv6l)
DEBUG: [ 1047] Playback 1 (4): vendor = Panasonic (008045)
DEBUG: [ 1047] replacing the command handler for device 'Playback 1' (4)
DEBUG: [ 1048] << Playback 1 (4) -> TV (0): OSD name 'CECTester'
TRAFFIC: [ 1048] << 40:47:43:45:43:54:65:73:74:65:72
WARNING: [ 1196] unhandled response received: opcode=87 initiator=4 destination=f response=0
TRAFFIC: [ 1617] >> 04:89:10:01:05
DEBUG: [ 1617] >> TV (0) -> Playback 1 (4): vendor command (89)
DEBUG: [ 1618] << requesting power status of 'TV' (0)
TRAFFIC: [ 1618] << 40:8f
TRAFFIC: [ 1799] >> 04:00:47:00
DEBUG: [ 1800] >> TV (0) -> Playback 1 (4): feature abort ( 0)
DEBUG: [ 1800] marking opcode 'set osd name' as unsupported feature for device 'TV'
WARNING: [ 2159] unhandled response received: opcode=89 initiator=4 destination=0 response=0
TRAFFIC: [ 2241] >> 04:90:00
DEBUG: [ 2241] >> TV (0) -> Playback 1 (4): report power status (90)
DEBUG: [ 2241] TV (0): power status changed from 'unknown' to 'on'
DEBUG: [ 2242] expected response received (90: report power status)
waiting for input
TRAFFIC: [ 2431] >> 04:a0:00:80:45:06:05
DEBUG: [ 2431] >> TV (0) -> Playback 1 (4): vendor command with id (A0)
WARNING: [ 2553] unhandled response received: opcode=82 initiator=4 destination=f response=0
WARNING: [ 3706] unhandled response received: opcode=4 initiator=4 destination=0 response=0
TRAFFIC: [ 3706] >> 04:a0:00:80:45:06:05
DEBUG: [ 3706] >> TV (0) -> Playback 1 (4): vendor command with id (A0)
WARNING: [ 3828] unhandled response received: opcode=82 initiator=4 destination=f response=0
WARNING: [ 3919] unhandled response received: opcode=8e initiator=4 destination=0 response=0
WARNING: [ 4041] unhandled response received: opcode=82 initiator=4 destination=f response=0
TRAFFIC: [ 4792] >> 04:a0:00:80:45:06:05
DEBUG: [ 4792] >> TV (0) -> Playback 1 (4): vendor command with id (A0)
WARNING: [ 4915] unhandled response received: opcode=82 initiator=4 destination=f response=0
TRAFFIC: [ 10998] >> 04:44:04
DEBUG: [ 10998] >> TV (0) -> Playback 1 (4): user control pressed (44)
DEBUG: [ 10999] key pressed: right (4)
DEBUG: [ 10999] making Playback 1 (4) the active source
NOTICE: [ 10999] >> source activated: Playback 1 (4)
TRAFFIC: [ 11073] >> 04:8b:04
DEBUG: [ 11074] >> TV (0) -> Playback 1 (4): vendor remote button up (8B)
DEBUG: [ 11074] key released: right (4)
TRAFFIC: [ 14269] >> 04:44:31
DEBUG: [ 14269] >> TV (0) -> Playback 1 (4): user control pressed (44)
DEBUG: [ 14270] key pressed: channel down (31)
TRAFFIC: [ 14478] >> 04:8b:31
DEBUG: [ 14478] >> TV (0) -> Playback 1 (4): vendor remote button up (8B)
DEBUG: [ 14478] key released: channel down (31)
signal caught: 2 - exiting
DEBUG: [ 38077] unregistering all CEC clients
NOTICE: [ 38077] unregistering client: libCEC version = 2.1.4, client version = 2.1.4, firmware version = 1, logical address(es) = Playback 1 (4) , physical address: 1.0.0.0, host: armv6l-unknown-linux-gnueabihf, features: 'P8 USB' 'P8 USB detect' 'RPi', compiled on: Thu Jan 9 21:46:03 UTC 2014 by nobody on Linux 3.4.75-1-ARCH (armv6l)
DEBUG: [ 38078] Playback 1 (4): power status changed from 'on' to 'unknown'
DEBUG: [ 38078] Playback 1 (4): vendor = Unknown (000000)
DEBUG: [ 38078] Playback 1 (4): CEC version unknown
DEBUG: [ 38078] Playback 1 (4): osd name set to 'Playback 1'
DEBUG: [ 38078] marking Playback 1 (4) as inactive source
DEBUG: [ 38078] Playback 1 (4): device status changed into 'unknown'
DEBUG: [ 38079] unregistering all CEC clients
DEBUG: [ 38386] UnregisterLogicalAddress - releasing previous logical address
DEBUG: [ 38386] logical address changed to Broadcast (f)

Keypress not always sending to Windows Media Center

There is a bug in LibCecTray where it sometimes stops sending the CecKeypress to Windows Media Center. The problem occurs when there are multiple instances of ehshell.exe running, for example if you have a media center extender connected. Only the instance which is running as the current user will have a valid MainWindowHandle, and the others will have a MainWindowHandle value of 0.

With the current implementation, FindInstance returns the MainWindowHandle of the first instance of the process found, assuming that there will only be one instance. Sometimes the first instance found is being run by another user, so FindInstance ends up returning 0, which in turn suppresses the keypress.

The solution is to return the first instance found which has a non-zero MainWindowHandle value, like this:

/// <summary>
/// The main window handle of the application if it's running.
/// </summary>
/// <returns>The main window handle, or IntPtr.Zero if it's not found</returns>
protected virtual IntPtr FindInstance()
{
    foreach (var process in Process.GetProcessesByName(ProcessName))
    {
        if (process.MainWindowHandle != IntPtr.Zero)
            return process.MainWindowHandle;
    }
    return IntPtr.Zero;
}

libCEC 2.2.0 reported as 2:1:0 on configure.

After doing a configure I get the message:##############################################################################

libCEC version 2:1:0 configured

Compilation flags:
CXXFLAGS : -g -O2 -fPIC -Wall -Wextra -Wno-missing-field-initializers -Wno-psabi
libCEC LDFLAGS : -lXrandr -lX11 -ldl -lpthread -ludev
client LDFLAGS : -ldl -lpthread

Configured features:
Pulse-Eight CEC Adapter : yes
Pulse-Eight CEC Adapter detection : yes
Raspberry Pi support : no
TDA995x support : no
Exynos support : yes

You can now build libCEC by running:
make

This seems to indicate, that I have pulled Verison 2.1.0. Is this correct? The last git log entry showes:
commit 707bd51
Author: Lars Op den Kamp [email protected]
Date: Wed Mar 11 17:32:38 2015 +0100

fixed win32/64 builds after 0a3a1d742ceebcde87ca67b4a68805a5df4f88ec

so I think I have the latest version checked out.

Cannot sudo make on RasPi

I've tried following all the instructions on http://nyxi.eu/blog/2013/04/15/raspbian-libcec/ with a "sudo apt-get update first", but when I get to the "sudo make" step, I get an error I cannot find online already:

...
CXX RPiCECAdapterDetection.lo
CXX RPiCECAdapterCommunication. lo
adapter/RPi/RPiCECAdapterCommunication. cpp: In member function 'void CEC::CRPiCECAdapterCommunication::OnTVServiceCallback(uint32_t, uint32_t, uint32_t)':adapter/RPi/RPiCECAdapterCommunication. cpp: 121: 8: error: 'VC_HDMI_ATTACHED' was not declared in this scope
make[2]: *** [RPiCECAdapterCommunication.lo] Error 1
make[2]: Leaving directory ' /home/pi/libcec/src/lib'
make[l]: *** [all-recursive] Error 1
make[l]: Leaving direc)tory ' /home/pi/libcec'
make: * -~ * [all] Error 2

(BTW, thanks so much for putting this together -- CEC to control my TV from my RasPi will save me a lot of work fooling around with IR!)

Switching problem on RPi/OpenELEC including libcec 2.1.4

As I already reported on the OpenELEC repository I've got an issue with libcec 2.1.4 on my Raspberry connected to my Sony TV and Onkyo AVR. All these problems didn't occur with libcec 2.1.3. It isn't related to Gotham because it appeared on the newest rbej Frodo builds (including libcec 2.1.4) as well.
Here's the link to the issue report on the OE repository: OpenELEC/OpenELEC.tv#2962
My newest logfile is here: http://sprunge.us/UOAF

A short description of the issue: My Sony TV (KDL-46EX715) worked perfectly with OE 3.2.4 (libcec 2.1.3) on RPi, with all development versions including libcec 2.1.4 (Gotham and Frodo builds) there are some issues.
When turning on the TV switching between STB and XBMC works fine for about 10 to 20 seconds. Afterwards the TV reports a connection failure, especially when I switched to the STB it's impossible to switch back to XBMC. When I'm in XBMC the TV creates an input called Tuner 2 instead of Tuner 1, so switching back to STB doesn't work as usual.

Unable to compile with RPi/build.sh

Trying to compile for RaspberryPi via Fedora 20

build.sh fails with:

configure: error: C compiler cannot create executables

It points me to config.log which ends with:

/* confdefs.h */
#define PACKAGE_NAME "lockdev"
#define PACKAGE_TARNAME "lockdev"
#define PACKAGE_VERSION "1.0.4"
#define PACKAGE_STRING "lockdev 1.0.4"
#define PACKAGE_BUGREPORT "[email protected]"
#define PACKAGE_URL ""
#define PACKAGE "lockdev"
#define VERSION "1.0.4"
#define RELEASE_DATE_S "19 May 2012"
#define RELEASE_DATE 1337403600

configure: exit 77

I have installed lockdev-devel-1.0.4-0.11.20111007git.fc20.x86_64

I am not sure what to do because lockdev seems up-to-date.

CEC fail

Have reported an issue previously. Raspberry Pi and Panasonic Viera TH-P50V10A with SC-BT200 surround system.

Issues began after the December Raspbmc update which included updated LibCEC 2.1.4.

Further to my previous, it seems to fail after around 2 to 3 days of no use. The Pi continues to work.

The TV shows the Pi as "Player" but after a period of no use the TV does not show the Pi as "Player" anymore. It is gone - the only option remaining under Viera Link Control is "Home Cinema".

Once this occurs it obviously disrupts Viera Link and I am unable to even select the Home Cinema to provide sound and it defaults to the TV speakers. "Feature not available" is displayed when Viera Link is attempted to be used.

I need to reboot the Pi and turn Viera Link off and back on again to have the Pi once again show as "Player".

I am happy to leave debugging on for a couple of days but I am not sure how long the actual log will be.

Not changing active souce

I opened a trac issue for XBMC, after a second thought I think it is more CEC related

The problem:
Under input > Peripherals "Make Kodi the active source when starting" is sometime not working; the AVR does not switch the input

Here is my config:

  • OpenElec 5.0 RC 2 (4.97.2)
  • Pulse Eight CEC Adapter (Firmware 4.0)
  • Onkoy TX-SR313 (AVR)
  • Sharp Aquos (TV)

What I noticed:

  • On wake from sleep (Wake On Lan, the PC starts first and it then power on the TV and the AVR)
    Under Input > Peripherals there is an option "Connected to HDMI Device" present. If I set it to AVR it works perfectly
  • Upon reboot (when the TV & the AVR are already started)
    The "Connected to HDMI device" is not present anymore and it is not working.
    If do sleep/wake the PC the option is back, but it has TV as default value (and it is not working).
    This issue is pretty annoying for me as because the "Connected to HDMI device" is very often reset to TV, and it forces me to look for the AVR's remote to manually change the input.

I tried to read the log, but I honestly did not really understood what was really going on. My best guess is that CEC devices are not configured the same way by XBMC if the TV & AVR are already on when XBMC is starting (or maybe XBMC does not handle CEC devices the same way on startup and wake).

I did attach the log (debug and CEC debug), here is what I did:

  • 19:30 Power On
  • 19:32 Sleep
  • 19:34 Wake
    I would be very grateful if you could have a look. Let me know if you need further information.

Log: http://xbmclogs.com/show.php?id=374912

building for RPi creates erroneous libcec.so.2

I would like to compile libCEC for the Raspberry Pi on my Ubuntu development machine. I use /project/RPi/build.sh /path/to/binaries and make install to build the libCEC binaries and then scp them to my Raspberry Pi. I edited the RPi's /etc/ld.so.conf to include these binaries. When I run sudo ldconfig on the RPi I get this error

ldconfig: /home/pi/libcecbin/lib/libcec.so.2 is not a symbolic link

According to this page it is likely that /home/pi/libcecbin/lib/libcec.so.2 was not compiled correctly for RPi.

Any thoughts? Thanks.

Raspberry pi 2 ubuntu/lxde

I Installed raspbian and got Libcec working, However I needed firefox so selenium to work. So I Installed the Raspberry pi 2 ubuntu version and followed my steps for raspbian and libcec just finds no devices.

To install ubuntu I followed these steps.
www.techrepublic.com/article/how-to-get-ubuntu-desktop-on-the-raspberry-pi-2/

I have tried about all the guides for installing Libcec and I cant get it to work on This ubuntu install. Does this lib work with the raspberry pi 2 hardware under this OS? It should but I can't get it to work.

CEC Fail

Hi Lars,

Opening the issue again on the Pi. Even with the newer firmware the issue persists albeit nowhere near as often.

@opdenkamp
@samnazarko

CEC Not Restarting When TV Turned Off and then On

There used to be an issue 177 that had something to do with CEC not restarting after the TV was turned off and then on again (observed for boxes running XBMC - I think perhaps specific GeeXBox - http://www.geexbox.org/forum/topic/utilite-cec-not-working-after-tv-restart/).

I read that the previous issues had to be dropped, but I wondered if the issue 177 is still being targeted and if there is any way that I would know or see when it is resolved?

Thanks!

CEC Reconnect Issue with Sony TV

CEC randomly fails to connect back to TV when it has been turned off and back on.

root@odroid:/home/odroid# cec-client
No device type given. Using 'recording device'
CEC Parser created - libCEC version 2.1.4
no serial port given. trying autodetect: 
 path:     /dev/CEC
 com port: Exynos

opening a connection to the CEC adapter...
DEBUG:   [              88]   unregistering all CEC clients
DEBUG:   [              89]   Broadcast (F): osd name set to 'Broadcast'
NOTICE:  [              89]   connection opened
DEBUG:   [              89]   processor thread started
DEBUG:   [              89]   << Broadcast (F) -> TV (0): POLL
TRAFFIC: [              90]   << f0
DEBUG:   [             130]   >> POLL sent
DEBUG:   [             131]   TV (0): device status changed into 'present'
DEBUG:   [             131]   << requesting vendor ID of 'TV' (0)
TRAFFIC: [             131]   << f0:8c
TRAFFIC: [             331]   >> 0f:87:08:00:46
DEBUG:   [             331]   >> TV (0) -> Broadcast (F): device vendor id (87)
DEBUG:   [             331]   TV (0): vendor = Sony (080046)
DEBUG:   [             331]   expected response received (87: device vendor id)
NOTICE:  [             331]   registering new CEC client - v2.1.4
DEBUG:   [             331]   detecting logical address for type 'recording device'
DEBUG:   [             331]   trying logical address 'Recorder 1'
DEBUG:   [             331]   << Recorder 1 (1) -> Recorder 1 (1): POLL
TRAFFIC: [             331]   << 11
ERROR:   [             575]   Write: write failed ret = ffffffff !
TRAFFIC: [             575]   << 11
ERROR:   [             818]   Write: write failed ret = ffffffff !
DEBUG:   [             818]   >> POLL not sent
DEBUG:   [             819]   using logical address 'Recorder 1'
DEBUG:   [             819]   Recorder 1 (1): device status changed into 'handled by libCEC'
DEBUG:   [             819]   Recorder 1 (1): power status changed from 'unknown' to 'on'
DEBUG:   [             819]   Recorder 1 (1): vendor = Pulse Eight (001582)
DEBUG:   [             819]   Recorder 1 (1): CEC version 1.4
DEBUG:   [             819]   AllocateLogicalAddresses - device '0', type 'recording device', LA '1'
DEBUG:   [             819]   Recorder 1 (1): osd name set to 'CECTester'
DEBUG:   [             819]   Recorder 1 (1): menu language set to 'eng'
DEBUG:   [             819]   AutodetectPhysicalAddress - autodetected physical address '1000'
DEBUG:   [             819]   Recorder 1 (1): physical address changed from ffff to 1000
DEBUG:   [             819]   << Recorder 1 (1) -> broadcast (F): physical adddress 1000
TRAFFIC: [             819]   << 1f:84:10:00:01
TRAFFIC: [             955]   >> 1f:84:10:00:01
DEBUG:   [             955]   >> Recorder 1 (1) -> Broadcast (F): report physical address (84)
DEBUG:   [             955]   ignore physical address report for device Recorder 1 (1) because it's marked as handled by libCEC
NOTICE:  [             956]   CEC client registered: libCEC version = 2.1.4, client version = 2.1.4, firmware version = 0, logical address(es) = Recorder 1 (1) , physical address: 1.0.0.0, host: armv7l-unknown-linux-gnueabihf, features: 'P8 USB' 'P8 USB detect' 'EXYNOS', git revision: 733f76e, compiled on: Sat May 17 14:49:20 UTC 2014 by marianmi@adolin on Linux 3.8.13.18 (armv7l)
DEBUG:   [             956]   << Recorder 1 (1) -> TV (0): OSD name 'CECTester'
TRAFFIC: [             956]   << 10:47:43:45:43:54:65:73:74:65:72
TRAFFIC: [            1115]   >> 0f:80:00:00:10:00
DEBUG:   [            1115]   >> TV (0) -> Broadcast (F): routing change (80)
DEBUG:   [            1115]   TV (0): power status changed from 'unknown' to 'on'
DEBUG:   [            1396]   making Recorder 1 (1) the active source
DEBUG:   [            1396]   << requesting power status of 'TV' (0)
TRAFFIC: [            1396]   << 10:8f
NOTICE:  [            1461]   >> source activated: Recorder 1 (1)
DEBUG:   [            1461]   sending active source message for 'Recorder 1'
NOTICE:  [            1461]   << powering on 'TV' (0)
TRAFFIC: [            1461]   << 10:04
NOTICE:  [            1526]   << Recorder 1 (1) -> broadcast (F): active source (1000)
TRAFFIC: [            1526]   << 1f:82:10:00
DEBUG:   [            1639]   << Recorder 1 (1) -> TV (0): menu state 'activated'
TRAFFIC: [            1639]   << 10:8e:00
TRAFFIC: [            1728]   >> 1f:82:10:00
DEBUG:   [            1728]   >> Recorder 1 (1) -> Broadcast (F): active source (82)
DEBUG:   [            1728]   Recorder 1 (1) was already marked as active source
NOTICE:  [            1728]   >> source activated: Recorder 1 (1)
TRAFFIC: [            1794]   >> 01:46
DEBUG:   [            1794]   >> TV (0) -> Recorder 1 (1): give osd name (46)
DEBUG:   [            1794]   << Recorder 1 (1) -> TV (0): OSD name 'CECTester'
TRAFFIC: [            1794]   << 10:47:43:45:43:54:65:73:74:65:72
TRAFFIC: [            2141]   >> 01:8c
DEBUG:   [            2141]   >> TV (0) -> Recorder 1 (1): give device vendor id (8C)
DEBUG:   [            2141]   << Recorder 1 (1) -> TV (0): vendor id Pulse Eight (1582)
TRAFFIC: [            2141]   << 1f:87:00:15:82
TRAFFIC: [            2278]   >> 1f:87:00:15:82
DEBUG:   [            2278]   >> Recorder 1 (1) -> Broadcast (F): device vendor id (87)
TRAFFIC: [            2368]   >> 01:90:00
DEBUG:   [            2368]   >> TV (0) -> Recorder 1 (1): report power status (90)
DEBUG:   [            2368]   expected response received (90: report power status)
waiting for input
TRAFFIC: [            5704]   >> 01:44:03
DEBUG:   [            5704]   >> TV (0) -> Recorder 1 (1): user control pressed (44)
DEBUG:   [            5704]   key pressed: left (3)
TRAFFIC: [            5870]   >> 01:45
DEBUG:   [            5870]   >> TV (0) -> Recorder 1 (1): user control release (45)
DEBUG:   [            5870]   key released: left (3)
TRAFFIC: [           10235]   >> 01:44:04
DEBUG:   [           10235]   >> TV (0) -> Recorder 1 (1): user control pressed (44)
DEBUG:   [           10235]   key pressed: right (4)
TRAFFIC: [           10356]   >> 01:45
DEBUG:   [           10356]   >> TV (0) -> Recorder 1 (1): user control release (45)
DEBUG:   [           10356]   key released: right (4)
TRAFFIC: [           13374]   >> 01:44:02
DEBUG:   [           13374]   >> TV (0) -> Recorder 1 (1): user control pressed (44)
DEBUG:   [           13374]   key pressed: down (2)
TRAFFIC: [           13496]   >> 01:45
DEBUG:   [           13496]   >> TV (0) -> Recorder 1 (1): user control release (45)
DEBUG:   [           13496]   key released: down (2)
TRAFFIC: [           13872]   >> 01
DEBUG:   [           13872]   << POLL: TV (0) -> Recorder 1 (1)
TRAFFIC: [           15710]   >> 01:44:01
DEBUG:   [           15710]   >> TV (0) -> Recorder 1 (1): user control pressed (44)
DEBUG:   [           15710]   key pressed: up (1)
TRAFFIC: [           15832]   >> 01:45
DEBUG:   [           15832]   >> TV (0) -> Recorder 1 (1): user control release (45)
DEBUG:   [           15832]   key released: up (1)
TRAFFIC: [           19798]   >> 0f:a0:08:00:46:00:09:00:01
DEBUG:   [           19798]   >> TV (0) -> Broadcast (F): vendor command with id (A0)

Once the TV is turned off then back on, no response and output from CEC.
Termination of the CEC result

^Csignal caught: 2 - exiting
DEBUG:   [          161116]   unregistering all CEC clients
NOTICE:  [          161116]   unregistering client: libCEC version = 2.1.4, client version = 2.1.4, firmware version = 0, logical address(es) = Recorder 1 (1) , physical address: 1.0.0.0, host: armv7l-unknown-linux-gnueabihf, features: 'P8 USB' 'P8 USB detect' 'EXYNOS', git revision: 733f76e, compiled on: Sat May 17 14:49:20 UTC 2014 by marianmi@adolin on Linux 3.8.13.18 (armv7l)
DEBUG:   [          161116]   Recorder 1 (1): power status changed from 'on' to 'unknown'
DEBUG:   [          161116]   Recorder 1 (1): vendor = Unknown (000000)
DEBUG:   [          161116]   Recorder 1 (1): CEC version unknown
DEBUG:   [          161116]   Recorder 1 (1): osd name set to 'Recorder 1'
DEBUG:   [          161116]   marking Recorder 1 (1) as inactive source
DEBUG:   [          161116]   Recorder 1 (1): device status changed into 'unknown'
DEBUG:   [          161116]   unregistering all CEC clients

Here is the correct behavior, which only happens seldomly

DEBUG:   [           26514]   unregistering all CEC clients
root@odroid:/home/odroid# cec-client
No device type given. Using 'recording device'
CEC Parser created - libCEC version 2.1.4
no serial port given. trying autodetect: 
 path:     /dev/CEC
 com port: Exynos

opening a connection to the CEC adapter...
DEBUG:   [              90]   unregistering all CEC clients
DEBUG:   [              90]   Broadcast (F): osd name set to 'Broadcast'
NOTICE:  [              90]   connection opened
DEBUG:   [              90]   processor thread started
DEBUG:   [              90]   << Broadcast (F) -> TV (0): POLL
TRAFFIC: [              90]   << f0
DEBUG:   [             131]   >> POLL sent
DEBUG:   [             131]   TV (0): device status changed into 'present'
DEBUG:   [             132]   << requesting vendor ID of 'TV' (0)
TRAFFIC: [             132]   << f0:8c
TRAFFIC: [             332]   >> 0f:87:08:00:46
DEBUG:   [             332]   >> TV (0) -> Broadcast (F): device vendor id (87)
DEBUG:   [             332]   TV (0): vendor = Sony (080046)
DEBUG:   [             332]   expected response received (87: device vendor id)
NOTICE:  [             332]   registering new CEC client - v2.1.4
DEBUG:   [             332]   detecting logical address for type 'recording device'
DEBUG:   [             332]   trying logical address 'Recorder 1'
DEBUG:   [             332]   << Recorder 1 (1) -> Recorder 1 (1): POLL
TRAFFIC: [             332]   << 11
ERROR:   [             576]   Write: write failed ret = ffffffff !
TRAFFIC: [             576]   << 11
ERROR:   [             819]   Write: write failed ret = ffffffff !
DEBUG:   [             819]   >> POLL not sent
DEBUG:   [             819]   using logical address 'Recorder 1'
DEBUG:   [             819]   Recorder 1 (1): device status changed into 'handled by libCEC'
DEBUG:   [             819]   Recorder 1 (1): power status changed from 'unknown' to 'on'
DEBUG:   [             819]   Recorder 1 (1): vendor = Pulse Eight (001582)
DEBUG:   [             819]   Recorder 1 (1): CEC version 1.4
DEBUG:   [             819]   AllocateLogicalAddresses - device '0', type 'recording device', LA '1'
DEBUG:   [             819]   Recorder 1 (1): osd name set to 'CECTester'
DEBUG:   [             820]   Recorder 1 (1): menu language set to 'eng'
DEBUG:   [             820]   AutodetectPhysicalAddress - autodetected physical address '1000'
DEBUG:   [             820]   Recorder 1 (1): physical address changed from ffff to 1000
DEBUG:   [             820]   << Recorder 1 (1) -> broadcast (F): physical adddress 1000
TRAFFIC: [             820]   << 1f:84:10:00:01
TRAFFIC: [             956]   >> 1f:84:10:00:01
DEBUG:   [             956]   >> Recorder 1 (1) -> Broadcast (F): report physical address (84)
DEBUG:   [             956]   ignore physical address report for device Recorder 1 (1) because it's marked as handled by libCEC
NOTICE:  [             956]   CEC client registered: libCEC version = 2.1.4, client version = 2.1.4, firmware version = 0, logical address(es) = Recorder 1 (1) , physical address: 1.0.0.0, host: armv7l-unknown-linux-gnueabihf, features: 'P8 USB' 'P8 USB detect' 'EXYNOS', git revision: 733f76e, compiled on: Sat May 17 14:49:20 UTC 2014 by marianmi@adolin on Linux 3.8.13.18 (armv7l)
DEBUG:   [             957]   << Recorder 1 (1) -> TV (0): OSD name 'CECTester'
TRAFFIC: [             957]   << 10:47:43:45:43:54:65:73:74:65:72
TRAFFIC: [            1116]   >> 0f:80:00:00:10:00
DEBUG:   [            1116]   >> TV (0) -> Broadcast (F): routing change (80)
DEBUG:   [            1116]   TV (0): power status changed from 'unknown' to 'on'
DEBUG:   [            1397]   << requesting power status of 'TV' (0)
DEBUG:   [            1397]   making Recorder 1 (1) the active source
TRAFFIC: [            1397]   << 10:8f
NOTICE:  [            1462]   >> source activated: Recorder 1 (1)
DEBUG:   [            1462]   sending active source message for 'Recorder 1'
NOTICE:  [            1462]   << powering on 'TV' (0)
TRAFFIC: [            1462]   << 10:04
NOTICE:  [            1527]   << Recorder 1 (1) -> broadcast (F): active source (1000)
TRAFFIC: [            1527]   << 1f:82:10:00
DEBUG:   [            1640]   << Recorder 1 (1) -> TV (0): menu state 'activated'
TRAFFIC: [            1640]   << 10:8e:00
TRAFFIC: [            1728]   >> 1f:82:10:00
DEBUG:   [            1729]   >> Recorder 1 (1) -> Broadcast (F): active source (82)
DEBUG:   [            1729]   Recorder 1 (1) was already marked as active source
NOTICE:  [            1729]   >> source activated: Recorder 1 (1)
TRAFFIC: [            1794]   >> 01:46
DEBUG:   [            1795]   >> TV (0) -> Recorder 1 (1): give osd name (46)
DEBUG:   [            1795]   << Recorder 1 (1) -> TV (0): OSD name 'CECTester'
TRAFFIC: [            1795]   << 10:47:43:45:43:54:65:73:74:65:72
TRAFFIC: [            2142]   >> 01:8c
DEBUG:   [            2142]   >> TV (0) -> Recorder 1 (1): give device vendor id (8C)
DEBUG:   [            2142]   << Recorder 1 (1) -> TV (0): vendor id Pulse Eight (1582)
TRAFFIC: [            2142]   << 1f:87:00:15:82
TRAFFIC: [            2279]   >> 1f:87:00:15:82
DEBUG:   [            2279]   >> Recorder 1 (1) -> Broadcast (F): device vendor id (87)
TRAFFIC: [            2368]   >> 01:90:00
DEBUG:   [            2369]   >> TV (0) -> Recorder 1 (1): report power status (90)
DEBUG:   [            2369]   expected response received (90: report power status)
waiting for input
TRAFFIC: [            5038]   >> 01:44:03
DEBUG:   [            5038]   >> TV (0) -> Recorder 1 (1): user control pressed (44)
DEBUG:   [            5038]   key pressed: left (3)
TRAFFIC: [            5160]   >> 01:45
DEBUG:   [            5160]   >> TV (0) -> Recorder 1 (1): user control release (45)
DEBUG:   [            5160]   key released: left (3)
TRAFFIC: [            6144]   >> 0f:a0:08:00:46:00:09:00:01
DEBUG:   [            6144]   >> TV (0) -> Broadcast (F): vendor command with id (A0)
TRAFFIC: [            8689]   >> 0f:84:00:00:00
DEBUG:   [            8689]   >> TV (0) -> Broadcast (F): report physical address (84)
DEBUG:   [            8689]   << Recorder 1 (1) -> broadcast (F): physical adddress 1000
TRAFFIC: [            8689]   << 1f:84:10:00:01
TRAFFIC: [            8826]   >> 1f:84:10:00:01
DEBUG:   [            8826]   >> Recorder 1 (1) -> Broadcast (F): report physical address (84)
DEBUG:   [            8826]   ignore physical address report for device Recorder 1 (1) because it's marked as handled by libCEC
TRAFFIC: [            8964]   >> 0f:87:08:00:46
DEBUG:   [            8964]   >> TV (0) -> Broadcast (F): device vendor id (87)
DEBUG:   [            8964]   << Recorder 1 (1) -> Broadcast (F): vendor id Pulse Eight (1582)
TRAFFIC: [            8964]   << 1f:87:00:15:82
TRAFFIC: [            9101]   >> 1f:87:00:15:82
DEBUG:   [            9101]   >> Recorder 1 (1) -> Broadcast (F): device vendor id (87)
TRAFFIC: [            9333]   >> 0f:a0:08:00:46:00:04:00:01
DEBUG:   [            9333]   >> TV (0) -> Broadcast (F): vendor command with id (A0)
TRAFFIC: [            9578]   >> 0f:80:00:00:10:00
DEBUG:   [            9578]   >> TV (0) -> Broadcast (F): routing change (80)
DEBUG:   [            9578]   Recorder 1 (1) was already marked as active source
NOTICE:  [            9578]   >> source activated: Recorder 1 (1)

TV gets turned off and backed on, CEC continue as it should

DEBUG:   [            9578]   sending active source message for 'Recorder 1'
NOTICE:  [            9578]   << powering on 'TV' (0)
TRAFFIC: [            9578]   << 10:04
NOTICE:  [            9643]   << Recorder 1 (1) -> broadcast (F): active source (1000)
TRAFFIC: [            9643]   << 1f:82:10:00
DEBUG:   [            9756]   << Recorder 1 (1) -> TV (0): menu state 'activated'
TRAFFIC: [            9756]   << 10:8e:00
TRAFFIC: [            9845]   >> 1f:82:10:00
DEBUG:   [            9845]   >> Recorder 1 (1) -> Broadcast (F): active source (82)
DEBUG:   [            9845]   Recorder 1 (1) was already marked as active source
NOTICE:  [            9845]   >> source activated: Recorder 1 (1)
TRAFFIC: [           10158]   >> 0f:a0:08:00:46:00:17:00:80
DEBUG:   [           10158]   >> TV (0) -> Broadcast (F): vendor command with id (A0)
TRAFFIC: [           10308]   >> 01:46
DEBUG:   [           10308]   >> TV (0) -> Recorder 1 (1): give osd name (46)
DEBUG:   [           10308]   << Recorder 1 (1) -> TV (0): OSD name 'CECTester'
TRAFFIC: [           10308]   << 10:47:43:45:43:54:65:73:74:65:72
TRAFFIC: [           10655]   >> 01:8c
DEBUG:   [           10655]   >> TV (0) -> Recorder 1 (1): give device vendor id (8C)
DEBUG:   [           10655]   << Recorder 1 (1) -> TV (0): vendor id Pulse Eight (1582)
TRAFFIC: [           10655]   << 1f:87:00:15:82
TRAFFIC: [           10792]   >> 1f:87:00:15:82
DEBUG:   [           10792]   >> Recorder 1 (1) -> Broadcast (F): device vendor id (87)
TRAFFIC: [           11191]   >> 0f:a0:08:00:46:00:13:00:10:80:00:01:00:00:00:00
DEBUG:   [           11191]   >> TV (0) -> Broadcast (F): vendor command with id (A0)
TRAFFIC: [           11508]   >> 0f:a0:08:00:46:00:08:00:00
DEBUG:   [           11508]   >> TV (0) -> Broadcast (F): vendor command with id (A0)
TRAFFIC: [           14555]   >> 0f:a0:08:00:46:00:1e:00
DEBUG:   [           14555]   >> TV (0) -> Broadcast (F): vendor command with id (A0)
TRAFFIC: [           19267]   >> 4f:84:20:00:04
DEBUG:   [           19267]   >> Playback 1 (4) -> Broadcast (F): report physical address (84)
DEBUG:   [           19267]   Playback 1 (4): physical address changed from ffff to 2000
DEBUG:   [           19267]   device Playback 1 (4) status changed to present after command report physical address
TRAFFIC: [           19445]   >> 01
DEBUG:   [           19446]   << POLL: TV (0) -> Recorder 1 (1)
TRAFFIC: [           21060]   >> 4f:87:00:1a:11
DEBUG:   [           21060]   >> Playback 1 (4) -> Broadcast (F): device vendor id (87)
DEBUG:   [           21060]   Playback 1 (4): vendor = Unknown (001a11)
TRAFFIC: [           34397]   >> 01
DEBUG:   [           34397]   << POLL: TV (0) -> Recorder 1 (1)
TRAFFIC: [           49398]   >> 01
DEBUG:   [           49398]   << POLL: TV (0) -> Recorder 1 (1)
TRAFFIC: [           64397]   >> 01
DEBUG:   [           64397]   << POLL: TV (0) -> Recorder 1 (1)
TRAFFIC: [           79397]   >> 01
DEBUG:   [           79397]   << POLL: TV (0) -> Recorder 1 (1)

This issue only happens on the odroid, but it does not happens on the raspberry pie.

Samsung Anynet+ fail since 2.1.4

Hello,

I use OpenElec on my raspberry and since Beta 5 Update (switch from libcec 2.1.3 to libcec 2.1.4) and I'm unable to control xbmc with CEC.

I have a Samsung TV with anynet+ and I see one CEC connection but when I try to switch on it my tv print "unable to connect to hardware"

Some informations :

  • before update on my tv settings I saw "XBMC" now I see only "Recorder"
  • I try to unpeer/reconfigure/reset/reinstall with out success
  • It's works again with all xbmc version linked to libcec 2.1.3

I try to launch cec-client and interact with it and I obtain this trace :

# cec-client -p 0
using HDMI port '1'
No device type given. Using 'recording device'
CEC Parser created - libCEC version 2.1.4
no serial port given. trying autodetect: 
 path:     Raspberry Pi
 com port: RPI

opening a connection to the CEC adapter...
DEBUG:   [             117]     unregistering all CEC clients
DEBUG:   [             119]     Broadcast (F): osd name set to 'Broadcast'
DEBUG:   [             121]     InitHostCEC - vchiq_initialise succeeded
DEBUG:   [             122]     InitHostCEC - vchi_initialise succeeded
DEBUG:   [             123]     InitHostCEC - vchi_connect succeeded
DEBUG:   [             126]     logical address changed to Broadcast (f)
DEBUG:   [             127]     RegisterLogicalAddress - registering address e
DEBUG:   [             310]     logical address changed to Recorder 1 (1)
DEBUG:   [             310]     logical address changed to Free use (e)
DEBUG:   [             311]     Open - vc_cec initialised
NOTICE:  [             312]     connection opened
DEBUG:   [             313]     << Broadcast (F) -> TV (0): POLL
DEBUG:   [             313]     initiator 'Broadcast' is not supported by the CEC adapter. using 'Free use' instead
TRAFFIC: [             314]     << e0
DEBUG:   [             316]     processor thread started
DEBUG:   [             345]     >> POLL sent
DEBUG:   [             346]     TV (0): device status changed into 'present'
DEBUG:   [             346]     << requesting vendor ID of 'TV' (0)
TRAFFIC: [             346]     << e0:8c
DEBUG:   [            1437]     expected response not received (87: device vendor id)
TRAFFIC: [            1438]     << e0:8c
DEBUG:   [            2499]     expected response not received (87: device vendor id)
NOTICE:  [            2499]     registering new CEC client - v2.1.4
DEBUG:   [            2499]     detecting logical address for type 'recording device'
DEBUG:   [            2500]     trying logical address 'Recorder 1'
DEBUG:   [            2500]     << Recorder 1 (1) -> Recorder 1 (1): POLL
TRAFFIC: [            2500]     << 11
DEBUG:   [            2500]     UnregisterLogicalAddress - releasing previous logical address
DEBUG:   [            2502]     logical address changed to Broadcast (f)
DEBUG:   [            2504]     RegisterLogicalAddress - registering address 1
DEBUG:   [            2685]     logical address changed to Free use (e)
DEBUG:   [            2685]     logical address changed to Recorder 1 (1)
TRAFFIC: [            2686]     << 11
DEBUG:   [            2686]     >> POLL not sent
DEBUG:   [            2686]     using logical address 'Recorder 1'
DEBUG:   [            2687]     Recorder 1 (1): device status changed into 'handled by libCEC'
DEBUG:   [            2687]     Recorder 1 (1): power status changed from 'unknown' to 'on'
DEBUG:   [            2687]     Recorder 1 (1): vendor = Pulse Eight (001582)
DEBUG:   [            2687]     Recorder 1 (1): CEC version 1.4
DEBUG:   [            2687]     AllocateLogicalAddresses - device '0', type 'recording device', LA '1'
DEBUG:   [            2687]     Recorder 1 (1): osd name set to 'CECTester'
DEBUG:   [            2687]     Recorder 1 (1): menu language set to 'eng'
DEBUG:   [            2689]     GetPhysicalAddress - physical address = 3000
DEBUG:   [            2690]     AutodetectPhysicalAddress - autodetected physical address '3000'
DEBUG:   [            2691]     Recorder 1 (1): physical address changed from ffff to 3000
DEBUG:   [            2692]     << Recorder 1 (1) -> broadcast (F): physical adddress 3000
TRAFFIC: [            2694]     << 1f:84:30:00:01
NOTICE:  [            2845]     CEC client registered: libCEC version = 2.1.4, client version = 2.1.4, firmware version = 1, logical address(es) = Recorder 1 (1) , physical address: 3.0.0.0, host: armv6zk-openelec-linux-gnueabi, features: 'P8 USB' 'P8 USB detect' 'RPi', git revision: 91785e0, compiled on: Fri Apr 18 15:52:37 UTC 2014 by [email protected] on Linux 3.13.9-200.fc20.x86_64 (x86_64)
DEBUG:   [            2846]     << Recorder 1 (1) -> TV (0): OSD name 'CECTester'
TRAFFIC: [            2846]     << 10:47:43:45:43:54:65:73:74:65:72
DEBUG:   [            3147]     << requesting power status of 'TV' (0)
TRAFFIC: [            3148]     << 10:8f
DEBUG:   [            4209]     expected response not received (90: report power status)
TRAFFIC: [            4209]     << 10:8f
DEBUG:   [            5271]     expected response not received (90: report power status)
waiting for input
TRAFFIC: [           27017]     >> 01:46
DEBUG:   [           27018]     >> TV (0) -> Recorder 1 (1): give osd name (46)
DEBUG:   [           27018]     << Recorder 1 (1) -> TV (0): OSD name 'CECTester'
TRAFFIC: [           27018]     << 10:47:43:45:43:54:65:73:74:65:72
WARNING: [           27498]     unhandled response received: opcode=47 initiator=1 destination=0 response=0
TRAFFIC: [           28531]     >> 01:8c
DEBUG:   [           28531]     >> TV (0) -> Recorder 1 (1): give device vendor id (8C)
DEBUG:   [           28531]     << Recorder 1 (1) -> TV (0): vendor id Pulse Eight (1582)
TRAFFIC: [           28531]     << 1f:87:00:15:82
WARNING: [           28832]     unhandled response received: opcode=87 initiator=1 destination=f response=0
TRAFFIC: [           30173]     >> 01:a0:00:00:f0:23
DEBUG:   [           30173]     >> TV (0) -> Recorder 1 (1): vendor command with id (A0)
DEBUG:   [           30173]     sending abort with opcode a0 and reason 'invalid operand' to TV
DEBUG:   [           30174]     << transmitting abort message
TRAFFIC: [           30174]     << 10:00:a0:03
NOTICE:  [           30294]     Unmapped code detected. Please send an email to [email protected] with the following details, and if you pressed a key, tell us which one you pressed, and we'll add support for this it.
CEC command: >> 01:a0:00:00:f0:23
Vendor ID: Unknown (000000)
WARNING: [           30414]     unhandled response received: opcode=0 initiator=1 destination=0 response=0
TRAFFIC: [           31671]     >> 01:9f
DEBUG:   [           31671]     >> TV (0) -> Recorder 1 (1): get cec version (9F)
DEBUG:   [           31671]     << Recorder 1 (1) -> TV (0): cec version 1.4
TRAFFIC: [           31671]     << 10:9e:05
WARNING: [           31881]     unhandled response received: opcode=9e initiator=1 destination=0 response=0
TRAFFIC: [           33291]     >> 01:83
DEBUG:   [           33291]     >> TV (0) -> Recorder 1 (1): give physical address (83)
DEBUG:   [           33291]     << Recorder 1 (1) -> broadcast (F): physical adddress 3000
TRAFFIC: [           33291]     << 1f:84:30:00:01
WARNING: [           33591]     unhandled response received: opcode=84 initiator=1 destination=f response=0
TRAFFIC: [           34851]     >> 0f:85
DEBUG:   [           34851]     >> TV (0) -> Broadcast (F): request active source (85)
DEBUG:   [           34851]     >> 0 requests active source
DEBUG:   [           34851]     TV (0): power status changed from 'unknown' to 'on'
DEBUG:   [           34851]     << Recorder 1 (1) is not the active source
TRAFFIC: [           36907]     >> 0f:82:00:00
DEBUG:   [           36907]     >> TV (0) -> Broadcast (F): active source (82)
DEBUG:   [           36908]     making TV (0) the active source
TRAFFIC: [           47762]     >> 01:8f
DEBUG:   [           47762]     >> TV (0) -> Recorder 1 (1): give device power status (8F)
DEBUG:   [           47762]     << Recorder 1 (1) -> TV (0): on
TRAFFIC: [           47763]     << 10:90:00
WARNING: [           47973]     unhandled response received: opcode=90 initiator=1 destination=0 response=0
TRAFFIC: [           49770]     >> 01:8f
DEBUG:   [           49771]     >> TV (0) -> Recorder 1 (1): give device power status (8F)
DEBUG:   [           49771]     << Recorder 1 (1) -> TV (0): on
TRAFFIC: [           49771]     << 10:90:00
WARNING: [           49981]     unhandled response received: opcode=90 initiator=1 destination=0 response=0
TRAFFIC: [           51811]     >> 01:8f
DEBUG:   [           51811]     >> TV (0) -> Recorder 1 (1): give device power status (8F)
DEBUG:   [           51811]     << Recorder 1 (1) -> TV (0): on
TRAFFIC: [           51812]     << 10:90:00
WARNING: [           52021]     unhandled response received: opcode=90 initiator=1 destination=0 response=0
TRAFFIC: [           53859]     >> 01:8f
DEBUG:   [           53859]     >> TV (0) -> Recorder 1 (1): give device power status (8F)
DEBUG:   [           53860]     << Recorder 1 (1) -> TV (0): on
TRAFFIC: [           53860]     << 10:90:00
WARNING: [           54069]     unhandled response received: opcode=90 initiator=1 destination=0 response=0
TRAFFIC: [           55890]     >> 01:8f
DEBUG:   [           55891]     >> TV (0) -> Recorder 1 (1): give device power status (8F)
DEBUG:   [           55891]     << Recorder 1 (1) -> TV (0): on
TRAFFIC: [           55891]     << 10:90:00
WARNING: [           56101]     unhandled response received: opcode=90 initiator=1 destination=0 response=0
TRAFFIC: [           57930]     >> 01:8f
DEBUG:   [           57931]     >> TV (0) -> Recorder 1 (1): give device power status (8F)
DEBUG:   [           57931]     << Recorder 1 (1) -> TV (0): on
TRAFFIC: [           57931]     << 10:90:00
WARNING: [           58141]     unhandled response received: opcode=90 initiator=1 destination=0 response=0
DEBUG:   [         1010283]     GetPhysicalAddress - physical address = 3000

I'm available if you need other things.

Thanks for your help

only switching AVR between devices (PC, PS3 etc)

Hey guys,
at first thanks for the fast delivery an the great adapter! I was looking for exactly this kind of tool!
But unfortunately i have a little problem by configuring it with the libcec tool and i hope, you can helpo me.

at first my "architecture":
TV [HDMI Port: 2] -> [HDMI Display Port] Denon AVR [HDMI 4] -> [Pulse8 Adapter] PC

and at the AVR are 2 other device connected: [HDMI 3] PS3 and [HDMI 5] raspberry Pi

The only thing I want to do, is to switch between the HDMI Ports of the denon AVR.
between PS3 and Raspberry Pi it works very well. Only the PC wasn't found until now.
Now I have the adapter an my Sony Bravia Sync found the PC as device.
But... it doesn't really work well.. because by switching between PS3, RPI and PC it allways show up some wrong devices an empty entries at the bravia sync menu... an i allways need the denon remote to get back to the PC...
What exactly do i have to do? Especially what ist hte right configuration for the libcec tool? How already said... I dont want have any other funtion, then switching between the HDMI Ports of the AVR.
Thanks in adavance and kind regards,
Andreas

Reference library and API/ABI for interfacing with uinput (and Python)

LibCEC already provide C, C++ and .NET CLR interfaces to Pulse-Eight adapter, but lack simple interfaces from uinput (or Python)

One possible solution for this is to add libcec-daemon (Linux daemon) as a reference library for connecting libcec to uinput, this would enable all uinput compatible devices to interface with libcec.

https://github.com/bramp/libcec-daemon

libcec-daemon is licensed under GPL right now but might be changed to BSD license later.

To extend even further on this you could add Python-uinput on top of that as is, or maybe even modify it for native libcec interface to add a Python interface for libcec

https://github.com/tuomasjjrasanen/python-uinput
http://tjjr.fi/sw/python-uinput/

Expected response not receieved with latest XBMC beta and libcec 2.1.4

I first had this issue when I upgraded to Fedora 20, from 19, and used the only available version of xbmc in the repos - alpha9. Since then I have tested against:

  • The latest beta from git
  • libcec v2.1.4
  • v4 of the firmware - previously v3
  • running cec-client on its own.

My TV is a Samsung Series 6 LA37B650 and the running user is a member of the dialout and lockdev groups. This previously worked with Frodo and F19 has libcec-2.1.3 in the repos.

$ cec-client 
No device type given. Using 'recording device'
CEC Parser created - libCEC version 2.1.4
no serial port given. trying autodetect: 
 path:     /sys/devices/pci0000:00/0000:00:1d.2/usb8/8-1
 com port: /dev/ttyACM0

opening a connection to the CEC adapter...
DEBUG:   [              25] unregistering all CEC clients
DEBUG:   [              25] Broadcast (F): osd name set to 'Broadcast'
DEBUG:   [              28] connection opened, clearing any previous input and waiting for active transmissions to end before starting
DEBUG:   [              28] communication thread started
DEBUG:   [              39] turning controlled mode on
NOTICE:  [              59] connection opened
DEBUG:   [              60] << Broadcast (F) -> TV (0): POLL
TRAFFIC: [              60] << f0
DEBUG:   [              60] setting the line timeout to 3
DEBUG:   [              60] processor thread started
DEBUG:   [              95] >> POLL sent
DEBUG:   [              95] TV (0): device status changed into 'present'
DEBUG:   [              95] << requesting vendor ID of 'TV' (0)
TRAFFIC: [              96] << f0:8c
DEBUG:   [            1157] expected response not received (87: device vendor id)
TRAFFIC: [            1157] << f0:8c
DEBUG:   [            2216] expected response not received (87: device vendor id)
NOTICE:  [            2216] registering new CEC client - v2.1.4
DEBUG:   [            2216] detecting logical address for type 'recording device'
DEBUG:   [            2216] trying logical address 'Recorder 1'
DEBUG:   [            2216] << Recorder 1 (1) -> Recorder 1 (1): POLL
TRAFFIC: [            2216] << 11
DEBUG:   [            2248] CEC transmission - received response - TRANSMIT_FAILED_ACK
TRAFFIC: [            2248] << 11
DEBUG:   [            2285] CEC transmission - received response - TRANSMIT_FAILED_ACK
DEBUG:   [            2285] >> POLL not sent
DEBUG:   [            2285] using logical address 'Recorder 1'
DEBUG:   [            2285] Recorder 1 (1): device status changed into 'handled by libCEC'
DEBUG:   [            2285] Recorder 1 (1): power status changed from 'unknown' to 'on'
DEBUG:   [            2285] Recorder 1 (1): vendor = Pulse Eight (001582)
DEBUG:   [            2285] Recorder 1 (1): CEC version 1.4
DEBUG:   [            2285] AllocateLogicalAddresses - device '0', type 'recording device', LA '1'
DEBUG:   [            2285] setting ackmask to  2
DEBUG:   [            2290] Recorder 1 (1): osd name set to 'CECTester'
DEBUG:   [            2290] Recorder 1 (1): menu language set to 'eng'
DEBUG:   [            2290] GetPhysicalAddress - trying to get the physical address via ADL
DEBUG:   [            2290] GetPhysicalAddress - ADL returned physical address 0000
DEBUG:   [            2290] GetPhysicalAddress - trying to get the physical address via nvidia driver
DEBUG:   [            2290] GetPhysicalAddress - nvidia driver returned physical address 0000
DEBUG:   [            2290] GetPhysicalAddress - trying to get the physical address from the OS
DEBUG:   [            2290] GetPhysicalAddress - OS returned physical address 0000
DEBUG:   [            2290] SetDevicePhysicalAddress - not setting invalid physical address 0000
NOTICE:  [            2290] setting HDMI port to 1 on device TV (0)
DEBUG:   [            2290] Recorder 1 (1): physical address changed from ffff to 1000
DEBUG:   [            2290] << Recorder 1 (1) -> broadcast (F): physical adddress 1000
TRAFFIC: [            2290] << 1f:84:10:00:01
DEBUG:   [            2424] using persisted autonomous mode setting: 'enabled'
DEBUG:   [            2429] using persisted CEC version setting: '1.4'
DEBUG:   [            2434] using persisted logical address setting: 'Recorder 1'
DEBUG:   [            2440] using persisted device type setting: 'recording device'
DEBUG:   [            2445] using persisted logical address mask setting: '206'
DEBUG:   [            2455] using persisted device name setting: 'XBMC'
DEBUG:   [            2460] using persisted physical address setting: '1000'
DEBUG:   [            2460] setting the OSD name to CECTester (previous: XBMC)
NOTICE:  [            2465] CEC client registered: libCEC version = 2.1.4, client version = 2.1.4, firmware version = 4, firmware build date: Thu Dec  6 11:15:20 2012 +0000, logical address(es) = Recorder 1 (1) , base device: TV (0), HDMI port number: 1, physical address: 1.0.0.0, host: x86_64-redhat-linux-gnu, features: 'P8 USB' 'P8 USB detect', git revision: 30d9194, compiled on: Sat Mar 22 07:40:23 UTC 2014 by pb@localhost on Linux 3.13.6-200.fc20.x86_64 (x86_64)
DEBUG:   [            2465] << Recorder 1 (1) -> TV (0): OSD name 'CECTester'
TRAFFIC: [            2465] << 10:47:43:45:43:54:65:73:74:65:72
DEBUG:   [            2739] << requesting power status of 'TV' (0)
TRAFFIC: [            2739] << 10:8f
DEBUG:   [            3801] expected response not received (90: report power status)
TRAFFIC: [            3801] << 10:8f
DEBUG:   [            4859] expected response not received (90: report power status)
waiting for input

Possibly unrelated, but when I tell my tv to refresh the sources list I see the following.

TRAFFIC: [           52816] >> 01
DEBUG:   [           52816] << POLL: TV (0) -> Recorder 1 (1)
TRAFFIC: [           52862] >> 02
DEBUG:   [           52862] << POLL: TV (0) -> Recorder 2 (2)
TRAFFIC: [           52904] >> 02
DEBUG:   [           52904] << POLL: TV (0) -> Recorder 2 (2)
TRAFFIC: [           52940] >> 02
DEBUG:   [           52940] << POLL: TV (0) -> Recorder 2 (2)
TRAFFIC: [           52976] >> 02
DEBUG:   [           52976] << POLL: TV (0) -> Recorder 2 (2)
TRAFFIC: [           53022] >> 02
DEBUG:   [           53022] << POLL: TV (0) -> Recorder 2 (2)
TRAFFIC: [           53059] >> 03
DEBUG:   [           53059] << POLL: TV (0) -> Tuner 1 (3)
TRAFFIC: [           53100] >> 03
DEBUG:   [           53100] << POLL: TV (0) -> Tuner 1 (3)
TRAFFIC: [           53136] >> 03
DEBUG:   [           53136] << POLL: TV (0) -> Tuner 1 (3)
TRAFFIC: [           53173] >> 03
DEBUG:   [           53173] << POLL: TV (0) -> Tuner 1 (3)
TRAFFIC: [           53219] >> 03
DEBUG:   [           53219] << POLL: TV (0) -> Tuner 1 (3)
TRAFFIC: [           53260] >> 04
DEBUG:   [           53260] << POLL: TV (0) -> Playback 1 (4)
TRAFFIC: [           53297] >> 04
DEBUG:   [           53297] << POLL: TV (0) -> Playback 1 (4)
TRAFFIC: [           53333] >> 04
DEBUG:   [           53333] << POLL: TV (0) -> Playback 1 (4)
TRAFFIC: [           53374] >> 04
DEBUG:   [           53374] << POLL: TV (0) -> Playback 1 (4)
TRAFFIC: [           53415] >> 04
DEBUG:   [           53415] << POLL: TV (0) -> Playback 1 (4)
TRAFFIC: [           53457] >> 05
DEBUG:   [           53457] << POLL: TV (0) -> Audio (5)
TRAFFIC: [           53493] >> 05
DEBUG:   [           53493] << POLL: TV (0) -> Audio (5)
TRAFFIC: [           53534] >> 05
DEBUG:   [           53534] << POLL: TV (0) -> Audio (5)
TRAFFIC: [           53570] >> 05
DEBUG:   [           53570] << POLL: TV (0) -> Audio (5)
TRAFFIC: [           53617] >> 05
DEBUG:   [           53617] << POLL: TV (0) -> Audio (5)
TRAFFIC: [           53653] >> 06
DEBUG:   [           53653] << POLL: TV (0) -> Tuner 2 (6)
TRAFFIC: [           53689] >> 06
DEBUG:   [           53689] << POLL: TV (0) -> Tuner 2 (6)
TRAFFIC: [           53730] >> 06
DEBUG:   [           53730] << POLL: TV (0) -> Tuner 2 (6)
TRAFFIC: [           53767] >> 06
DEBUG:   [           53767] << POLL: TV (0) -> Tuner 2 (6)
TRAFFIC: [           53813] >> 06
DEBUG:   [           53813] << POLL: TV (0) -> Tuner 2 (6)
TRAFFIC: [           53849] >> 07
DEBUG:   [           53849] << POLL: TV (0) -> Tuner 3 (7)
TRAFFIC: [           53885] >> 07
DEBUG:   [           53885] << POLL: TV (0) -> Tuner 3 (7)
TRAFFIC: [           53927] >> 07
DEBUG:   [           53927] << POLL: TV (0) -> Tuner 3 (7)
TRAFFIC: [           53963] >> 07
DEBUG:   [           53963] << POLL: TV (0) -> Tuner 3 (7)
TRAFFIC: [           54009] >> 07
DEBUG:   [           54009] << POLL: TV (0) -> Tuner 3 (7)
TRAFFIC: [           54046] >> 08
DEBUG:   [           54046] << POLL: TV (0) -> Playback 2 (8)
TRAFFIC: [           54087] >> 08
DEBUG:   [           54087] << POLL: TV (0) -> Playback 2 (8)
TRAFFIC: [           54123] >> 08
DEBUG:   [           54123] << POLL: TV (0) -> Playback 2 (8)
TRAFFIC: [           54159] >> 08
DEBUG:   [           54159] << POLL: TV (0) -> Playback 2 (8)
TRAFFIC: [           54206] >> 08
DEBUG:   [           54206] << POLL: TV (0) -> Playback 2 (8)
TRAFFIC: [           54247] >> 09
DEBUG:   [           54247] << POLL: TV (0) -> Recorder 3 (9)
TRAFFIC: [           54283] >> 09
DEBUG:   [           54283] << POLL: TV (0) -> Recorder 3 (9)
TRAFFIC: [           54319] >> 09
DEBUG:   [           54319] << POLL: TV (0) -> Recorder 3 (9)
TRAFFIC: [           54361] >> 09
DEBUG:   [           54361] << POLL: TV (0) -> Recorder 3 (9)
TRAFFIC: [           54402] >> 09
DEBUG:   [           54402] << POLL: TV (0) -> Recorder 3 (9)
TRAFFIC: [           54443] >> 0a
DEBUG:   [           54443] << POLL: TV (0) -> Tuner 4 (a)
TRAFFIC: [           54480] >> 0a
DEBUG:   [           54480] << POLL: TV (0) -> Tuner 4 (a)
TRAFFIC: [           54516] >> 0a
DEBUG:   [           54516] << POLL: TV (0) -> Tuner 4 (a)
TRAFFIC: [           54557] >> 0a
DEBUG:   [           54557] << POLL: TV (0) -> Tuner 4 (a)
TRAFFIC: [           54598] >> 0a
DEBUG:   [           54598] << POLL: TV (0) -> Tuner 4 (a)
TRAFFIC: [           54640] >> 0b
DEBUG:   [           54640] << POLL: TV (0) -> Playback 3 (b)
TRAFFIC: [           54676] >> 0b
DEBUG:   [           54676] << POLL: TV (0) -> Playback 3 (b)
TRAFFIC: [           54717] >> 0b
DEBUG:   [           54717] << POLL: TV (0) -> Playback 3 (b)
TRAFFIC: [           54753] >> 0b
DEBUG:   [           54753] << POLL: TV (0) -> Playback 3 (b)
TRAFFIC: [           54800] >> 0b
DEBUG:   [           54800] << POLL: TV (0) -> Playback 3 (b)
TRAFFIC: [           54836] >> 0c
DEBUG:   [           54836] << POLL: TV (0) -> Reserved 1 (c)
TRAFFIC: [           54877] >> 0c
DEBUG:   [           54877] << POLL: TV (0) -> Reserved 1 (c)
TRAFFIC: [           54913] >> 0c
DEBUG:   [           54913] << POLL: TV (0) -> Reserved 1 (c)
TRAFFIC: [           54950] >> 0c
DEBUG:   [           54950] << POLL: TV (0) -> Reserved 1 (c)
TRAFFIC: [           54996] >> 0c
DEBUG:   [           54996] << POLL: TV (0) -> Reserved 1 (c)
TRAFFIC: [           55032] >> 0d
DEBUG:   [           55032] << POLL: TV (0) -> Reserved 2 (d)
TRAFFIC: [           55074] >> 0d
DEBUG:   [           55074] << POLL: TV (0) -> Reserved 2 (d)
TRAFFIC: [           55110] >> 0d
DEBUG:   [           55110] << POLL: TV (0) -> Reserved 2 (d)
TRAFFIC: [           55146] >> 0d
DEBUG:   [           55146] << POLL: TV (0) -> Reserved 2 (d)
TRAFFIC: [           55192] >> 0d
DEBUG:   [           55192] << POLL: TV (0) -> Reserved 2 (d)
TRAFFIC: [           55229] >> 0e
DEBUG:   [           55229] << POLL: TV (0) -> Free use (e)
TRAFFIC: [           55270] >> 0e
DEBUG:   [           55270] << POLL: TV (0) -> Free use (e)
TRAFFIC: [           55306] >> 0e
DEBUG:   [           55306] << POLL: TV (0) -> Free use (e)
TRAFFIC: [           55342] >> 0e
DEBUG:   [           55342] << POLL: TV (0) -> Free use (e)
TRAFFIC: [           55389] >> 0e
DEBUG:   [           55389] << POLL: TV (0) -> Free use (e)
TRAFFIC: [           55466] >> 01:8c
DEBUG:   [           55466] >> TV (0) -> Recorder 1 (1): give device vendor id (8C)
DEBUG:   [           55466] << Recorder 1 (1) -> TV (0): vendor id Pulse Eight (1582)
TRAFFIC: [           55466] << 1f:87:00:15:82
TRAFFIC: [           56974] >> 01:46
DEBUG:   [           56974] >> TV (0) -> Recorder 1 (1): give osd name (46)
DEBUG:   [           56974] << Recorder 1 (1) -> TV (0): OSD name 'CECTester'
TRAFFIC: [           56974] << 10:47:43:45:43:54:65:73:74:65:72
TRAFFIC: [           58595] >> 01:a0:00:00:f0:23
DEBUG:   [           58595] >> TV (0) -> Recorder 1 (1): vendor command with id (A0)
DEBUG:   [           58596] sending abort with opcode a0 and reason 'invalid operand' to TV
DEBUG:   [           58596] << transmitting abort message
TRAFFIC: [           58596] << 10:00:a0:03
NOTICE:  [           58596] Unmapped code detected. Please send an email to [email protected] with the following details, and if you pressed a key, tell us which one you pressed, and we'll add support for this it.
CEC command: >> 01:a0:00:00:f0:23
Vendor ID: Unknown (000000)
TRAFFIC: [           60005] >> 01:9f
DEBUG:   [           60005] >> TV (0) -> Recorder 1 (1): get cec version (9F)
DEBUG:   [           60005] << Recorder 1 (1) -> TV (0): cec version 1.4
TRAFFIC: [           60005] << 10:9e:05
TRAFFIC: [           61513] >> 01:83
DEBUG:   [           61513] >> TV (0) -> Recorder 1 (1): give physical address (83)
DEBUG:   [           61513] << Recorder 1 (1) -> broadcast (F): physical adddress 1000
TRAFFIC: [           61513] << 1f:84:10:00:01
TRAFFIC: [           63026] >> 0f:85
DEBUG:   [           63026] >> TV (0) -> Broadcast (F): request active source (85)
DEBUG:   [           63026] >> 0 requests active source
NOTICE:  [           63026] << Recorder 1 (1) -> broadcast (F): active source (1000)
TRAFFIC: [           63026] << 1f:82:10:00
TRAFFIC: [           66093] >> 0f:82:00:00
DEBUG:   [           66094] >> TV (0) -> Broadcast (F): active source (82)
DEBUG:   [           66094] making TV (0) the active source
DEBUG:   [           66094] marking Recorder 1 (1) as inactive source
DEBUG:   [           66094] marking the adapter as inactive source
NOTICE:  [           66099] >> source deactivated: Recorder 1 (1)

I set xbmc to debug to get:

$ grep CecLogMessage .xbmc/temp/xbmc.log 
14:52:18 T:140503832397568   DEBUG: CecLogMessage - unregistering all CEC clients
14:52:18 T:140503832397568   DEBUG: CecLogMessage - Broadcast (F): osd name set to 'Broadcast'
14:52:18 T:140503832397568   DEBUG: CecLogMessage - connection opened, clearing any previous input and waiting for active transmissions to end before starting
14:52:18 T:140503633712896   DEBUG: CecLogMessage - communication thread started
14:52:18 T:140503832397568   DEBUG: CecLogMessage - turning controlled mode on
14:52:18 T:140503832397568   DEBUG: CecLogMessage - connection opened
14:52:18 T:140503832397568   DEBUG: CecLogMessage - << Broadcast (F) -> TV (0): POLL
14:52:18 T:140503832397568   DEBUG: CecLogMessage - << f0
14:52:18 T:140503832397568   DEBUG: CecLogMessage - setting the line timeout to 3
14:52:18 T:140503462954752   DEBUG: CecLogMessage - processor thread started
14:52:18 T:140503832397568   DEBUG: CecLogMessage - >> POLL sent
14:52:18 T:140503832397568   DEBUG: CecLogMessage - TV (0): device status changed into 'present'
14:52:18 T:140503832397568   DEBUG: CecLogMessage - << requesting vendor ID of 'TV' (0)
14:52:18 T:140503832397568   DEBUG: CecLogMessage - << f0:8c
14:52:19 T:140503832397568   DEBUG: CecLogMessage - expected response not received (87: device vendor id)
14:52:19 T:140503832397568   DEBUG: CecLogMessage - << f0:8c
14:52:20 T:140503832397568   DEBUG: CecLogMessage - expected response not received (87: device vendor id)
14:52:20 T:140503832397568   DEBUG: CecLogMessage - registering new CEC client - v2.1.4
14:52:20 T:140503832397568   DEBUG: CecLogMessage - detecting logical address for type 'recording device'
14:52:20 T:140503832397568   DEBUG: CecLogMessage - trying logical address 'Recorder 1'
14:52:20 T:140503832397568   DEBUG: CecLogMessage - << Recorder 1 (1) -> Recorder 1 (1): POLL
14:52:20 T:140503832397568   DEBUG: CecLogMessage - << 11
14:52:20 T:140503633712896   DEBUG: CecLogMessage - CEC transmission - received response - TRANSMIT_FAILED_ACK
14:52:20 T:140503832397568   DEBUG: CecLogMessage - << 11
14:52:20 T:140503633712896   DEBUG: CecLogMessage - CEC transmission - received response - TRANSMIT_FAILED_ACK
14:52:20 T:140503832397568   DEBUG: CecLogMessage - >> POLL not sent
14:52:20 T:140503832397568   DEBUG: CecLogMessage - using logical address 'Recorder 1'
14:52:20 T:140503832397568   DEBUG: CecLogMessage - Recorder 1 (1): device status changed into 'handled by libCEC'
14:52:20 T:140503832397568   DEBUG: CecLogMessage - Recorder 1 (1): power status changed from 'unknown' to 'on'
14:52:20 T:140503832397568   DEBUG: CecLogMessage - Recorder 1 (1): vendor = Pulse Eight (001582)
14:52:20 T:140503832397568   DEBUG: CecLogMessage - Recorder 1 (1): CEC version 1.4
14:52:20 T:140503832397568   DEBUG: CecLogMessage - AllocateLogicalAddresses - device '0', type 'recording device', LA '1'
14:52:20 T:140503832397568   DEBUG: CecLogMessage - setting ackmask to  2
14:52:20 T:140503832397568   DEBUG: CecLogMessage - Recorder 1 (1): osd name set to 'XBMC'
14:52:20 T:140503832397568   DEBUG: CecLogMessage - Recorder 1 (1): menu language set to 'eng'
14:52:20 T:140503832397568   DEBUG: CecLogMessage - GetPhysicalAddress - trying to get the physical address via ADL
14:52:20 T:140503832397568   DEBUG: CecLogMessage - GetPhysicalAddress - ADL returned physical address 0000
14:52:20 T:140503832397568   DEBUG: CecLogMessage - GetPhysicalAddress - trying to get the physical address via nvidia driver
14:52:20 T:140503832397568   DEBUG: CecLogMessage - GetPhysicalAddress - nvidia driver returned physical address 0000
14:52:20 T:140503832397568   DEBUG: CecLogMessage - GetPhysicalAddress - trying to get the physical address from the OS
14:52:20 T:140503832397568   DEBUG: CecLogMessage - GetPhysicalAddress - OS returned physical address 0000
14:52:20 T:140503832397568   DEBUG: CecLogMessage - SetDevicePhysicalAddress - not setting invalid physical address 0000
14:52:20 T:140503832397568   DEBUG: CecLogMessage - setting HDMI port to 1 on device TV (0)
14:52:20 T:140503832397568   DEBUG: CecLogMessage - Recorder 1 (1): physical address changed from ffff to 1000
14:52:20 T:140503832397568   DEBUG: CecLogMessage - << Recorder 1 (1) -> broadcast (F): physical adddress 1000
14:52:20 T:140503832397568   DEBUG: CecLogMessage - << 1f:84:10:00:01
14:52:20 T:140503832397568   DEBUG: CecLogMessage - using persisted autonomous mode setting: 'enabled'
14:52:20 T:140503832397568   DEBUG: CecLogMessage - using persisted CEC version setting: '1.4'
14:52:20 T:140503832397568   DEBUG: CecLogMessage - using persisted logical address setting: 'Recorder 1'
14:52:20 T:140503832397568   DEBUG: CecLogMessage - using persisted device type setting: 'recording device'
14:52:20 T:140503832397568   DEBUG: CecLogMessage - using persisted logical address mask setting: '206'
14:52:20 T:140503832397568   DEBUG: CecLogMessage - using persisted device name setting: 'XBMC'
14:52:20 T:140503832397568   DEBUG: CecLogMessage - using persisted physical address setting: '1000'
14:52:20 T:140503832397568   DEBUG: CecLogMessage - making Recorder 1 (1) the active source
14:52:20 T:140503832397568   DEBUG: CecLogMessage - TV (0): power status changed from 'unknown' to 'in transition from standby to on'
14:52:20 T:140503832397568   DEBUG: CecLogMessage - marking the adapter as active source
14:52:20 T:140503832397568   DEBUG: CecLogMessage - >> source activated: Recorder 1 (1)
14:52:20 T:140503832397568   DEBUG: CecLogMessage - scheduling active source message for 'Recorder 1'
14:52:20 T:140503832397568   DEBUG: CecLogMessage - CEC client registered: libCEC version = 2.1.4, client version = 2.1.4, firmware version = 4, firmware build date: Thu Dec  6 11:15:20 2012 +0000, logical address(es) = Recorder 1 (1) , base device: TV (0), HDMI port number: 1, physical address: 1.0.0.0, host: x86_64-redhat-linux-gnu, features: 'P8 USB' 'P8 USB detect', git revision: 30d9194, compiled on: Sat Mar 22 07:40:23 UTC 2014 by pb@localhost on Linux 3.13.6-200.fc20.x86_64 (x86_64)
14:52:20 T:140503832397568   DEBUG: CecLogMessage - << Recorder 1 (1) -> TV (0): OSD name 'XBMC'
14:52:20 T:140503832397568   DEBUG: CecLogMessage - << 10:47:58:42:4d:43
14:52:21 T:140503832397568   DEBUG: CecLogMessage - << requesting power status of 'TV' (0)
14:52:21 T:140503832397568   DEBUG: CecLogMessage - << 10:8f
14:52:21 T:140503462954752   DEBUG: CecLogMessage - << requesting vendor ID of 'TV' (0)
14:52:21 T:140503462954752   DEBUG: CecLogMessage - << 10:8c
14:52:22 T:140503832397568   DEBUG: CecLogMessage - expected response not received (90: report power status)
14:52:22 T:140503832397568   DEBUG: CecLogMessage - << 10:8f
14:52:22 T:140503462954752   DEBUG: CecLogMessage - expected response not received (87: device vendor id)
14:52:22 T:140503462954752   DEBUG: CecLogMessage - << 10:8c
14:52:23 T:140503832397568   DEBUG: CecLogMessage - expected response not received (90: report power status)
14:52:23 T:140503832397568   DEBUG: CecLogMessage - TV (0): power status changed from 'in transition from standby to on' to 'unknown'
14:52:23 T:140502934480640   DEBUG: CecLogMessage - Recorder 1 (1) was already marked as active source
14:52:23 T:140502934480640   DEBUG: CecLogMessage - TV (0): power status changed from 'unknown' to 'in transition from standby to on'
14:52:23 T:140502934480640   DEBUG: CecLogMessage - >> source activated: Recorder 1 (1)
14:52:23 T:140502934480640   DEBUG: CecLogMessage - sending active source message for 'Recorder 1'
14:52:23 T:140502934480640   DEBUG: CecLogMessage - << requesting vendor ID of 'TV' (0)
14:52:23 T:140502934480640   DEBUG: CecLogMessage - << 10:8c
14:52:23 T:140503462954752   DEBUG: CecLogMessage - expected response not received (87: device vendor id)
14:52:23 T:140503462954752   DEBUG: CecLogMessage - << powering on 'TV' (0)
14:52:23 T:140503462954752   DEBUG: CecLogMessage - << 10:04
14:52:23 T:140503462954752   DEBUG: CecLogMessage - << Recorder 1 (1) -> broadcast (F): active source (1000)
14:52:23 T:140503462954752   DEBUG: CecLogMessage - << 1f:82:10:00
14:52:23 T:140503462954752   DEBUG: CecLogMessage - << Recorder 1 (1) -> TV (0): menu state 'activated'
14:52:23 T:140503462954752   DEBUG: CecLogMessage - << 10:8e:00
14:52:24 T:140502934480640   DEBUG: CecLogMessage - expected response not received (87: device vendor id)
14:52:24 T:140502934480640   DEBUG: CecLogMessage - << 10:8c
14:52:25 T:140502934480640   DEBUG: CecLogMessage - expected response not received (87: device vendor id)
14:52:25 T:140502934480640   DEBUG: CecLogMessage - << powering on 'TV' (0)
14:52:25 T:140502934480640   DEBUG: CecLogMessage - << 10:04
14:52:25 T:140502934480640   DEBUG: CecLogMessage - << Recorder 1 (1) -> broadcast (F): active source (1000)
14:52:25 T:140502934480640   DEBUG: CecLogMessage - << 1f:82:10:00
14:52:25 T:140502934480640   DEBUG: CecLogMessage - << Recorder 1 (1) -> TV (0): menu state 'activated'
14:52:25 T:140502934480640   DEBUG: CecLogMessage - << 10:8e:00
14:52:25 T:140502934480640   DEBUG: CecLogMessage - << requesting vendor ID of 'TV' (0)
14:52:25 T:140502934480640   DEBUG: CecLogMessage - << 10:8c
14:52:26 T:140502934480640   DEBUG: CecLogMessage - expected response not received (87: device vendor id)
14:52:26 T:140502934480640   DEBUG: CecLogMessage - << 10:8c
14:52:27 T:140502934480640   DEBUG: CecLogMessage - expected response not received (87: device vendor id)
14:52:27 T:140502934480640   DEBUG: CecLogMessage - << requesting power status of 'TV' (0)
14:52:27 T:140502934480640   DEBUG: CecLogMessage - << 10:8f
14:52:28 T:140502934480640   DEBUG: CecLogMessage - expected response not received (90: report power status)
14:52:28 T:140502934480640   DEBUG: CecLogMessage - << 10:8f
14:52:29 T:140502934480640   DEBUG: CecLogMessage - expected response not received (90: report power status)
14:52:29 T:140502934480640   DEBUG: CecLogMessage - TV (0): power status changed from 'in transition from standby to on' to 'unknown'
14:52:32 T:140502934480640   DEBUG: CecLogMessage - << requesting power status of 'TV' (0)
14:52:32 T:140502934480640   DEBUG: CecLogMessage - << 10:8f
14:52:33 T:140502934480640   DEBUG: CecLogMessage - expected response not received (90: report power status)
14:52:33 T:140502934480640   DEBUG: CecLogMessage - << 10:8f
14:52:34 T:140502934480640   DEBUG: CecLogMessage - expected response not received (90: report power status)
14:52:37 T:140502934480640   DEBUG: CecLogMessage - << requesting power status of 'TV' (0)
14:52:37 T:140502934480640   DEBUG: CecLogMessage - << 10:8f
14:52:39 T:140502934480640   DEBUG: CecLogMessage - expected response not received (90: report power status)
14:52:39 T:140502934480640   DEBUG: CecLogMessage - << 10:8f
This message repeats ad infinitum.

libCecTray improvements

One simple request. In XBMC tab there is an option for suspend PC when the TV is off. This option should works with MCE too.
And new option "Wake PC when TV is on" would be handy.
This functions is working perfect in 3rd party tool CECTray from chir21.

Behavior on Panasonic TV switch on after libcec device

TV: Panasonic TX-P46G20ES
Libcec device: Raspberry Pi 2 / Openelec 5.0.4 / Kodi 14.2 beta

Pi and Kodi are always running. Pi is configured to not set active source both via Pi config and Kodi config.

When I switch on the TV, it always switches to Pi input.

Is this expected behavior? If not, which device is responsible? Is there a way to prevent it?

libCEC not working on LG TV (LD330)

Hi all,

I've just installed libcec on my Raspberry Pi B+ with (raspbian on it), following the instructions from here (https://nyxi.eu/blog/2013/04/15/raspbian-libcec/).

I want to be able to turn on/off the tv via the echo "on 0" | cec-client -s and echo "standby 0" | cec-client -s commands.
But they don't work.

Here's what errors/logs I get on echo "standby 0" | cec-client -s :

DEBUG:   [             123] unregistering all CEC clients
DEBUG:   [             127] Broadcast (F): osd name set to 'Broadcast'
DEBUG:   [             131] InitHostCEC - vchiq_initialise succeeded
DEBUG:   [             134] InitHostCEC - vchi_initialise succeeded
DEBUG:   [             137] InitHostCEC - vchi_connect succeeded
DEBUG:   [             141] logical address changed to Free use (e)
DEBUG:   [             145] Open - vc_cec initialised
NOTICE:  [             148] connection opened
DEBUG:   [             152] << Broadcast (F) -> TV (0): POLL
DEBUG:   [             155] initiator 'Broadcast' is not supported by the CEC adapter. using 'Free use' instead
DEBUG:   [             158] processor thread started
TRAFFIC: [             162] << e0
DEBUG:   [             226] initiator 'Broadcast' is not supported by the CEC adapter. using 'Free use' instead
TRAFFIC: [             229] << e0
DEBUG:   [             322] >> POLL not sent
DEBUG:   [             325] TV (0): device status changed into 'not present'
NOTICE:  [             329] registering new CEC client - v2.2.0
DEBUG:   [             332] detecting logical address for type 'recording device'
DEBUG:   [             335] trying logical address 'Recorder 1'
DEBUG:   [             339] << Recorder 1 (1) -> Recorder 1 (1): POLL
TRAFFIC: [             342] << 11
TRAFFIC: [             436] << 11
DEBUG:   [             529] >> POLL not sent
DEBUG:   [             532] using logical address 'Recorder 1'
DEBUG:   [             536] Recorder 1 (1): device status changed into 'handled by libCEC'
DEBUG:   [             540] Recorder 1 (1): power status changed from 'unknown' to 'on'
DEBUG:   [             544] Recorder 1 (1): vendor = Pulse Eight (001582)
DEBUG:   [             548] Recorder 1 (1): CEC version 1.4
DEBUG:   [             551] AllocateLogicalAddresses - device '0', type 'recording device', LA '1'
DEBUG:   [             556] logical address changed to Recorder 1 (1)
DEBUG:   [             560] Recorder 1 (1): osd name set to 'CECTester'
DEBUG:   [             564] Recorder 1 (1): menu language set to 'eng'
DEBUG:   [             568] GetPhysicalAddress - physical address = 2000
DEBUG:   [             573] AutodetectPhysicalAddress - autodetected physical address '2000'
DEBUG:   [             577] Recorder 1 (1): physical address changed from ffff to 2000
DEBUG:   [             581] << Recorder 1 (1) -> broadcast (F): physical adddress 2000
TRAFFIC: [             586] << 1f:84:20:00:01
NOTICE:  [             741] CEC client registered: libCEC version = 2.2.0, client version = 2.2.0, firmware version = 1, logical address(es) = Recorder 1 (1) , physical address: 2.0.0.0, host: armv6l-unknown-linux-gnueabihf, features: 'P8 USB' 'P8 USB detect' 'RPi' 'EXYNOS', git revision: 9f000e4, compiled on: Thu Feb  5 19:25:20 UTC 2015 by root@raspberrypi on Linux 3.12.28+ (armv6l)
DEBUG:   [             753] << Recorder 1 (1) -> TV (0): OSD name 'CECTester'
DEBUG:   [             758] << Recorder 1 (1) -> TV (0): POLL
TRAFFIC: [             763] << 10
TRAFFIC: [             858] << 10
DEBUG:   [             953] >> POLL not sent
DEBUG:   [             957] not sending command 'set osd name': destination device 'TV' marked as not present
DEBUG:   [             962] << requesting power status of 'TV' (0)
DEBUG:   [             967] << Recorder 1 (1) -> TV (0): POLL
TRAFFIC: [             971] << 10
TRAFFIC: [            1066] << 10
DEBUG:   [            1161] >> POLL not sent
DEBUG:   [            1165] not sending command 'give device power status': destination device 'TV' marked as not present
DEBUG:   [            1171] << Recorder 1 (1) -> TV (0): POLL
TRAFFIC: [            1176] << 10
TRAFFIC: [            1271] << 10
DEBUG:   [            1366] >> POLL not sent
NOTICE:  [            1370] << putting 'TV' (0) in standby mode
DEBUG:   [            1374] << Recorder 1 (1) -> TV (0): POLL
TRAFFIC: [            1379] << 10
TRAFFIC: [            1474] << 10
DEBUG:   [            1569] >> POLL not sent
DEBUG:   [            1573] not sending command 'standby': destination device 'TV' marked as not present
DEBUG:   [            1578] unregistering all CEC clients
NOTICE:  [            1582] unregistering client: libCEC version = 2.2.0, client version = 2.2.0, firmware version = 1, logical address(es) = Recorder 1 (1) , physical address: 2.0.0.0, host: armv6l-unknown-linux-gnueabihf, features: 'P8 USB' 'P8 USB detect' 'RPi' 'EXYNOS', git revision: 9f000e4, compiled on: Thu Feb  5 19:25:20 UTC 2015 by root@raspberrypi on Linux 3.12.28+ (armv6l)
DEBUG:   [            1596] Recorder 1 (1): power status changed from 'on' to 'unknown'
DEBUG:   [            1601] Recorder 1 (1): vendor = Unknown (000000)
DEBUG:   [            1606] Recorder 1 (1): CEC version unknown
DEBUG:   [            1611] Recorder 1 (1): osd name set to 'Recorder 1'
DEBUG:   [            1615] Recorder 1 (1): device status changed into 'unknown'
DEBUG:   [            1620] unregistering all CEC clients
DEBUG:   [            2167] UnregisterLogicalAddress - releasing previous logical address
DEBUG:   [            2172] logical address changed to Broadcast (f)

Also, the following is what I get on echo "scan" | cec-client -s :

DEBUG:   [             130] unregistering all CEC clients
DEBUG:   [             136] Broadcast (F): osd name set to 'Broadcast'
DEBUG:   [             141] InitHostCEC - vchiq_initialise succeeded
DEBUG:   [             145] InitHostCEC - vchi_initialise succeeded
DEBUG:   [             150] InitHostCEC - vchi_connect succeeded
DEBUG:   [             155] logical address changed to Free use (e)
DEBUG:   [             159] Open - vc_cec initialised
NOTICE:  [             164] connection opened
DEBUG:   [             169] << Broadcast (F) -> TV (0): POLL
DEBUG:   [             174] initiator 'Broadcast' is not supported by the CEC adapter. using 'Free use' instead
TRAFFIC: [             178] << e0
DEBUG:   [             179] processor thread started
DEBUG:   [             248] initiator 'Broadcast' is not supported by the CEC adapter. using 'Free use' instead
TRAFFIC: [             253] << e0
DEBUG:   [             348] >> POLL not sent
DEBUG:   [             352] TV (0): device status changed into 'not present'
NOTICE:  [             357] registering new CEC client - v2.2.0
DEBUG:   [             362] detecting logical address for type 'recording device'
DEBUG:   [             366] trying logical address 'Recorder 1'
DEBUG:   [             371] << Recorder 1 (1) -> Recorder 1 (1): POLL
TRAFFIC: [             376] << 11
TRAFFIC: [             471] << 11
DEBUG:   [             566] >> POLL not sent
DEBUG:   [             570] using logical address 'Recorder 1'
DEBUG:   [             575] Recorder 1 (1): device status changed into 'handled by libCEC'
DEBUG:   [             579] Recorder 1 (1): power status changed from 'unknown' to 'on'
DEBUG:   [             583] Recorder 1 (1): vendor = Pulse Eight (001582)
DEBUG:   [             587] Recorder 1 (1): CEC version 1.4
DEBUG:   [             591] AllocateLogicalAddresses - device '0', type 'recording device', LA '1'
DEBUG:   [             596] logical address changed to Recorder 1 (1)
DEBUG:   [             601] Recorder 1 (1): osd name set to 'CECTester'
DEBUG:   [             605] Recorder 1 (1): menu language set to 'eng'
DEBUG:   [             609] GetPhysicalAddress - physical address = 2000
DEBUG:   [             614] AutodetectPhysicalAddress - autodetected physical address '2000'
DEBUG:   [             618] Recorder 1 (1): physical address changed from ffff to 2000
DEBUG:   [             622] << Recorder 1 (1) -> broadcast (F): physical adddress 2000
TRAFFIC: [             626] << 1f:84:20:00:01
NOTICE:  [             781] CEC client registered: libCEC version = 2.2.0, client version = 2.2.0, firmware version = 1, logical address(es) = Recorder 1 (1) , physical address: 2.0.0.0, host: armv6l-unknown-linux-gnueabihf, features: 'P8 USB' 'P8 USB detect' 'RPi' 'EXYNOS', git revision: 9f000e4, compiled on: Thu Feb  5 19:25:20 UTC 2015 by root@raspberrypi on Linux 3.12.28+ (armv6l)
DEBUG:   [             794] << Recorder 1 (1) -> TV (0): OSD name 'CECTester'
DEBUG:   [             799] << Recorder 1 (1) -> TV (0): POLL
TRAFFIC: [             804] << 10
TRAFFIC: [             899] << 10
DEBUG:   [             994] >> POLL not sent
DEBUG:   [             999] not sending command 'set osd name': destination device 'TV' marked as not present
DEBUG:   [            1004] << requesting power status of 'TV' (0)
DEBUG:   [            1008] << Recorder 1 (1) -> TV (0): POLL
TRAFFIC: [            1013] << 10
TRAFFIC: [            1108] << 10
DEBUG:   [            1202] >> POLL not sent
DEBUG:   [            1207] not sending command 'give device power status': destination device 'TV' marked as not present
DEBUG:   [            1216] << Recorder 1 (1) -> TV (0): POLL
TRAFFIC: [            1221] << 10
TRAFFIC: [            1316] << 10
DEBUG:   [            1411] >> POLL not sent
DEBUG:   [            1416] << Recorder 1 (1) -> Recorder 2 (2): POLL
TRAFFIC: [            1420] << 12
TRAFFIC: [            1515] << 12
DEBUG:   [            1610] >> POLL not sent
DEBUG:   [            1615] Recorder 2 (2): device status changed into 'not present'
DEBUG:   [            1619] << Recorder 1 (1) -> Tuner 1 (3): POLL
TRAFFIC: [            1624] << 13
TRAFFIC: [            1719] << 13
DEBUG:   [            1814] >> POLL not sent
DEBUG:   [            1818] Tuner 1 (3): device status changed into 'not present'
DEBUG:   [            1823] << Recorder 1 (1) -> Playback 1 (4): POLL
TRAFFIC: [            1827] << 14
TRAFFIC: [            1922] << 14
DEBUG:   [            2017] >> POLL not sent
DEBUG:   [            2021] Playback 1 (4): device status changed into 'not present'
DEBUG:   [            2026] << Recorder 1 (1) -> Audio (5): POLL
TRAFFIC: [            2030] << 15
TRAFFIC: [            2125] << 15
DEBUG:   [            2219] >> POLL not sent
DEBUG:   [            2223] Audio (5): device status changed into 'not present'
DEBUG:   [            2226] << Recorder 1 (1) -> Tuner 2 (6): POLL
TRAFFIC: [            2230] << 16
TRAFFIC: [            2325] << 16
DEBUG:   [            2419] >> POLL not sent
DEBUG:   [            2423] Tuner 2 (6): device status changed into 'not present'
DEBUG:   [            2426] << Recorder 1 (1) -> Tuner 3 (7): POLL
TRAFFIC: [            2430] << 17
TRAFFIC: [            2524] << 17
DEBUG:   [            2618] >> POLL not sent
DEBUG:   [            2622] Tuner 3 (7): device status changed into 'not present'
DEBUG:   [            2626] << Recorder 1 (1) -> Playback 2 (8): POLL
TRAFFIC: [            2630] << 18
TRAFFIC: [            2723] << 18
DEBUG:   [            2817] >> POLL not sent
DEBUG:   [            2821] Playback 2 (8): device status changed into 'not present'
DEBUG:   [            2824] << Recorder 1 (1) -> Recorder 3 (9): POLL
TRAFFIC: [            2828] << 19
TRAFFIC: [            2922] << 19
DEBUG:   [            3016] >> POLL not sent
DEBUG:   [            3019] Recorder 3 (9): device status changed into 'not present'
DEBUG:   [            3023] << Recorder 1 (1) -> Tuner 4 (A): POLL
TRAFFIC: [            3026] << 1a
TRAFFIC: [            3120] << 1a
DEBUG:   [            3214] >> POLL not sent
DEBUG:   [            3217] Tuner 4 (A): device status changed into 'not present'
DEBUG:   [            3221] << Recorder 1 (1) -> Playback 3 (B): POLL
TRAFFIC: [            3225] << 1b
TRAFFIC: [            3319] << 1b
DEBUG:   [            3412] >> POLL not sent
DEBUG:   [            3416] Playback 3 (B): device status changed into 'not present'
DEBUG:   [            3420] << Recorder 1 (1) -> Reserved 1 (C): POLL
TRAFFIC: [            3423] << 1c
TRAFFIC: [            3517] << 1c
DEBUG:   [            3611] >> POLL not sent
DEBUG:   [            3614] Reserved 1 (C): device status changed into 'not present'
DEBUG:   [            3618] << Recorder 1 (1) -> Reserved 2 (D): POLL
TRAFFIC: [            3622] << 1d
TRAFFIC: [            3716] << 1d
DEBUG:   [            3810] >> POLL not sent
DEBUG:   [            3813] Reserved 2 (D): device status changed into 'not present'
DEBUG:   [            3817] << Recorder 1 (1) -> Free use (E): POLL
TRAFFIC: [            3821] << 1e
TRAFFIC: [            3914] << 1e
DEBUG:   [            4008] >> POLL not sent
DEBUG:   [            4012] Free use (E): device status changed into 'not present'
DEBUG:   [            4016] << requesting active source
TRAFFIC: [            4019] << 1f:85
DEBUG:   [            5084] expected response not received (82: active source)
TRAFFIC: [            5091] << 1f:85
DEBUG:   [            6157] expected response not received (82: active source)
DEBUG:   [            6161] << requesting active source
TRAFFIC: [            6164] << 1f:85
DEBUG:   [            7229] expected response not received (82: active source)
TRAFFIC: [            7233] << 1f:85
DEBUG:   [            8297] expected response not received (82: active source)
DEBUG:   [            8343] unregistering all CEC clients
NOTICE:  [            8347] unregistering client: libCEC version = 2.2.0, client version = 2.2.0, firmware version = 1, logical address(es) = Recorder 1 (1) , physical address: 2.0.0.0, host: armv6l-unknown-linux-gnueabihf, features: 'P8 USB' 'P8 USB detect' 'RPi' 'EXYNOS', git revision: 9f000e4, compiled on: Thu Feb  5 19:25:20 UTC 2015 by root@raspberrypi on Linux 3.12.28+ (armv6l)
DEBUG:   [            8358] Recorder 1 (1): power status changed from 'on' to 'unknown'
DEBUG:   [            8362] Recorder 1 (1): vendor = Unknown (000000)
DEBUG:   [            8366] Recorder 1 (1): CEC version unknown
DEBUG:   [            8370] Recorder 1 (1): osd name set to 'Recorder 1'
DEBUG:   [            8374] Recorder 1 (1): device status changed into 'unknown'
DEBUG:   [            8378] unregistering all CEC clients
DEBUG:   [            9192] UnregisterLogicalAddress - releasing previous logical address
DEBUG:   [            9197] logical address changed to Broadcast (f)

And the following is what I get on cec-client -l :

Found Devices: 1

device: 1
com port: RPI
vendor id: 2708
product id: 1001
firmware version: 1
type: Raspberry Pi

It's also worth mentioning that I enable Simplink on my LG tv. However, its status is always Check Connection.

Any ideas !?
What is causing the problem?

Not working with my Sony Bravia TV

Hi,

I couldn't get my TV's remote working. Configured properly in XBMC but I'm still getting "No HDMI control devices." on the Bravia Sync menu.

Here's my setup:

Raspbery Pi Model B
Sony Bravia KLV-32CX320
OpenELEC 4.0.6

Is there anything that I can do or anything that I can contribute to get this working? Thanks in advance!

P.S.
Running cec-client on the terminal produces:

No device type given. Using 'recording device'
CEC Parser created - libCEC version 2.1.4
no serial port given. trying autodetect: 
 path:     Raspberry Pi
 com port: RPI

opening a connection to the CEC adapter...
DEBUG:   [             272] unregistering all CEC clients
DEBUG:   [             276] Broadcast (F): osd name set to 'Broadcast'
DEBUG:   [             279] InitHostCEC - vchiq_initialise succeeded
DEBUG:   [             280] InitHostCEC - vchi_initialise succeeded
DEBUG:   [             280] InitHostCEC - vchi_connect succeeded
DEBUG:   [             282] logical address changed to Broadcast (f)
DEBUG:   [             285] RegisterLogicalAddress - registering address e
DEBUG:   [             468] logical address changed to Recorder 1 (1)
DEBUG:   [             470] Open - vc_cec initialised
NOTICE:  [             470] connection opened
DEBUG:   [             477] << Broadcast (F) -> TV (0): POLL
DEBUG:   [             477] initiator 'Broadcast' is not supported by the CEC adapter. using 'Free use' instead
TRAFFIC: [             477] << e0
DEBUG:   [             479] UnregisterLogicalAddress - releasing previous logical address
DEBUG:   [             480] processor thread started
DEBUG:   [             559] logical address changed to Broadcast (f)
DEBUG:   [             560] logical address changed to Recorder 1 (1)
DEBUG:   [             560] RegisterLogicalAddress - registering address e
ERROR:   [             652] RegisterLogicalAddress - vc_cec_set_logical_address(E) returned device is busy (3)
DEBUG:   [             652] failed to register logical address Free use (E)
DEBUG:   [             652] initiator 'Broadcast' is not supported by the CEC adapter. using 'Free use' instead
TRAFFIC: [             652] << e0
DEBUG:   [             652] UnregisterLogicalAddress - releasing previous logical address
WARNING: [             743] unhandled response received: opcode=0 initiator=e destination=0 response=1
DEBUG:   [             743] logical address changed to Broadcast (f)
DEBUG:   [             744] RegisterLogicalAddress - registering address e
DEBUG:   [             927] logical address changed to Free use (e)
DEBUG:   [             927] logical address changed to Free use (e)
DEBUG:   [            1019] command 'POLL' was not acked by the controller
DEBUG:   [            1020] >> POLL not sent
DEBUG:   [            1020] TV (0): device status changed into 'not present'
NOTICE:  [            1020] registering new CEC client - v2.1.4
DEBUG:   [            1020] detecting logical address for type 'recording device'
DEBUG:   [            1020] trying logical address 'Recorder 1'
DEBUG:   [            1031] << Recorder 1 (1) -> Recorder 1 (1): POLL
TRAFFIC: [            1035] << 11
DEBUG:   [            1036] UnregisterLogicalAddress - releasing previous logical address
DEBUG:   [            1044] logical address changed to Broadcast (f)
DEBUG:   [            1044] RegisterLogicalAddress - registering address 1
DEBUG:   [            1231] logical address changed to Free use (e)
DEBUG:   [            1231] logical address changed to Recorder 1 (1)
TRAFFIC: [            1232] << 11
DEBUG:   [            1233] >> POLL not sent
DEBUG:   [            1233] using logical address 'Recorder 1'
DEBUG:   [            1233] Recorder 1 (1): device status changed into 'handled by libCEC'
DEBUG:   [            1233] Recorder 1 (1): power status changed from 'unknown' to 'on'
DEBUG:   [            1233] Recorder 1 (1): vendor = Pulse Eight (001582)
DEBUG:   [            1233] Recorder 1 (1): CEC version 1.4
DEBUG:   [            1235] AllocateLogicalAddresses - device '0', type 'recording device', LA '1'
DEBUG:   [            1236] Recorder 1 (1): osd name set to 'CECTester'
DEBUG:   [            1236] Recorder 1 (1): menu language set to 'eng'
DEBUG:   [            1237] GetPhysicalAddress - physical address = 1000
DEBUG:   [            1239] AutodetectPhysicalAddress - autodetected physical address '1000'
DEBUG:   [            1239] Recorder 1 (1): physical address changed from ffff to 1000
DEBUG:   [            1240] << Recorder 1 (1) -> broadcast (F): physical adddress 1000
TRAFFIC: [            1242] << 1f:84:10:00:01
NOTICE:  [            1398] CEC client registered: libCEC version = 2.1.4, client version = 2.1.4, firmware version = 1, logical address(es) = Recorder 1 (1) , physical address: 1.0.0.0, host: armv6zk-openelec-linux-gnueabi, features: 'P8 USB' 'P8 USB detect' 'RPi', git revision: 0b046ea, compiled on: Wed Jun 25 13:22:33 UTC 2014 by [email protected] on Linux 3.14.4-200.fc20.x86_64 (x86_64)
DEBUG:   [            1398] << Recorder 1 (1) -> TV (0): OSD name 'CECTester'
DEBUG:   [            1398] << Recorder 1 (1) -> TV (0): POLL
TRAFFIC: [            1398] << 10
DEBUG:   [            1490] command 'POLL' was not acked by the controller
TRAFFIC: [            1490] << 10
DEBUG:   [            1582] command 'POLL' was not acked by the controller
DEBUG:   [            1582] >> POLL not sent
DEBUG:   [            1582] not sending command 'set osd name': destination device 'TV' marked as not present
DEBUG:   [            1582] << requesting power status of 'TV' (0)
DEBUG:   [            1583] << Recorder 1 (1) -> TV (0): POLL
TRAFFIC: [            1583] << 10
DEBUG:   [            1673] command 'POLL' was not acked by the controller
TRAFFIC: [            1673] << 10
DEBUG:   [            1763] command 'POLL' was not acked by the controller
DEBUG:   [            1764] >> POLL not sent
DEBUG:   [            1764] not sending command 'give device power status': destination device 'TV' marked as not present
waiting for input
WARNING: [            1853] unhandled response received: opcode=0 initiator=1 destination=0 response=1
WARNING: [            2674] unhandled response received: opcode=0 initiator=1 destination=0 response=1
WARNING: [            2767] unhandled response received: opcode=0 initiator=1 destination=0 response=1
^Csignal caught: 2 - exiting
DEBUG:   [            3577] unregistering all CEC clients
NOTICE:  [            3578] unregistering client: libCEC version = 2.1.4, client version = 2.1.4, firmware version = 1, logical address(es) = Recorder 1 (1) , physical address: 1.0.0.0, host: armv6zk-openelec-linux-gnueabi, features: 'P8 USB' 'P8 USB detect' 'RPi', git revision: 0b046ea, compiled on: Wed Jun 25 13:22:33 UTC 2014 by [email protected] on Linux 3.14.4-200.fc20.x86_64 (x86_64)
DEBUG:   [            3578] Recorder 1 (1): power status changed from 'on' to 'unknown'
DEBUG:   [            3578] Recorder 1 (1): vendor = Unknown (000000)
DEBUG:   [            3578] Recorder 1 (1): CEC version unknown
DEBUG:   [            3578] Recorder 1 (1): osd name set to 'Recorder 1'
DEBUG:   [            3579] Recorder 1 (1): device status changed into 'unknown'
DEBUG:   [            3580] unregistering all CEC clients
WARNING: [            3861] unhandled response received: opcode=0 initiator=1 destination=0 response=1
WARNING: [            3952] unhandled response received: opcode=0 initiator=1 destination=0 response=1
DEBUG:   [            4489] UnregisterLogicalAddress - releasing previous logical address
DEBUG:   [            4491] logical address changed to Broadcast (f)

USB-CEC not working on my Kodi Helix

I'm running Kodi(buntu) Helix on my x86-64 NAS, but my CEC adapter is not working. I've upgraded to firmware 4 and downgraded to firmware 3, but I keep getting the same issues.

TV is a 2014 model Philips 55PUS8809.

"cec-client" output:
http://pastebin.com/mg9hx2G0

First "cec-client -l" output:
WARNING: [ 68] TRANSMIT_FAILED_TIMEOUT_LINE
WARNING: [ 78] the adapter did not respond with a correct firmware version (try 1, size = 1)
WARNING: [ 109] COMMAND_REJECTED: GET_DEVICE_TYPE
WARNING: [ 120] COMMAND_REJECTED: GET_LOGICAL_ADDRESS_MASK
WARNING: [ 130] COMMAND_REJECTED: GET_OSD_NAME
Found devices: 1

device: 1
com port: /dev/ttyACM1
vendor id: 2548
product id: 1002
firmware version: 3
firmware build date: Thu Nov 15 11:09:45 2012 +0000
type: Pulse-Eight USB-CEC Adapter

Second "cec-client -l" output:
Found devices: 1

device: 1
com port: /dev/ttyACM1
vendor id: 2548
product id: 1002
firmware version: 3
firmware build date: Thu Nov 15 11:09:45 2012 +0000
type: Pulse-Eight USB-CEC Adapter

RPI incorrect POLLing during LA address registration

colleagues,

in src/lib/adapter/RPi/RPiCECAdapterCommunication.cpp#L376 for purpose of LA registration ADAPTER_MESSAGE_STATE_SENT_NOT_ACKED is sent on return.

this is correct assuming polled LA is not registered yet on the bus. but this result is returned without the POLL actually being sent (so _SENT_ACKED is never returned for already taken LAs).

that leads to serious issues if LA is present on the bus already, more if the LA is currently registered by another PulseEight adapter - as the RPI registers the same LA and sends notification to bus about the LA changing it's PA what will cause PA change also on the firstly registered device.

(possible fix https://github.com/mk01/libcec/commit/6c9171238c03e88e4ddc499a1b7a5555f64e5158)

Will switch TV off and on even if the options are disabled

Hello,

I am using openelec 4.0.1 with the RPI and a Samsung LE40C750 (Anynet+).
I configured pulseeight to not swicth my tv on and not swicth my tv off. But it does both.
Do you need any logs?

Thank you for the great CEC Adapter.

regards

cec don't work after libevent upgrade

Hello,

I have a Pulse Eight device in Debian Jessie PC. I just upgrade my system and now it doesn't work.

This is the packages that I upgrade:

Commandline: apt-get upgrade
Upgrade: libevent-2.0-5:amd64 (2.0.21-stable-1.1, 2.0.21-stable-2), ifupdown:amd64 (0.7.51, 0.7.52), python-reportbug:amd64 (6.6.1, 6.6.3), reportbug:amd64 (6.6.1, 6.6.3), libcurl3-gnutls:amd64 (7.38.0-3, 7.38.0-4)

And this is the log:

$ echo "on 0" | cec-client -s
opening a connection to the CEC adapter...
DEBUG: [ 30] unregistering all CEC clients
DEBUG: [ 30] Broadcast (F): osd name set to 'Broadcast'
DEBUG: [ 32] connection opened, clearing any previous input and waiting for active transmissions to end before starting
DEBUG: [ 32] communication thread started
DEBUG: [ 43] turning controlled mode on
NOTICE: [ 64] connection opened
DEBUG: [ 64] << Broadcast (F) -> TV (0): POLL
DEBUG: [ 64] processor thread started
TRAFFIC: [ 64] << f0
DEBUG: [ 64] setting the line timeout to 3
DEBUG: [ 105] >> POLL sent
DEBUG: [ 105] TV (0): device status changed into 'present'
DEBUG: [ 105] << requesting vendor ID of 'TV' (0)
TRAFFIC: [ 105] << f0:8c
TRAFFIC: [ 291] >> 0f:00:8c:00
DEBUG: [ 291] >> TV (0) -> Broadcast (F): feature abort ( 0)
DEBUG: [ 291] marking opcode 'give device vendor id' as unsupported feature for device 'TV'
DEBUG: [ 292] expected response received (87: device vendor id)
NOTICE: [ 292] registering new CEC client - v2.2.0
DEBUG: [ 292] detecting logical address for type 'recording device'
DEBUG: [ 292] trying logical address 'Recorder 1'
DEBUG: [ 292] << Recorder 1 (1) -> Recorder 1 (1): POLL
TRAFFIC: [ 292] << 11
DEBUG: [ 322] CEC transmission - received response - TRANSMIT_FAILED_ACK
TRAFFIC: [ 322] << 11
DEBUG: [ 359] CEC transmission - received response - TRANSMIT_FAILED_ACK
DEBUG: [ 359] >> POLL not sent
DEBUG: [ 359] using logical address 'Recorder 1'
DEBUG: [ 359] Recorder 1 (1): device status changed into 'handled by libCEC'
DEBUG: [ 359] Recorder 1 (1): power status changed from 'unknown' to 'on'
DEBUG: [ 359] Recorder 1 (1): vendor = Pulse Eight (001582)
DEBUG: [ 359] Recorder 1 (1): CEC version 1.4
DEBUG: [ 359] AllocateLogicalAddresses - device '0', type 'recording device', LA '1'
DEBUG: [ 359] setting ackmask to 2
DEBUG: [ 364] Recorder 1 (1): osd name set to 'CECTester'
DEBUG: [ 365] Recorder 1 (1): menu language set to 'eng'
DEBUG: [ 365] GetPhysicalAddress - trying to get the physical address via ADL
DEBUG: [ 365] GetPhysicalAddress - ADL returned physical address 0000
DEBUG: [ 365] GetPhysicalAddress - trying to get the physical address via nvidia driver
DEBUG: [ 365] GetPhysicalAddress - nvidia driver returned physical address 0000
DEBUG: [ 365] GetPhysicalAddress - trying to get the physical address from the OS
DEBUG: [ 365] GetPhysicalAddress - OS returned physical address 0000
DEBUG: [ 365] SetDevicePhysicalAddress - not setting invalid physical address 0000
NOTICE: [ 365] setting HDMI port to 1 on device TV (0)
DEBUG: [ 366] Recorder 1 (1): physical address changed from ffff to 1000
DEBUG: [ 366] << Recorder 1 (1) -> broadcast (F): physical adddress 1000
TRAFFIC: [ 366] << 1f:84:10:00:01
DEBUG: [ 499] using persisted autonomous mode setting: 'enabled'
DEBUG: [ 504] using persisted CEC version setting: '1.4'
DEBUG: [ 509] using persisted logical address setting: 'Recorder 1'
DEBUG: [ 515] using persisted device type setting: 'recording device'
DEBUG: [ 520] using persisted logical address mask setting: '206'
DEBUG: [ 535] using persisted device name setting: 'CECTester'
DEBUG: [ 540] using persisted physical address setting: '1000'
NOTICE: [ 540] CEC client registered: libCEC version = 2.2.0, client version = 2.2.0, firmware version = 4, firmware build date: Thu Dec 6 11:15:20 2012 +0000, logical address(es) = Recorder 1 (1) , base device: TV (0), HDMI port number: 1, physical address: 1.0.0.0, host: x86_64-pc-linux-gnu, features: 'P8 USB' 'P8 USB detect' 'EXYNOS', compiled on: Fri Oct 31 15:05:35 UTC 2014 by [email protected] on Linux 3.16.6 (x86_64)
DEBUG: [ 540] << Recorder 1 (1) -> TV (0): OSD name 'CECTester'
TRAFFIC: [ 541] << 10:47:43:45:43:54:65:73:74:65:72
DEBUG: [ 814] << requesting power status of 'TV' (0)
TRAFFIC: [ 814] << 10:8f
DEBUG: [ 850] CEC transmission - received response - TRANSMIT_FAILED_ACK
TRAFFIC: [ 850] << 10:8f
TRAFFIC: [ 1016] >> 01:90:01
DEBUG: [ 1016] >> TV (0) -> Recorder 1 (1): report power status (90)
DEBUG: [ 1016] TV (0): power status changed from 'unknown' to 'standby'
DEBUG: [ 1016] expected response received (90: report power status)
DEBUG: [ 1016] << requesting vendor ID of 'TV' (0)
DEBUG: [ 1017] 'give device vendor id' is marked as unsupported feature for device 'TV'
NOTICE: [ 1017] << powering on 'TV' (0)
TRAFFIC: [ 1017] << 10:04
DEBUG: [ 1073] TV (0): power status changed from 'standby' to 'in transition from standby to on'
DEBUG: [ 1073] unregistering all CEC clients
NOTICE: [ 1073] unregistering client: libCEC version = 2.2.0, client version = 2.2.0, firmware version = 4, firmware build date: Thu Dec 6 11:15:20 2012 +0000, logical address(es) = Recorder 1 (1) , base device: TV (0), HDMI port number: 1, physical address: 1.0.0.0, host: x86_64-pc-linux-gnu, features: 'P8 USB' 'P8 USB detect' 'EXYNOS', compiled on: Fri Oct 31 15:05:35 UTC 2014 by [email protected] on Linux 3.16.6 (x86_64)
DEBUG: [ 1073] Recorder 1 (1): power status changed from 'on' to 'unknown'
DEBUG: [ 1073] Recorder 1 (1): vendor = Unknown (000000)
DEBUG: [ 1073] Recorder 1 (1): CEC version unknown
DEBUG: [ 1073] Recorder 1 (1): osd name set to 'Recorder 1'
DEBUG: [ 1073] Recorder 1 (1): device status changed into 'unknown'
DEBUG: [ 1073] setting ackmask to 0
DEBUG: [ 1078] turning controlled mode off
DEBUG: [ 1083] unregistering all CEC clients
DEBUG: [ 2071] communication thread ended

Before the upgrade, this command use to turn on the TV correctly.

Regards.

Source change not detected for a (probably) non CEC device

This might not be a bug but it seems it should work according to debug logs.

Setup: Sony Bravia 2013, Raspberry Pi with RasPlex (libcec), Cisco 4682 cable STB, both connected to TV. The STB software does not support CEC (STB HW does).

libcec on Pi does not detect switching to STB as source change, even though it receives routing change message.

Log snip, with comments:

switch from Pi to TV internal tuner:

TRAFFIC: [ 239119] >> 0f:82:00:00
DEBUG: [ 239119] >> TV (0) -> Broadcast (F): active source (82)
DEBUG: [ 239120] making TV (0) the active source
DEBUG: [ 239120] marking Recorder 1 (1) as inactive source
NOTICE: [ 239120] >> source deactivated: Recorder 1 (1)
TRAFFIC: [ 239521] >> 0f:a0:08:00:46:00:13:00:10:80:00:01:00:00:00:00
DEBUG: [ 239522] >> TV (0) -> Broadcast (F): vendor command with id (A0)

switch from TV internal tuner to cable STB:

TRAFFIC: [ 265494] >> 0f:80:00:00:10:00
DEBUG: [ 265494] >> TV (0) -> Broadcast (F): routing change (80)

switch from cable STB to Pi:

TRAFFIC: [ 295976] >> 0f:80:10:00:30:00
DEBUG: [ 295976] >> TV (0) -> Broadcast (F): routing change (80)
DEBUG: [ 295976] making Recorder 1 (1) the active source
DEBUG: [ 295976] marking TV (0) as inactive source
NOTICE: [ 295977] >> source activated: Recorder 1 (1)
DEBUG: [ 295977] sending active source message for 'Recorder 1'
TRAFFIC: [ 295977] << 10:04
WARNING: [ 296096] unhandled response received: opcode=82 initiator=1 destination=f response=0
NOTICE: [ 296578] << Recorder 1 (1) -> broadcast (F): active source (3000)
TRAFFIC: [ 296578] << 1f:82:30:00
DEBUG: [ 296699] << Recorder 1 (1) -> TV (0): menu state 'activated'
DEBUG: [ 296700] 'menu status' is marked as unsupported feature for device 'TV'
TRAFFIC: [ 296700] >> 0f:a0:08:00:46:00:13:00:10:00:10:10:00:00:00:00
DEBUG: [ 296700] >> TV (0) -> Broadcast (F): vendor command with id (A0)


Same thing happens when switching directly from Pi to STB.

[RFC] Add support for CEC 2.0 standards as introduced in HDMI 2.0?

This is really only a RFC (Request for Comments) suggestion/request regarding HDMI 2.0 and CEC 2.0 compatibility:

Each version of HDMI have introduced new CEC features, and HDMI 2.0 is no different.

CEC for HDMI 2.0, now referred to as "CEC 2.0" is said to been a re-worked / re-tooled standard.

CEC 2.0 add support for new standard CEC operational codes introduced in HDMI 2.0 and as of HDMI 2.0, CEC 2.0 have to be implemented and support CEC extensions like remote control pass-through, system audio control and standby have to be implemented as part of CEC as well.

Which new codes, standards, buttons, features from CEC 2.0 are planned for LibCEC?

http://www.trustedreviews.com/opinions/hdmi-2-0-vs-1-4

When will you be able to say that LibCEC is HDMI 2.0 and CEC 2.0 compatible?

Indirectly this question also goes on to ask if Pulse-Eight CEC Adapters will be HDMI 2.0 and CEC 2.0 compatible?

There was quite a long time ago now that we heard any announcements from Pulse-Eight about their CEC adapters or other.

CEC 2.0 main goal is however unified remote control functionality, one CEC standard.

http://www.hdmi.org/manufacturer/hdmi_2_0/hdmi_2_0_faq.aspx

"CEC extensions provide more expanded command and control of consumer electronics devices through a single control point".

HDMI 2.0 adds support for "CEC 2.0" and I'm now wondering what it means for LibCEC?

http://chipdesignmag.com/display.php?articleId=5318

"Consumers find it very frustrating that electronics manufacturers haven’t worked together to standardize the remote control. Each consumer electronics manufacturer has its own proprietary Bluetooth link for its remote control system that includes various optional features and will not interoperate with equipment designed by other manufacturers. The universal remote controls that are available on the market today tend to be difficult to use, require awkward setup routines and sometimes only have the ability to control a subset of equipment features. The result is that most homes have multiple remotes to operate their DVDs, TVs and set-top boxes. As an alternative to proprietary remote technology, HDMI 2.0 has upgraded the Consumer Electronics Control (CEC) functionality to version 2.0, which defines a set of operational codes to enable true universal remote controls. Once instantiated, CEC 2.0 lets consumers control up to 15 CEC-enabled devices, each connected through HDMI, by using only one of their remote controls (for example, controlling a television set, set-top box, and DVD player using only the remote control of the TV). CEC 2.0 enables greater integration and interoperability between HDMI devices of different brands, greatly enhancing the user experience and enabling seamless operation between devices.

https://gigaom.com/2013/09/05/hdmi-2-explained/

" One of the cool things about HDMI has been CEC, the control capability that amongst other things makes it possible for a Chromecast device to turn on a TV. However, the implementation of many CEC features was voluntary for consumer electronics manufacturers. With HDMI 2.0, this changes, and things like remote control pass-through, system audio control and standby have to be implemented as part of CEC as well. In other words: You’re going to need fewer remote controls to get more stuff done."

Mac: USB CEC device not detectable by libCEC if connected during boot

c+p from the old ticket created by @iKenndac

Hello,

I'm writing a client against libCEC, and I've noticed that if the device is connected to the computer during boot, it can't be detected by libCEC until it's been unplugged and reconnected. This hasn't always happened, and as such I thought it was a problem with my device. However, a user of my client has the same problem.

If memory services me correctly, I believe this started around the time the composite device firmware arrived.

My device is running firmware v4: libCEC version = 2.1.3, client version = 2.1.3, firmware version = 4, firmware build date: Thu Dec 6 11:15:20 2012 +0000, logical address(es) = Playback 2 (8) , physical address: 1.1.0.0, host: unknown, features: unknown, compiled: Sep 29 2013

I did some digging around in IOJones, and found the following:

  1. When the device is working correctly, IOKit sees the adapter correctly with three devices: Serial control, serial data and the HID device. /dev/tty.usbmodemv2 r1 exists.

screen shot 2013-10-05 at 11 04 08

  1. Just after boot, the three composite devices are listed but only the HID device has any information. /dev/tty.usbmodemv2 r1 (or anything similar) does not exist. No amount of relaunching applications will fix this - only a physical unplug and plug will return the device to the first state.

screen shot 2013-10-05 at 11 06 02

Unless there's some magic command that I'm missing, it actually looks like this is a problem with the device rather than libCEC itself. If you need any help debugging, I can help out.

I've been tinkering around with this and I've found a horrible workaround!

If you force the USB bus to do a "soft reset" of the device (which seems to just simulate unplugging and reconnecting the device to me, but I'm not an expert), when the device is re-detected by the system, all the services are found correctly and the device can work.

Unfortunately, this is a fair amount of extra code since you have to find the adapter by iterating USB devices rather than serial ports. I've created a sample project over here, with the interesting stuff in DKAppDelegate.m.

CEC Fail - still happening

Still getting random CEC failures with Panasonic TV. Now on Gotham 13.1 beta 2.

Lars @opdenkamp suggested setting 2000 under "Physical address (overrides HDMI port)" as I have the Raspberry connected to HDMI port 2 on the TV.

As previously mentioned I have also captured the EDID and set it in config.txt file. hdmi_edid_file=1

Setting 2000 is not remembered after a few days. I set 2000 and then check a few days later and the setting has reverted to default. The setting seems to not be properly saved.

Also, sometimes and quite randomly, another setting appears in the CEC Adapter settings called "HDMI Port number". This setting has a slider where you can set the HDMI port number. This setting is not there all the time. Sometimes it's there and sometimes it's not.

No idea what is going on there but there is clearly something wrong. Perhaps Sam @samnazarko needs to have a look as well.

This CEC issue is extremely annoying in its nature.

So what is the purpose of "HDMI port number" and "Physical address (overrides HDMI port)? They seem to be the same and there is no explanation anywhere.

Double HDMI Input for Openelec and Raspbmc on TV

Hi,

The new CEC Adapter Version brings Problems with it that worked in 2.1.3.
I have set: (in config.txt) --> hdmi_ignore_cec_init=1

When CEC is enabled in 2.1.3 and the Setting ; make XBMC the active source switched off.
The Raspberry starts up does not switch to the HDMI automatically (As expected and wanted). When i then go to the HDMI Channel for the PI it connects and all CEC buttons work with the Remote.

With 2.1.4 and same settings, it also doesnt switch to HDMI automatically but when you change to the HDMI Channel Remote doesnt work.

then i noticed that in the menu of HDMI Channels there is 2 options for the PI one is called HDMI Port 2 and the other is HDMI XBMC. When i choose the HDMI XBMC the remote works but not when i choose hdmi Port 2. This is very annoying because the TV will allways automatically choose HDMI Port 2 instead of the HDMI XBMC Channel.

It seems it doesnt combine the HDMI XBMC with the HDMI Port 2 correctly.

Also if i connect to HDMI XBMC and leave it to do nothing for a longer time, when i come back it is in standby but i cant wake it up anymore because it has moved from HDMI XBMC to HDMI Port 2 when beeing ing standby.

I was reading about similar problems in earlier CEC Adapter Versions aswell but never any solution. But then everything seemed to work in 2.1.3.

Note: i have an LG TV But i saw others have problems with samsung and philips tv's aswell.

I guess you would need some logs for this issue, but because this is not a Openelec issue i would need someone to advise me what to do... -->what you need?

greetings

LibCEC not working with LG TV

An LG TV (32LW450U) I've got on my desk at work can't be controlled from latest master xbmc/libcec. A Sony TV is working correctly.

The log shows trying to enable CEC in LG menu (by choosing simplink then selecting "HDD recorder"). I then disabled and enabled CEC in xbmc settings.
I then returned to simplink menu where "HDD recorder" had disappeared. I switched simplink off and on again, and "HDD recorder" reappeared. When selected I get an immediate:
Simplink: Please try again
message on screen.

Any suggestions or further tests I can run?

Log: http://pastebin.com/TmfQYWu9

usb cec device on openelec got stuck

Hi,

i have the issue that my usb cec device moved from libcec 2.1.3 to libcec 2.1.4 which is integrated in openelec has gone for function. first time the cec device is recognized on openelec and few seconds later stopped working. i have to go manually to cec device option to mark it inactive and afterwards reactivate it to bring the cec device back to work.

after reboot and activated cec device it is also gone after a few seconds. so something has to be done on the lib which is now malfunctional.

here some kind of logs:

No device type given. Using 'recording device'
CEC Parser created - libCEC version 2.1.4
no serial port given. trying autodetect:
path: /sys/devices/pci0000:00/0000:00:10.0/usb6/6-2
com port: /dev/ttyACM0

opening a connection to the CEC adapter...
DEBUG: [ 16] unregistering all CEC clients
DEBUG: [ 16] Broadcast (F): osd name set to 'Broadcast'
ERROR: [ 3522] error opening serial port '/dev/ttyACM0': Couldn't lock the serial port
ERROR: [ 3522] could not open a connection (try 1)
ERROR: [ 6356] error opening serial port '/dev/ttyACM0': Couldn't lock the serial port
ERROR: [ 6356] could not open a connection (try 2)
ERROR: [ 8246] error opening serial port '/dev/ttyACM0': Couldn't lock the serial port
ERROR: [ 8246] could not open a connection (try 3)
ERROR: [ 9506] error opening serial port '/dev/ttyACM0': Couldn't lock the serial port
ERROR: [ 9506] could not open a connection (try 4)
NOTICE: [ 10511] connection opened
ERROR: [ 10511] could not start CEC communications
unable to open the device on port /dev/ttyACM0

cec-client -l
ERROR: [ 3518] error opening serial port '/dev/ttyACM0': Couldn't lock the serial port
ERROR: [ 3518] could not open a connection (try 1)
ERROR: [ 6352] error opening serial port '/dev/ttyACM0': Couldn't lock the serial port
ERROR: [ 6352] could not open a connection (try 2)
ERROR: [ 8242] error opening serial port '/dev/ttyACM0': Couldn't lock the serial port
ERROR: [ 8242] could not open a connection (try 3)
ERROR: [ 9502] error opening serial port '/dev/ttyACM0': Couldn't lock the serial port
ERROR: [ 9502] could not open a connection (try 4)
Found devices: 1

device: 1
com port: /dev/ttyACM0
vendor id: 2548
product id: 1002
firmware version: 65535

Found devices: 1

device: 1
com port: /dev/ttyACM0
vendor id: 2548
product id: 1002
firmware version: 4
firmware build date: Thu Dec 6 11:15:20 2012 +0000
type: Pulse-Eight USB-CEC Adapter

No device type given. Using 'recording device'
CEC Parser created - libCEC version 2.1.4
no serial port given. trying autodetect:
path: /sys/devices/pci0000:00/0000:00:12.0/usb3/3-4
com port: /dev/ttyACM1

opening a connection to the CEC adapter...
DEBUG: [ 16] unregistering all CEC clients
DEBUG: [ 16] Broadcast (F): osd name set to 'Broadcast'
DEBUG: [ 19] connection opened, clearing any previous input and waiting for active transmissions to end before starting
DEBUG: [ 19] communication thread started
DEBUG: [ 30] turning controlled mode on
NOTICE: [ 52] connection opened
DEBUG: [ 52] << Broadcast (F) -> TV (0): POLL
TRAFFIC: [ 52] << f0
DEBUG: [ 52] processor thread started
DEBUG: [ 52] setting the line timeout to 3
DEBUG: [ 89] >> POLL sent
DEBUG: [ 89] TV (0): device status changed into 'present'
DEBUG: [ 89] << requesting vendor ID of 'TV' (0)
TRAFFIC: [ 89] << f0:8c
TRAFFIC: [ 292] >> 0f:87:00:80:45
DEBUG: [ 292] >> TV (0) -> Broadcast (F): device vendor id (87)
DEBUG: [ 292] TV (0): vendor = Panasonic (008045)
DEBUG: [ 292] expected response received (87: device vendor id)
DEBUG: [ 292] replacing the command handler for device 'TV' (0)
NOTICE: [ 292] registering new CEC client - v2.1.4
DEBUG: [ 292] detecting logical address for type 'playback device'
DEBUG: [ 292] trying logical address 'Playback 1'
DEBUG: [ 292] << Playback 1 (4) -> Playback 1 (4): POLL
TRAFFIC: [ 292] << 44
DEBUG: [ 329] >> POLL sent
DEBUG: [ 329] logical address 'Playback 1' already taken
DEBUG: [ 329] Playback 1 (4): device status changed into 'present'
DEBUG: [ 329] trying logical address 'Playback 2'
DEBUG: [ 329] << Playback 2 (8) -> Playback 2 (8): POLL
TRAFFIC: [ 329] << 88
DEBUG: [ 360] CEC transmission - received response - TRANSMIT_FAILED_ACK
TRAFFIC: [ 360] << 88
DEBUG: [ 397] CEC transmission - received response - TRANSMIT_FAILED_ACK
DEBUG: [ 398] >> POLL not sent
DEBUG: [ 398] using logical address 'Playback 2'
DEBUG: [ 398] Playback 2 (8): device status changed into 'handled by libCEC'
DEBUG: [ 398] Playback 2 (8): power status changed from 'unknown' to 'on'
DEBUG: [ 398] Playback 2 (8): vendor = Pulse Eight (001582)
DEBUG: [ 398] Playback 2 (8): CEC version 1.4
DEBUG: [ 398] AllocateLogicalAddresses - device '0', type 'playback device', LA '8'
DEBUG: [ 398] setting ackmask to 100
DEBUG: [ 403] Playback 2 (8): osd name set to 'CECTester'
DEBUG: [ 403] Playback 2 (8): menu language set to 'eng'
DEBUG: [ 403] GetPhysicalAddress - trying to get the physical address via ADL
DEBUG: [ 403] GetPhysicalAddress - ADL returned physical address 0000
DEBUG: [ 403] GetPhysicalAddress - trying to get the physical address via nvidia driver
DEBUG: [ 403] GetPhysicalAddress - nvidia driver returned physical address 0000
DEBUG: [ 403] GetPhysicalAddress - trying to get the physical address from the OS
DEBUG: [ 403] GetPhysicalAddress - OS returned physical address 0000
DEBUG: [ 403] SetDevicePhysicalAddress - not setting invalid physical address 0000
NOTICE: [ 403] setting HDMI port to 1 on device TV (0)
DEBUG: [ 403] Playback 2 (8): physical address changed from ffff to 1000
DEBUG: [ 403] << Playback 2 (8) -> broadcast (F): physical adddress 1000
TRAFFIC: [ 403] << 8f:84:10:00:04
DEBUG: [ 542] using persisted autonomous mode setting: 'enabled'
DEBUG: [ 547] using persisted CEC version setting: '1.4'
DEBUG: [ 552] using persisted logical address setting: 'Playback 2'
DEBUG: [ 558] using persisted device type setting: 'playback device'
DEBUG: [ 563] using persisted logical address mask setting: '910'
DEBUG: [ 579] using persisted device name setting: 'CECTester'
DEBUG: [ 584] using persisted physical address setting: '1000'
NOTICE: [ 584] CEC client registered: libCEC version = 2.1.4, client version = 2.1.4, firmware version = 4, firmware build date: Thu Dec 6 11:15:20 2012 +0000, logical address(es) = Playback 2 (8) , base device: TV (0), HDMI port number: 1, physical address: 1.0.0.0, host: x86_64-openelec-linux-gnu, features: 'P8 USB' 'P8 USB detect', git revision: fcafb3b, compiled on: Wed Apr 30 13:52:22 UTC 2014 by [email protected] on Linux 3.2.0-4-amd64 (x86_64)
DEBUG: [ 584] Playback 2 (8): vendor = Panasonic (008045)
DEBUG: [ 584] replacing the command handler for device 'Playback 2' (8)
DEBUG: [ 584] << Playback 2 (8) -> TV (0): OSD name 'CECTester'
TRAFFIC: [ 584] << 80:47:43:45:43:54:65:73:74:65:72
DEBUG: [ 860] << requesting power status of 'TV' (0)
TRAFFIC: [ 860] << 80:8f
TRAFFIC: [ 1036] >> 08:00:47:00
DEBUG: [ 1036] >> TV (0) -> Playback 2 (8): feature abort ( 0)
DEBUG: [ 1036] marking opcode 'set osd name' as unsupported feature for device 'TV'
TRAFFIC: [ 1132] >> 08:90:00
DEBUG: [ 1132] >> TV (0) -> Playback 2 (8): report power status (90)
DEBUG: [ 1132] TV (0): power status changed from 'unknown' to 'on'
DEBUG: [ 1132] expected response received (90: report power status)
waiting for input
TRAFFIC: [ 1600] >> 08:8c
DEBUG: [ 1600] >> TV (0) -> Playback 2 (8): give device vendor id (8C)
DEBUG: [ 1601] << Playback 2 (8) -> TV (0): vendor id Panasonic (8045)
TRAFFIC: [ 1601] << 8f:87:00:80:45
TRAFFIC: [ 1873] >> 08:89:10:01:05
DEBUG: [ 1873] >> TV (0) -> Playback 2 (8): vendor command (89)
TRAFFIC: [ 1873] << 80:89:10:02:ff:ff:00:05:05:45:55:5c:58:32
TRAFFIC: [ 2410] >> 08:a0:00:80:45:06:05
DEBUG: [ 2410] >> TV (0) -> Playback 2 (8): vendor command with id (A0)
TRAFFIC: [ 3594] >> 08:a0:00:80:45:06:05
DEBUG: [ 3594] >> TV (0) -> Playback 2 (8): vendor command with id (A0)
TRAFFIC: [ 4781] >> 08:a0:00:80:45:06:05
DEBUG: [ 4781] >> TV (0) -> Playback 2 (8): vendor command with id (A0)
TRAFFIC: [ 5855] >> 05:7d
TRAFFIC: [ 5946] >> 50:7e:00
DEBUG: [ 5946] >> Audio (5): system audio mode status changed from on to off
DEBUG: [ 5946] device Audio (5) status changed to present after command system audio mode status
^Csignal caught: 2 - exiting
DEBUG: [ 99848] unregistering all CEC clients
NOTICE: [ 99848] unregistering client: libCEC version = 2.1.4, client version = 2.1.4, firmware version = 4, firmware build date: Thu Dec 6 11:15:20 2012 +0000, logical address(es) = Playback 2 (8) , base device: TV (0), HDMI port number: 1, physical address: 1.0.0.0, host: x86_64-openelec-linux-gnu, features: 'P8 USB' 'P8 USB detect', git revision: fcafb3b, compiled on: Wed Apr 30 13:52:22 UTC 2014 by [email protected] on Linux 3.2.0-4-amd64 (x86_64)
DEBUG: [ 99848] Playback 2 (8): power status changed from 'on' to 'unknown'
DEBUG: [ 99848] Playback 2 (8): vendor = Unknown (000000)
DEBUG: [ 99848] Playback 2 (8): CEC version unknown
DEBUG: [ 99848] Playback 2 (8): osd name set to 'Playback 2'
DEBUG: [ 99848] Playback 2 (8): device status changed into 'unknown'
DEBUG: [ 99849] setting ackmask to 0
DEBUG: [ 99855] turning controlled mode off
DEBUG: [ 99860] unregistering all CEC clients
DEBUG: [ 100072] communication thread ended
OpenELEC:~ # reboot

after reboot

OpenELEC:~ # cec-client
No device type given. Using 'recording device'
CEC Parser created - libCEC version 2.1.4
no serial port given. trying autodetect:
path: /sys/devices/pci0000:00/0000:00:12.0/usb3/3-4
com port: /dev/ttyACM0

opening a connection to the CEC adapter...
DEBUG: [ 13] unregistering all CEC clients
DEBUG: [ 13] Broadcast (F): osd name set to 'Broadcast'
ERROR: [ 3518] error opening serial port '/dev/ttyACM0': Couldn't lock the serial port
ERROR: [ 3518] could not open a connection (try 1)
ERROR: [ 6353] error opening serial port '/dev/ttyACM0': Couldn't lock the serial port
ERROR: [ 6353] could not open a connection (try 2)
ERROR: [ 8243] error opening serial port '/dev/ttyACM0': Couldn't lock the serial port
ERROR: [ 8243] could not open a connection (try 3)
ERROR: [ 9503] error opening serial port '/dev/ttyACM0': Couldn't lock the serial port
ERROR: [ 9503] could not open a connection (try 4)
NOTICE: [ 10508] connection opened
ERROR: [ 10508] could not start CEC communications
unable to open the device on port /dev/ttyACM0

unplugging usb port of cec-adapter and put it into the monitor mode.

OpenELEC:~ # cec-client -m
starting a monitor-only client. use 'mon 0' to switch to normal mode
No device type given. Using 'recording device'
CEC Parser created - libCEC version 2.1.4
no serial port given. trying autodetect:
path: /sys/devices/pci0000:00/0000:00:10.0/usb6/6-2
com port: /dev/ttyACM1

opening a connection to the CEC adapter...
DEBUG: [ 13] unregistering all CEC clients
DEBUG: [ 13] Broadcast (F): osd name set to 'Broadcast'
DEBUG: [ 16] connection opened, clearing any previous input and waiting for active transmissions to end before starting
DEBUG: [ 16] communication thread started
DEBUG: [ 27] turning controlled mode on
NOTICE: [ 48] connection opened
waiting for input

OpenELEC:~ # echo "on 0" | cec-client -s
opening a connection to the CEC adapter...
DEBUG: [ 12] unregistering all CEC clients
DEBUG: [ 12] Broadcast (F): osd name set to 'Broadcast'
DEBUG: [ 15] connection opened, clearing any previous input and waiting for active transmissions to end before starting
DEBUG: [ 15] communication thread started
DEBUG: [ 26] turning controlled mode on
NOTICE: [ 48] connection opened
DEBUG: [ 48] << Broadcast (F) -> TV (0): POLL
DEBUG: [ 48] processor thread started
TRAFFIC: [ 48] << f0
DEBUG: [ 48] setting the line timeout to 3
DEBUG: [ 84] >> POLL sent
DEBUG: [ 85] TV (0): device status changed into 'present'
DEBUG: [ 85] << requesting vendor ID of 'TV' (0)
TRAFFIC: [ 85] << f0:8c
TRAFFIC: [ 287] >> 0f:87:00:80:45
DEBUG: [ 287] >> TV (0) -> Broadcast (F): device vendor id (87)
DEBUG: [ 287] TV (0): vendor = Panasonic (008045)
DEBUG: [ 287] expected response received (87: device vendor id)
DEBUG: [ 287] replacing the command handler for device 'TV' (0)
NOTICE: [ 287] registering new CEC client - v2.1.4
DEBUG: [ 287] detecting logical address for type 'playback device'
DEBUG: [ 287] trying logical address 'Playback 1'
DEBUG: [ 287] << Playback 1 (4) -> Playback 1 (4): POLL
TRAFFIC: [ 287] << 44
DEBUG: [ 324] >> POLL sent
DEBUG: [ 324] logical address 'Playback 1' already taken
DEBUG: [ 324] Playback 1 (4): device status changed into 'present'
DEBUG: [ 324] trying logical address 'Playback 2'
DEBUG: [ 324] << Playback 2 (8) -> Playback 2 (8): POLL
TRAFFIC: [ 324] << 88
DEBUG: [ 355] CEC transmission - received response - TRANSMIT_FAILED_ACK
TRAFFIC: [ 356] << 88
DEBUG: [ 392] CEC transmission - received response - TRANSMIT_FAILED_ACK
DEBUG: [ 393] >> POLL not sent
DEBUG: [ 393] using logical address 'Playback 2'
DEBUG: [ 393] Playback 2 (8): device status changed into 'handled by libCEC'
DEBUG: [ 393] Playback 2 (8): power status changed from 'unknown' to 'on'
DEBUG: [ 393] Playback 2 (8): vendor = Pulse Eight (001582)
DEBUG: [ 393] Playback 2 (8): CEC version 1.4
DEBUG: [ 393] AllocateLogicalAddresses - device '0', type 'playback device', LA '8'
DEBUG: [ 393] setting ackmask to 100
DEBUG: [ 398] Playback 2 (8): osd name set to 'CECTester'
DEBUG: [ 398] Playback 2 (8): menu language set to 'eng'
DEBUG: [ 398] GetPhysicalAddress - trying to get the physical address via ADL
DEBUG: [ 398] GetPhysicalAddress - ADL returned physical address 0000
DEBUG: [ 398] GetPhysicalAddress - trying to get the physical address via nvidia driver
DEBUG: [ 398] GetPhysicalAddress - nvidia driver returned physical address 0000
DEBUG: [ 398] GetPhysicalAddress - trying to get the physical address from the OS
DEBUG: [ 398] GetPhysicalAddress - OS returned physical address 0000
DEBUG: [ 398] SetDevicePhysicalAddress - not setting invalid physical address 0000
NOTICE: [ 398] setting HDMI port to 1 on device TV (0)
DEBUG: [ 398] Playback 2 (8): physical address changed from ffff to 1000
DEBUG: [ 398] << Playback 2 (8) -> broadcast (F): physical adddress 1000
TRAFFIC: [ 399] << 8f:84:10:00:04
DEBUG: [ 532] using persisted autonomous mode setting: 'enabled'
DEBUG: [ 537] using persisted CEC version setting: '1.4'
DEBUG: [ 542] using persisted logical address setting: 'Playback 2'
DEBUG: [ 547] using persisted device type setting: 'playback device'
DEBUG: [ 553] using persisted logical address mask setting: '910'
DEBUG: [ 568] using persisted device name setting: 'CECTester'
DEBUG: [ 574] using persisted physical address setting: '1000'
NOTICE: [ 574] CEC client registered: libCEC version = 2.1.4, client version = 2.1.4, firmware version = 4, firmware build date: Thu Dec 6 11:15:20 2012 +0000, logical address(es) = Playback 2 (8) , base device: TV (0), HDMI port number: 1, physical address: 1.0.0.0, host: x86_64-openelec-linux-gnu, features: 'P8 USB' 'P8 USB detect', git revision: fcafb3b, compiled on: Wed Apr 30 13:52:22 UTC 2014 by [email protected] on Linux 3.2.0-4-amd64 (x86_64)
DEBUG: [ 574] Playback 2 (8): vendor = Panasonic (008045)
DEBUG: [ 574] replacing the command handler for device 'Playback 2' (8)
DEBUG: [ 574] << Playback 2 (8) -> TV (0): OSD name 'CECTester'
TRAFFIC: [ 574] << 80:47:43:45:43:54:65:73:74:65:72
DEBUG: [ 849] << requesting power status of 'TV' (0)
TRAFFIC: [ 850] << 80:8f
TRAFFIC: [ 1004] >> 08:90:01
DEBUG: [ 1004] >> TV (0) -> Playback 2 (8): report power status (90)
DEBUG: [ 1004] TV (0): power status changed from 'unknown' to 'standby'
DEBUG: [ 1004] expected response received (90: report power status)
NOTICE: [ 1004] << powering on 'TV' (0)
TRAFFIC: [ 1004] << 80:04
DEBUG: [ 1062] TV (0): power status changed from 'standby' to 'in transition from standby to on'
DEBUG: [ 1062] unregistering all CEC clients
NOTICE: [ 1062] unregistering client: libCEC version = 2.1.4, client version = 2.1.4, firmware version = 4, firmware build date: Thu Dec 6 11:15:20 2012 +0000, logical address(es) = Playback 2 (8) , base device: TV (0), HDMI port number: 1, physical address: 1.0.0.0, host: x86_64-openelec-linux-gnu, features: 'P8 USB' 'P8 USB detect', git revision: fcafb3b, compiled on: Wed Apr 30 13:52:22 UTC 2014 by [email protected] on Linux 3.2.0-4-amd64 (x86_64)
DEBUG: [ 1062] Playback 2 (8): power status changed from 'on' to 'unknown'
DEBUG: [ 1062] Playback 2 (8): vendor = Unknown (000000)
DEBUG: [ 1062] Playback 2 (8): CEC version unknown
DEBUG: [ 1062] Playback 2 (8): osd name set to 'Playback 2'
DEBUG: [ 1062] Playback 2 (8): device status changed into 'unknown'
DEBUG: [ 1062] setting ackmask to 0
DEBUG: [ 1067] turning controlled mode off
DEBUG: [ 1073] unregistering all CEC clients
DEBUG: [ 2057] communication thread ended

OpenELEC:~ # echo scan | cec-client -s -d 1
opening a connection to the CEC adapter...
requesting CEC bus information ...

CEC bus information

device #0: TV
address: 0.0.0.0
active source: yes
vendor: Panasonic
osd string: TV
CEC version: 1.4
power status: on
language: ger

device #4: Playback 1
address: 3.0.0.0
active source: no
vendor: Yamaha
osd string: Blu-ray
CEC version: 1.4
power status: standby
language: ???

device #5: Audio
address: 3.0.0.0
active source: no
vendor: Yamaha
osd string: Blu-ray
CEC version: 1.4
power status: standby
language: ???

device #8: Playback 2
address: 1.0.0.0
active source: no
vendor: Panasonic
osd string: CECTester
CEC version: 1.4
power status: on
language: eng

currently active source: TV (0)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.