本ドキュメントは、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++ (受信用スペクトラム表示アプリ) のインストール
スペクトラム/ウォーターフォール表示で電波を視覚化し、音声を抽出するメインアプリです。
手順
- SDR++ GitHub Releases から、環境に適合する
.debパッケージを入手します。- 選択パッケージ:
sdrpp_debian_bullseye_aarch64.deb
- 選択パッケージ:
- ターミナルからインストール実行:
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-releaseでbullseye、uname -mでaarch64を確認し、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の生成自体が失敗していた。 - 解決策:
mbelibを含めた不足依存パッケージを個別にビルド・インストール。dsd-fme/buildディレクトリ内の失敗したキャッシュファイル(CMakeCache.txt等)をrm -rf *で完全消去。- 再度
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
