0

I am using Yocto and meta-raspberrypi to build a Linux image running on my RPi4. I would like to send a video to one of the HDMI outputs, but without running a graphical environment (I don't need a desktop, I just want to send a video stream coming from a webcam to the HDMI output).

It seems to me that meta-raspberrypi already brings the graphics drivers, as I have dtoverlay=vc4-fkms-v3d in my /boot/config.txt, and my understanding is that vc4 and v3d are the graphics drivers.

My RPi boots normally when I do not plug an HDMI screen to it. But when I do, it gets stuck and loops on output similar to:

No EFI system partition
ERROR: invalid device tree
Card did not respond to voltage select! : -110

...


Device 0: unknown device
ethernet@7d580000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
bcmgenet: PHY startup failed: -110
missing environment variable: pxeuuid
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/01-dc-a6-32-cd-0f-c4
ethernet@7d580000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
bcmgenet: PHY startup failed: -110
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/00000000
ethernet@7d580000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
bcmgenet: PHY startup failed: -110
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/0000000

This also happens if I do not plug the HDMI screen, but set hdmi_safe=1 in /boot/config.txt.

Why would the HDMI screen prevent my system from booting, and what could I do to fix that?

1 Answer 1

1

I had the same problem. My RPi CM4 would not boot once I plugged a HDMI device. I was able to fix it by patching u-boot with this patch:

diff --git a/board/raspberrypi/rpi/rpi.c b/board/raspberrypi/rpi/rpi.c
index df52a4689f..611013471e 100644
--- a/board/raspberrypi/rpi/rpi.c
+++ b/board/raspberrypi/rpi/rpi.c
@@ -318,9 +318,6 @@  static void set_fdtfile(void)
  */
 static void set_fdt_addr(void)
 {
-   if (env_get("fdt_addr"))
-       return;
-
    if (fdt_magic(fw_dtb_pointer) != FDT_MAGIC)
        return;

Now the CM4 boots and I get a display output over HDMI0!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.