前回の記事
前回の記事はこちらを参照ください。
ラズパイで実用的なストリーミングプレイヤーを作る(構想編)
https://qiita.com/quni310/items/399ba2dd413fc5582f66
今回の記事は、エラーなどがなければ30分でおつりがきます。
Beagleboneにて再現確認しましたが、同様にできました。
OS選定
OSは、Raspberry PI Imagerアプリ(https://www.raspberrypi.com/software/)から、
ヘッダレス(GUIがないものとして、no desktop environmentとあるもの)を選択。
私は、Rasp4 2GBモデルを使っているので、64bitCPUの中で新しいものから選択。
イメージファイルをSDカードに書き込んだら、ラズパイに挿入。
起動前にネットワーク上のデバイスをチェック(あとで増えたデバイスをわかりやすくするため。私はルータ上でチェックしてます。そしてルータにて固定IPの割り当てを行います。)
LANケーブルを差し、起動。
固定IPにSSHでアクセス。
(IPが不明な場合、AndroidのFingアプリ推奨)
(SSHの設定を忘れた場合、bootパーティションに、ファイル名SSHの空ファイルを作ればOK)
OS初期セットアップ
Raspberry PI Imagerにて設定したユーザでログイン(Teratermがお勧め)
まずはお約束
sudo apt update
sudo apt upgrade
DLNA Rendererインストール
DLNAレンダラの前提パッケージ・本体のインストール
sudo apt install gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-plugins-bad gmediarender
DLNA Renderer設定
まず、USB DACのデバイスを確認。
2つ目に出ている Card 1、Device 0 が出力に指定したいデバイス。
aplay -l
#以下はBeagleboneでの例です。-----------------------------
**** List of PLAYBACK Hardware Devices ****
card 0: Black [TI BeagleBone Black], device 0: davinci-mcasp.0-i2s-hifi i2s-hifi-0 [davinci-mcasp.0-i2s-hifi i2s-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Pro [DX7 Pro], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
設定ファイルを、以下のように更新
sudo nano /etc/default/gmediarender
# 以下を追記。これは必須。
ENABLED=1
# DLNAコントローラから見える機器名を変える場合は以下を更新
UPNP_DEVICE_NAME="gmediarender on $(hostname)"
# ボリュームの初期値。小さすぎるので0にしておく
INITIAL_VOLUME_DB=0.0
# 出力デバイスの指定。aplay -lの結果に合わせる
# hw:カード番号,デバイス番号 で指定
ALSA_DEVICE="hw:1,0"
# エラー調査用にログを出力するようにしておく。安定してきたらなくてもOK
DAEMON_EXTRA_ARGS="--logfile /var/log/gmediarender.log"
サービスの自動起動の設定、サービス起動
# OS起動時にレンダラーサービスが自動起動するように設定
sudo systemctl enable gmediarender.service
# まだサービスは動いていないので起動
sudo systemctl start gmediarender.service
# サービスの起動確認
sudo systemctl status gmediarender.service
# 以下のように active(running) となっていればOK
gmediarender.service - LSB: Start GMediaRender
Loaded: loaded (/etc/init.d/gmediarender; generated)
Active: active (running) since Wed 2025-04-30 10:15:33 UTC; 55s ago
Docs: man:systemd-sysv-generator(8)
Process: 1444 ExecStart=/etc/init.d/gmediarender start (code=exited, status=0/
Tasks: 13 (limit: 1026)
Memory: 62.4M
CGroup: /system.slice/gmediarender.service
あると便利な設定・もの
-
Teratermのログ設定。いつ・何をやったかの記録が残るので設定推奨。ただしキーボード操作がすべて残るので見づらいです。
-
信頼できるSDカード。安いSDカードはだめです。本当にすぐに壊れます。
-
RaspContoroller。Androidからラズパイを操作しやすいです。電源切り忘れたときなど便利。
-
ArgonOneV2,V3ケース。電源ボタン付きで便利。ラズパイは電源をブチ切すると、SDカードが壊れやすい為、必ずちゃんと電源を落とします。
ラズパイでなく、beagleboneで本体のemmcを使用するとSDカードの問題はクリアになります。レスポンスは気持ち遅くなります。
余談
-
Raspberry PI Imagerで、WiFiなどの設定はできますが、なぜかうまくいかないことが多いです。信用せず、チェックするのがおすすめです。私は余計なものを動かしたくなく、有線でつなげやすい環境のため、WiFiは無効化してます。(WiFiやBluetoothは動かさないのが推奨)
-
gmediarenderは古くあまりメンテナンスされておらず、gmrender-resurrectが出ています。ただ私の環境ではgmrender-resurrectは安定しなかったので、gmediarenderに戻しました。