radiocondaを用いたソフトウェア無線環境構築

category: gnss
tags: pocketsdr

はじめに

radiocondaは、ソフトウェア無線(SDR: software defined radio)を利用するためのPC環境を一括で構築するためのオープンソースソフトウェアです。

かつて、GNU Radio環境を構築するのは、依存するさまざまなソフトウェアのバージョンを揃える必要があり、大変なことでした。GNU Radio環境構築のためのPyBOMS(Python Build Overlay Managed Build System)などのツールもありましたが、Linux環境上に構築することがほとんどでした。

ここでは、GNSSオープンソースソフトウェアPocket SDRのv0.15以降を利用するために、radiocondaをWindows 11上、Debian GNU/Linux 13、macOS Tahoe 26.6.2にそれぞれインストールしてみました。

Windows環境へのインストール

Windows環境へのradiocondaのインストールは簡単です。インストーラーのページからradioconda-Windows-x86_64.exeをダウンロードして実行するか、Windows標準のパッケージマネージャwingetを実行することで、インストールできます。ここではwingetを用いました。

winget install ryanvolz.radioconda

インストールが完了すると、スタートメニューにradiocondaの項目が現れます。ブロック図にてソフトウェア無線を構築するGNU Radio Companionや、Pocket SDR利用のためのコマンドプロンプトも、この項目にあるメニューから実行します。

Linux環境へのインストール

Linux環境へも、Windows環境へのインストールと同様に、インストーラーを用いるかパッケージマネージャーaptなどでインストールできます。ここでは、Pocket SDRをヘッドレス(モニターやキーボードを接続しない状態)でリモート利用することを考え、aptコマンドにて最小限でのインストールを行いました。

apt update
apt install git gcc g++ make libusb-1.0-0-dev libfftw3-dev python3 libsoapysdr-dev soapysdr-tools soapysdr-module-all

Pocket SDRのREADME.mdの通りにインストールして、GPS信号受信を確認しました。

installing radioonda on macOS

macOS環境へのインストール

ホームディレクトリーの.bashrcバックアップした上で、インストーラーを用いてインストールしました。インストーラーがこのファイルを書き換えるからです。

radiocondaはPythonの環境切替ツールanacondaを利用していますが、私が常用している別の環境切替ツールpyenvとも共存できました。

ここでは、インストーラーのページからコマンドライン版シェルスクリプトradioconda-MacOSX-arm64.shをダウンロードして実行しました。デフォルトでホームディレクトリー直下の$HOME/radiocondaにインストールされます。アンインストールは、このディレクトリーを削除するだけですみます。

ターミナル上でbash radioconda-MacOSX-arm64.shの実行後、いくつかの質問をすべてデフォルトで答えて(そのままリターンキーを押して)、インストールしました。最後の質問「.bashrcを書き換えてもいいですか」についても、そのままデフォルトで答えました。

installing radioonda on macOS

ここで、ターミナルを閉じ、再びターミナルを開きます。.bashrcが書き換えられたためにanacondaが実行され、プロンプトが(base) %に変わり、radioconda上のPythonが実行されるようになります。conda deactivateを実行すれば元の環境に戻りますが、毎回、このコマンドを入力するのは大変です。

そこで、GNU RadioやPocket SDRを利用するときのみconda activate baseを実行し、利用終了後にconda deactivateを入力して元の環境に戻すようにします。

conda deactivate
conda config --set auto_activate_base false

私は、この.bashrcで書き換えられた部分を.zprofileに移しました。

ところで、私の環境では、radiocondaが正しくインストールされませんでした。

conda activate base
python -c "import numpy; print(numpy.__version__)"
python -c "from gnuradio import gr; print('GNU Radio Python OK')"

installing radioonda on macOS

Pythonのnumpyモジュール、gnuradioモジュールともに動作しませんでした。そこで、以下の方法により、conda-forge、openblas、libgfortran、libgfortran5をアップデートしました。

conda install -c conda-forge openblas libgfortran libgfortran5

このアップデートにより、GNU Radio Companionも正しく起動できるようになりました。

installing radioonda on macOS

macOS環境では、Pocket SDRのコマンドラインツールをビルドするために、Makefileの修正が必要なようです。radiocondaをインストールしていないmacOS PCでも、このコマンドラインツールを実行する方法がないか調べています。


関連記事