Skip to main content

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

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 host config under: ~/.config/remoterf/host/

Custom device drivers are loaded from: ~/.config/remoterf/drivers/

hostrf --config --addr <host:port>
# example:
hostrf --config --addr 164.97.201.67:5000
hostrf --config --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 --host --set <hostname> \"TOKEN\"
#example:
hostrf --host --set 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 --device --add --pluto 10:"hostrf pluto 0":104473

For a Pluto running the MIMO schema, configure devices.yml with the schema device type:

devices:
  - device_id: 11
    device_type: adalm_pluto_mimo
    name: hostrf pluto mimo 0
    init:
      serial: "104474"

Remove device:

hostrf --device --remove <id>

Show devices:

hostrf --device --show

Clear all device config:

hostrf --device --wipe

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

hostrf --serve

Metadata

Release files for remoterf-host-testing 0.0.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for remoterf-host-testing 0.0.7
File Size Uploaded Provenance Actions
remoterf_host_testing-0.0.7.tar.gz 43.1 kB Without provenance Details for remoterf_host_testing-0.0.7.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for remoterf-host-testing 0.0.7
File Interpreter ABI Platform Actions
remoterf_host_testing-0.0.7-py3-none-any.whl Python 3 none any Details for remoterf_host_testing-0.0.7-py3-none-any.whl

Total release size: 92.4 kB

Release files / remoterf_host_testing-0.0.7.tar.gz

Download URL remoterf_host_testing-0.0.7.tar.gz
Size 43.1 kB
Tags Source
SHA-256 checksum
How to use checksums
551cb9be452bd3d391a90d0d9cc1c0473c4d61eb1151f1c2a35e11b58b5cba67
BLAKE2b-256 checksum
How to use checksums
cde2eee33eb08577e900ef4a01da0b21f28c7db128c7f2fba524ef5722e0d9cf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.10

Release files / remoterf_host_testing-0.0.7-py3-none-any.whl

Download URL remoterf_host_testing-0.0.7-py3-none-any.whl
Size 49.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e3add73472b3834706f65baa0d1bd7f96d8a1c9615112f476dddee3e601a12b8
BLAKE2b-256 checksum
How to use checksums
e10f068b58cd0e940547111b82ca20dfb6e81aa9f117ac2b5b02881a7931bc49
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.10

Security for remoterf-host-testing 0.0.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page