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/AMDaarch64→ 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 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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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.