Help with Pi 3B+ image to run on Pi 4B

Hi all, Happy New Year! Hoping someone can help me please. I recently purchased a Pi 4B but didn’t realize that the image I am looking to use was written for Pi 3B+. I’ve come across this link Upgrade (Swap) Your Raspberry Pi 3 to a Raspberry Pi 4 Using the Same SD Card that outlines the upgrade required to take your SD card from Pi 3B to 4B. This requires a Pi 3B+.

Does anyone have a Pi 3B or 3B+ & able to help me with getting the image working on the 4B please?


Thanks for the prompt reply, the issue for me is that I have been given a specific image file to download but that image was created for 3b+, I need to get it working on the 4b. I can provide a DL link to the image I need to use if that helps?
Thanks again

if you dont have a 3 b then it is going to be very hard to do since you need the 3b to initially start with…
even that first link you provided @ 1st will be of little use unless i download it my self and try make it work after i edit it on a x86 64 bit machine…do you have a windows or linux machine…when you down load an image
the file system needs to expand the root directory to the whole card
thus this feature is usually done upon initial powering up with the fresh image…

i dont know what that image is can you tell me pls..what operating system is it…??
then i may be able to help you or others here to help…
the instructions you give in your first post may be of little use…

i dont own a 3 b only a rpi-4…not that it matters somebody else would run into the same issues trying to make it run on an rpi-4
if i knew what the image was for i could offer alternatives most likely…!!

Hi Rasta,

In theory you can do it manually, but it’s certainly not easy - you’d have to be quite the Linux Wizard to the point you’d probably be contributing to the nightly builds! At least to start with you’d probably need to boot your Pi (or another Linux machine) and modify the files in the image.

The Pi 4 and 3 use different physical components, so it’s like trying to make a square peg fit in a round hole - lots of modification needed!

The most practical and fastest way forward would be to return your Pi 4 and get a 3B (or 3B+) instead. If you purchased your Pi 4 from us you can just reply to your order confirmation email with some photos of the product you’d like to return and we can get a change of mind underway.

It will need to be in a resaleable condition though (ie. all the packaging in-tact, so that you would be happy to receive it as a brand new product).

Im not that savy in Linux & its not in a resaleable state…Is it possible to load the Pi4 with Buster & then load the 3B image as a VM & operate it that way?

Or other option would be to ask the creator of the image to make a build compatible with Pi4 i guess…

1 Like

the latter would be best method…

1 Like

Ok thanks for your help guys - hopefully the creator will be willing to do that…otherwise would the option of running it as a VM be do-able?


Hi Rasta,

Most likely, there are a few tutorials for running VM on the Pi online, however, it’s not a practical solution in this case and is quite difficult. As Brian said, using an image that is designed to be suitable for the Pi 4 is the best way to ensure compatibility, in this case, it’s a fairly standardized ARM-based board and you can likely copy most of the functionalities over from pre-existing distros. Make sure to let us know if there’s anything you need, and how you go with it!

OK thanks for all the help peeps, appreciate it


Hey guys, me again lol… does anyone know why VNC server diags on the P4 reports that I am behind NAT & cant connect, if I try to connect to the Pi4 from my laptop using its local IP I get connection refused. This also happens if I try directly from the Pi4.
I went out & bought a Pi3 & I do not have any of these issues, I can remote control the Pi3 via VNC & open a browser to its IP from my laptop & directly from the Pi3…I have tried connected via eth & wifi. I’ve also tethered to my mobile to eliminate my router all together & still same issue. I even added a port forward of 5900 to the IP of the P4 & teh diag reported back that it could connect, but I still got the connection refused, using local IP as well as trying with the public IP…

My intention is to copy the folder of the software I’m trying to run from the P3 over to the P4 & hope that it will work. But I need to resolve the above first.

Hey Rasta,

How unusual, I’m not sure what we can do to try and fix this problem, if you’ve got any more error messages that might help too. I’ll let my colleagues Oliver and Owen know about this and see what he thinks we can try, for now, you may be able to connect to the Pi by hosting an FTP server which you can use to pull the files to your new board, or you can use SCP on an SSH connection. I’ve created a series of links on another post that I’ve linked below for you, which should take you the whole way through both setups:

1 Like

Hey Rasta,

Just so we’re on the same page, are you trying to access this one on the same network or remotely? Also as Bryce mentioned you could try implementing just a standard FTP setup, Filezilla was a great program I used for transferring huge amounts of samples for an object detection model. It’s simple to use, open source and relatively quick!

Teamviewer is also another option, it doesn’t technically use FTP, but it gives you a bit more of an interface than something like Filezilla.

1 Like

Definitley sounds like a configuration issue somewhere. If all you need to do is copy the files off the SD card/from the Pi 3 image try DiskInternals Linux Reader:

It’s free and it’ll give you read only access to your SD card in a windows machine.

hi guys, I’ve copied the Folder via USB so that part’s sorted, but the software needs to connect to the host via hostname.local:3000 and because I am having the network issue its not working.
I enabled VNC on the P3 & the P4. From my laptop I can browse to the IP of the P3 & the VNC screen comes up (vnc.jpg) & then if I try the same for the P4 using its IP I get the refused to connect error (refused to connect.jpg). When I run the VNC diags option on the P4, this is the error I get (vnc error). Also attached is the screenshot of the UIConfig.js file to give you an idea. Even if I open a browser on the P4 & enter its IP or hostname.local:3000 or IP.local:3000 I get the refused to connect error…

Both Pi’s are on the same network connected to eth port.
Thanks for the help, much appriciated.

this post is in context to sshing and may also include many forms of software…

hmm aren’t mac addresses most matched with ipv6 applications…??

below most common reason for not allowing a connection ipv4 or your not being prompted for a pass word in what ever many…there will always be a connection question of some form or type…!! and the most common reason for not allowing /refusing a connection…

others here will assist you with forcing an key/auth/password prompt pop up question in some manner…

however if your using ssh and i am m not real familiar with your software…but getting the auth key to match up allowing connection… where buy every time giving you a choice of authenticating your device/connection/etc… with a checksum looking type key… this post is particular to connecting via ssh …witch i thought that this is/was what you were working with…towards too…

ok conclusion
if you are trying to ssh into another machine on whatever the net work is it will be apparent …
and bound to the last login details…that the generated key and the data stored… thus it does not always ask for authentication. as everything still matches…but if it does not then you will get…ERROR: connection refused…etc …error…
you may need to re-force it to do so it can be done…im not remember how to do this others here will tell you…

regardless weather you were sshing via another machine /phone/laptop/public place …E.G cafe or on a different network governed by an different provider…the ip addy at the time you had to give permission to the auth key hash sum…will no longer be valid and a new key may well need to be generated…on your next login…also see below…

as your moving around trying to connect via a mobile network if this is a static isp provider then you ip will change and your slave wont connect as the key property’s/checksum stored have changed,
optus is a particular good one for rotating your ip in approxx 30 min sessions,it wont matter while your connected as your connection is established, it will adapt however once you terminate the connection your ip may have changed or you moved to a different network…??
and there fore your checksum key will not match…??? theory,and some exp…

im not using ssh, just using the browser on my laptop to input the IP address of the Pi4 which should bring up the VNC screen, as per the screenshot I provided which is from the Pi3. Instead when I do that plus when I am directly on the Pi4 & putting in its IP address in its browser with & without the :3000 I’m getting the refused connection. All the screenshots I provided are directly on the Pi4 which is connected to my TV, except for the VNC one which is from the Pi3.
The image I used to install on the Pi4 is 2020-12-02-raspios-buster-armhf-full - this is the correct one right?

Thanks again guys & sorry if I’m not explaining things clearly…

Hi Rasta,

How interesting, I’m not surprised that without the port number referenced you get a refused connection as it likely attempts to access the Pi via the standard port that is set up in VNC (No idea what that is off the top of my head pretty sure it’s around 6000 :sweat_smile:) which wouldn’t be available for connections. Where did you get that particular image for the Pi from? It’s probably worth reflashing to the newest one to be sure that the particular instance that you’re using isn’t causing any compatibility issues and that the configuration settings are back to their original states.

Also, I’ve removed the image in one of your previous posts that had your public side IP address for your router’s network listed for privacy.

Have you tried using any other networks yet? Also, what happens if you just enter raspberry.local:3000 on the Pi 4 rather than using hostname.local:3000?