Quantcast
Viewing all articles
Browse latest Browse all 5127

Troubleshooting • Pi 4B Undervoltage condition relating to modern HDMI overlay: dtoverlay=vc4-kms-v3d

Strangeness ... I have a flock of Raspberry Pi 4Bs, purchased about three years ago (post the update defaulting to USB boot vs. SD card). I've used them for all kinds of things, desktops, servers, etc., typically in parallel configurations (I build clusters, etc.). I have no reason to believe these computers are different from one another in any way. They've all worked great.

I gave each Pi a Miuzei LCD HDMI display from Amazon. This is a GPIO-attached (for power and touchscreen) display with its own fan and a hardwired mini-HDMI to HDMI cable for signal. These have also worked great. There's an X11-based 'driver' that you grab from GitHub.

Doing a new project, Kubernetes, used the RPI imager to save Raspberry Pi OS Lite (64-bit) onto four identical high-quality USB sticks because I don't need a desktop for this project. With each write, I used the RPI customization tool to set different hostnames, inject SSH keys, etc.

Boot all the PIs. Boot works. SSH in, do the video driver setup, make a few more changes required for Kubernetes (cgroups, etc.) and reboot. So, identical hardware (as far as I know), same OS, identical configuration. And at this point, no changes made to boot/firmware/config.txt -- changes made to cmdline.txt (to enable cgroups) are all identical.

Pis 1, 2, and 4 come back up perfectly. LCD screen lights up, maximum resolution, boot sequence completes, all good.

Pi3, no. LCD screen comes up, shows initial boot chatter, then No Signal.

Plug in real HDMI monitor, same thing.

dmesg shows only one anomaly in Pi3's kernel startup (different from the other Pis) -- an undervoltage condition, late in the process, that's apparently rectified in microseconds. Behold:

Code:

[   12.063125] hwmon hwmon1: Undervoltage detected![   15.263302] bcmgenet fd580000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx[   16.095050] hwmon hwmon1: Voltage normalised
Tried all the usual things: swapped in official RPi power supply, pulled HDMI hat, swapped in cable for weird HDMI hat hard connector, etc. Quickly determined that the issue related to simply having an HDMI display attached (whether external or attached to the GPIO connector for power).

Eventually, I started messing with config.txt -- tried many things. Reverted changes. config.txt for all Pis again identical.

FINALLY (TL;DR) I changed the video overlay imposition in config.txt, which is this by default:

dtoverlay=vc4-kms-v3d

... to ...
dtoverlay=vc4-fkms-v3d to let the (wave hands) videocore firmware manage video instead of the kernel. And with this single change, all problems vanished. No undervoltage on boot. Screen works identically to all the other pis (which do not have this change in config.txt).

So ... presumably pi3 is somehow different from pi1, pi2, pi4. Can anyone suggest a way of 1) detecting how? 2) explaining why the kms video driver might cause an undervoltage condition, and possibly 3) how to bring Pi3 back into the fold and make it once again identical to its three siblings? Thanks!

Statistics: Posted by jjainschigg — Wed Mar 20, 2024 5:29 pm



Viewing all articles
Browse latest Browse all 5127

Trending Articles