ZERO流行り?Orange Piからも、ラインナップされてた。
安価なのは手を出しやすくて助かる。ラズパイZEROと違い、HDMIが無いけど、有線LANと無線LANが標準。USB標準サイズの口が一つある。
とりま、これでハイレゾ鳴らしてみる。I2Sはハードル高そうなので、USBDACを駆動してみる。
例によってAliExpress
と、いうか、AliExpressでしか買えないっぽい。
ショップは、Shenzhen Xunlong Software CO.,Limited です。たぶんOrangePiのオフィシャルだよね?それが、AliExpressに入ってる。
ものは、RAM256版と512版があるらしく、大は小かねで512MBを選択。8.99ドル。ついでに、拡張ボード(USB、IR受信、AUDIO出力の拡張)も購入。結果的には、拡張ボード使わなかった。(´・ω・`)
- New Orange Pi Zero H2 Quad Core Open-source 512MB
- Orange Pi Zero Expansion board Interface board Development board
あと、送料がそれぞれ3ドルずつかかった。混載関係なし。さすがオフィシャル。
到着は早かった。発注日のうちに発送され、受取まで12日。
さて、どうしよう
OrangePiって、宣伝文句にラズベリーパイ互換云々と書いてあったり、raspbianが動くみたいな紛らわしい書き方をしているけど、ラズパイ用のバイナリがそのまま使えるわけじゃない。※ココ重要
raspbianも、OrangePi用に用意されたものが動くということになる。
つまり、数あるラズパイ用のオーディオパッケージも使えない。
んーーやっぱ、普通にLinuxからの、普通にMPDが手堅いよね。
と、言うことで、さっそく、Linuxイメージを取り寄せる。OrangePiのサポートサイトから、debianやUbuntuのイメージをダウンロードできる。が、先人の知恵を拝借すると、armbianから取り寄せるほうが安定とあるので、素直に従う。※ココ重要
残念なことにarmbianのサイト、Nortonサイトチェックにひっかかる。詳細を見ると、「Limeというボードのバイナリにwebアタックがあるのん」と言っている。真偽はわからないけど、今回はOrangePiなので気にせず進む。
この時の最新
を、ダウンロードし、イメージをmicroSDに書き込む。書き込みは、いつもWin32DiskImagerを使ってる。
この後の作業の流れとしては、
- 起動してSSHで接続
- MPD,MPCとファイル送り込み用にsambaをインストール
- 音源ファイルをコピー
- USBDACの設定
- MPDクライアントから操作でハイレゾ鳴らす
ところまで。
作業は、rootでやっちゃいます。ユーザでやる場合は、適宜sudo挟んでください。
起動
microSDカードを挿入し、DHCPが有効なネットワークに有線LANケーブルを接続し、電源を投入。
電源は、USB給電可能。実測、MAX0.24Aだったので、一般的な5V1Aのアダプタで間に合うと思う。
初回起動のみゴソゴソ初期化作業が走る。処理段階の見極めとしては、緑LEDが不定期に点滅し、しばらくすると赤LEDが点滅、その後緑LEDが点灯になると、たぶん、無事に起動してる。この間に領域拡張も自動で実行する。(地味に助かる)
起動したら、DHCPで割り付けられたIPアドレスにSSHでターミナル接続。アドレスはDHCPサーバ(一般家庭では、ルータなど)のリース状況で識別できる。MACアドレスはベンダー不明だけど、de-c4-f3で始まってたので、これを目印にしてもわかると思う。
うちのルータのDHCPリース状況を見ると、10.10.10.146らしい。
TERATermでSSH接続。ユーザ「root」、初期パスワード「1234」
無事接続できると、rootのパスワード変更と、ユーザ作成のスクリプトが走る。今回作業はrootでやるので、設定するrootのパスワードだけ忘れない。あとは適当。
mpd mpc sambaのインストール
まず、お約束
1 2 |
root@orangepizero:~# apt update root@orangepizero:~# apt upgrade |
アプリインストール
1 |
root@orangepizero:~# apt install -y mpd mpc samba |
以上。(´・ω・`)
例えば、mpcコマンド打ってみる。
1 2 3 4 5 |
root@orangepizero:~# mpc volume: n/a repeat: off random: off single: off consume: off root@orangepizero:~# mpc random volume: n/a repeat: off random: on single: off consume: off |
と反応する。
sambaを設定
とりあえず、音源ファイルを転送するためsambaの設定する。sambaしかけておくと、windowsなどからネットワークドライブとして扱えるようになる。
smb.confの最後に以下を追加
1 |
root@orangepizero:~# nano /etc/samba/smb.conf |
1 2 3 4 5 6 |
[share] path = /var/lib/mpd/music read only = no browsable = yes guest ok = yes force user = root |
これを保存(nanoの場合、ctrl-o enter で保存、ctrl-xでnano終了)すると、sambaリスタートしなくても、共有フォルダが見えるようになる。(不思議だ)
windowsのエクスプローラから、¥¥IPアドレスでアクセスすると、設定したshareフォルダが見えるはず。
shareフォルダに移動し、音源ファイルをここにコピーする。
コピーが終われば、mpdのDBを更新しておく
1 2 3 |
root@orangepizero:~# mpc update Updating DB (#2) ... volume: n/a repeat: off random: on single: off consume: off |
USBDACの設定
ここが肝だよね。シレッと、基本自動認識される前提で書いてるのは内緒。
実験対象は、過去に組み立てた、こちらのUSBDAC
まず、認識前のaplay -l
1 2 3 4 5 6 7 8 |
root@orangepizero:~# aplay -l **** List of PLAYBACK Hardware Devices **** card 0: audiocodec [audiocodec], device 0: SUNXI-CODEC sndcodec-0 [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: sndhdmi [sndhdmi], device 0: SUNXI-HDMIAUDIO sndhdmi-0 [] Subdevices: 1/1 Subdevice #0: subdevice #0 |
orange pi zeroのUSBポートにUSBDACを接続。
接続後のaplay -l
1 2 3 4 5 6 7 8 9 10 11 |
root@orangepizero:~# aplay -l **** List of PLAYBACK Hardware Devices **** card 0: audiocodec [audiocodec], device 0: SUNXI-CODEC sndcodec-0 [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: sndhdmi [sndhdmi], device 0: SUNXI-HDMIAUDIO sndhdmi-0 [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 2: D20 [DIYINHK USB Audio 2.0], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0 |
と、いうことで、card 2として、認識。
このカード情報を、mpd.confのaudio_outputの記述があるところに追加する。
1 |
root@orangepizero:~# nano /etc/mpd.conf |
1 2 3 4 5 6 |
audio_output { type "alsa" name "DIYINHK USB Audio 2.0" dsd_usb "yes" device "hw:D20,0" } |
- type:alsa
- name:適当
- dsd_usb:dsd対応DACであればyes 非対応ならこの行不要
- device:[hw:][card nの横のキーワード],[deviceの数字]
設定後、mpdをリスタート。
1 |
root@orangepizero:~# systemctl restart mpd |
これで、準備完了
mpdクライアントから鳴らす
windowsやスマホアプリのmpdクライアントから、mpdにアクセスして音源を鳴らす。スマホでやりたいので、android用を検索してみると、たくさん出てくる。そのなかでも、MPDroidやM.A.L.Pの評価が高いみたい。
2つ試してみて、操作性で、MPDroid > M.A.L.Pだったので、MPDroid紹介。
MPDroidをインストール、起動後、IPアドレスを設定
menu > Settings > Connection settings > Default connection settings > Host
出力先をUSBDACに設定
menu > Outputs
あとは、menu > Library を見ると、コピーしていた音源ファイルが見えているはず。これをプレイリストに登録して再生する。
鳴らしてみて
音源ファイルがローカルにあるからだとも思うけど、PCM352.8KHz/24bitもDSD256もストレス無く鳴りきる。
あと、MPDクライアントからの操作が滑らか。サクサク動くとはこのことだな。
まとめ
ハードウェアを自動認識してくれる限り、Linuxって便利だなぁとつくづく思う。
ネットワーク内にNASやDLNAサーバ構築してるけど、どうせ聴くのはアルバム10枚ほどのヘビロテだし、この環境で十分じゃないかと思ってきた。何より、軽いのが良い。
またの機会に、激安中華DDCや市販DACでも試してみます。あと、I2Sも。
おまけ
シリアルコンソールが、はじめから使える。上記手順では使わなかったけど、SSHが繋がらないなどのトラブルシューティングや、起動終了のログをみたりできる。
こういうシリアル変換ケーブルを使うと簡単
TERATermをUSBシリアルのCOMで繋ぎ、通信設定は、115200bps、8bit、ノンパリ、1stopbitに設定。
あと、いりそうなコマンド
- シャットダウンは、shutdown -h now
- リブートは、reboot
あと、やりがちなミス
- ファイルコピーしたあとの、mpc update 忘れ
updateは、MPDクライアントのメニューにあるものもある
mpd.confに自動アップデートの設定もある