SDR入門①~gnu-radio-companionをMacで動かす~

はじめに

個人的な興味がきっかけでデータ通信を0から調べて、音を使ったデータ通信についての入門的な本を書いて技術書典に参戦してきました

booth.pm

ただ、リードソロモン符号や畳込み符号などより強固な誤り訂正を行ったり、色々なことをロジックを調べることから始めようとするときつくなってきた今日この頃

先日PyConを見てると「Pythonではじめるソフトウェア無線」というタイトルの発表があり、ソフトウェア無線なるものを初めて知りました

www.slideshare.net

ソフトウェア無線とは、今まで基盤などハードウェアで行っていた処理をプログラマティックに処理を行えるものらしい

そこでGNU RadioというOSSを紹介をしていたので、興味をもった

www.gnuradio.org

Linuxで動かすことが容易にできるらしいが、MacOS Xで動かしたかったので、それをやるまでの備忘録としてここに残す。

公式のHPだとMacPortを利用したインストールを推奨しているみたいだが、Homebrewを主に使っているので、brewを使った情報を探す(今どきMacPort使ってる人いるの...?)

wiki.gnuradio.org

あまりWeb上に情報がなくて、依存関係とか大変らしいけど brew install してみたらそのままいけた

# gnuradioのインストール
$ brew install gnuradio

# gnu radio companionの起動
$ gnuradio-companion

python経由でGUIが立ち上がり、かんたんにできるじゃんと思っていたが、アイコンが表示されておらず、エラーを確認すると以下のエラーが...

(gnuradio-companion:39399): Gtk-WARNING **: 20:52:24.387: Could not load a pixbuf from /org/gtk/libgtk/theme/Adwaita/assets/check-symbolic.svg.
This may indicate that pixbuf loaders or the mime database could not be found.

gnuradioをインストールする際に依存関係として gdk-pixbuf がインストールされているはずなのに、上手く動作せず

いろいろ調べていたら、同様の事象で困っている人発見!

github.com

macでhomebrew経由でインストールした場合は、adwaita-icon-theme をインストールする必要があるとのこと。

# adwaita-icon-themeのインストール
$ brew install adwaita-icon-theme

インストールできたら無事アイコンも含めて表示された!

f:id:b0941015:20200911233656p:plain

同じ問題で困っている人がいれば、助けになればと。

よーし!これからたくさん触っていくぞー!

※2020/09/22追記

Homebrewでインストールしたgnuradio-companionでは、ブロック同士を繋ぐ際にドラッグ&ドロップをすると segmentation fault でアプリケーションが落ちてしまうという問題がありました

なので、結局MacPortを利用してgnuradioのインストールを行いました

基本的な手順については、下記とyoutubeを参考にしました

wiki.gnuradio.org

www.youtube.com

ままだと動かずドキュメント通り PYTHONPATH の設定とQTのライブラリのパスを渡す設定をしました

# PYTHONPATHを通す
$ export PYTHONPATH=/usr/local/lib/python3.8/site-packages

# QTにおいてcocoaに対するライブラリの指定
$ export QT_QPA_PLATFORM_PLUGIN_PATH=/opt/local/libexec/qt5/plugins/platforms