Building the radio
DragonRadio is developed under Ubuntu 20.04. Running the top-level build.sh
script in a base Ubuntu 20.04 installation installs all necessary prerequisites and builds DragonRadio.
Building a container
It is relatively painless to build an lxc
image that can run directly on the Colosseum using the steps below.
Install
lxc
andansible
.Install
lxc
andansible
on the system where you are building the image. On Ubuntu, both can be installed as follows:sudo apt install -y ansible lxd lxd init
You will also need to edit
/etc/subuid
and/etc/subgid
. The Colosseum instructions on how to prepare a container will be helpful.Check out the DragonRadio source code. Since DragonRadio uses submodules, it is import to use the
--recursive
flag when cloning the repository.git clone --recursive https://github.com/drexelwireless/dragonradio.git
Build base DragonRadio image
The image built in this step serves as the base image for all DragonRadio builds. It includes generally useful tools, the Colosseum CLI, and additional software, like
gpsd
, that are necessary to run the radio in batch mode in the Colosseum. The build is automated using ansible:cd ansible && ansible-playbook -i inventory playbooks/dragonradio.yml
This will result in a
dragonradio-2004-base
image in the top-levelimages
directory. The password for theroot
andsrn-user
users in this image isdragonradio
.Build a DragonRadio image
The
build-image.sh
takes agit
reference (tag, hash, etc.) and builds an image based on the given version of the radio. For example, an image based on themain
branch can be built as follows:./bin/build-image.sh main
The image wil be placed in the
images
directory and have a name of the formREF-DATE-HASH
, whereREF
is agit
reference,DATE
is the build date, andHASH
is thegit
hash of the version of the radio use to build the image.The
build-image.sh
script takes one optional flag,-s
, which will install thedragonradio
service in the generated image. This service automatically starts the radio on boot, making the image ready-to-run in batch mode in the Colosseum.
Building the documentation
The documentation can be built as follows:
source venv/bin/activate
cd docs
sudo apt install doxygen
pip install -Ur requirements.txt
make html