Hello, I am looking at using RPI for a proof of concept project.
The intent is to create a network appliance on a RPI that is controlled by a PC through a Serial / USB port.
Due to the nature of this project I am looking to have 2 storage devices on the RPI, one that is read only that contains the boot code, programs, configurations and anything else that shouldn't need to be modified except by me, and another device that is writable to use for anything that needs to be written that would be empty/erased at bootup.
The read only device should be protected with a hardware switch.
I purchased a RPI 5 with a NVME add on with the intent of using a microSD card with a write protect switch on it to setup the OS etc on it where I could just write protect the microSD card and use a small NVME drive for what I want to use it for. There are a couple companies that make microSD cards that have a write protect switch on them.
Then I saw that the Compute Module 4's are available with eMMC on them. I was under the impression that the eMMC storage was read only and had to be updated via an external device so it would have done what I wanted. I would have used the rpi 5 to build the image and update it etc to run on the compute 4 and upload via the cable. I just installed the lastest RPI OS onto the compute 4 module and updated the software on it. Realizing that the eMMC is essentially just like having a non removable SD card. I have the Compute 4 IO board with a daughter board for the NVME drive and I also have a Taco board which has the NVME support built in.
So now I am wondering what is possible and what the best route may be?
1. While researching this, I see where the eMMC memory maybe can be hardware locked for read only until it is power cycled? If this is the case then I am assuming if I perform this lock during bootup, before any external devices are recognized, it should allow me to treat the eMMC as hardware protected read only memory. To update the image on the eMMC I am expecting I would be able to boot up the device like I did to load the image on the eMMC by disabling the eMMC boot, linking to the device through the programming / slave port, change the item that is locking the hardware for read only so it will boot in read/write mode, reboot, make changes and verify, then change setting back to read only and reboot back when my new image is fully tested. I could then develop with it in read/write mode and put it in read only mode when I want to test it or use it.
2. Use the microSD card with a write protect tab and use that to run the software off from and write enable when needing to update etc.
3. Some other method I am not aware of?
I am hoping route 1 is the route that is doable.
I am hoping someone knows the answer for this before I spend a bunch more time trying to get it to work the way I want or using a method less desirable such as #2.
The intent is to create a network appliance on a RPI that is controlled by a PC through a Serial / USB port.
Due to the nature of this project I am looking to have 2 storage devices on the RPI, one that is read only that contains the boot code, programs, configurations and anything else that shouldn't need to be modified except by me, and another device that is writable to use for anything that needs to be written that would be empty/erased at bootup.
The read only device should be protected with a hardware switch.
I purchased a RPI 5 with a NVME add on with the intent of using a microSD card with a write protect switch on it to setup the OS etc on it where I could just write protect the microSD card and use a small NVME drive for what I want to use it for. There are a couple companies that make microSD cards that have a write protect switch on them.
Then I saw that the Compute Module 4's are available with eMMC on them. I was under the impression that the eMMC storage was read only and had to be updated via an external device so it would have done what I wanted. I would have used the rpi 5 to build the image and update it etc to run on the compute 4 and upload via the cable. I just installed the lastest RPI OS onto the compute 4 module and updated the software on it. Realizing that the eMMC is essentially just like having a non removable SD card. I have the Compute 4 IO board with a daughter board for the NVME drive and I also have a Taco board which has the NVME support built in.
So now I am wondering what is possible and what the best route may be?
1. While researching this, I see where the eMMC memory maybe can be hardware locked for read only until it is power cycled? If this is the case then I am assuming if I perform this lock during bootup, before any external devices are recognized, it should allow me to treat the eMMC as hardware protected read only memory. To update the image on the eMMC I am expecting I would be able to boot up the device like I did to load the image on the eMMC by disabling the eMMC boot, linking to the device through the programming / slave port, change the item that is locking the hardware for read only so it will boot in read/write mode, reboot, make changes and verify, then change setting back to read only and reboot back when my new image is fully tested. I could then develop with it in read/write mode and put it in read only mode when I want to test it or use it.
2. Use the microSD card with a write protect tab and use that to run the software off from and write enable when needing to update etc.
3. Some other method I am not aware of?
I am hoping route 1 is the route that is doable.
I am hoping someone knows the answer for this before I spend a bunch more time trying to get it to work the way I want or using a method less desirable such as #2.
Statistics: Posted by redheadedrod — Sun Nov 10, 2024 11:24 pm — Replies 0 — Views 16