Good day, friends!
We are currently developing an IoT device with a Radxa Zero SBC. The device is somehow passive in its nature and has minimal user interactions. It connects bluetooth devices to the internet.
I’ve created a dev image with buildroot-2022.11. It is mostly functional using the 5.10.145-cip17 Linux kernel.
Radxa Zero v1.51
16 GB eMMC
You can run DietPi on it which runs good.
The official images are to large and has their flaws.
In the attachment will be a
.config of my current buildroot configuration.
The board is using its own U-Boot build that you can find here. I must use radxa-zero-v2021.07 branch.
The boot sequence is like:
- ROM code is checking for available devices (USB/SD/eMMC).
- Entry point is unpartitioned storage where U-Boot lies.
- U-Boot loads Kernel and rootfs
In the attachment is the
.config-uboot which describes how the U-Boot image is build. It is build outside of buildroot (github link).
I also will provide a genimge-config which describes the Image structure that is created by genimage in a post-build script in buildroot.
The current problem is that I have absolutely no idea how to integrate mender to be able to make system/OS updates. The mender-client is installed with buildroot and is fully functional and I can make software updates.
For now I assume I will need probably A, B and data partition.
There are several questions.
- I would like to stay with U-Boot and and control there which partition will be loaded. How would mender-client interact with U-Boot to choose a partition?
- Can I make OS level modifications via software updates? So I omit the A/B partitioning and make OS level modifications via shell scripts. Is it a practice?
- Are there tools native to buildroot to achieve such partitioning scheme?
- Can I implement some compression to the B partition? How would boot sequence look like?
.config.yaml (112.3 KB)
.config-uboot.yaml (33.5 KB)
genimage-radxa-zero.cfg.yaml (266 Bytes)