I searched for an hour and every problem about the rainbow screen is related to a boot problem. Not for me, I have no boot problem!

In my case, my raspberry pi 2 is working perfectly as a server, allowing ssh login within a minute after being powered, runs httpd and other services perfectly fine. I even have the console size in dmesg:

$ dmesg | grep Console
[    0.000000] Console: colour dummy device 80x30
[   11.370802] Console: switching to colour frame buffer device 53x21
$ dmesg | grep fb1
[   11.380644] graphics fb1: flexfb frame buffer, 320x240, 150 KiB video memory, 4 KiB DMA buffer memory, fps=20, spi0.0 at 48 MHz
$ uname -a
Linux raspberrypi 3.12.21+ #1 PREEMPT Sat Jun 14 12:01:42 CEST 2014 armv6l GNU/Linux
$ cat /etc/issue
Raspbian GNU/Linux 7 \n \l

The only problem is that HDMI consistently only output a rainbow screen at full-screen size, while the intended purpose of the Pi is to serve as an X Terminal.

I've tried 3 different power supplies both advertised more than 2.5A and 3 different cables and 2 different monitors, as well as the boot_delay=1 option. Now it is a network box, with no capacity to display.

  • Did you have a touchscreen attached to the Pi at somepoint? Mar 11 '18 at 13:40
  • How can you have a rainbow on the HDMI screen and "no capacity to display" at the same time? Mar 14 '18 at 17:11

As I dig through documents I realised there are 2 display devices: /dev/fb0 and /dev/fb1.

The Raspberry Pi was plugged to HDMI (/dev/fb0), which shows the Rainbow screen, but proper boot message is shown on the TFT (/dev/fb1), which remained unplugged. Once I plug the TFT on it I can see the boot process and console login.

I wasted a lot of time because I believe Linux would output the console and boot message to /dev/fb0 (HDMI, 1920×1080) while it actually goes to /dev/fb1 (TFT, 320×240).

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.