6

If I upgrade the OS to buster on an OS disk (SD card or USB stick) on my pi 3, will it work if I boot a pi 4 off that?

4
  • 1
    it should - it won't hurt to try Jun 30, 2019 at 23:31
  • The Foundation advice is to do a new installation - NOT attempt upgrade.
    – Milliways
    Jun 30, 2019 at 23:45
  • 1
    @milliways where's the fun in that? But my question is not about the merits of upgrading, but if the same disk used for a pi3 will work on a pi3, assuming it's running Buster.
    – askvictor
    Jul 1, 2019 at 0:41
  • make a backup and try - I went from jessie->stretch without issue on my pi, and that was a far bigger change than stretch->buster - except for the MUCH larger boot partition requirement of course - but even that can, with some magic, be handled Jul 1, 2019 at 9:28

3 Answers 3

6

This can be done, but requires a bit of work to get the bootloader updated for Raspberry Pi 4. Here's how I did it:

  1. Back up your SD card!!! This can go wrong any number of ways. Not my fault if you bork something!
  2. Upgrade Raspbian on your Pi 3 to Raspbian Buster.
  3. Use Gparted on another computer to enlarge the boot partition of the card to 250MB. Make sure you don't move the start position of the boot partition.
  4. Put the card back in the Pi 3 and update the bootloader with the command sudo apt install --reinstall raspberrypi-bootloader raspberrypi-kernel
  5. Put the card in your Pi 4 and hope for the best.
2
  • won't work. apt install --reinstall raspberrypi-kernel will auto-remove the /boot/kernel7l.img needed by Raspberry pi 4...
    – JB.
    Oct 26, 2019 at 21:00
  • It worked for me, once my boot partition was enlarged.
    – Tim Morgan
    Oct 27, 2019 at 15:42
2

Upgrading to Buster from Stretch isn't recommended. Install a new card and copy your old programs & data from the old system.

As long as you get the new kernel and firmware/bootcode for the BCM2711 processor installed on your SDCard it will boot on a RPi4.

If the card has NOOBS then forget it. Updating NOOBS for a new processor is a pain (always has been). It's not impossible, but it's not easy.

3
  • 1
    FWIW I upgraded fine from Buster to Stretch on my Pi 3 (with a few hiccups). However, moving the SD card to a Pi 4 failed. What do you mean exactly by the second paragraph? How would we do that precisely?
    – Sparhawk
    Sep 21, 2019 at 13:00
  • I actually think my question is slightly different to this, because the Stretch -> Buster part isn't relevant. I've opened a new question.
    – Sparhawk
    Sep 22, 2019 at 0:42
  • You need to ensure that the stuff in the /boot folder in partition #1 (and partition #5 if NOOBS) has the kernel and bootcode for a RPi4. If you don't understand that then you have no choice but to build a fresh new SDCard for your new RPi4.
    – Dougie
    Sep 22, 2019 at 6:16
1

I wasn't able to at first, instead of booting I was presented with a blank black screen however I was easily able to resolve it and get booted up! Hope this helps.

  • Before doing anything, I updated the Pi3 so that it was running Buster.

    1. Download the latest Buster .img from RaspberryPi
    2. Remove the sd card from Pi3 and plug in your micro sd so that you can access the files on your computer.
    3. Using windows explorer (on Windows) open the sd card so that you can see the files in /boot
    4. Using 7zip or another tool that allows you to view the files in an .img, open the .img you downloaded above. Expand the 0.fat folder and
    5. Copy (Yes to overwrite when prompted) all the start4*.elf and fixup4*.dat as well as the kernel7l.img

NOTE: It doesn't hurt to copy all bcm*_.dtb files and allow overwriting. If you are missing the bcm2711-rpi-4-b.dtb then you copy simply copy that one only to your sd card. Always backup before making changes.

After making those changes, I ejected the sd card, plugged it into my Pi4 and it booted very quickly!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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