I am wondering what is the best way to add a package a custom 3.0 image.
If I add the package to multistrap.config and build with
make BOARDDIR=<abs path> BOARD=<board> PYNQ_SDIST=<abs path> REBUILD_PYNQ_ROOTFS=true
Does it end up in jammy.<board>.tar.gz?
Is there a board specific way to do this? I tried creating a package but it appears apt-get cannot be used in qemu.sh.
The 3.0 custom build process is much improved and I understand the broad strokes. What I am not clear on is the config file in sdbuild/ubuntu/<codename>/<arch>, I have not come across this in the multistrap docs. Is it a PYNQ thing or more general?
It has been days after the build and test. I forgot some details but the prebuilt image now is split into two major sections. If you see there are two zip files would require during build. I need to open up the build machine to study back if you really need deep answer.
However, if you just need to build custom board without a guide, See link should help you out:
You should be able to use apt to install ubuntu packages in a qemu.sh script – we do it in the sdfec package.
The config in sdbuild/ubuntu is a PYNQ thing, the makefile splits the generation of an image into multiple stages. If one stage breaks you can make fixes and re-run make without having to rebuild the entire ubuntu rootfs or some of the chunkier packages all over again.
STAGE1 is the base ubuntu rootfs, this is what multistrap gives us.
STAGE2 and STAGE3 are pynq essentials, like all the python pynq-venv packages, jupyter, pynq itself and xrt
STAGE4 are board specific packages that you insert into your .spec file
If you include a ubuntu package in the multistrap.config, then it will be included in STAGE1 and, you are correct, show up as the agnostic rootfs output tarball.