I am looking into a simple update solution for our custom OS for a custom board using a SMARC module based on imx8mp processor (SECO, congatec). I am already aware of AN13872 document, that is quite exaustive, but there is no mention of imx8mp, and seems overly complicated. I want to do a single image update procedure from an USB stick. Where can I find an exhaustive tutorial for that. I found many options and I could only break out the build in the process.
What I've done successfully, so far:
repo init -u <...>
repo sync
cd sources/
git clone https://github.com/sbabic/meta-swupdate.git -b kirkstone
git clone https://github.com/nxp-imx-support/meta-swupdate-imx.git -b kirkstone_5.15.32_2.0.0
cd ../build_dir
echo "BBLAYERS += \"\${BSPDIR}/sources/meta-swupdate\"" >> conf/bblayers.conf
echo "BBLAYERS += \"\${BSPDIR}/sources/meta-swupdate-imx\"" >> conf/bblayers.conf
echo "IMAGE_INSTALL:append = \" lua swupdate swupdate-www swupdate-progress swupdate-client swupdate-tools-ipc u-boot-imx u-boot-fw-utils systemd-swusys json-c\"" >> conf/local.conf
echo "IMAGE_FSTYPES = \" ext4 ext4.gz wic.bmap wic.gz\"" >> conf/local.conf
At this point, the documentation is not clear.
bitbake swupdate-image, what's for, exactly?
What's the next step? I see in the tutorial the use of swu_update_image_build.sh, but I could not find it in the repository
So I was able tu run:
bitbake swupdate
And:
bitbake swupdate-image
For this to run I had to comment:
#EXTRA_IMAGE_FEATURES += "tools-debug tools-profile tools-testapps ssh-server-openssh"
In local.conf
I can successfully configure swupdate in yocto with:
bitbake -c menuconfig swupdate
Now I have built:
swupdate-image-imx8mp-cgtsx8p.ext4.gz.u-bootswupdate-image-imx8mp-cgtsx8p.ext4
But shouldn't I have a .swu file in order to use swupdate?
So, now I have, built:
swupdate-image-imx8mp-cgtsx8p.ext4.gz.u-bootswupdate-image-imx8mp-cgtsx8p.ext4core-image-base-imx8mp-cgtsx8p.ext4.gzbootcontainer__imx8mp-cgtsx8p__sd.bincore-image-base-imx8mp-cgtsx8p.wic.bz2
So, I understand that I can use to create the .swu file:
pip install swugenerator
Can I use this as sw-description?
software =
{
version = "0.1.0";
imx8mp-dart = {
hardware-compatibility: [ "1.0" ];
files: (
{
filename = "core-image-base-imx8mp-cgtsx8p.ext4.gz";
type = "archive";
compressed = true;
device = "/dev/update";
filesystem = "ext4";
path = "/";
}
);
scripts: (
{
filename = "update.sh";
type = "shellscript";
}
);
};
}
Is this correct?
Hello @Marco_Savo
One can try to refer to chapter 6 in AN13872 (Creating a base image and an update image) and 6.1 (swupdate-script repository).
Also it is useful to check the SWUpdate syntax examples.
Best regards,
--... ...--
Salas.
OK, I am then able to create this .sdcard file that I can flash into the board with the uuu tool. For that, I had to modify the boards in the script repository, but also the swupdate-imx repository, to include imx8mp.
still, the result is:
Disk /dev/mmcblk2: 14.6 GiB, 15678308352 bytes, 30621696 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x2b59b9ca
Device Boot Start End Sectors Size Id Type
/dev/mmcblk2p1 204800 450559 245760 120M c W95 FAT32 (LBA)
/dev/mmcblk2p2 450560 6594559 6144000 2.9G 83 Linux
/dev/mmcblk2p3 6594560 6840319 245760 120M c W95 FAT32 (LBA)
/dev/mmcblk2p4 6840320 12984319 6144000 2.9G 83 Linux
I want to do a singlecopy image with rescue image; the document explains it, but there is no script for doing it.
Plus, this is crating a filesystem with 4 partitions that uses 7.5 GB. So, why? what's going on with the additional 7.5 Gb not used?
Hi Marco,
I’m trying to implement the same SWUpdate feature on the i.MX8MPlus by referring to the AN13872 document. However, I’m encountering continuous errors while running the SW script to generate the swImage. I already added imx8mp configs files taking reference from imx8mm that it support by default .Could you share the patch you applied for the i.MX8MPlus target?
I have attached the error logs below.
The compiler (doing a bitbake -v core-image-base), would complain about u-boot-imx; seems that I should use the board configuration, for example in my case u-boot-congatec-sx8p