プロジェクト

全般

プロフィール

GNU Radio

ソフトウェア無線(SDR: Software Defined Radio)の信号処理を実現するソフトウェアで、オープンソース・ソフトウェアとして開発・提供されています。GNU Radioは、PythonおよびC/C++言語で記述されています。また、信号処理の構成をプログラミングすることなく、機能ブロックを画面上で配置して繋ぎ合わせることで実装するGRC(Gnu Radio Companion)ツールが提供されています。

インストール

macOS

2026年6月時点において、macOSへのインストールには Radioconda を使用するのがよいようです。
Homebrew の gnuradio は、deprecated となっており(依存するQt5がサポート終了しており、Homebrew上で2027年5月にdisableとなると宣告されています)、MacPorts か Radioconda を使う方法が存在します。MacPortsは辛みがあるので(個人的感想)、Radiocondaでインストールします。

Radioconda on macOS

Radiocondaは、Pythonのパッケージ環境の一つ conda を利用してGNU Radioをインストール・実行できるようにしたパッケージです。MIT Haystack Observatory(マサチューセッツ工科大学 Hystack電波天文台)のRyan Volz氏が開発・無償提供しています。

次のサイトから、macOS用のインストーラ(例、radioconda-MacOSX-arm64.pkg)をダウンロードします。
https://github.com/radioconda/radioconda-installer

ダウンロードしたファイル(radioconda-2025.03.14-MacOSX-arm64.pkg)をクリックすると、このような警告表示が出ることがあります。
macOSのセキュリティが未検証のインストーラを弾いているので、[システム設定] > [プライバシーとセキュリティ]で、下の方にスクロールするとこの表示がでるので、[このまま開く]をクリックします。

インストーラが起動します。

インストール先の選択で次の2つが提示されましたが、1.の自分専用を選択しました。

  1. 自分専用にインストール
  2. 特定のディスクにインストール

ホームディレクトリの下、radiocondaディレクトリにインストールされます。
~/.zshrc に、conda仮想環境(base)をactivateする設定が追記されており、新たにターミナルを起動するとcondaの仮想環境がactivateされています。これは、ターミナルを他のPython開発に使う時に支障となります。

インストーラが追記した .zshrc の内容

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/Users/***/radioconda/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)" 
if [ $? -eq 0 ]; then
    eval "$__conda_setup" 
else
    if [ -f "/Users/***/radioconda/etc/profile.d/conda.sh" ]; then
        . "/Users/***/radioconda/etc/profile.d/conda.sh" 
    else
        export PATH="/Users/***/radioconda/bin:$PATH" 
    fi
fi
unset __conda_setup
# <<< conda initialize <<<

そこで、radiocondaの設定をシェル関数化し、関数を実行したときにradiocondaを実行できるようにします。

上述のコードを、setradioconda() {...} で囲います。
ターミナルを起動後、setradioconda でcondaのbase仮想環境がアクティベートされ GNU Radio 関係のコマンドが実行できるようになります。

GNU Radio Companion起動確認

ターミナルから、gnuradio-companion を実行します。

(base) ~ % gnuradio-companion

しかし、エラーが発生します。

ImportError: dlopen(/Users/******/radioconda/lib/python3.12/site-packages/numpy/_core/_multiarray_umath.cpython-312-darwin.so, 0x0002): Library not loaded: @rpath/libgfortran.5.dylib
  :

Radiocondaインストール時に、NumPyのバージョン2.2.3が入りますが、次のissueによるとNumPy 1.xでないと互換性でエラーになるようです。
https://github.com/gnuradio/gnuradio/issues/8120

gnuradio 3.10 は、NumPy 1.x を使用するが、インストーラでは NumPy 2.2.3 が入るのが問題のようです。

~ % conda install -c conda-forge "numpy<2" -y
  :

これでNumpy 1.xに置き換えるので、gnuradio-companionが実行できるようになります。


約1ヶ月前に更新