Skip to content

spectrumx/ansible

Repository files navigation

Ansible Configuration Scripts

This is meant to be ran on a fresh image and will setup all necessary packages and configurations to tie it into the SpectrumX platform.

Usage

  • Create /opt/radiohound
  • Place ssh key in /opt/radiohound/.ssh/id_rsa. See Randy for more info about the key.
  • Clone this repo to /opt/ansible
GIT_SSH_COMMAND='ssh -i /opt/radiohound/.ssh/ansible_key -o IdentitiesOnly=yes' git clone [email protected]:spectrumx/ansible.git
  • Run the following:
python3 /opt/ansible/run.py

What's managed?

  • Icarus, the application that manages connection to the SpectrumX sensing platform
  • Ensures Ansible runs nightly
  • Installs dependency packages (Radioconda/GNURadio, Docker, Mosquitto)

To build Jetson image with A608 Carrier Board

Physical setup:

  • Ubuntu 2204 machine
  • Jetson booted in recovery mode, once booted remove jumper
  • Ubuntu machine connected (via USB-A) to Jetson (USB-C)
  • NVME drive in a USB-C drive chassis, connected with USB-A adapter to the Jetson
  • Confirm Jetson is connected by running lsusb and looking for Nvidia device

Software setup on Ubuntu machine:

Directions taken from https://wiki.seeedstudio.com/reComputer_A608_Flash_System

cd <path to where you downloaded the above files>
sudo apt install unzip bzip2
sudo tar xpf jetson_linux_r36.3.0_aarch64.tbz2
sudo tar xpf tegra_linux_sample-root-filesystem_r36.3.0_aarch64.tbz2 -C Linux_for_Tegra/rootfs/
cd Linux_for_Tegra/
sudo ./apply_binaries.sh
sudo ./tools/l4t_flash_prerequisites.sh
cd ..
unzip 608_jp60.zip
sudo cp -r ./608_jp60/Linux_for_Tegra/* ./Linux_for_Tegra/

Add files to rootfs before building the image

cd /home/rherban
git clone [email protected]:spectrumx/id_rsa.git

cd Linux_for_Tegra/rootfs
mkdir opt/radiohound
cp -r /home/rherban/ssh opt/radiohound/.ssh    # MUST GET KEYS FROM RANDY
chmod 600 opt/radiohound/.ssh/id_rsa

cp /home/rherban/ansible/files/setup_ansible.service etc/systemd/system/
cp /home/rherban/ansible/run.py root/setup_ansible.py
chmod 755 root/setup_ansible.py
ln -s etc/systemd/system/setup_ansible.service etc/systemd/system/multi-user.target.wants/setup_ansible.service

cd ..
sudo ./tools/l4t_create_default_user.sh --accept-license -u mep -p <REDACTED> 


cd ..

Run this command to build image and flash the Jetson

ADDITIONAL_DTB_OVERLAY_OPT="BootOrderNvme.dtbo" ./tools/kernel_flash/l4t_initrd_flash.sh --external-device sda1 -c tools/kernel_flash/flash_l4t_external.xml -p "-c bootloader/generic/cfg/flash_t234_qspi.xml" --showlogs --network usb0 jetson-orin-nano-devkit sda1

TODO:

  • Add separate /data partition
  • Fix Icarus' virtualenv path
  • Add SDS pip package

Additional tips

  • Add ssh key for git commands: export GIT_SSH_COMMAND="ssh -i /opt/radiohound/.ssh/id_rsa"