Large Partition Now, Image Size Optimization Later?

Hi!

I am looking to implement the Mender workflow into our product at ADI to automate our updates. We have an x86 system that runs a ROS2 system (and hence ubuntu server) to gather data in industrial greenhouses. I am currently still very much a beginner and am finding that the size of the golden image that I am making is around 10 -15 Gbs. That is a lot of data to send over the air. I believe that with some further optimization of the OS and dependencies I will be able to decrease the size image.

Unfortunately I currently do not have the time to perform this golden image size optimization, but i do want to integrate Mender as quickly as possible.

What I would like to know is if I make a partition that is able to hold the current image size, will I be able to ship a more optimized, and hopefully smaller, image in the future? Will this also translate to less data being downloaded for future updates ?

I have found the following posts that seem to suggest that this is possible:

Will this still work for my use case? Are there issues that i am not accounting for ?

Thanks in advance!

Yes this is correct. You will be able to push a smaller image.

Take not however, that you will not be able to increase the size of your partition after it is created :smile:

I do understand that Ubuntu and a golden image is a good way to get started, but once you are out of R&D, then have a look into the Yocto project, there is supposedly possible to run ROS on it :smile_cat:

Best of luck!

Hi @oleorhagen ! Thanks for answering

When you say:

Take not however, that you will not be able to increase the size of your partition after it is created :smile:

Are you insinuating that we will be able to decrease the size of the partition once it is created ?

Also, just to make sure, if i want to transition from a debian base to a yocto base in the future, will I still be able to update an initially debian based device in the field to the yocto base? The dual copy doesnt care about what is being written in the inactive partition.

Do you have experience with using ROS2 in a yocto project ? I have read that it has a yocto layer, but not much on people using it in production.

For the future i am planning to use a containerized approach for application updates. In that case it doesnt make much sense to use the ros yocto project right ? I just need to setup a yocto project that is able to handle the docker server.

Do you have any tips on what yocto image might be suitable to look into for the application that i am envisioning?

Thanks again in advance!

Take not however, that you will not be able to increase the size of your partition after it is created :smile:

Are you insinuating that we will be able to decrease the size of the partition once it is created ?

Well, I guess you could, but there would be little point.
Also, just to make sure, if i want to transition from a debian base to a yocto base in the future, will I still be able to update an initially debian based device in the field to the yocto base? The dual copy doesnt care about what is being written in the inactive partition.

Theoretically, yes. I would do a test-run however, to make sure that the debian based image can boot the Yocto setup.

Do you have experience with using ROS2 in a yocto project ? I have read that it has a yocto layer, but not much on people using it in production.

Never in a ROS project, only been using Ubuntu :slight_smile:

For the future i am planning to use a containerized approach for application updates. In that case it doesnt make much sense to use the ros yocto project right ? I just need to setup a yocto project that is able to handle the docker server.

I would certainly expect so, but if you’re shipping this on that assumption, I would still test it first.

Do you have any tips on what yocto image might be suitable to look into for the application that i am envisioning?

Just build it off of Poky, and then add what you need :slight_smile:

1 Like