orange pi ZERO で USBDACを鳴らす

ZERO流行り?Orange Piからも、ラインナップされてた。
安価なのは手を出しやすくて助かる。ラズパイZEROと違い、HDMIが無いけど、有線LANと無線LANが標準。USB標準サイズの口が一つある。
とりま、これでハイレゾ鳴らしてみる。I2Sはハードル高そうなので、USBDACを駆動してみる。

LANコネクタが大きく感じる(アンテナ外してます)
LANコネクタが大きく感じる(アンテナ外してます)
アルコールリンク ☆彡

-info-
モンドセレクション12年連続金賞受賞蔵より直送
日本酒を贈り物にするなら

例によって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を使ってる。

この後の作業の流れとしては、

  1. 起動してSSHで接続
  2. MPD,MPCとファイル送り込み用にsambaをインストール
  3. 音源ファイルをコピー
  4. USBDACの設定
  5. MPDクライアントから操作でハイレゾ鳴らす

ところまで。

作業は、rootでやっちゃいます。ユーザでやる場合は、適宜sudo挟んでください。

起動

microSDカードを挿入し、DHCPが有効なネットワークに有線LANケーブルを接続し、電源を投入。
電源は、USB給電可能。実測、MAX0.24Aだったので、一般的な5V1Aのアダプタで間に合うと思う。

mini-USBで給電
mini-USBで給電

初回起動のみゴソゴソ初期化作業が走る。処理段階の見極めとしては、緑LEDが不定期に点滅し、しばらくすると赤LEDが点滅、その後緑LEDが点灯になると、たぶん、無事に起動してる。この間に領域拡張も自動で実行する。(地味に助かる)

起動したら、DHCPで割り付けられたIPアドレスにSSHでターミナル接続。アドレスはDHCPサーバ(一般家庭では、ルータなど)のリース状況で識別できる。MACアドレスはベンダー不明だけど、de-c4-f3で始まってたので、これを目印にしてもわかると思う。

うちのルータのDHCPリース状況を見ると、10.10.10.146らしい。

DHCPで割り付けられたIPアドレス

TERATermでSSH接続。ユーザ「root」、初期パスワード「1234」

ユーザ「root」、パスワード「1234」
ユーザ「root」、パスワード「1234」

無事接続できると、rootのパスワード変更と、ユーザ作成のスクリプトが走る。今回作業はrootでやるので、設定するrootのパスワードだけ忘れない。あとは適当。

初回起動のキャプ
初回起動のキャプ

mpd mpc sambaのインストール

まず、お約束

アプリインストール

以上。(´・ω・`)

例えば、mpcコマンド打ってみる。

と反応する。

sambaを設定

とりあえず、音源ファイルを転送するためsambaの設定する。sambaしかけておくと、windowsなどからネットワークドライブとして扱えるようになる。

smb.confの最後に以下を追加

これを保存(nanoの場合、ctrl-o enter で保存、ctrl-xでnano終了)すると、sambaリスタートしなくても、共有フォルダが見えるようになる。(不思議だ)
windowsのエクスプローラから、¥¥IPアドレスでアクセスすると、設定したshareフォルダが見えるはず。

shareが見える
shareが見える

shareフォルダに移動し、音源ファイルをここにコピーする。

音源ファイルコピー
音源ファイルコピー

コピーが終われば、mpdのDBを更新しておく

USBDACの設定

ここが肝だよね。シレッと、基本自動認識される前提で書いてるのは内緒。
実験対象は、過去に組み立てた、こちらのUSBDAC

まず、認識前のaplay -l

orange pi zeroのUSBポートにUSBDACを接続。

USB接続
USB接続

接続後のaplay -l

と、いうことで、card 2として、認識。

このカード情報を、mpd.confのaudio_outputの記述があるところに追加する。

  • type:alsa
  • name:適当
  • dsd_usb:dsd対応DACであればyes 非対応ならこの行不要
  • device:[hw:][card nの横のキーワード],[deviceの数字]

設定後、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

MPDのIPアドレスを設定
MPDのIPアドレスを設定

出力先をUSBDACに設定
menu > Outputs

USBDACを指定
USBDACを指定

あとは、menu > Library を見ると、コピーしていた音源ファイルが見えているはず。これをプレイリストに登録して再生する。

選んで追加
選んで追加

鳴らしてみて

音源ファイルがローカルにあるからだとも思うけど、PCM352.8KHz/24bitもDSD256もストレス無く鳴りきる。
あと、MPDクライアントからの操作が滑らか。サクサク動くとはこのことだな。

PCM
PCM352.8KHz
DSD256
DSD256

まとめ

ハードウェアを自動認識してくれる限り、Linuxって便利だなぁとつくづく思う。
ネットワーク内にNASやDLNAサーバ構築してるけど、どうせ聴くのはアルバム10枚ほどのヘビロテだし、この環境で十分じゃないかと思ってきた。何より、軽いのが良い。

またの機会に、激安中華DDCや市販DACでも試してみます。あと、I2Sも。

おまけ

シリアルコンソールが、はじめから使える。上記手順では使わなかったけど、SSHが繋がらないなどのトラブルシューティングや、起動終了のログをみたりできる。

手前の3ピン、左からSEND、RECV、GND
手前の3ピン、左からSEND、RECV、GND

こういうシリアル変換ケーブルを使うと簡単

USBシリアル変換
USBシリアル変換ケーブル
こんな感じで繋ぎます
こんな感じで繋ぎます

TERATermをUSBシリアルのCOMで繋ぎ、通信設定は、115200bps、8bit、ノンパリ、1stopbitに設定。

起動時のログキャプ
起動時のログキャプ

あと、いりそうなコマンド

  • シャットダウンは、shutdown -h now
  • リブートは、reboot

あと、やりがちなミス

  • ファイルコピーしたあとの、mpc update 忘れ
    updateは、MPDクライアントのメニューにあるものもある
    mpd.confに自動アップデートの設定もある

 

サイト内関連記事

スポンサーリンク

orange pi ZERO で USBDACを鳴らす」への10件のフィードバック

  1. plum_m

    3日前、オレンジパイゼロが届き、ラズベリーパイ3とVolumioでおこなっているような無線の環境で音楽が聴ければと思っていました。ただ、どうしてよいかわからずにいたところ昨日googleさんでたどり着き、参考にさせていただきました。とても丁寧な解説で、本日お昼からお休みだったこともあり、OS・mpdのインストールからDACの設定。併せて、無線の設定。NASのマウントまで行うことができました。あまりにあっけなく、設定できたために、うれしくてコメントさせていただきました。ありがとうございました。

    返信
    1. ルチ

      お役にたてて何よりです。
      まず、基本的な流れがわかれば、読んでる人も応用もしやすいだろうなというのを意識して、書いてみた記事です。
      NASにマウントされて楽しまれてるということで、まさにこちらの期待する応用具合、うれしい限りです。
      また、遊びに来てくださいませ。

      返信
  2. exiad

    とても興味を持って拝見いたしました。
    さらに、orange pi zeroの方を無線LANアクセスポイント化して、ルーターを介さず
    操作できるようにすることはお考えではないでしょうか。

    これだけ省電力、コンパクトだと、モバイル用途を考えたくなるんです。
    ご関心おありでしたら、事例としてご検討いただければ幸いです。

    返信
    1. ルチ

      読んでいただいて、ありがとうございます。
      「アクセスポイントにしてしまう!」なるほど、良いですね。
      ただ、根が真面目なもので、技適が気になって、無線使ってないのです。
      でもでも、Linux、DIYはオススメします。この記事のとおりで普通に使えるようになると思うので、ググって出て来るdebian繋がりの他記事をトライすれば、おそらく楽しい遊びになると思いますよ。
      キーワード、hostapd、dhcp-serverてなところでしょうか。

      返信
  3. aza

    とても参考になりました!orange pi zeroで実際に試してみたのですが、こんなに簡単にMPDが動かせるんですね。
    が、自分の環境では、一度でもorange pi zeroを再起動やシャットダウンすると、USB DACから一切音声が出力されなくなってしまいました。数回OSのインストールからやり直したり、他のUSB DACでも同じ結果に… USB DACの再生中ランプは点灯しているので、ミュートされてしまっているような状況です。
    管理人さんは似たような状況にはなりませんでしたか?

    返信
    1. ルチ

      azaさん、トラブル申し訳ないです。。
      そうですね、こちらでは、そのような問題には遭遇していません。
      ちなみに、音が出ていない状況で再生中のとき、ターミナルから、mpcと叩いたときの、表示はどうなってます?

      読んだ感じでは、volumeがどうなってるか?というところですが、自分は音量はアンプで調整するのが好みなので、設定なし(n/a)にしていました。
      これを有効にするには、mpd.confのaudio_outputに
      mixer_type "software"
      を追加して、ターミナルからmpdをリスタート(再起でもOK)して
      mpc volume 70
      のようにボリュームを設定するとどうなりますか?

      "software"のところ、DAC側対応していれば、"hardware"も使えます。

      偉そうに書いてますが、私も知らないことだらけなので、思いつくことをひとまず返信。

      返信
  4. 山田

    はじめまして。
    昨年末よりorange pi PCとUSB DACで格闘しておりましたが、こちらを参考に昨日音出しできました。
    こちらを参考にNASの音源の音出しはできましたが、ブラウザのFireFoxからインターネットラジオの音出しができません。
    他に何か設定があるのでしょうか?
    もし、お伺いできればよろしくお願いいたします。

    返信
    1. ルチ

      こんにちは
      ブラウザが、どのオーディオデバイスにあたってるか?という話しに見えます。
      アプリのconfでカード指定しない場合、デフォルト指定がどうか?というところでしょうか。
      持ってるのがzeroで、X動かしてないので確認できないのですが、手持ちのzero(debian Jessie)だと、
      /usr/share/alsa/alsa.conf の中ほどに、
       defaults.ctl.card 0
       defaults.pcm.card 0
      という、デフォルトカードを指定する記述があります。
      これを、USB-DACのカード番号にしてrebootするとどうなります?

      ハズレの場合、デフォルト指定の問題だと思うので、選んだOSのキーワードとサウンド、デフォルトなどでググってみると、幸せになれるかもしれません。

      返信
  5. 山田

    追伸 

    先ほどのコメントに書き忘れましたが、設定はこちらを参考にsshにて行いましたが、インターネットラジオの方はHDMI接続したモニタから操作しております。
    よろしくお願いいたします。

    返信
  6. 山田

    何度もすみません。
    自己解決できました。
    とにかく音声出力できましたのはこちらのサイトのおかげです。
    どうもありがとうございました。

    返信

コメントを残す

メールアドレスが公開されることはありません。