The project-termina encompasses the majority of functionality for Termina. Architecture-dependent leaf overlays should inherit from this overlay. Currently, these are tatl (x86_64) and tael (arm64).
chromeos-base/chromeos-bsp-terminaInstalls upstart .conf files to bring up the system to be able to start a container.
chromeos-base/termina-auth-configSets up PAM to allow root/chronos passwordless login. By default this is only installed by target-termina-os-dev.
virtual/target-os*These override the normal Chromium OS targets to either no-op (e.g. the factory shim) or depend on the corresponding termina equivalent.
virtual/target-termina-os*The termina target ebuilds should depend on packages for the appropriate target. Release images will work with just target-termina-os, but developers will likely want to include target-termina-os-dev as well to enable serial console support and allow login.
build_image is not well suited for putting together a minimal rootfs image, so for now we are piggybacking on the package_to_container script to put together a squashfs rootfs image. TODO: better build script
Example:
export BOARD=tatl ./setup_board --board=${BOARD} ./build_packages --board=${BOARD} --nowithautotest ./package_to_container --board=${BOARD} --package target-termina-os --argv dontcare --extra target-termina-os-dev --name ${BOARD}-image
Copy the kernel and squashfs image to the DUT. The upstart container job will attempt to execute a container that's provided over a 9p share. This is still WIP.
export CONTAINER=<path to container> lkvm run -d ${BOARD}-image.sqsh --9p ${CONTAINER},container_rootfs -k ${BOARD}-kernel