安いのにネイティブDSD再生できるAoide DAC IIはなかなかいいのですが、ドライバがVolumioに組み込まれておらず、メーカーが公開されしているAoide DAC II組み込み済みのイメージを使う必要があります。しかしながら、常に最新のVolumioに追随してくれるわけではなく。。。いろいろ試して自分でドライバを最新のVolumioに組み込む方法がわかりました。
メーカーが公開しているVolumioイメージは古い
Aoide DAC IIについては以下の記事を参照ください:
Aoide DAC IIのドライバが組み込まれたVolumioイメージは以下のページで公開されています。
が、この記事を書いている時点で最新版は2019/2/22に公開されたバージョン2.555です。
一方、Volumioの最新バージョンは2019/8/2に公開されたバージョン2.599であり、半年くらい更新がありません。
常に最新バージョンを使うのがいいわけではないですが、せっかく頻繁に更新してくれているので最新版を使ってみたいというのがユーザーの心かと思います。
(追記):新しいUIが標準になった2.714でもちゃんと動きました。
実はVolumioに組み込むためのドライバとパッチを公開している
実は、Aoide DAC IIのメーカーは、Volumioのイメージは常に新しいものを公開してくれているわけではないですが、ドライバとパッチに関しては最新のVolumioのものを用意してくれています。
こちらのGitにそれらがあります。
この中にpatch_volumio.shというものがあり、このバージョンが v2.599_pi4_4.19.60 となっているので、最新のVolumioに対応してそうです(注: 常にVolumio側との整合性は確認すべきです)。
READMEにも
For system that can use rpi-update.
curl -L –output ./dac_install.sh https://github.com/howardqiao/aoide-dac-drivers/raw/master/dac_install.sh && chmod +x ./dac_install.sh
sudo ./dac_install.sh
とあるので、単純にこれらを最新のVolumio上から実行すれば組み込めそうに見えるのですが、うまくいきません。
どうやらこのパッチはVolumioのLinuxにAoide DAC IIのドライバを組み込むためのものであって、Volumioで使えるようにするにはさらにやるべきことがあるようです。
(追記): 9月上旬にアップデートがありましたが、同様の手順で行けました。
最新のVolumioでAoide DAC IIを使えるようにする手順
そんなわけで2日くらいああでもないこうでもないと悩んで、最終的に音が出るようになった手順がこちらです。Volumioのバージョン2.599ではこれでうまくいっています。
常にVolumioのバージョンとパッチ&ドライバのバージョンの整合性が取れているか確認して作業してください。
公式のVolumioをSDカードに焼き起動する
何はなくとも元となるVolumioは必要です。
GitからAoide DAC IIのドライバとパッチ一式をダウンロード
Raspberry piのHDMI出力あるいはSSHでターミナル接続してコマンドが打てるようにします。
そして、ログインしてすぐの場所で以下のコマンドを打ち、ドライバとパッチ一式をダウンロードします。
git clone https://github.com/howardqiao/aoide-dac-drivers.git
これで、aoide-dac-drivers/というフォルダができるかと思います。
パッチファイルを編集
このaoide-dac-drivers/というフォルダに移動し、dac_install.shを編集します。
カーネルのバージョンが間違っているので修正
driver_version=”4.14.60″となっていますが、これは間違いで、 driver_version=”4.19.60″が正しいです。ここはVolumioのバージョンごとに違うのでuname -aで調べてください。たぶん、普通は間違っていないと思いますが。。。
Raspberry pi本体のオーディオ機能を無効化しない
このパッチの中でRaspberry pi本体のオーディオ機能を無効化するようになっています。具体的には、
function driver_disable(){
sed -i “s/audio=on/audio=off/” /boot/config.txt
の部分です。
オーディオ的にはオフした方がいいのかもしれませんが、どうやらVolumioのシステムが本体側のオーディオがオンになっていることを前提に作られているらしく、I2S接続のカードは2番目のデバイスとして扱われます。
このため、本体側のオーディオを無効化すると、I2S接続のカードが1番目のデバイスになり、Volumioが2番目のデバイスを見つけられずに音が出ません。
このため、 sed -i “s/audio=on/audio=off/” /boot/config.txt を消すかコメントアウトします。
パッチをあてる
修正が終わったら、
sudo ./dac_install.sh
を実行します。対象はAoide DAC IIを選びます。
tarがUIDやGIDを変更できないという警告を出しますが無視します。
終わると再起動するか聞かれますが、まだやることがあるので再起動しません。
VolumioでAoide DAC IIを扱えるようにする
ここまでの作業でVolumioのLinuxシステムにAoide DAC IIが組み込まれました。が、まだVolumioからAoide DAC IIが扱えない状態なので、Volumioの設定をいじって使えるようにします。
やるべきことは、patches/common.txtとpatches/volumio_aoide2.txtに書いてある内容です。
patches/common.txtの内容をあてる
まず、/volumio/app/plugins/audio_interface/alsa_controller/UIConfig.jsonを編集します。
この中の
“id”: “mpdvolume”,
と書いてある行を見つけます。そのちょっと下に、
“value”:false
となっているところがあるかとおもいますので、これをtrueにします。
また、 /volumio/app/plugins/system_controller/system/UIConfig.json を編集し、
"id":"section_updates",
と書いてある行を探します。その下の最初の{}で囲まれている7行ほどを削除します。このファイルはコメントアウトできないので削除してください。なお、この修正はVolumioからOTAによるアップデートを行うボタンを削除するだけの処理なので、間違って押すことがなければやる必要はありません。
patches/volumio_aoide2.txtの内容をあてる
続いて、 /volumio/app/plugins/system_controller/i2s_dacs/dacs.json を編集します。
(追記): 以下のブログの内容をコピペするとダブルクォーテーションが全角になってしまうというご報告がありました。ご利用の際はご注意ください。
この中の{“id”:”allo-boss-dac”,…という行の上に以下の4行を挿入します:
{“id”:”aoide-dacii”,”name”:”Aoide DAC II”,”overlay”:”aoide-dacii”,”alsanum”:”1″,”mixer”:”Digital”,”modules”:””,”script”:””,”needsreboot”:”yes”},
{“id”:”aoide-digi-pro”,”name”:”Aoide Digi Pro”,”overlay”:”aoide-digipro”,”alsanum”:”1″,”mixer”:”Digital”,”modules”:””,”script”:””,”needsreboot”:”yes”},
{“id”:”aoide-zero-dacplus”,”name”:”Aoide Zero DAC+”,”overlay”:”aoide-zero-dacplus”,”alsanum”:”1″,”mixer”:”Digital”,”modules”:””,”script”:””,”needsreboot”:”yes”},
{“id”:”aoide-zero-digiplus”,”name”:”Aoide Zero Digi+”,”overlay”:”aoide-zero-digiplus”,”alsanum”:”1″,”mixer”:””,”modules”:””,”script”:””,”needsreboot”:”yes”},
次に、 /volumio/app/plugins/audio_interface/alsa_controller/cards.json を編集します。
{“name”: “snd_rpi_hifiberry_dac”,…という行の上に以下の4行を挿入します。
{“name”: “sndrpiaoidedigi”, “multidevice”: false, “prettyname”: “Aoide Digi Pro”, “type”:”i2S”},
{“name”: “II”, “multidevice”: false, “prettyname”: “Aoide DAC II”, “defaultmixer”: “Digital”, “type”:”i2S”},
{“name”: “sndrpiaoidezerodacplus”, “multidevice”: false, “prettyname”: “Aoide Zero DAC Plus”, “type”:”i2S”},
{“name”: “sndrpiaoidezerodigiplus”, “multidevice”: false, “prettyname”: “Aoide Zero Digi Plus”, “type”:”i2S”},
SSHが使えるようにする
再起動後になぜかsshが使えなくなるので、
sudo touch /boot/ssh
を実行しておきます。
ここまで終わったらsudo rebootで再起動します。なお、オーディオ機器のボリュームは最低にしておくことをお勧めします。
alsamixerで入力を変える
これで再起動して音楽を再生してもおそらく音は鳴らないかと思います。
再びコンソールに移動し、
alsamixer
を実行します。そして、F6をおして Aoide DAC IIを選ぶと以下のような画面になります:

ここで一番左の”Auto Input”が”Input”になっているのが問題なので、これを”I2S or DSD”に変更します。
他は変更の必要ありませんが、”Filter Type”を変更するとフィルタータイプを変えて音の変化を楽しめます。
Volumioの設定をする
ここまで出来たらようやくVolumioの設定を行います。
オーディオ出力デバイスをAoide DAC IIに変更
設定→プレイバックオプションのオーディオ出力の出力デバイスをAoide DAC IIに変更し、保存を選びます。すると再起動を促されるので従います。
再びプレイバックオプションの設定を確認し、以下のように出力デバイスもDAC ModelもAoide DAC IIになっていることを確認します。

ここで/boot/config.txtを確認すると、Volumioの設定とAoide DAC IIのパッチあてで、
dtoverlay=aoide-dacii
が2か所あったり、
dtoverlay=es90x8q2m-dac
という余計な行があったりするので、気になるなら前者は一番下の1か所のみに、後者はコメントアウトしておきます。
起動時のサウンドを無効化
なぜか私の環境ではVolumio起動時のサウンド(ちゃらららーというやつ)が大音量かつ歪んで再生されるのでこれをオフにしておきます。システム設定の全般設定に起動時のサウンドがあります。

色々とやることがありましたがこれで完成です。
Volumioのビルドはうまくいかなかった
上で紹介したパッチ類の中に、volumio_aoide_builder.shというファイルがあり、どうやらVolumioを自分で構築するためのスクリプトのようです。
こちらも試したのですが、イメージファイルはできるものの、それを焼いたSDカードから起動ができず、断念しました。。。
Volumio 3のUIが先行体験可能に
これで新しいVolumioでAoide DAC IIが使えるようになりました。私のところではPCMもDSDも問題なく再生できています。
また、2.599では将来のVolumio 3で実装される予定のUIが使えるようになりました。 設定の外観からEnable Volumio3 Experimental User InterfaceをONにすることで使えます。
パソコンからはこのように見えます:

スマホではこんな感じです:

今よりもすっきりと洗練された印象です。まだあちこち動作がおかしいところが散見されますが(パソコン版で画面を小さくすると設定が選べないとか)、なかなか興味深いUIです。
(追記):新しいUIが標準になった2.714でもちゃんと動きました。
手間はかかるけどバージョンによっては効果が大きい、はず
このようにいろいろと手間がかかるAoide DAC IIの組み込みですが、バージョンによってはやる価値がない場合もあるかと思います。Volumioのバージョン履歴を確認することをお勧めします。
また、うまくいかないリスクもあるかと思いますので、公式のVolumioイメージを待ってもまったく問題ありません。
新しいもの好きの人はぜひ試してみてください。
コメント
Aoide DAC II を所持していて、最新の Volumio で使いたいと思っていたのでブログの記事を興味深く読ませていただきました。
記事の内容通り設定を行ったのですが、Volumio の WebUI にアクセス出来なくなってしまいました。(SSHからは可能)
私なりに切り分けをしたところ、patches/volumio_aoide2.txtの内容をあてる(dacs.json,cards.json の編集)を済ませると WebUI にアクセス出来なくなるようです。
何かファイルを編集する際に気をつける点などございますでしょうか?
よろしくお願いいたします。
Rikyulroさま
コメントありがとうございます。こんなマニアックな内容、誰かの役に立つのかと思いながら書いたのでお役に立てそうでうれしいです。
私も試行中にvolumio のWebUIにアクセスできなくなったことがありましたが、その時は編集したファイルのカッコの数が合わないとか文法的に間違っていたのが原因でした。
それらのファイルに追加した箇所がおかしなことになってないか確認していただけないでしょうか?
また、私のブログからコピペするときに変な文字まで入ってたり、変なところで改行されてないかもご確認ください。
それでもダメなら追加する四行+四行を一行ずつ足してどの行がダメか見るとかでしょうか。
さっそく返答いただきありがとうございます。ブログの内容とても参考になります。
試行錯誤してようやく解決しました。挿入する行をブログからコピペするとダブルクオーテーションが全角で入力されてしまうようです… volumio_aoide2.txt の該当箇所をコピペすることで WebUI にアクセス出来るようになりました。
なんとか音出しまで確認できたのですが、プレイバックオプションの Audio Resampling を On にすると、音がノイズまみれになってしましました。これって私の環境だけでしょうか?気になっています。
先に進んだようで良かったです。全角の件は記事にも情報として追記させていただきます。
リサンプリングの機能は私は使ったことがないのでわかりません。後から試してご報告させていただきます。ちなみに、Aoide fac ii 公式のVolumioの場合はちゃんと使えてました?
はりー さま
とりあえず音出しまで進みましたので、ほっとしております。ありがとうございました。
ちなみに U-GEEK からダウンロードした Volumio2.555-2019-02-20-pi-aoide.img では Audio Resampling は使えておりました。(ただし Target Smaple Rate を 192kHz までにしておかないと音が途切れる症状あり)
なかなかすんなりとは行かないのですが、それも味と思って Raspiオーディを楽しんでおります。
試してみました。
Target bit depth を24bitにするときれいな音が出ますが、16と32だとおっしゃる通りノイジーです。
公式のは何か細工をして常に24bitにしてるのかもしれませんね。最近のDACは内部でアップサンプリングしてるので私は必要ないと思ってリサンプリングを切っています。
なんやかんや悩むのもラズパイオーディオの魅力ですよね。時々音楽を楽しみたいのかガジェットいじりを楽しみたいのかわからなくなるときがありますが^^;
さっそく試していただき、ありがとうございます。
自分の環境だけではないようでとりあえず納得いたしました。
アップサンプリングはプラシーボのような気もしますので、あまり重要ではないと思いますがなんとなく使っています。
しかし Volumio 3 が出て安定する頃には、公式でしっかり対応してほしいですね。
そうですね。Volumio3が出たら公式イメージを出してくれると信じて待ちましょう。
初めまして、お邪魔します。
他所で RPi 4B ではうまくいかないという記事を見たのですが、皆様 RPi はどのモデルをお使いなのでしょうか。
ugeek というところで Aoide DAC II を専用ケースとセットで売っているのですが、4B まで対応となっております。
石橋 様
コメントありがとうございます。
私は3Bを使っています。
4はオーディオに向かないという話もあるみたいで、パソコン的に使うには魅力的なのですが、二の足を踏んでいる状態です。