• 車種別
  • パーツ
  • 整備手帳
  • ブログ
  • みんカラ+
イイね!
2019年06月15日

ネットワークオーディオ自作(1) MinimServer

ネットワークオーディオ自作(1) MinimServer (2020/9追記)
ラズパイ関連の記事は消費期限が短くて困ります・・・サーバーアプリをバージョンアップされたMinimServer2に、UPSは電池を使わないタイプに変更し、2020年版として書き直しました。こちらへどうぞ。










我が家&我が車で稼働中のUSBオーディオ。
動作は安定しているし、音質的にも悪くないと思うのですが、安定しちゃうと面白くないというか、次に行ってみたくなり。

ホームオーディオの世界を眺めていると、ここ数年はUSBオーディオに代わってネットワークオーディオが騒がしい賑やかなので、そっち方面からネタを導入します。

まずはラズパイとMinimServerで音楽用サーバーを組んでみました。

alt
Raspberry Pi 3 Model B

「ラズパイオーディオ」といえばI2S接続のDACやDDCを載せるのが定番ですが、今回は違った使い方で行きます。

MinimServerはJavaベースのUPnP(DLNA)サーバーで、flacはもちろんDSDにも対応しています。寄付歓迎のドネーションウェアです。
以前PC版を使った時の印象は、タグやアルバムアートの処理が確実で、ナビゲーションツリーの見せ方も実用的なものでした。
現時点では数少ない「ちゃんとした」音楽サーバーアプリと言ってよいと思います。
「ちゃんとしてない」市販DLNA製品の何と多いことか。
WindowsやMacだけでなくLinux版もあり、QNAP他のNASやラズパイでも動作可能です。
公式ページの「Installing」に機種別のインストール解説があります。

以下、備忘録ってことで。環境によって多少のアレンジが必要なので「この通りやったけど動かんぞ!」とか言わないで。

準備作業1(PC側)
・MinimServer推奨のOSはRaspbianです。
ラズパイ公式サイトから、最小構成のRaspbian Stretch Liteをダウンロード。

(2019/8追記)現在はRaspbian Buster Liteに変わっています。
(2020/7追記)現在はRaspberry Pi OS Liteに変わっています。
(2020/9追記)Raspberry Pi OSでインストールしてみて、変更が必要な部分を追記しました。

・ダウンロードしたファイルを解凍して出来たOSイメージをmicroSDカードに書き込み、ラズパイにセットします。
SD Card FormatterWin32DiskImagerを使いました。

・楽曲ファイルの保存にはUSBストレージを使います。
alt
ポータブルSSD 480GB SSD-PL480U3-BK/N (バッファロー)
480GBで7000円弱。いい時代になりました。
exFAT形式でフォーマットし(後で使うのでディスクラベルを控える)、楽曲ファイルを入れておきます。
またMinimServer(Linux ARM hard float版)もダウンロードして入れておきます。

・MinimServerの状態監視と設定はPCから行えます。
PCにJavaおよびMinimWatchをインストールしておきます。

準備作業2(ラズパイ側)
・最初だけラズパイをローカルで設定します。
alt
USBポートにキーボードを接続。
テレビとHDMIケーブルで接続。
家のルーターとLANケーブルで接続。(ネット接続が必要です)
SSDもつないでおきます。

・電源を投入し、テレビとキーボードでログインします(pi/raspberry)。

・ラズパイに割り当てられたIPアドレスを調べます。
$ ifconfig 
同一ネットワークにスマホがあれば、アプリのFingでも調べられます。

・設定ツールでブートパーティションをリサイズ、SSHを有効化。
$ sudo raspi-config 
alt
「Advanced Options」から「Expand Filesystem」
「Interfacing Options」から「SSH」→「Yes」
終了→リブートすると、以降の作業はPCから可能になります。
モニターやキーボードはここで外してしまっても大丈夫。

USBディスクを使えるようにする
・SSHでログイン
PCでターミナルアプリのPuTTYを起動。
alt
調べたIPアドレスに接続しログイン。

【2020/9追記】「自分もやってみよう」という方は、最低でもパスワードは変更してください。原理的にNATで守られるIPv4と異なり、IPv6が通る環境では外部から直接SSHポートに侵入されるリスクがあります。
特にフレッツのIPoE接続でレンタルルーターをセキュリティレベル「標準」に設定している場合、フレッツIPv6網からのアクセスは拒否しない仕様(!)となっています。そこにデフォルトのユーザー名・パスワードでSSHポートを開くのは・・・
いったんSSHからラズパイに入られてしまえば、それを踏み台にしてPCのHDDやWebカメラを狙う位のことは可能ですし、実際企業では勝手に社内ネットワークにつながれたラズパイがセキュリティホールになった事例があります。
対策としては他にユーザー名やポート番号変更、証明書発行などが可能で、作業後はSSHを無効にしてしまえばより安心です。


・exFATファイルシステムをインストール。
$ sudo apt-get install exfat-fuse exfat-utils 

・接続したUSBディスクのIDを調べます。
$ sudo blkid 
表示されたリストからフォーマット時につけたラベルのある行を探します。「UUID」が必要な情報です。
/dev/sda1: LABEL="SSD-PLU3" UUID="C2C4-9374" TYPE="exfat" ...

・起動時にUSBディスクを自動マウントするように設定します。マウント名は任意。
$ sudo mkdir /mnt/usbhdd1 
$ cd /etc 
$ sudo cp fstab fstab.bak 
$ sudo nano fstab 
fstabファイルに設定を追加します。
UUID="C2C4-9374" /mnt/usbhdd1 exfat-fuse sync,auto,dev,exec,gid=65534,rw,uid=65534,noatime 0 0 
保存してエディタを終了。

・リブートしてUSBディスクにアクセスできることを確認します。
$ sudo reboot 
(起動待ち→ログイン後)
$ ls /mnt/usbhdd1 
ファイルが表示されればOK。

MinimServerのインストール
引き続きSSHコンソールから
・javaをインストール。
$ sudo apt-get install oracle-java8-jdk 
(2020/9追記)現在の公式OSであるRaspberry Pi OSでは上のコマンドは使えませんでした。代わりに以下のように入力します。
$ sudo apt install default-jdk 

・SSDに入れておいたMinimServerのインストールパッケージを/home/piディレクトリに展開します。
$ sudo cp /mnt/usbhdd1/MinimServer-0.8.5-2-linux-armhf.tar.gz /home/pi 
$ cd /home/pi 
$ tar xf MinimServer-0.8.5-2-linux-armhf.tar.gz 
(2020/9修正)tarはsudoで実行しない。

・MinimServerのセットアップ
$ minimserver/bin/setup 
デスクトップ統合→無効
自動スタートアップ→有効
※setupをsudoで実行すると自動スタートアップに失敗する。

・MinimServer起動
$ minimserver/bin/startc 
初回にライブラリの場所を聞かれるので入力する
ライブラリのスキャンが始まり、しばらく経って「MinimServer is running」と表示されれば起動完了。
alt
PC側のMinimWatchのアイコンが緑色になります。

・自動起動に設定
このままだとターミナルを終了するとMinimServerも終了してしまうので、
以下の手順で自動起動に設定する。
> exit  (MinimServerをいったん終了する)
$ minimserver/bin/startd 

起動確認後リブートして、PCのタスクトレイにあるMinimWatchのアイコンが再度緑色になれば成功です。
$ sudo reboot 


この時点でflacなどは再生可能になっています。
ローカルレンダリングに対応した(=コントローラ兼レンダラーとなれる)スマホアプリのBubbleUpnpHi-Fi Castを使って動作確認します。
alt
それぞれの端末から音を出しています。サーバー1台からの4ストリーム同時再生ってことですね。やるじゃんラズパイ。
これはこれで別の使い道がありそうな・・・と思いつつ先に進みます。

MinimStreamerのインストール
アドオンパッケージのMinimStreamerをインストールすると、レンダラーで対応しないコーデックをトランスコード配信可能になります。DSDのDoP配信にも必要です。

・ffmpegのインストール
コーデック群のffmpegを使えるようにしておきます。
再度SSHでログイン。
$ dpkg-query -W ffmpeg 
dpkg-query: no packages found matching ffmpeg 
↑入っていなかったのでインストールしました。
$ sudo apt-get install ffmpeg 
以前はラズパイ用のパッケージが無くソースコードからビルドする必要があったそうですが、今はapt-get一発で楽ちんです。
(2020/9追記)Raspberry Pi OSではffmpegのインストール前にupdateが必要でした。
$ sudo apt-get update 


・MinimStreamerのインストール
alt
アドオンパッケージはPCからインストールします。MinimWatchのアイコンを右クリック→Propertiesで設定画面を開き、Packagesのタブにあります。
alt
インストールが終わったらRelaunchで再起動。
alt
ffmpegを自動検出したことが、設定画面のSystemタブで確認できます。
使用するレンダラーに応じてstream.transcodeに設定を追加します・・・が、レンダラーはまだ作ってないので保留。

Linuxなので電源ブチ切りはNG。シャットダウン操作が必要です。
$ sudo shutdown -h now 

UPSの取り付け
コンソールを開いてシャットダウンコマンドを打ち込まないと電源を落とせないのは不便なので、探したら対策パーツがありました。
alt
UPS PIco HV3.0B+ (πmodules)

ラズパイ専用の無停電電源です。
450mAhと比較的小さなバッテリーを搭載していて、ラズパイからの5V電源で動作、数分間だけバックアップが可能です。(オプションの大容量バッテリーあり)
外部からの電源供給が途絶えるとバッテリー給電に切り替え、設定した時間で自動シャットダウンまでできる優れもの。
これで最後のピースが埋まるぞ!
と飛び付いたわけです。

購入は公式オンラインショップから。3モデルあり、用途に応じて選択します。
・Stack 450
・Advanced 450
・Top-End 450
DACなどの拡張ボード(HAT)と併用する場合は「スタック」または「アドバンスト」を。ただしGPIOを2本使用するので、HATとピンが重複する場合は使えません。「アドバンスト」は外部電源端子があり7~28Vを入力できます。
接続するラズパイのモデルにより異なる場所に取り付けるピンがあり、いくつかの部品はユーザーが半田付けする仕様になっています。購入時オプションの組み立てサービスを利用すると半田付け済みで出荷してくれるので楽ですが、注文から到着まで1ヶ月弱かかりました。
(2019/8追記)
公式ショップがリニューアルし、上記リンクから新ショップに誘導されます。しかし新ショップでは購入時オプションが指定できなくなっているようです。直してくれると良いのですが・・・
(2019/9追記)直ったようです。リンクを新ショップに更新しました。

alt
HATを使わない「トップエンド」を調達しました。
組み立てサービスを利用しても背の高いI/Oピンヘッダ(UPSを動作させるのに必須ではない)だけは実装されておらず、この通りラズパイごとksyの公式ケースに収められます。(最初に使っていた透明ケースには高さが足りず入りませんでした)

組み立てとソフトウェアのインストールは公式サイトに詳細なマニュアルがあります。

作業のほとんどは半田付けで、そこを組み立てサービスで回避すれば完成品をラズパイに載せてバッテリーを取り付けるだけ。ラズパイの基板と接触させるピンが繊細なので曲げないよう、また指定の場所に接触するよう注意。
ソフトウェアの方も難しくはありません(GitHubのガイド)が手順がやや多いです。テクニカルフォーラムにあるインストールスクリプトが簡単なので利用させてもらいました。
(UPS PIco HV3.0A, HV3.0B and HV3.0B+
→ UPS PIco HV3.0 Python and other Tools
→ [script] PIco HV3.0A Toolkit に説明があります)

$ sudo raspi-config 
「Interfacing Options」からI2Cを有効化
「Localisation Options」からタイムゾーンを「None of the above」→「GMT+9」に設定(PIcoにはRTCモジュールが搭載されています)
以下の通りスクリプトをインストール&実行。
$ sudo apt-get install git 
$ git clone https://github.com/Siewert308SW/pico_installer PIcoToolKit 
$ cd PIcoToolKit 
$ sudo chmod +x picotoolkit.sh 
$ sudo bash picotoolkit.sh 


最後にシャットダウンまでの時間を好みで修正して完成。i2cget/i2csetコマンドを使います。設定時間は、現在のバージョンでは最短60秒のようです。以前は10秒位にできたそうなので何かの対策があったのかもしれません。

ひとまず以上です。
電源を入れるだけで立ち上がり、電源を落とせば安全に終了する、手のひらサイズのサーバーができました。電源投入から再生可能までは30秒ほどかかります。

ネットオーディオなので、サーバー、レンダラー、コントローラのいわゆる3点セットが必要です。残り2点をどうするか、ファイル共有(sambaやNFS)でなくUPnPを選択した時点で方針は固まっているのですが、長くなったので次回に続きます。


(2020/1追記)
MinimServerの次期バージョンとして、MinimServer2のアナウンスがありました。現時点では一部のNAS用のみリリースされています。
新バージョンは無償の機能限定版と年間ライセンス版の二本立てになります。
(2020/3追記)
MinimServer2にWindows版が追加となりました。

(2020/8追記)
UPSに使っている電池が
alt
こんな事になったので交換しました。
1年で電池が膨らんでしまうのは早い気もしますが、UPSの特性上常に満充電状態、しかもラズパイに温められて使われているので、条件として厳しいことは確か。リチウムイオン電池は危険物なので車内に放置しないよう、また定期的な点検は必要ですね。もう少し気楽に使える方法はないか、検討中です。




ネットワークオーディオ関係の記事をまとめてみました。よかったらこちらもご覧くださいませ。
ネットワークオーディオを楽しもう
ブログ一覧 | オーディオ | クルマ
Posted at 2019/06/15 17:06:03

イイね!0件



タグ

今、あなたにおすすめ

ブログ人気記事

【さらば九州】④ネオクラのあとは、 ...
LEN吉さん

関東は今日から暑くなるようです!
のうえさんさん

夜によくイくラーメン5
グルテンフリー!さん

口輪の続き
ターボ2018さん

「バッテリーが爆発しそうになった」 ...
エイジングさん

強制油分摂取
アーモンドカステラさん

この記事へのコメント

2019年6月22日 19:11
UPS Picoいいですね~、毎度なかるうさんのパーフェクトなシステム統合には脱帽です。私バチっと切ってます、時折バチが当たります。
コメントへの返答
2019年6月22日 22:37
PIcoもカンペキでは無い様で、今日はエンジンOFFしたらラズパイもバチッと切れてしまい「おいバックアップどうした!?」となりました。

はくびしんさんのように実用上問題なしと判断して行動されるのは実は感心しているのですよ。「お前はリスクマネジメントができてない」と仕事では怒られてます(笑)

プロフィール

「qobuzアプリで対応プレーヤーが使えるQobuz Connectがスタート。ということは、CarPlayを使いつつ任意のハードで音声出力できるのでは?」
何シテル?   05/11 15:22
「なかるー」改め「なかるう」、「う」は大きい「う」です。 音楽のあるドライブが好きです。いい音だったらもっと楽しいですよね。なのでいい音を追求してます。 更...

ハイタッチ!drive

みんカラ新規会員登録

ユーザー内検索

<< 2025/6 >>

1234567
891011121314
15161718192021
22232425262728
2930     

リンク・クリップ

備忘 Passat Variant 11年14万kmの整備振り返り 
カテゴリ:その他(カテゴリ未設定)
2024/10/18 00:02:25
Ottocast A2AIR Pro 
カテゴリ:その他(カテゴリ未設定)
2024/06/18 03:24:43
柳楽光隆さんのメローなジャズのプレイリスト 
カテゴリ:その他(カテゴリ未設定)
2024/01/07 23:24:33

愛車一覧

フォルクスワーゲン パサート セダン フォルクスワーゲン パサート セダン
フォルクスワーゲン パサート セダン (DBA-3CCAX) に乗っています。 シトロエ ...
日産 ティーダラティオ 日産 ティーダラティオ
(2015/8)乗り換えのため手放しました。 日産 ティーダラティオ15G(DBA-S ...

過去のブログ

2024年
01月02月03月04月05月06月
07月08月09月10月11月12月
2023年
01月02月03月04月05月06月
07月08月09月10月11月12月
2022年
01月02月03月04月05月06月
07月08月09月10月11月12月
2021年
01月02月03月04月05月06月
07月08月09月10月11月12月
2020年
01月02月03月04月05月06月
07月08月09月10月11月12月
2019年
01月02月03月04月05月06月
07月08月09月10月11月12月
2018年
01月02月03月04月05月06月
07月08月09月10月11月12月
2017年
01月02月03月04月05月06月
07月08月09月10月11月12月
2016年
01月02月03月04月05月06月
07月08月09月10月11月12月
2015年
01月02月03月04月05月06月
07月08月09月10月11月12月
2014年
01月02月03月04月05月06月
07月08月09月10月11月12月
2013年
01月02月03月04月05月06月
07月08月09月10月11月12月
2011年
01月02月03月04月05月06月
07月08月09月10月11月12月
ヘルプ利用規約サイトマップ

あなたの愛車、今いくら?

複数社の査定額を比較して愛車の最高額を調べよう!

あなたの愛車、今いくら?
メーカー
モデル
年式
走行距離(km)
© LY Corporation