I don’t think our processes are documented per-se… however our images are entirely built from scratch, and all the scripts we use on our Jenkins are public… So I can give you all the links, and maybe you can have a look… I know some people out there have been able to reproduce our Jenkins setup… We might even have all the IT/server side config available… but i am really not involved on that…
The image build process is mostly split in 2 jobs:
we create the base arm64 rootfs, we use live-build, but probably a patched version, which is in our archives. We create base image for -developer, -alip and maybe a few others. that creates generic rootfs by pulling packages from ubuntu (or debian) archives and our own archives.
then we have another job that builds the kernel/modules and assemble the rootfs from #1 with the modules. We use some fairly complex tools to do that… but again everything is out there in our archives, and our scripts…
So for Ubuntu, the relevant jobs are:
and for Debian:
We have similar jobs for armv7, btw.
all our Jenkins jobs are under git here:
https://git.linaro.org/ci/job/configs.git (as JOB_NAME.yaml)
We have our own archive where we publish our debian packages. That includes host packages for tools we use during the build (qemu, live-build, …) as well as modified packages for the target.
Most of Linaro changes are in this ‘package overlay’:
While the QCOM specific changes are in a specific overlay
Though we are 1) trying to upstream our changes in Debian, 2) will be moving as much as possible into the linaro-overlay
So, I think in these scripts you have all you need. Our Jenkins nodes run on Ubuntu 14.04. Until very recently all the builds were done on x86_64, we just switched to native builds for arm… so you should be able to run them on x86…
I recommend you look at them, and ask questions here, if you have any issue…