Creating a DANOS ISO using binary packages

1. Setup Debian 10 Virtual machine to build DANOS

Download and install a Debian 10 virtual machine (or another preferred form of creating a Debian 10 build environment), then log into it.

Install the image build dependencies:

apt install live-build cpio wget ca-certificates apt-utils

2. Obtain the livebuild configuration and package-lists from DANOS repository and Build

  • Install all the required build dependencies of your custom package(s) and build it(them). Instructions on how to do so are out of the scope of this document.

  • Download the livebuild configuration tarball.

wget https://s3-us-west-1.amazonaws.com/repos.danosproject.org/2005/livebuild/danos-2005-base-Build2.4.livebuild.tar

tar xf *livebuild.tar

cd danos-2005-base

  • Create an archives directory under ./config:

mkdir -p config/archives/

  • Obtain the list of source repositories required by the DANOS project:

cd ./config/archives

echo 'deb http://s3-us-west-1.amazonaws.com/repos.danosproject.org/repo/ 2005 main' > danos.list.chroot

echo -e 'Package: *\nPin: release o=DANOS\nPin-Priority: 1000' > danos.pref.chroot

wget https://s3-us-west-1.amazonaws.com/repos.danosproject.org/Release.key -O danos.key.chroot

cd ../..

  • If any additional packages are required to be added to the DANOS image:

mkdir -p config/packages.chroot/

cp <CUSTOM PACKAGE> config/packages.chroot/

  • Make the changes to the configuration to set some apt options

sed -i 's/--yes/--yes --force-yes/' auto/config

  • Run the configuration and build script

auto/config

auto/build

  • Once the build finishes, a live-bootable hybrid EFI/legacy BIOS image and an ONIE image, together with metadata, will be found in the working directory:

danos-2005-base_20200609T1012-amd64.contents

danos-2005-base_20200609T1012-amd64.files

danos-2005-base_20200609T1012-amd64.hybrid.iso

danos-2005-base_20200609T1012-amd64.hybrid.iso-ONIE.bin

danos-2005-base_20200609T1012-amd64.hybrid.iso.zsync

danos-2005-base_20200609T1012-amd64.package