GNU Radio
- 2020-03-07 初版 インストール方法
- 2023-11-26 第2版
はじめに
- GNU Radio とは SDR:Software Definded Radioです。
- 直訳するとラジオを定義したソフトウェアです。
- ソフトウェアで復調を行う、ソフトウェア・ラジオです。
- ソフトウェアでデジタル処理するので、変更や調整が容易です。
- 例えば、音声フィルタをパラメータで変更できます。
- ハードウェアなら部品を交換しなければなりません。
- Raspberry Pi で GNU Radio をソースからコンパイルしインストールする方法を紹介します。
著作権と免責事項
- 個人利用に限定され、著作権者の許可なく商用利用できません。
- 直接間接に関わらず、使用によって生じたいかなる損害も筆者は責任を負いません。
- (C)2020-2023 All rights reserved by Y.Onodera.
経緯
- gnuradio 3.7.13.4 はまだPython2です。
- gnuradio 3.8以降からPython3対応しました。
- Python2の開発が2019年末で終了しました。
- 今後、Python2はOSの標準パッケージから外されるでしょう。
- そのためgnuradioのPython3対応が必要です。
- aptによるgnuradioのインストールは 3.7.13.4 です。
- $ sudo apt install gnuradio
- いずれ、aptによるインストールもバージョン・アップするでしょう。
- ここでは先行して最新版をソースコードから構築します。
- このためにpybombsコマンドが用意されています。
- つまりpybombs を使ってGNU Radioをソースコードからインストールします。
- なお、構築するまでに数時間を要します。
- またディスクの空き容量が7GB必要です。
- ソース・コードが5GB、バイナリが2GBです。
- gnuradio 3.10からインストール方法が変更されました。
- pybombs を使いません。CMakeでコンパイルします。
- 一時的に8GBの空き容量が必要です。
- 一時的に巨大な中間ファイルを生成します。
準備
- コンパイルに必要なパッケージをインストールします。
- 何が必要なのか記述されていません。
- $ sudo apt -y install git cmake doxygen
- $ sudo apt -y install libboost-all-dev libgmp-dev libthrift-dev python3-thrift thrift-compiler
- $ sudo apt -y install python3-numpy python3-mako python3-sphinx python3-lxml libfftw3-dev
- $ sudo apt -y install libsdl1.2-dev libgsl-dev libqwt-qt5-dev libqt5opengl5-dev python3-pyqt5
- $ sudo apt -y install liblog4cpp5-dev libzmq3-dev python3-yaml python3-click python3-click-plugins
- $ sudo apt -y install python3-zmq python3-scipy python3-gi python3-gi-cairo gir1.2-gtk-3.0
- $ sudo apt -y install libcodec2-dev libgsm1-dev libqt5svg5-dev
- $ sudo apt -y install pybind11-dev python3-matplotlib libsndfile1-dev
- $ sudo apt -y install python3-pip libsoapysdr-dev soapysdr-tools
- $ sudo apt -y install python3-pygccxml
- $ sudo apt -y install python3-pyqtgraph
- $ sudo apt -y install libunwind-dev libiio-dev libad9361-dev libspdlog-dev python3-packaging python3-jsonschema
- 古いgnuradioをアンインストールします。
- $ sudo apt -y purge gnuradio
- ディスク容量が足りないので、USBメモリ(8GB)を一時的に使います。
- USBメモリをmountします。
- $ sudo mount /dev/sda1 /media/pi/usb -o uid=pi,gid=pi
volkをインストール
- $ cd /media/pi/usb
- $ git clone --recursive https://github.com/gnuradio/volk.git
- $ cd volk
- $ mkdir build
- $ cd build
- $ cmake -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=/usr/bin/python3 ../
- $ make
- $ make test
- $ sudo make install
- $ sudo ldconfig
gnuradioをインストール
- 2時間かかります。
- git checkout でバージョンを確定させるのがポイントです。これを忘れると問題が発生します。
- $ cd /media/pi/usb
- $ git clone https://github.com/gnuradio/gnuradio.git
- $ cd gnuradio
- $ git checkout refs/tags/v3.10.8.0
- $ mkdir build
- $ cd build
- $ cmake -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=/usr/bin/python3 ../
- $ make -j4
- $ make test
- $ sudo make install
- $ sudo ldconfig
- $ volk_profile
- $ make clean
起動
- USBメモリはもう不要です。
- $ sudo umount /media/pi/usb
- バージョンを確認します。パスが通っているかの確認です。
- $ gnuradio-config-info -v
- 3.10.8.0
- gnuradioを起動します。
- $ gnuradio-companion
参考
©2020-2023 All rights reserved by Y.Onodera.