My brand Raspberry Pi B+ works perfectly when I plug in an sd card, HDMI cable, and power. When I plug the EXACT SAME wires + card that work for the pi B+ into my new Pi 2, it freezes at the rainbow screen. By the rainbow screen, I mean this: debug screen from elinux pic

Does this mean it's definitely a hardware problem?

My first guess was that the Pi 2 needed more power than the B+, but the same power supply i'm using for both says 5V 2.5A on it.

Do I need a new image for the pi 2 because it has an ARM7 chip, or is the pi 2 defective?

Note: The reason I'm asking a new question is that it works on my old pi.

  • I wonder if it's your overclock settings. Try disabling overclocking and overvoltage in /boot/config.tx before moving to the pi 2. I am having the same problem moving a pi 2 card to a pi 3 and I think it's because of this. I'll give it a shot myself later. Oct 23, 2016 at 15:22
  • See the last comment on the accepted answer. I just had to reinstall the image for it to work. Oct 23, 2016 at 16:03
  • So to fix my problem I simply did sudo apt-get update followed by sudo apt-get upgrade, with the card in my Pi 2. Once it was complete, I put it in the Pi 3 and it booted just fine. I then, with the card in the Pi 3, went back to my /boot/config.txt file and commented out the overclocking lines and rebooted, and my Pi 3 then ran even faster! (because my overclocked Pi 2 was still set to run slower than a normal Pi 3). Oct 23, 2016 at 22:49

5 Answers 5


You need an updated image for the Pi2.

"In normal circumstances there is NEVER a need to run rpi-update as it always gets you to the leading edge firmware and kernel and because that may be a testing version it could leave your RPi unbootable". https://www.raspberrypi.org/forums/viewtopic.php?p=916911#p916911 Even the rpi-update documentation now warns "Even on Raspbian you should only use this with a good reason. This gets you the latest bleeding edge kernel/firmware."

You could do a sudo rpi-update on the Pi B+. That will update the SD card with a new kernel image. That SD card can then be used to boot the Pi2 and the Pi B+.

sudo apt-get update && sudo apt-get upgrade

Will get the latest kernel/firmware for the OS

  • Accepted too soon, this didn't work. Ran sudo rpi-update on the old pi. If I run again, it says software's up to date. But, new pi still won't boot. Aug 22, 2015 at 19:08
  • I believe that should have worked. What does ls /boot report? There should be a kernel.img and a kernel7.img. You could try a sudo apt-get update and a sudo apt-get upgrade on the old Pi (which should also update the image).
    – joan
    Aug 22, 2015 at 19:14
  • I'll try that. I have a kernel.img and a kernel7.img Aug 22, 2015 at 19:16
  • Keep an eye on the green LED as you power-up. The number of flashes can give diagnostic information.
    – joan
    Aug 22, 2015 at 19:20
  • sudo apt-get update && sudo apt-get upgrade didn't help. The green light only flashes once. On, then off. The red light is on constantly. Aug 22, 2015 at 19:22

They use different SoC's, the bootloaders are not interchangable. As a test, make a new SD card for the Pi2 from the website download.

Rainbow screen means there is no way to boot, either something with the SD card, or not enough power from the supply.


Sorry, I was stuck in OpenElec mode. I had struggled for an afternoon before I found this solution to my own problem. If there's no objection, I'll leave this in the event that it may help someone else.

From the Pi B+

First download the latest .tar file from: http://wiki.openelec.tv/index.php/Updating_OpenELEC#Manually_Updating_OpenELEC

Second, copy that file to the update directory on the rPi (from Mac, you can to this using the Finder).

Third, reboot the Pi B+. It will reboot and install the new files. It will then return to the Rainbow Screen.

Fourth (and last) shut off the Pi B+, remove the SD card, put it into the Pi 2 and voila, it works.

  • I don't believe the OP was asking how to install OpenElec. Could edit your answer to be more general?
    – NULL
    Apr 5, 2016 at 15:25
  1. Do sudo apt-get update followed by sudo apt-get upgrade, with the card in your older Pi.
  2. Then modify your /boot/config.txt file appropriately for the new Pi, commenting out or updating your overclocking settings if applicable.
  3. Put the card into your new Pi and boot it up.

I had to do this today to get my Pi 2 card to run in my new Pi 3. Otherwise I got the permanent rainbow pixels of frozenness and it would not boot in my Pi 3. Once I completed the above steps, however, my Pi 2 card booted just fine in my Pi 3.

Also, originally I did not update my /boot/config.txt file to comment out the overclocking lines for my Pi 2, however, and my Pi 3 still booted just fine. Since my Pi 2 was overclocked to 1100 MHz, which is slower than the Pi 3's default 1200 MHz, commenting out those lines and rebooting seemed to speed up my Pi 3 by letting it run at its faster default speed of 1200 MHz.

~Gabriel Staples


The answer may be much, much simpler than people think. All I had to do to solve the same symptom was to plug the HDMI cable into the other HDMI port on the pi! See NOOBS stuck at rainbow screen - Raspberry Pi 4

I should add that I'm unfamiliar with the Pi 2. Does it also have two HDMI ports like the Pi 4?

  • The RPi 4B is the first and so far only version with two HDMI ports.
    – Ingo
    Feb 7, 2020 at 10:43

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.