Skip to content

Installation

Shane Rounce edited this page Mar 3, 2026 · 10 revisions

This page covers getting aiov2_ctl installed and kept up to date.
The goal is a clean, system‑level install that behaves like a native utility, not a one‑off script.


Requirements

  • Debian Trixie (recommended and tested)
  • Python 3.10+
  • sudo access
  • uConsole with the AIO v2 board installed

Install required system packages:

sudo apt update
sudo apt install -y python3 python3-pyqt6 git

Notes:

  • Other Debian-based systems may work, but Rex's Trixie Image is the reference platform. (See OS Compatibility & Requirements for more detailed info on the OS setup for the AIO v2 Hardware.)
  • All the functions and features of this script require the AIO v2 hardware to be present.

Install

From the project directory:

sudo python3 aiov2_ctl.py --install

This will:

  • Install required Python dependencies (system-wide)
  • Copy aiov2_ctl to /usr/local/bin
  • Install icons and assets to /usr/local/share/aiov2_ctl
  • Install Bash tab completion

Rail Boot Service (installed automatically)

--install also installs and enables a systemd oneshot unit:

  • aiov2-rails-boot.service
  • Unit path: /etc/systemd/system/aiov2-rails-boot.service
  • Purpose: apply configured GPIO rail boot states at startup via:
    • aiov2_ctl --apply-boot-rails

Verify after install:

systemctl is-enabled aiov2-rails-boot.service
systemctl status aiov2-rails-boot.service --no-pager
aiov2_ctl --boot-rails-status

Once complete, open a new shell so tab completion is available.

Quick sanity check:

aiov2_ctl --status

Updating

If you have a recent version, update from anywhere:

aiov2_ctl --update

You can check for updates without installing:

aiov2_ctl --check-update

You can also check for updates and install them directly from the GUI tray menu.


If you have an earlier version, you may need to run from inside the repo:

cd ~/aiov2_ctl
aiov2_ctl --update

If you have a version without --update (early adopters), manually pull and reinstall:

cd ~/aiov2_ctl
git pull
sudo ./aiov2_ctl.py --install

GUI Autostart

Enable the tray GUI to start automatically on login:

aiov2_ctl --autostart

Disable it again:

aiov2_ctl --no-autostart

Details:

  • Uses standard XDG autostart (~/.config/autostart)
  • Starts a few seconds after login
  • Safe to enable and disable repeatedly

After Install

Most users will want to:

  • Enable GUI autostart:
    aiov2_ctl --autostart
  • Install the optional radio / GNSS apps:
    sudo aiov2_ctl --add-apps
  • Reboot once to ensure everything is cleanly initialised

Uninstall

To completely remove aiov2_ctl from your system:

# Remove installed binary
sudo rm -f /usr/local/bin/aiov2_ctl

# Remove assets and metadata
sudo rm -rf /usr/local/share/aiov2_ctl

# Remove bash completion
sudo rm -f /etc/bash_completion.d/aiov2_ctl

# Remove desktop entry
sudo rm -f /usr/share/applications/aiov2_ctl.desktop

# Remove autostart entry (if enabled)
rm -f ~/.config/autostart/aiov2_ctl.desktop

# Remove old /opt install (if present from earlier versions)
sudo rm -rf /opt/aiov2_ctl

# Remove old alternate binary name (if present)
sudo rm -f /usr/local/bin/aiov2ctl

# Remove rail boot service
sudo systemctl disable aiov2-rails-boot.service 2>/dev/null || true
sudo rm -f /etc/systemd/system/aiov2-rails-boot.service
sudo systemctl daemon-reload

Optionally remove PyQt6 if you're not using it for anything else:

sudo apt remove python3-pyqt6
sudo apt autoremove

Verify removal:

which aiov2_ctl || echo "✓ aiov2_ctl removed"
ls /opt/aiov2_ctl 2>/dev/null || echo "✓ /opt clean"
ls /usr/local/share/aiov2_ctl 2>/dev/null || echo "✓ assets removed"

Clone this wiki locally