Hi everyone,
First of all, thanks for all the work on OSMC. The Vero V has been great here, and I’m hoping someone can point me in the right direction on a CEC question.
Upfront: I used an AI assistant to help me troubleshoot this and to draft the post. I ran every command myself and reviewed the whole thing before posting, so I can answer follow ups and rerun anything you’d like to see.
My setup is Vero V into HDMI IN 1 of a Samsung HW-Q990F soundbar, and the soundbar into HDMI 3 of a Samsung S90C TV. I run it this way so the Vero can bitstream TrueHD and DTS-HD MA straight to the soundbar. Video and audio work perfectly, so this is only about CEC.
The issue is that pressing Home on the OSMC remote makes the soundbar switch to its TV/eARC input instead of HDMI IN 1, where the Vero actually is.
Looking at the bus, the Vero seems to be announcing something invalid:
echo scan | cec-client -s -d 1
device #0: TV 0.0.0.0 Samsung TV
device #1: Recorder 1 a.0.a.0 CECTester
device #4: Playback 1 2.0.0.0 PlayStation 5
device #5: Audio 3.0.0.0 HW-Q990F
device #8: Playback 2 1.0.0.0 Apple TV
Everything else looks sane, only the Vero ends up at a.0.a.0. Given the topology I’d expect 3.1.0.0. The driver reports the same thing:
$ cat /sys/class/aocec/physical_addr
a0a0
What makes me think this is the whole story: with the mediacenter stopped, if I send Active Source by hand with the value I’d expect, the soundbar switches to HDMI IN 1 every single time, and repeating it doesn’t bounce back to eARC.
echo "tx 4F:82:31:00" | cec-client -s -d 1
So the soundbar handles Active Source fine. It seems to come down to what the Vero is putting in the message.
Things I’ve tried so far:
- Setting Physical address in the CEC Adapter peripheral settings to 3100. It shows as 0 again next time I open the screen.
- Editing cec_CEC_Adapter.xml by hand with the mediacenter stopped, setting connected_device to 36038, device_type to 36052 and physical_address to 12544. After a restart, device_type stuck but connected_device and physical_address were back to their defaults.
- Writing the value to the driver directly. It’s accepted while the mediacenter is stopped, but goes back to a0a0 once Kodi starts.
$ echo 0x3100 | sudo tee /sys/class/aocec/physical_addr
$ cat /sys/class/aocec/physical_addr
3100
- New HDMI cable, different soundbar input, full power cycle of everything.
So my questions, in case anyone has been down this road:
- Is there a supported way to pin this on a Vero V when the device upstream doesn’t provide a usable value?
- Does the AOCEC driver honour the libCEC override at all, or does it always take it from the EDID?
- Would writing to the sysfs entry after Kodi has finished starting be a reasonable workaround, or does libCEC keep refreshing that value while it runs?
I’m probably missing something obvious, so any pointers are welcome. Happy to upload a full debug log with the CEC component enabled if that would help.
Thanks!