uConsole (CM4) RTL-SDR Blog V4 デジタル波受信環境 構築ガイド

本ドキュメントは、ClockworkPi uConsole (Raspberry Pi CM4) 上で、RTL-SDR Blog V4 を用いてアマチュア無線のデジタル通信(D-STAR / C4FMなど)を受信・デコードするための環境構築手順書です。

途中で発生したビルドエラーの原因およびリカバリ手順(トラブルシューティング)も併せて記録しています。


1. 動作環境前提

  • ハードウェア: ClockworkPi uConsole (Raspberry Pi CM4 64bit)
  • OS: Raspberry Pi OS (Debian 11 bullseye / 64bit aarch64)
  • SDR機器: RTL-SDR Blog V4 (USBドングル型)
  • 目的: 430MHz帯等のデジタル通信波(D-STAR / C4FM)の復調・音声化

環境確認コマンド

# OSのコードネーム確認 (bullseye を確認)
cat /etc/os-release

# CPUアーキテクチャ確認 (aarch64 を確認)
uname -m

2. 旧ドライバ削除 & RTL-SDR Blog V4 専用ドライバの導入

RTL-SDR Blog V4は従来のV3以前(R820T2)とは異なるチューナーチップ(R828D)を採用しているため、Linux標準のカーネルドライバを排除し、公式V4対応ドライバを適用します。

手順

# 1. 衝突を避けるため標準の旧ドライバ・ライブラリを完全削除
sudo apt purge ^librtlsdr -y
sudo rm -rf /usr/lib/librtlsdr* /usr/include/rtl-sdr* /usr/local/lib/librtlsdr* /usr/local/include/rtl-sdr*

# 2. ビルドに必要なツールのインストール
sudo apt update
sudo apt install -y libusb-1.0-0-dev git cmake build-essential pkg-config

# 3. V4対応ドライバの取得とビルド
cd ~/Downloads
git clone https://github.com/rtlsdrblog/rtl-sdr-blog
cd rtl-sdr-blog
mkdir build
cd build
cmake ../ -DINSTALL_UDEV_RULES=ON
make
sudo make install
sudo ldconfig

# 4. TVチューナー用カーネルモジュールのブロッキング(干渉防止)
echo 'blacklist dvb_usb_rtl28xxu' | sudo tee /etc/modprobe.d/nortl.conf

3. SDR++ (受信用スペクトラム表示アプリ) のインストール

スペクトラム/ウォーターフォール表示で電波を視覚化し、音声を抽出するメインアプリです。

手順

  1. SDR++ GitHub Releases から、環境に適合する .deb パッケージを入手します。
    • 選択パッケージ: sdrpp_debian_bullseye_aarch64.deb
  2. ターミナルからインストール実行:
    cd ~/Downloads
    sudo apt install -y ./sdrpp_debian_bullseye_aarch64.deb
    

4. DSD-FME (デジタル音声復元アプリ) の構築

「サー…」というデジタルノイズから「D-STAR」や「C4FM」の音声データを自動判定して人間が聴こえる声に復元するツールです。

STEP 4-1: 依存ライブラリおよび mbelib の準備

dsd-fme のビルドには各種開発用ライブラリおよび音声デコードライブラリ mbelib が必須です。

# 1. 依存ライブラリの一括インストール
sudo apt update
sudo apt install -y libpulse-dev pavucontrol libsndfile1-dev libfftw3-dev liblapack-dev socat libusb-1.0-0-dev libncurses5 libncurses5-dev rtl-sdr librtlsdr-dev cmake git wget make build-essential libcodec2-dev

# 2. mbelib のクローニングとビルド
cd ~/Downloads
git clone https://github.com/lwvmobile/mbelib
cd mbelib
mkdir build
cd build
cmake ..
make -j4
sudo make install
sudo ldconfig

STEP 4-2: dsd-fme のビルド&インストール

cd ~/Downloads
git clone https://github.com/lwvmobile/dsd-fme.git
cd dsd-fme
mkdir build
cd build

# 設定とビルド
cmake ..
make -j4
sudo make install

5. 発生したトラブルとリカバリ(トラブルシューティング)

症例1: SDR++ のパッケージ選択エラー

  • 症状: インストール時に依存関係エラーやアーキテクチャ不一致で失敗する。
  • 原因: Debianのバージョン(bookworm / bullseye / sid)やプロセッサ表記(amd64 / aarch64)が合っていないパッケージを選択していたため。
  • 解決策: cat /etc/os-releasebullseyeuname -maarch64 を確認し、sdrpp_debian_bullseye_aarch64.deb を使用することで解決。

症例2: DSD-FME ビルド時の make: *** ターゲットが指定されておらず、makefile も見つかりません エラー

  • 症状: dsd-fme/build ディレクトリ内で make -j4 を実行した際、makefile が見つかりません と表示され処理が停止。
  • 原因: 前段の cmake .. 実行時に、必須ライブラリ(mbelib および PulseAudio / ncurses 等の開発用ヘッダー)が不足していたため、Configuring incomplete, errors occurred! となり Makefile の生成自体が失敗していた。
  • 解決策:
    1. mbelib を含めた不足依存パッケージを個別にビルド・インストール。
    2. dsd-fme/build ディレクトリ内の失敗したキャッシュファイル(CMakeCache.txt 等)を rm -rf * で完全消去。
    3. 再度 cmake .. を実行し、正常に Makefile が作成されたことを確認してから make -j4 および sudo make install を実行して無事成功。

6. ドングル到着後の動作確認コマンド

ドングルをuConsoleのUSBポートに挿入した後の確認コマンドです。

# 1. RTL-SDR Blog V4 の認識確認
rtl_test
# 成功時出力例: "Found Rafael Micro R828D tuner" や "RTL-SDR Blog V4 Detected"

# 2. DSD-FME の正常起動確認
dsd-fme -h

# 3. SDR++ の起動
sdrpp

デコード実行コマンド例(SDR++と連携する場合)

# 音声入力(PulseAudio等)から受け取ったデジタル波を全自動判別して復元出力
dsd-fme -i pulse -o pulse