-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RPi4B goes to black screen with vc4-kms-v3d after commit#1e494f1 #1647
Comments
Is the root cause for this issue and #1648 the same? More and more LibreELEC users (including me) are affected by this problem and all communication is in the other issue |
It doesn't sound like it as the linked issue was due to using OpenMAX (firmware side) hdmi audio when kms was enabled (kernel side hdmi video). LibreELEC has never shipped a build that mixes the two. |
@yullaw I've had difficulty reproducing this. Can you post your edid?
Can you reproduce issue without hdmi attached? Assuming, say your monitor defaults to 1920x1080@60 when working, Test first with monitor attached and working firmware and check all is good. |
Firmware update to the latest version:
Firmware downgrade to beeeb4f - rpi-update_beeeb4f.txt:
All outputs from the command line you can find in the attachment. |
Did you test with latest firmware, |
Please guide me |
I would say that is working. Plug in hdmi at this point - do you get an image? |
|
In the last case does unplugging and replugging hdmi have any effect? Not seeing much difference in demsg for working vs not working. Can you:
and add to cmdline.txt Reboot with hdmi unplugged. ssh in get dmesg. Try pluggin in hdmi. |
If I unplug/plug in the HDMI cable, no new lines in dmesg. No image so far. If I change HDMI source on the TV and go back, I do have the image. sudo cp /sys/devices/platform/gpu/drm/card0/card0-HDMI-A-1/edid /lib/firmware/edid.dat rebooted. |
When you captured dmesg_4.txt, that was with hdmi unplugged? Was screen blank when plugged in? Did picture appear with either subsequent unplug/replug or change of HDMI source?
So, without any changes but using latest rpi-update firmware, you normally boot to a blank screen. Does switching HDMI source make image come back in this case? |
Yes, the HDMI cable was unplugged. Now I plugged in and got the image. 3 times plugged out/in -> I have image always In case when I do not reach the image (after reboot), I have to solve it by changing of the HDMI source on TV |
Next test:
It looks like the TV needs to be "refreshed" for a signal coming from RPi4B with the latest firmware. But all is working fine until the firmware beeeb4f I understand that we need to catch the error message. No luck. |
@popcornmix : New day, new idea brings better results New procedure:
Please note that the change into "Display Options" the effect is unstable, sometime the effect is reached, sometime not. However it helps to reach the image after reboot. Image with a login reached! Ok, then the logs saved The HDMI was disconnected and connected, the image was back, logs with follows: Then reboot via ssh again, no image with follows: The HDMI was disconnected and connected, no image: I hope now you can see better, what could be wrong. EDIT: in nonworking included: can it be something to do with this issue? |
@popcornmix: Still I confirm, that the firmware:
even the RaspiOS Bullseye Lite (eeprom, bootloader) is fully upgraded. |
@popcornmix: EDID of the TV was uploaded to https://edid.tv/edid/1150/ |
Working way:
Both modes control its resolution separately. The first resolution affects the later resolution, that it means if any hdmi_group and hdmi_mode is existing, the second resolution is not "set" and black screen only. Also it works for me to solve the LibreELEC ( see comment on LibreELEC ) |
Got pretty much similar symptom out a PiZero 1.3 with 2022-01-28-raspios-bullseye-armhf-lite and kernel 5.15.16. Pi hdmi linked to Sony TV: CLI and login are displayed on screen. Copied edid firmware files into Have to say alsa audio is also an issue, even in the first use-case (pi direct to TV): Appreciate any clue to get amp configuration working (including alsa audio). |
did you do this when display was working (directly connected to TV without AVR)? |
Yes, in both cases, all devices connected and powered-on. |
Does edid look correct? e.g. compare when you are booted with no display (AVR connected) and And then run again with the config.txt lines removed and directly connected to TV? In first of these cases, does switching the Pi's hdmi connection directly to TV produce an image? (i.e. after booting with no image, unplug hdmi cable from AVR input and insert into TV). |
Yes, it does! with Edid files are different in 3 cases (I posted files on edid.tv site in case it can help): It is more sensitive to tweak than with legacy gpu: any chance this edid debunking will not be necessary in a close future? |
If you have |
Yes indeed, that's the case: it's all good. Now, in pre For instance, currently first boot stage with GPU respects Any chance at some point Pi Firmware may transparently work-out the magic and translate (for exemple) |
Now, many people use the kernel kms driver on many other platforms, so generally there are (different) mechanisms for achieving similar goals. This is the right solution. It means once you've learnt if your equipment requires specific quirks, then the same will apply when you run linux on an x86 desktop or any other linux platform. Note: The kernel does have a roughly similar mechanism using
but I'd say if you can capture and use a valid edid, it's more likely to behave well. |
Thanks a lot for that detailed info: maybe some bits could enhance/clarify current doc on hdmi settings in the context of Indeed those fake_edid do not enable audio on my AVR, and forcing it with I guess I've been quite lucky thus far with |
@popcornmix I'm still puzzled by the audio-side issue in TV+AVR situation.
Some code that interprets edid must do something wrong then with vc4-kms driver failing to deliver audio when |
Can you test with rpi-update kernel? |
Thanks for the follow-up & note @popcornmix But unfortunately alsa audio test still did not work unless I supply |
@popcornmix As I can see, the video resolution is set to 1920x1080M@60 for a boot, the CLI screen is overscanned, then the GUI is appeared corectly to my configuration 1360x768 for TV. But sometimes GUI reached, sometimes not. journalctl-b.txt |
the documentation in the internet is not good for this issue. modify config.txt for dtoverlay=vc4-kms-v3d to dtoverlay=vc4-fkms-v3d |
The change to dtoverlay=vc4-fkms-v3d in config.txt fixed it for me. I have a dell wfp3008, a hdmi cable buyed at berrybase (advertised as rpi compatible), with default configuration dtoverlay=vc4-kms-v3d the monitor advertise a no signal after the framebuffer switch to kms mode. With dtoverlay=vc4-fkms-v3d it works fine, I see the frambuffer switch to kms mode but the screen continue to display the right contents. |
@rapsys Are you running RPiOS bullseye? |
My hardware is a cm4/8GbRam/32GbFlash/Wlan/Bt on a Waveshare Compute Module 4 PoE Board (B) : I installed the distribution : Raspberry Pi OS (64-bit) Lite. I did a apt-get update & apt-get upgrade & rpi-update $ cat /etc/debian_version If you need more informations tell me. I may not keep the raspberry os forever and intend to install a mageia 9 aarch64 in replacement of the raspberryos if I succeed. |
$ sudo apt-get update |
When booted with default kms driver, can you run:
and post the url returned. And also report output of:
|
I don't understand, with dtoverlay=vc4-fkms-v3d in config.txt ? |
I'd like you to use the kms driver and ssh in. |
No problem with ssh, it was my only access until the change to from kms to fkms. I will do it later tonight |
I have no hdmi0_regs file. With dtoverlay=vc4-kms-v3d in config.txt :
|
With dtoverlay=vc4-fkms-v3d in config.txt :
|
After upgrading to last kernel, with dtoverlay=vc4-kms-v3d in config.txt :
|
This is your problem:
The hotplug detect signal comes in on pin 19 of hdmi cable and is asserted by display to indicate display is connected. The kms driver follows the spec more accurately that the fkms. Most likely you have a faulty cable that doesn't connect the hotplug detect. Less likely the display is faulty and doesn't assert hotplug. You can try to narrow this down by testing with other hdmi cables and other displays. If you add |
The used cable is this one, it is advertised to work optimaly for rpi : Due to my past of militing against DRM, this is the only hdmi cable I have that I buyed for the rpi without other option. I only have my dell WFP3008 screen, I followed the procedure described there to make sure the edid is advertised : I found an unresolved bug in kms with this same screen maybe related : I can't conclude, but it's more than likely that my old screen from 2010-2011 don't respect the spec or has not the hotplug feature implemented correctly...
Your suggestion of extra cmdline works, what does it do ? As a side note, adding only hdmi_force_hotplug=1 to config.txt don't work. Would it be possible to add this in the documentation as an errata ?
I understand that it's good to follow the spec, but I would advocate that I am not the first one who encountered this problem and loosing the screen while booting is kind of a problem... Wouldn't it be more wise to change kms to probe anyway and complain in the kernel message about the out of spec cable or screen ? |
See here or here.
No - config.txt is only used by the firmware, so affects the fkms driver, but not the kernel side kms driver (which uses cmdline.txt)
These are standard linux options, that apply to all platforms (including x86). They are not Pi specific. |
I never had these problems with this display using dvi and then displayport câble with radeon kms driver... Anyway thank's for your help in getting the output to work ;) |
There is a potential update for this issue (screen going blank at point of transition of kms driver on a pi4) in latest rpi-update kernel. It would be useful if anyone who experiences this issue can test and report back. |
@macmpi your issue wasn't related to original poster's issue (it didn't start safter commit#1e49ef1), so your report should really have been in a separate issue. Scanning back through your posts, it sounds like your AVR is at fault in producing an edid with timings your TV can't handle. An AVR should merge the capabilities of the TV's edid and the AVR's to produce an edid that only has modes supported by both. Assuming this is the case, then using a custom edid file is the right workaround. I don't think we can do any better. |
@popcornmix I tested that firmware along with |
Hi guys As mentioned by @Rohlik dtoverlay=vc4-fkms-v3d. did work for my raspberry pi 4b while fixing the blue screen issue ,however my HDMI CEC isn't working post changing to (fkms). Any help over this would be appreciated |
Hardware that fails to read the edid is quite common. The kernel provides a mechanism to use one a of a few pre-built generic edid files for getting a basic video mode. However there is no easy was to add basic audio support, which requires a CTA extension block to report capabilities. Add an module option to request this. Signed-off-by: Dom Cobley <popcornmix@gmail.com>
Has the issue fixed / resolved ? |
Definitely hasn't been resolved. I just did a brand-new install of Raspberry Pi OS (lite version) on a Pi 4 and I had to comment out |
Decription of issue:
RPi4B goes to the black screen of TV LG 42LK450-ZB (2012). The booting process with 4 raspberries is visible, after that the black screen only. The TV doesn't complain about "No signal", the GUI sound can be hear (test with LibreELEC 10.0.1). With RPiOS Lite doesn't appear the CLI with login.
How to reproduce:
Up to the commit#beeeb4f working fine and CLI/GUI reached.
After the commit#1e494f1 the CLI/GUI is not reached.
For more details please see the discussion with all logs and results:
Many thanks
The text was updated successfully, but these errors were encountered: