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
lxcandansible.Install
lxcandansibleon 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/subuidand/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
--recursiveflag 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-baseimage in the top-levelimagesdirectory. The password for therootandsrn-userusers in this image isdragonradio.Build a DragonRadio image
The
build-image.shtakes agitreference (tag, hash, etc.) and builds an image based on the given version of the radio. For example, an image based on themainbranch can be built as follows:./bin/build-image.sh main
The image wil be placed in the
imagesdirectory and have a name of the formREF-DATE-HASH, whereREFis agitreference,DATEis the build date, andHASHis thegithash of the version of the radio use to build the image.The
build-image.shscript takes one optional flag,-s, which will install thedragonradioservice 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