ネットワーク越しの RTL-SDR で SDR# を使う方法
この記事のまとめ:
rtl_tcp
を使ってネットワーク越しの RTL-SDR (RTL2832U 搭載デバイス) が観測する信号をローカルの SDR# で表示する方法を紹介しています。rtl_tcp
などの RTL-SDR やそれらを動かすために必要なパッケージ類を Docker コンテナー化して Linux 上で動かす方法を紹介しています。
背景
LimeSDR のテストを SDR# で周波数スペクトルを見ながら行おうと思ったのですが、作業場所を日々変えることもあるので家の中でどこからでも SDR# を使いたい状況でした。そのため、Linux サーバーに常時それらを接続し、Windows のラップトップから SDR# を起動して RTL-SDR が受信する信号の周波数スペクトルを見ようと思った次第です。
なお、SDR# を Linux で起動して X11 で飛ばすこともやってみましたが、そもそも SDR# は Windows 用にしか開発されていません。Linux で .NET アプリケーションを動かす mono を使って SDR# を動かしてみましたがあまり動作が良くなかったので、SDR# は Windows のネイティブで動かすことにしました。
構成
以前 RTL-SDR を紹介した際には RTL-SDR を接続した Windows PC で直接 SDR# などを動かして、周波数スペクトルを表示していました。
今回は、次の2台のマシンを使って役割を分割させます。
- Linux PC: RTL-SDR を接続し、
rtl_tcp
というソフトウェアで受信信号をクライアントに伝送する - Windows PC: SDR# を使って、
rtl_tcp
から受信信号を受け取り、周波数スペクトルを表示させる
なお、RTL-SDR という単語について、人によって定義が異なるようです。 RTL-SDR.COM の説明では、RTL2832 を搭載した USB ドングルのことであると述べていますが、osmocom では RTL2832 ベースのドングルを SDR 受信機にするためのソフトウェアであると述べています。
本記事では、大文字で RTL-SDR と書いたときには、RTL2832 を搭載した USB ドングルのデバイスを指し、小文字で rtl-sdr と書いたときには osmocom の RTL2832 用のソフトウェアを指すものとします。
rtl-sdr の Docker コンテナー
Linux で RTL-SDR デバイスを SDR 受信機として使うためのソフトウェアとして、osmocom / rtl-sdr があります。この中には SDR 受信機として使うためドライバーや基本的なアプリケーションが含まれています。そのアプリケーションの1つに受信信号をネットワーク越しで引き渡すためのサーバーである rtl_tcp
があります。
これらを使うためには、ソースコードをダウンロードしてきてコンパイルする必要がありますが、いつものごとく Docker で行います。 Dockerfile などのファイルは私の GitLab リポジトリーにおいておきました。
rtl-sdr の動作確認
RTL-SDR が認識しているかどうかは次のように rtl_test
で確認ができます。問題がなければ、基本情報を表示してくれます。
ただし、 Ubuntu などの OS では、RTL2832U 用のドライバーとして dvb_usb_rtl28xxu がデフォルトで入っている可能性があります。それがアクティブになっている場合、rtl-sdr が使えない可能性があります。その場合は次の表に表示されます。
そういった場合には、単純に記載されているとおり、ドライバーを無効化すればよいです。たとえば、次のように etc/modprobe.d/
に当該ドライバーをブロックするようにファイルを作ります。PC を再起動し、うまくドライバーをブロックできていれば、rtl_test
が問題なく実行できるようになっているはずです。
rtl_tcp
の実行
rtl_tcp
を実行する準備は Dockerfile 内に書き込んであるので、次のようにコンテナーを実行すれば自動的に rtl_tcp
が実行されます。次のように表示されれば、1234 番ポートで待ち受け状態となっています。
SDR# の起動
SDR# を AirSpy のダウンロードページからダウンロードしてきて、起動します。画面左側の Source: プルダウンリストから RTL-SDR (TCP) を選択します。
また、左上のセッティングボタンを押し、セッティング画面を開きます。 Host に rtl_tcp を起動した PC の IP アドレスを入力すれば準備完了です。
あとは、スタートボタンを押せば、すべて問題がなければ記事トップのスクリーンショットのようにリアルタイムの周波数スペクトルを表示してくれます。
今回は以上です。 最後まで読んでいただき、ありがとうございます。
コメント
コメントを投稿