This started as yet another black screen of death post and I read the other posts where things basically fell into two camps;

  1. your image is corrupt and reflash.
  2. your hdmi is not being detected correctly use safe hdmi option.

I spent days reflashing images (different ones for retropie) and they all behaved the same. They would boot the first time, then once I took out the sdcard brought it my Ubuntu computer and added a wifikeyfile.txt, safely ejected it and put it back into the PI4, I'd get the dreaded black screen of death (without of without a blinking cursor depending on the retropie image I was using).

I also spent days editing the config.txt and playing with different HDMI options, including forcing safe hdmi. Nothing worked. Every boot would still show a flashing cursor and just sit there.

Something that I noticed when troubleshooting this is that retropie images show no boot logging at all, and I found several posts online with people asking how to completely disable all boot logging. It's that revelation that finally led me to a solution.

In comparing a standard PI image with a retropie image I noticed that the PI boot shows lots of logging (which is what I would expect from Linux). I also noticed that on the standard PI image, after I mounted the SD card in my Ubuntu computer and then re-inserted it on the PI it would do a filesystem check on the SD card. I could see it progressing, slowly, on my 64G card, and it would take about 20 seconds. My retropie image is 256G so my thinking here, is that the flashing cursor or blank screen is the boot process checking my 256G card.


First thing I did was enable the boot logging on the retropie image. I mounted the sdcard on my computer and edited the cmdline.txt file on the boot partition.

My original contents were

dwc_otg.lpm_enable=0 console=serial3,115200 console=tty3 root=PARTUUID=62c0f7cd-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash loglevel=0 logo.nologo vt.global_cursor_default=0 plymouth.ignore-serial-consoles plymouth.enable=0

and I changed it to

dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=62c0f7cd-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait plymouth.ignore-serial-consoles plymouth.enable=0

NOTE: that the retropie image basically redirects all boot logging to an unknown console tty3 and as such you never see what is happening. After making the changes to set the logging back to the main console and removing the quiet option and then reboot the PI with these options, I could see standard boot logging and sure enough the PI is slowly making its way through my 256G disk checking for errors, taking about 90 seconds.

After the check it found an error and required me to login as the root password or hit CTRL-D. Of course before these changes it showed nothing, but now I can finally see what is happening.

After logging in and doing the recommended operation, and rebooting, everything came up fine, no issues.

I can't help but to wonder of the people using a retropie image and getting a flashing cursor on boot, is it simply sitting there waiting for you to do something, but you don't know that because all logging is essentially disabled. I get why some people don't want to see the ugly messages at boot time, especially for an arcade unit, but without them how do you know what is happening, or if it requires your attention at boot time?

This solved my issues (after about a week of reflashing 256G images) and I hope that for other people, maybe just enabling the standard boot logging might provide some insight as to why you are simply seeing a flashing cursor on boot.

  • Please accept your own answer with a click on the tick on its left side. Only this will finish the question and it will not pop up again year for year.
    – Ingo
    Aug 16 '20 at 9:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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