Skip to main content

RemoteRF host-side control package

Project description

RemoteRF Host (hostrf) — Linux Setup

HostRF Installation

The guide is done/verified for Ubuntu Server/Desktop 24.04 LTS.

0) If Raspberry Pi

Raspberry Pi Imager → Install Ubuntu Server 24.04 LTS → Boot Raspberry Pi from SD card.

1) System Prerequisites (APT)

sudo apt update
sudo apt install -y curl ca-certificates bzip2 git build-essential
sudo apt install -y libusb-1.0-0 udev

Optional: confirm architecture:

uname -m
  • x86_64 → Intel/AMD
  • aarch64 → ARM64 (Raspberry Pi 64-bit, some servers)

2) Install Miniconda

2.1 Download the installer

x86_64

cd /tmp
curl -fsSLO https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

ARM64 (aarch64)

cd /tmp
curl -fsSLO https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-aarch64.sh

2.2 Install (non-interactive, recommended)

x86_64

bash Miniconda3-latest-Linux-x86_64.sh -b -p "$HOME/miniconda3"

ARM64 (aarch64)

bash Miniconda3-latest-Linux-aarch64.sh -b -p "$HOME/miniconda3"

2.3 Enable conda in your current shell

source "$HOME/miniconda3/etc/profile.d/conda.sh"
conda --version

If you want conda available automatically in new terminals:

"$HOME/miniconda3/bin/conda" init bash
source ~/.bashrc

2.4 Install mamba (default solver)

conda install -n base -c conda-forge -y mamba
mamba --version

Might have to accept anaconda TOS.

conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/main

conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/r

3) Create the Environment (with mamba (faster))

mamba create -n hostrf -y -c conda-forge -c defaults  python=3.10 pip setuptools wheel grpcio protobuf python-dotenv numpy scipy libiio pylibiio libusb

conda activate hostrf
python -m pip install -U pip
python -m pip install pyadi-iio remoterf-host
sudo reboot now

HostRF Config

Run the below for a comprehensive overview:

hostrf --help

To get hostrf up and running:

1) Point to a RemoteRF server

HostRF requires a RemoteRF Server already setup. See RemoteRF-Server for additional details.

hostrf stores its config under: ~/.config/remoterf-host/

hostrf --config --addr <host:port>
# example:
hostrf -c -a 164.97.201.67:5000
hostrf -c -a --show

2) Set host parameters

On the remoterf server, run the below:

Example uses 'lab-host-01' as the host name. It will return a valid command you can just copy and paste into the host CLI.

serverrf --host --token-create lab-host-01 --length 8

Given the parameters/tokens returned, run the below:

hostrf --config --host <hostname> \"TOKEN\"
#example:
hostrf -c -h lab-host-01 "UTzhag"

3) Connect devices (Adalm Pluto)

To connect plutos to the server:

iio_info -s

If the pluto doesn't show up, yet the below works:

sudo iio_info -s

Run the below and reboot after:

sudo groupadd -f plugdev
sudo usermod -aG plugdev "$USER"

sudo tee /etc/udev/rules.d/53-adi-usb.rules >/dev/null <<'EOF'
# Type the below in
SUBSYSTEM=="usb", ATTR{idVendor}=="0456", MODE="0660", GROUP="plugdev"
EOF

sudo udevadm control --reload-rules
sudo udevadm trigger
sudo reboot now

Look for a 'hw_serial: 104473'. Keep note of said serial per device.

Add pluto to device list. Understand that the device_id (int) needs to be GLOBALLY unique!

hostrf --device --add --pluto <id>:<device_name>:<hw_serial>

#Example
hostrf -d -a --pluto 10:"hostrf pluto 0":104473

Remove device:

hostrf -d -remove <id>

Show devices:

hostrf -d --show

Clear all device config:

hostrf -d --wipe

Run to start the host. You should be able to see host on the server if setup properly.

hostrf -s

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

remoterf_host_testing-0.0.2.tar.gz (37.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

remoterf_host_testing-0.0.2-py3-none-any.whl (44.2 kB view details)

Uploaded Python 3

File details

Details for the file remoterf_host_testing-0.0.2.tar.gz.

File metadata

  • Download URL: remoterf_host_testing-0.0.2.tar.gz
  • Upload date:
  • Size: 37.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for remoterf_host_testing-0.0.2.tar.gz
Algorithm Hash digest
SHA256 b973318b6ac6c9f030c986fc545b6f8f322454c970e9ad3fc4bf92cb23e95ee5
MD5 9cccbfe32e4c37ea0cebf19aff8e2800
BLAKE2b-256 d2a22a55915658c208a913e409dedd87574ba8f0f93783cf227b8b859c774223

See more details on using hashes here.

File details

Details for the file remoterf_host_testing-0.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for remoterf_host_testing-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 aa5e5db076b3fadf292071b6d33a3a5f85d5fb690b8f2f524e4d8dc463aa8a59
MD5 f64ab41ba701086745de2cd9f458d3d5
BLAKE2b-256 ccbfb7d76b432fded5bc8221f660f3a3a700edabf9ce667df59dfbb225fff95e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page