for GNURadio
Go to file
2021-03-19 18:09:21 -04:00
.github/workflows Calculate sha256 hash from same directory as the installers. 2021-03-12 12:56:07 -05:00
installer_specs Render radioconda 2021.03.12 2021-03-12 12:05:44 -05:00
.gitignore Initial radioconda env file and render/build scripts. 2021-03-10 18:17:13 -05:00
build_installer.py Add Github action to build radioconda. 2021-03-12 11:42:12 -05:00
buildenv.yaml Add Github action to build radioconda. 2021-03-12 11:42:12 -05:00
LICENSE Initial radioconda env file and render/build scripts. 2021-03-10 18:17:13 -05:00
radioconda.yaml Add ipython to the distribution. 2021-03-19 18:09:21 -04:00
README.md Add device setup instructions for most of the supported devices. 2021-03-19 18:09:21 -04:00
rerender.py Add Github action to build radioconda. 2021-03-12 11:42:12 -05:00

radioconda

Build radioconda

This repository holds cross-platform installers for a collection of software radio packages bundled with the conda package manager. These installers will get you started with an environment that includes the packages listed here. Once installed, you will have a fully functional conda distribution, meaning that you can install additional packages (if available through conda-forge) or upgrade to the latest versions using conda or mamba, e.g.:

mamba install <pkg-name>
mamba upgrade --all

Think of radioconda as an alternative to Anaconda or Miniforge, but specialized for software radio.

NOTE: Radioconda is built from packages maintained by the conda-forge project. If you have questions or issues that are specific to the conda installation of a particular package, please report them at the corresponding feedstock repository.

Download

Radioconda installers are available here: https://github.com/ryanvolz/radioconda/releases.

OS Architecture Installer Type Download
Linux x86_64 Command-line radioconda-Linux-x86_64.sh
macOS x86_64 Command-line radioconda-MacOSX-x86_64.sh
macOS x86_64 Graphical radioconda-MacOSX-x86_64.pkg
Windows x86_64 Graphical radioconda-Windows-x86_64.exe

Install

For a command line install, download the installer and run,

bash radioconda-*-Linux-x86_64.sh   # or similar for other installers for unix platforms

For a graphical install, download the installer and double-click it.

Non-interactive install

For non-interactive usage, look at the options by running the following:

bash radioconda-*-Linux-x86_64.sh -h   # or similar for other installers for unix platforms

or if you are on Windows, run:

start /wait "" build/radioconda-<VERSION>-Windows-x86_64.exe /InstallationType=JustMe /RegisterPython=0 /S /D=%UserProfile%\radioconda

Additional Installation for Device Support

To use particular software radio devices, it might be necessary to install additional drivers or firmware. Find your device below and follow the instructions. (Help add to this section by filing an issue if the instructions don't work or you have additional instructions to add!)

RTL-SDR

Linux users

Blacklist the DVB-T modules that would otherwise claim the device:

sudo ln -s $CONDA_PREFIX/etc/modprobe.d/rtl-sdr-blacklist.conf /etc/modprobe.d/radioconda-rtl-sdr-blacklist.conf
sudo modprobe -r $(cat $CONDA_PREFIX/etc/modprobe.d/rtl-sdr-blacklist.conf | sed -n -e 's/^blacklist //p')

Install a udev rule by creating a link into your radioconda installation:

sudo ln -s $CONDA_PREFIX/lib/udev/rules.d/rtl-sdr.rules /etc/udev/rules.d/radioconda-rtl-sdr.rules
sudo udevadm control --reload
sudo udevadm trigger

Windows users

Install the WinUSB driver with Zadig, selecting the device that is called "Bulk-In, Interface (Interface 0)".

IIO (Pluto SDR)

Once you can talk to the hardware (by following the instructions below), you may want to perform the post-install steps detailed on the Pluto users wiki.

Linux users

Install a udev rule by creating a link into your radioconda installation:

sudo ln -s $CONDA_PREFIX/lib/udev/rules.d/90-libiio.rules /etc/udev/rules.d/90-radioconda-libiio.rules
sudo udevadm control --reload
sudo udevadm trigger

Windows users

Install the latest USB drivers by download and installing this file.

UHD (Ettus USRP)

All devices

Download the firmware files by activating your conda prompt and running

uhd_images_downloader

USB devices (e.g. B series)

Windows users might have to install a USB driver for the device. Follow the instructions from the Ettus site, or install the WinUSB driver with Zadig (your device will have a USB ID that starts with 2500).

Installing the WinUSB driver with Zadig

Many USB devices use libusb and need a WinUSB driver installed on Windows. Follow this procedure to install the driver for your device:

  1. Download and run Zadig

  2. Select your device

    • It may be auto-selected since it is missing a driver
    • It may not have a sensible name, but you can verify the USB ID
  3. Ensure the target driver (middle of the interface) reads "WinUSB"

  4. Click "Install Driver" or "Replace Driver"

Developers

Usage

Each installer package is built from a specification directory in installer_specs using conda constructor. An installer can be built manually using the build_installer.py script. The specification directories set the exact versions of the included packages so that constructor will produce a predictable result that can be tracked by git for each release. In turn, the specification directories are created/updated by re-rendering the radioconda environment specification file using the rerender.py script.

So, the procedure to create a new installer package is:

  1. Update the environment specification file radioconda.yaml, if desired.
  2. Re-render the constructor specification directories by running rerender.py.
  3. Commit the changes to produced by steps 1 and 2 to the git repository.
  4. Build the installer package for a particular platform by running build_installer.py.

Release

To release a new version of radioconda and build installer packages using GitHub's CI:

  1. Update the repository following steps 1-3 above.
  2. Make a new pre-release on GitHub with a name equal to the version.
  3. Wait until all artifacts are uploaded by CI
  4. Mark the pre-release as a release

NOTE: using a pre-release is important to make sure the "latest" links work.