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に自動アップデートの設定もある
3日前、オレンジパイゼロが届き、ラズベリーパイ3とVolumioでおこなっているような無線の環境で音楽が聴ければと思っていました。ただ、どうしてよいかわからずにいたところ昨日googleさんでたどり着き、参考にさせていただきました。とても丁寧な解説で、本日お昼からお休みだったこともあり、OS・mpdのインストールからDACの設定。併せて、無線の設定。NASのマウントまで行うことができました。あまりにあっけなく、設定できたために、うれしくてコメントさせていただきました。ありがとうございました。
お役にたてて何よりです。
まず、基本的な流れがわかれば、読んでる人も応用もしやすいだろうなというのを意識して、書いてみた記事です。
NASにマウントされて楽しまれてるということで、まさにこちらの期待する応用具合、うれしい限りです。
また、遊びに来てくださいませ。
とても興味を持って拝見いたしました。
さらに、orange pi zeroの方を無線LANアクセスポイント化して、ルーターを介さず
操作できるようにすることはお考えではないでしょうか。
これだけ省電力、コンパクトだと、モバイル用途を考えたくなるんです。
ご関心おありでしたら、事例としてご検討いただければ幸いです。
読んでいただいて、ありがとうございます。
「アクセスポイントにしてしまう!」なるほど、良いですね。
ただ、根が真面目なもので、技適が気になって、無線使ってないのです。
でもでも、Linux、DIYはオススメします。この記事のとおりで普通に使えるようになると思うので、ググって出て来るdebian繋がりの他記事をトライすれば、おそらく楽しい遊びになると思いますよ。
キーワード、hostapd、dhcp-serverてなところでしょうか。
とても参考になりました!orange pi zeroで実際に試してみたのですが、こんなに簡単にMPDが動かせるんですね。
が、自分の環境では、一度でもorange pi zeroを再起動やシャットダウンすると、USB DACから一切音声が出力されなくなってしまいました。数回OSのインストールからやり直したり、他のUSB DACでも同じ結果に… USB DACの再生中ランプは点灯しているので、ミュートされてしまっているような状況です。
管理人さんは似たような状況にはなりませんでしたか?
azaさん、トラブル申し訳ないです。。
そうですね、こちらでは、そのような問題には遭遇していません。
ちなみに、音が出ていない状況で再生中のとき、ターミナルから、mpcと叩いたときの、表示はどうなってます?
読んだ感じでは、volumeがどうなってるか?というところですが、自分は音量はアンプで調整するのが好みなので、設定なし(n/a)にしていました。
これを有効にするには、mpd.confのaudio_outputに
mixer_type "software"
を追加して、ターミナルからmpdをリスタート(再起でもOK)して
mpc volume 70
のようにボリュームを設定するとどうなりますか?
"software"のところ、DAC側対応していれば、"hardware"も使えます。
偉そうに書いてますが、私も知らないことだらけなので、思いつくことをひとまず返信。
はじめまして。
昨年末よりorange pi PCとUSB DACで格闘しておりましたが、こちらを参考に昨日音出しできました。
こちらを参考にNASの音源の音出しはできましたが、ブラウザのFireFoxからインターネットラジオの音出しができません。
他に何か設定があるのでしょうか?
もし、お伺いできればよろしくお願いいたします。
こんにちは
ブラウザが、どのオーディオデバイスにあたってるか?という話しに見えます。
アプリのconfでカード指定しない場合、デフォルト指定がどうか?というところでしょうか。
持ってるのがzeroで、X動かしてないので確認できないのですが、手持ちのzero(debian Jessie)だと、
/usr/share/alsa/alsa.conf の中ほどに、
defaults.ctl.card 0
defaults.pcm.card 0
という、デフォルトカードを指定する記述があります。
これを、USB-DACのカード番号にしてrebootするとどうなります?
ハズレの場合、デフォルト指定の問題だと思うので、選んだOSのキーワードとサウンド、デフォルトなどでググってみると、幸せになれるかもしれません。
追伸
先ほどのコメントに書き忘れましたが、設定はこちらを参考にsshにて行いましたが、インターネットラジオの方はHDMI接続したモニタから操作しております。
よろしくお願いいたします。
何度もすみません。
自己解決できました。
とにかく音声出力できましたのはこちらのサイトのおかげです。
どうもありがとうございました。
Have you ever installed upmpdcli?
I do not use it. It looks quite interesting.
I will try next time. Thanks for your comment.