For building, the flow is very similar to the Android build system, except that targets are not setup in advance of operations but rather these are conditional on the target and the flow is managed by scripts/build.sh.
Current supported targets are
[malta-qemu, arm-rpi2, arm-rpi3] and a few other test ones.
In order to build a target in full all you need is to run the following, where malta-qemu can be replaced by any of the supported targets.
By default the build system will generate a default image that has no containers (therefore no functionality, including no rootfs). In order to build functionality into our example images, we need to use a "remote trail" from PantaHub.com, which is just a reference device definition that the build system uses to extend the default assets. The tools used behind scenes for this process are introduced later, so for now we will just point to the prime example for Malta.
The prime example for this is our reference (public) LEDE 17.01.4 trail, which you can find here
For the final image the full target has to be called:
$ sudo PVR_MERGE_SRC=https://pvr.pantahub.com/examples/malta-init-device/0 ./build.docker.sh malta-qemu
This will generate all dependencies of the malta-qemu build tree and build a final image according to the values defined in
config/malta/image.config. You can find the generated image in
out/malta/flash-malta-16384.img. This is a pflash QEMU bootable image to be used with the locally built host QEMU.
Raspberry Pi 3¶
If you want to build pantavisor for Raspberry Pi 3, you can use our stable initial device, which can be found here.
The final image can be built similary to the Malta one:
$ sudo PVR_MERGE_SRC=https://pvr.pantahub.com/pantahub-ci/rpi3-initial-stable ./build.docker.sh arm-rpi3
You can find the generated image in
out/rpi3/rpi3-pv-1024MiB.img. For information about how to flash it, claim and inspect your device, go here and follow the rest of our Raspberry Pi 3 get started guide. Just substitute the pre-compiled image with the one you just built.
If you prefer to use our latest initial device version, use the clone URL from this device.
Build other reference devices¶
The previous section presented the build process for our Malta and Raspberry Pi demo devices, but any device in pantavisor can be used for your build. Check how to do this here.