gabo_71096 wrote: ↑
Sat Jul 27, 2019 8:16 pm
First of all, love your post my friend, this is an excellent tutorial!
Second of all, I have a question, I only have a Raspberry Pi 3B+, it's my first one ever, my question is, can I go back from the actual os version (Raspbian Buster with NOOBS), to Jessie directly from my raspberry without having any previous Raspberry model (like pi 3b, or pi 2)? I'm working with LabVIEW and I'm trying to connect my project with my rasp, but LINX (the interface that allows me to communicate) is only compatible with Jessie, so I get errors when I try to connect with my Rasp running Buster.
Is there any way that I can downgrade my os directly from my Raspberry Pi 3B+?
I tried burning a Jessie img to my rasp, but only ended with a freeze in the rainbow screen with a lightning bolt, that was before I even knew that Jessie is unsopported in Pi 3B+ (my bad).
Any help would be excellent!
Again, thanks for your post!
I had to re-read your post a few times before I fully understood your requirements. So, for the benefit of others, here's a quick summary of the situation:
He needs to use a critical piece of third-party software called LINX. This would allow him to access and control various sensors and other devices with a sophisticated piece of systems engineering software called LabVIEW.
Unfortunately, according to him, LINX is only compatible with a Raspberry operating system from two generations ago – Raspbian Jessie.
Compounding his problem is the fact that the only Raspberry hardware he has is the relatively recent model 3B+ – a model that was introduced AFTER
the "Jessie era" had already ended. As a result, Jessie is not designed to run on the 3B+.
And, if he attempts to install Jessie on the model 3B+, it will not boot. Any computer that doesn't boot is obviously not going to be running any software!
So there ya go – that's his predicament!
Theoretically, I could probably do everything you want – and do it all within the very strict parameter you've defined.
The strict parameter, of course, is that I would have to do everything on a model 3B+ – without being allowed to even touch the older model 3B.
That's a very strict parameter because my tutorial was written for people who ALREADY
had an older Raspberry and were looking to move their existing software system to the newer hardware. That means they had the luxury of being able to "prep" a working copy of Jessie on their older Raspberry to get it ready for the NEW
Raspberry that was about to arrive in the mail. They could then take that SD card from the old 3B and pop it in to the new 3B+ – and BOOM, everything would work.
But unlike them, you don't have a 3B to work with. All you have is the newer 3B+.
So that's the catch!
In order for me to figure out how to do exactly what you want, I would still need to get my hands on the older model 3B. I would then install Jessie on it. That part would be no problem, since the older Raspberry is specifically designed to work with that old operating system.
I would then make a copy of all the boot-related files and folders in order to get a "snapshot" of the system at that moment in time.
I would then update the boot code by using a special hash with the rpi-update command to get the SD card "3B+ ready".
At that point, I would do an exhaustive binary compare to determine exactly what changed on the SD card that allowed Jessie to boot on the 3B+.
Once I knew the "secret" and was able to copy all the relevant files, you could hide the model 3B from me and I'd probably be able to perform the "magic trick" you want – getting the 3B+ to boot on Jessie without having access to a 3B. In other words, I would use the older Raspberry as a tool to "reverse engineer" the Jessie system and get it to run on the newer Raspberry!
So yes – with access to the older 3B and a bunch of tedious work, it can probably be done.
But realistically, that's not going to happen – unless someone has already done that obscure experiment and is willing to publish their findings.
So the bottom line is that you need to get your hands on a model 3B. Since it's an older model, you can probably get a used one for a very low price. Or maybe you can borrow one from a friend. Or you can even buy a brand-new one. They're readily available all over the world. If you're involved with heavy-duty systems engineering work, I'm guessing you can probably afford a few dozen bucks.
So, once you get a model 3B, this is what you need to do:
Burn the most recent available image of Raspbian Jessie onto a new SD card – or an old card you don't care about.
Notice I said "Raspbian Jessie", not "NOOBS with Raspbian Jessie". To avoid making things ten times harder, you'll definitely want to use "pure" Raspbian. Adding NOOBS into the mix would complicate things dramatically. And given what you're trying to do, there's no reason to use NOOBS anyway.
Here's the URL to the most recent version of "pure" Raspbian Jessie:
http://downloads.raspberrypi.org/raspbi ... 017-07-05/
Once you burn the image and boot up the 3B, run these 5 command lines – in this exact order:
sudo apt-get update
sudo apt-get dist-upgrade
sudo rpi-update 461ee53cef85d14b8511e9f6d5dce8c0ac1d595a
The rpi-update command line will install Linux kernel version 4.14.37, which was issued by the Raspberry Pi Foundation on April 26, 2018 – almost 6 weeks after the 3B+ came out. If all goes well, that will also update your "firmware", including the boot code. At that point, the SD card and Jessie should be "3B+ ready". Just pop it into the 3B+ and you should be able to use LINX!
Is there any guarantee that an unsupported "operating system downgrade" on a newer Raspberry will even work?
Nope! There are no guarantees at all – but you can certainly give it a try.
PS: Feel free to send my commentary to the developers of LINX. That way, they can see first-hand how extremely difficult it is for modern Raspberry users to even consider using their software. Several million Raspberries are being sold each year for industrial purposes – so it's certainly a market worth supporting with up-to-date software.