CEC Adapter no more working after november update

ok thanks - I’ve ‘unbroken’ it now … :slight_smile:

I’ve tried with 3 Vero 4K and none working with my TV.
I can only presume that something went wrong with the TV?
Like the XBOX ‘broke’ it ??? Weird, I know - but what else can it be?

Thanks.

osmc@osmc-Ulysses:~$ dpkg -l | grep libcec
ii libcec4:armhf 4.0.1+dfsg1-1 armhf USB CEC Adaptor communication Library (shared library)
ii vero3-libcec-osmc 4.0.4-4 armhf libcec
osmc@osmc-Ulysses:~$ sudo apt-get remove libcec4
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following packages were automatically installed and are no longer required:
libp8-platform2 libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 libxext6 libxrandr2 libxrender1
Use ‘sudo apt autoremove’ to remove them.
The following packages will be REMOVED:
cec-utils libcec4
0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded.
After this operation, 588 kB disk space will be freed.
Do you want to continue? [Y/n] Y
(Reading database … 32491 files and directories currently installed.)
Removing cec-utils (4.0.1+dfsg1-1) …
Removing libcec4:armhf (4.0.1+dfsg1-1) …
Processing triggers for libc-bin (2.24-11+deb9u4) …
osmc@osmc-Ulysses:~$ sudo reboot
packet_write_wait: Connection to 192.168.1.150 port 22: Broken pipe
NiallOfficeMBP-11963:~ Niall$
NiallOfficeMBP-11963:~ Niall$ ssh osmc@192.168.1.150
osmc@192.168.1.150’s password:
Linux osmc-Ulysses 3.14.29-156-osmc #1 SMP Tue Oct 15 20:21:25 UTC 2019 aarch64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Thu Nov 28 22:35:57 2019 from 192.168.1.168
osmc@osmc-Ulysses:~$ cec-client
No device type given. Using ‘recording device’
CEC Parser created - libCEC version 4.0.4
no serial port given. trying autodetect:
path: /dev/aocec
com port: AOCEC

opening a connection to the CEC adapter…
DEBUG: [ 116] Broadcast (F): osd name set to ‘Broadcast’
NOTICE: [ 117] connection opened
DEBUG: [ 117] processor thread started
DEBUG: [ 117] << Broadcast (F) → TV (0): POLL
TRAFFIC: [ 117] << f0
DEBUG: [ 2151] >> POLL sent
DEBUG: [ 2151] TV (0): device status changed into ‘present’
DEBUG: [ 2151] << requesting vendor ID of ‘TV’ (0)
TRAFFIC: [ 2151] << f0:8c
DEBUG: [ 5191] expected response not received (87: device vendor id)
TRAFFIC: [ 5191] << f0:8c
DEBUG: [ 8231] expected response not received (87: device vendor id)
NOTICE: [ 8231] registering new CEC client - v4.0.4
DEBUG: [ 8231] detecting logical address for type ‘recording device’
DEBUG: [ 8231] trying logical address ‘Recorder 1’
DEBUG: [ 8231] << Recorder 1 (1) → Recorder 1 (1): POLL
TRAFFIC: [ 8231] << 11
DEBUG: [ 10271] >> POLL sent
DEBUG: [ 10271] logical address ‘Recorder 1’ already taken
DEBUG: [ 10271] Recorder 1 (1): device status changed into ‘present’
DEBUG: [ 10271] trying logical address ‘Recorder 2’
DEBUG: [ 10271] << Recorder 2 (2) → Recorder 2 (2): POLL
TRAFFIC: [ 10271] << 22
DEBUG: [ 12311] >> POLL sent
DEBUG: [ 12311] logical address ‘Recorder 2’ already taken
DEBUG: [ 12311] Recorder 2 (2): device status changed into ‘present’
DEBUG: [ 12311] trying logical address ‘Recorder 3’
DEBUG: [ 12311] << Recorder 3 (9) → Recorder 3 (9): POLL
TRAFFIC: [ 12311] << 99
DEBUG: [ 14351] >> POLL sent
DEBUG: [ 14351] logical address ‘Recorder 3’ already taken
DEBUG: [ 14351] Recorder 3 (9): device status changed into ‘present’
ERROR: [ 14351] AllocateLogicalAddresses - failed to allocate device ‘0’, type ‘recording device’
ERROR: [ 14351] failed to find a free logical address for the client
ERROR: [ 14351] failed to register the new CEC client - cannot allocate the requested device types
unable to open the device on port AOCEC
ERROR: [ 14352] failed to register a CEC client
DEBUG: [ 14352] unregistering all CEC clients
osmc@osmc-Ulysses:~$

What else is attached to the Tv?
Can you unplug the other HDMI leads for a quick test, power cycle the TV and see if it then works?

Sam,

I think problem is with the CEC funtion (Allnet+) in the Samsung TV which is a bit flaky.
Using the TV with only the XBox connected HDMI over the weekend seems to have screwed it up. Nothing else was changed, and it worked perfectly for several years before that.

Later, I’ll try factory reset and reset Allnet+ at the same time.

Samsung TV not reacting on CEC command - Ubuntu Mate 16.04 Raspberry Pi 2 · Issue #366 · Pulse-Eight/libcec · GitHub

Thanks.
Best regards,
Niall

It looks like there’s no logical address we can use. This could mean that the address used by the Xbox is still reserved

That looks like what is happening.

I’ve tried disconnecting all HDMI. Factory reset, plugged-out TV.
Connected only Vero in HDMI1. Disabled Allnet, enabled Allnet, Factory Reset. Try Vero in HDMI2. Rinse, repeat…

It is as if it thinks the XBOX is still connected and controlling the TV.
Maybe there are persistent settings that are not reset with factory reset?

DEBUG: [ 14381] logical address ‘Recorder 3’ already taken
DEBUG: [ 14381] Recorder 3 (9): device status changed into ‘present’
ERROR: [ 14381] AllocateLogicalAddresses - failed to allocate device ‘0’, type ‘recording device’
ERROR: [ 14381] failed to find a free logical address for the client
ERROR: [ 14381] failed to register the new CEC client - cannot allocate the requested device types
unable to open the device on port AOCEC
ERROR: [ 14383] failed to register a CEC client

The only thing I can think of now is to see if I can do a firmware upgrade with a USB.

Thanks

ok, so I found the newest (2011) firmware version for the TV

But no change :frowning:

osmc@osmc-Ulysses:~$ sudo systemctl stop mediacenter
osmc@osmc-Ulysses:~$ sudo cec-client
No device type given. Using ‘recording device’
CEC Parser created - libCEC version 4.0.4
no serial port given. trying autodetect:
path: /dev/aocec
com port: AOCEC

opening a connection to the CEC adapter…
DEBUG: [ 165] Broadcast (F): osd name set to ‘Broadcast’
NOTICE: [ 166] connection opened
DEBUG: [ 166] processor thread started
DEBUG: [ 166] << Broadcast (F) → TV (0): POLL
TRAFFIC: [ 166] << f0
DEBUG: [ 2207] >> POLL sent
DEBUG: [ 2207] TV (0): device status changed into ‘present’
DEBUG: [ 2207] << requesting vendor ID of ‘TV’ (0)
TRAFFIC: [ 2207] << f0:8c
DEBUG: [ 5247] expected response not received (87: device vendor id)
TRAFFIC: [ 5248] << f0:8c
DEBUG: [ 8288] expected response not received (87: device vendor id)
NOTICE: [ 8288] registering new CEC client - v4.0.4
DEBUG: [ 8288] detecting logical address for type ‘recording device’
DEBUG: [ 8288] trying logical address ‘Recorder 1’
DEBUG: [ 8288] << Recorder 1 (1) → Recorder 1 (1): POLL
TRAFFIC: [ 8288] << 11
DEBUG: [ 10327] >> POLL sent
DEBUG: [ 10327] logical address ‘Recorder 1’ already taken
DEBUG: [ 10327] Recorder 1 (1): device status changed into ‘present’
DEBUG: [ 10327] trying logical address ‘Recorder 2’
DEBUG: [ 10327] << Recorder 2 (2) → Recorder 2 (2): POLL
TRAFFIC: [ 10327] << 22
DEBUG: [ 12367] >> POLL sent
DEBUG: [ 12367] logical address ‘Recorder 2’ already taken
DEBUG: [ 12367] Recorder 2 (2): device status changed into ‘present’
DEBUG: [ 12367] trying logical address ‘Recorder 3’
DEBUG: [ 12367] << Recorder 3 (9) → Recorder 3 (9): POLL
TRAFFIC: [ 12367] << 99
DEBUG: [ 14407] >> POLL sent
DEBUG: [ 14407] logical address ‘Recorder 3’ already taken
DEBUG: [ 14407] Recorder 3 (9): device status changed into ‘present’
ERROR: [ 14407] AllocateLogicalAddresses - failed to allocate device ‘0’, type ‘recording device’
ERROR: [ 14407] failed to find a free logical address for the client
ERROR: [ 14408] failed to register the new CEC client - cannot allocate the requested device types
unable to open the device on port AOCEC
ERROR: [ 14409] failed to register a CEC client
DEBUG: [ 14410] unregistering all CEC clients
osmc@osmc-Ulysses:~$

How can this happen?

There is nothing else connected.
Just Vero 4K+ and TV.

If didn’t work before, then that would explain it.
But this has been working perfectly. For years. Nothing has changed.

I’ve tried everything that I can possibly think of.

Something is occupying a slot on the TV that we would normally use for communication.
You could change the Vero from a recorder to a player, but it may impact the functionality of some buttons. See HDMI-CEC some buttons not working on Vero2 that do work on Pi2 - #14 by lichtus for some information.

Sam

Couldn’t this be accomplished easier by just setting the CEC physical address to 4 in settings>system>input>peripherals>CEC adapter>physical address>

Might work – but I’d change the advertised role to prevent issues later.

I went to change the 4 to 1, but it was 1 already.

<setting key="device_type" type="int" value="4" configurable="0" />

So I changed it to 4.
No change :frowning:

There seems to be just no reponse over HDMI from the TV
dmesg:

[Tue Dec 10 17:29:24 2019] cectx aocec: cec_ll_tx(): tx timeout
[Tue Dec 10 17:29:26 2019] cectx aocec: cec_ll_tx(): tx timeout
[Tue Dec 10 17:29:29 2019] cectx aocec: cec_ll_tx(): tx timeout
[Tue Dec 10 17:29:32 2019] cectx aocec: cec_ll_tx(): tx timeout
[Tue Dec 10 17:29:34 2019] cectx aocec: cec_ll_tx(): tx timeout
[Tue Dec 10 17:29:36 2019] cectx aocec: cec_ll_tx(): tx timeout

cec-client tries twice to get the Vendor ID of the TV, but there is no reponse from the TV:

DEBUG: [ 2205] << requesting vendor ID of ‘TV’ (0)
TRAFFIC: [ 2205] << f0:8c
DEBUG: [ 5245] expected response not received (87: device vendor id)
TRAFFIC: [ 5248] << f0:8c
DEBUG: [ 8285] expected response not received (87: device vendor id)

This would suggest (maybe) there’s a problem with the cable.
But it’s the same cable that I have been using for the last 2 years.

I don’t know how/why the TV would just stop responding to the device vendor Id request.
I’ve tried with factory reset, each of 4 HDMI ports, firmware update. I even tried with the XBox HDMI cable!

Did the Xbox somehow ‘re-program’ the TV, so it doesnt response anymore to these HDMI requests?

Try another cable certainly.
Can you also post another log?

Sam

Change it back to the default of zero, turn off the Vero, then unplug the TV, Vero, and anything else plugged into the TV from the wall for five minutes. Plug the TV back in and turn it back on. Once the TV is on plug everything else back in.

Setting the physical address is a bit of a dirty hack and your TV likely did not handle this well.

EDIT: I got confused here, sorry. What was it showing for <setting id="physical_address" value=" " /> when you made the changes to the device type?

here:

> <setting key="physical_address" type="string" label="36021" value="0" order="14" />

https://paste.osmc.tv/uyicapeqow

So you were editing /usr/share/kodi/system/peripherals.xml? That is probably being overrode. What device type and physical address is set in /home/osmc/.kodi/userdata/peripheral_data/rpi_2708_1001.xml

it’s Vero4K+, there’s no file with name like that.

drwxr-xr-x 8 root  4096 Dec 10 17:25 .
drwxr-xr-x 7 root  4096 Nov 24 20:12 ..
-rw-r--r-- 1 root  2201 Nov 16 20:15 addon-manifest.xml
-rw-r--r-- 1 root  1044 Nov 17 00:01 advancedsettings.xml
drwxr-xr-x 2 root  4096 Nov 24 20:12 certs
-rw-r--r-- 1 root  6352 Nov 16 11:12 colors.xml
drwxr-xr-x 2 root  4096 Nov 24 20:12 keyboardlayouts
drwxr-xr-x 4 root  4096 Nov 24 20:12 keymaps
drwxr-xr-x 5 root  4096 Jan  1  2015 library
-rw-r--r-- 1 root 19069 Nov 16 11:12 Lircmap.xml
-rw-r--r-- 1 root  4623 Dec 10 17:27 peripherals.xml
-rw-r--r-- 1 root  4623 Dec 10 17:25 peripherals.xml-orig
-rw-r--r-- 1 root  1732 Nov 16 11:12 playercorefactory.xml
drwxr-xr-x 2 root  4096 Nov 24 20:12 settings
drwxr-xr-x 4 root  4096 Nov 24 20:12 shaders
osmc@osmc-Ulysses:/usr/share/kodi/system$

You are in the wrong directory.

Also check cec_CEC_Adapter.xml.

1 Like

osmc@osmc-Ulysses:~/.kodi/userdata/peripheral_data$ ls -alg
total 24
drwxr-xr-x 2 osmc 4096 Dec 10 17:18 .
drwxr-xr-x 10 osmc 4096 Apr 24 2019 …
-rw-r–r-- 1 osmc 13 Dec 10 20:36 application_Keyboard.xml
-rw-r–r-- 1 osmc 13 Dec 10 20:36 application_Mouse.xml
-rw-r–r-- 1 osmc 1253 Dec 10 20:36 cec_CEC_Adapter.xml
-rw-r–r-- 1 root 1253 Dec 10 17:18 cec_CEC_Adapter.xml-orig
osmc@osmc-Ulysses:~/.kodi/userdata/peripheral_data$

sorry! here it is:

> osmc-Ulysses:~/.kodi/userdata/peripheral_data$ more cec_CEC_Adapter.xml
> <settings>
>     <setting id="activate_source" value="0" />
>     <setting id="button_release_delay_ms" value="0" />
>     <setting id="button_repeat_rate_ms" value="0" />
>     <setting id="cec_hdmi_port" value="1" />
>     <setting id="cec_standby_screensaver" value="0" />
>     <setting id="cec_wake_screensaver" value="0" />
>     <setting id="connected_device" value="36037" />
>     <setting id="device_name" value="Kodi" />
>     <setting id="device_type" value="1" />
>     <setting id="double_tap_timeout_ms" value="300" />
>     <setting id="enabled" value="1" />
>     <setting id="pause_or_stop_playback_on_deactivate" value="231" />
>     <setting id="pause_playback_on_deactivate" value="0" />
>     <setting id="physical_address" value="0" />
>     <setting id="power_avr_on_as" value="0" />
>     <setting id="send_inactive_source" value="0" />
>     <setting id="standby_devices" value="231" />
>     <setting id="standby_devices_advanced" value="" />
>     <setting id="standby_pc_on_tv_standby" value="36028" />
>     <setting id="standby_tv_on_pc_standby" value="0" />
>     <setting id="tv_vendor" value="0" />
>     <setting id="use_tv_menu_language" value="0" />
>     <setting id="wake_devices" value="231" />
>     <setting id="wake_devices_advanced" value="" />
> </settings>
> osmc@osmc-Ulysses:~/.kodi/userdata/peripheral_data$

Try changing your device type in that file to “4” and reboot. The physical address will stay at “0”.