e-DIYで行こう!趣味の電子工作とプログラミングの記録e-DIYで行こう!GNURadioでワンセグ放送を受信するSDR2021.07.18Linux上でワンセグの常時録画の必要があって色々調べたところ、GNURadio上で動作するgr-isdbtという地デジのデコーダを見つけた。このgr-isdbtをUbuntuにインストールして動作させたので記事にまとめておく。録画したワンセグ動画の変換まとめDocker環境docker-gnuradioのインストールgr-isdbtは少し古いGNURadio3.7がベースになっており、Ubuntu18.04デフォルトでインストールされるGNURadioのバージョン3.8だとうまくビルド出来ない。そこで、gr-isdbtの作者が用意したGNURadio3.7のDocker環境docker-gnuradioをまずは構築する。DockerのインストールまずはDockerをホストPCにインストールする。Ubuntuの場合は以下で一発インストールOK。docker.ioデフォルトではDockerは一般ユーザで実行出来ない。自分をdockerグループに追加する。docker.service一度ログアウトしないとグループ追加が反映されないので注意。psを実行してエラーが出なければ反映されている)docker-gnuradio環境のビルド適当な作業ディレクトリで以下を実行してコンテナをビルドする。.ビルドが終わったら、出来上がったDockerイメージを確認。63.1MBコンテナの起動パラメータホスト側からのコンテナ起動コマンドはドキュメントに書かれていた例を参考に以下のようにした。bash主なパラメータの意味は以下。Windowの画面が開けるようにするため、ホスト側で以下のオマジナイ実行が必要(忘れるとgnuradio-companion起動時に「Windowを開く権限が無い」みたいなエラーが出る)。+localhostDockerコンテナにgr-isrbtをインストールするGNURadio本体は上記作業で既にコンテナ内へインストール済み。その他、コンテナ内でドライバやワンセグ受信用の各種モジュールのインストールを行う。コンテナ内ユーザgnuradioのパスワードは”gnuradio”で設定されているので、sudo実行の時は適宜入力する。デバイスのGNURadio用ブロックをインストールRF受信を行うSDRデバイス用のGNURadio用ブロックをインストールする。OneとPlutoSDRのGNURadioセットアップを取り上げたが、コンテナ内で使えるようにするためにコンテナへのインストール作業が必要。コンテナ内でのインストール作業はホストで行う方法と全く同じなので、詳細は過去記事を参照。USBワンセグチューナーのインストール作業は以下のような感じ。(aptでバイナリインストールだと何故かうまく行かないかったので、ソースからビルドしている。コンテナ内のGNURadioのバージョンが3.7なので、それに合わせている所がポイントだ。ldconfigデバイスの入出力ブロックをインストールした段階でコンテナの中のGNURadioから、以前の記事で作ったFMラジオなどが動けばOK。時々コンテナ内からSDRデバイスが見えなくなってしまう場合があるが、その場合は一旦コンテナを終了させた後、USBの抜き差しをしてから再度コンテナを起動すると復活する事が多い。gr-isdbtのインストールさて、いよいよワンセグ受信モジュールであるgr-isbtのインストール作業をコンテナの中で行う。GitHub.github.comビルドのための一連のコマンドは以下の通り。../makeあとはインストールで完了。上記コンテナ内でのインストール作業を終えたら、シェルからexitを実行して一旦コンテナを抜け、ホスト側でDockerイメージの更新を行っておいた方が良い。-aでコンテナIDとイメージの対応を確認する。serene_hawking以下を実行。ubuntu:gnuradio-releases-3.7gr-isrbtによるワンセグ受信GitHubから持ってきた一式の中のexamplesディレクトリに1セグ受信のサンプルフローグラフが含まれている。(gr-isdbt/examples/rx_1seg_demo.grc)デフォルトの状態だとRTL-SDRをソースブロックにしたフローグラフなので、使いたいSDRデバイスに応じて適宜ブロックを変更して使う。Oneではうまく受信出来ず、PlutoSDRだけが成功した。ワンセグ受信に成功すると、上のキャプチャ画面のようになる。以下のコマンドでMP4ファイルに変換すると普通の動画ビューワーで視聴出来るようになる。test.mp4まとめ予想以上に手間がかかったが、とりあえずGNURadioでワンセグの受信が出来るようになった。格安USBワンセグチューナーで受信が出来なかったのは残念だが、宝の持ち腐れ状態だったPlutoSDRが活用出来そうなので良しとしよう。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。けん日々の電子工作やプログラミングの内容を備忘録を兼ねて記事にしております。趣味でやっている事なので「やりたい」と思ったら時間や手間を惜しまずにやり遂げることがモットー。記事の信頼性向上のため、情報源はターゲットデバイスの開発元による公式ドキュメントなど一次情報を徹底的に(しつこく)調べるようにし、その他の二次情報には極力頼らないように心がけています。e-DIYで行こう!.ホーム検索トップサイドバ。