Pi4 composite Video output

We are trying to drive some older TVs with info Beamer stand-alone. I can enable the output (which disables HDMI) and I can see the boot logo coming up nicely. After that info-Beamer crashes saying no usable display found. The OS keeps running, I can ssh in and I see a constant black and burst image coming from the jack connector.
Can you please look into this? Is it possible to use this output?

Can you provide a log with info-beamer started while INFOBEAMER_LOG_LEVEL=4 is set?

This is the output: https://pastebin.com/MADtUFKb
I’ve tried older versions, all of them crashed with the same error.

It seems info-beamer tries to open dispmanx display 2 instead of 3. Can you try adding INFOBEAMER_TARGET_D=3?

CRITICAL ERROR: Invalid display, use 4-6 or lcd/tv/other

Tried with 4-6, basically the same error as the first one with the display number changed.

Ok. I’ll take a look at this tomorrow and keep you updated.

Can you try the 1.0.3 prerelease and INFOBEAMER_TARGET_D=3?

Now, it’s unsupported: https://pastebin.com/5FEVQqVZ

Whoops. Can you try again with 1.0.3.c4dcd7?

[surface.c] default display is 2
[surface.c] opening display 3
[surface.c] DRM device /dev/dri/card1
[surface.c] connectors: 1
[surface.c] encoders: 1
[surface.c] crtcs: 1
[surface.c] found 1 attached devices
[surface.c] Connector 0:
[surface.c] detected Composite display 3 device Unk Composite dis
[surface.c] 720x576@50.000 DMT 1
[surface.c] physical size 0x0mm
[surface.c] property: EDID: 0
[surface.c] property: DPMS: 4
[surface.c] property: link-status: 2
[surface.c] property: non-desktop: 2
[surface.c] property: left margin: 2
[surface.c] property: right margin: 2
[surface.c] property: top margin: 2
[surface.c] property: bottom margin: 2
[surface.c] property: Broadcast RGB: 3
[surface.c] vv— T = tvservice match, D = drm match
[surface.c] D 0, 720x576: 25.02Hz name: FIXED_MODE, clock: 13513 (flag:0x15 phsync pvsync interlace)
[surface.c] No usable mode found
[surface.c] No usable display found!
CRITICAL ERROR: Cannot setup DRM device(s)

It went further now, I have no idea if I’d have to change modes to make this work.

Can you add INFOBEAMER_PRIMARY_MODE=0? The reason this doesn’t work automatically is that dispmanx says 50Hz, while DRM sees 25Hz and the matching doesn’t work. I guess that’s due to interlacing.

Yep, it starts now, however a totally unrelated error causes the node to fail:

[fsp-node] runtime error: kernel:0: attempt to reference missing global ‘load_audio’ aborted
stack traceback:
[C]: in function ‘__index’
kernel: in function ‘create_sandbox’
kernel: in function kernel:0

Then it throws a ton of errors, because gl.setup can’t run.
I didn’t touch the lua stuff for… 6 months(?), unless you changed the API it should work.

Just checked, I don’t use load_audio anywhere.

Hm. That’s unrelated. 1.0.3 wasn’t really ready for release, so that’s another bug. Fixing now… should now work. You should also be able to get rid of INFOBEAMER_PRIMARY_MODE=0 again. Can you try that too?

Both pis became unreachable over ssh… I’ll test this as soon as I can, because I have no 4 pin jacks or displays with composite input at home.

Sounds like a firmware lockup. Do you happen to know the config.txt values you are using to force analog video output?

I think they were unplugged, got broken pipe errors while trying to type.
My slack messages also confirm this.

Ok. I wanted to suggest you use the INFOBEAMER_WATCHDOG=10 parameter next time. That would at least rebooted the device after 10 seconds even if being completely locked up. But that won’t help with that :slight_smile:

It looks like everything’s fine, started up without errors, however I can’t see the screen over ssh, so I’ll just assume it works properly. Thanks!

Nice. Did you also remove the INFOBEAMER_PRIMARY_MODE=0 environment variable?