y2blog » Raspberry Pi 関係の閑話

6

12

2016

Raspberry Pi 関係の閑話

Raspberry Pi 3 を入手


このところRaspberry Piやデジタルオーディオ系から遠ざかっていたけど、Raspberry Pi + Volumio 関係でのアクセスが多いので、Raspberry Pi 3 入手記念ついでに、久しぶりのRaspberry Pi関連の雑記を少し...


Raspberry Pi 3 については2月に出荷開始されて大部日が経っており、色々な所で紹介されているので説明は省くが、CPUのクロックが900MHz -> 1.2GHz になり、wi-Fi、Bluetooth 4.1チップが標準で搭載されているなど、コンピュータとしての性能はかなり向上しているのだが、この方向が果たしてHi-Fiオーディオ的に良い方向へ向かっているのかというと甚だ疑問だ.


只でさえRaspberry Pi はノイズ発生源なのに、Wi-Fi, Bluettothの電波まで発するようになると、単なるノイズジェネレータだ.当然ながらRaspberry Piが消費する電力も大幅に増え、5V 2.5A (12.5W)の電源を推奨している.5V 2.5A クラスの電源をスイッチング電源を使わずに用意するのは大変だ.


...という訳で、Raspberry Pi 3 については一度もオーディオセットに組み込まれること無く、暫くはお蔵入りとなりそうだ.


Raspberry Pi 2 & 3
Raspberry Pi 3(上) & 3 (下)

基板裏面
基板裏面 : Raspberry Pi 3(上) & 3 (下)


Volumio 1.55 のI2S問題


これまで、Raspberry Pi と Volumio の組み合わせで、色々とRaspberry Pi + I2S DAC のオーディオの可能性を探ってきたが、Volumio 1.55 に組み込まれている ALSA Soc 関連のドライバの問題があり、私が狙っている、TIのPCM1792チップとSRC4192 の組合わせでは 16bit/44.1(48.0) KHz 以下の系統の音源を再生する事が難しかった.



I2Sdriver にRPI-DACを指定してみるが...
I2Sdriver の指定では “RPI-Dac” を指定できるのだが...

AudioOutputSelectorでは選択できない
何故か AudioOutput Selector では選択できない

Volumio155 Overlays
/boot/overlays ディレクトリに “rpi-dac-overlay.dtb” が置かれていない

この辺の事情については、『Raspberry Pi 2 + Volumio + DAC でネットワークオーディオに挑戦(その6)』で詳しく説明しているので、そちらの記事を参照して欲しい.


この問題の回避方法を色々と調べて行くと、”rpi-dac”モジュールが TI PCM1794 チップ用のコーデックドライバを組み合わせる前提で作られている事が判明した.PCM1792 と PCM1794 は同じ系列のDACチップ(PCM1794はハードウェア制御)なので、”rpi-dac”モジュールが使えると、16bit/44.1(48.0) KHzの音源を再生した場合でも、きちんと BCKが 64fs (クロック周波数2.88MHz)モードに設定される筈だ.


Volumio 1.55 のディストリビューションでは、I2S用のドライバモジュールとしてWEB GUI設定メニューから”rpi-dac” を指定することができるのだが、”snd-hifi-berry” 以外の設定は反映されない.原因を探って行くとVolumio 1.55 のディストリビューションには、”rpi-dac”関連のドライバモジュールが欠落しているようだ.


Volumio 1.55 の /boot/overlays ディレクトリ配下を覗いてみると、確かに “hifiberry-dac-overlay.dtb” は置かれているが、”rpi-dac-overlay.dtb” モジュールは見当たらない.raspbian や他のディストリビューションでは”rpi-dac-overlay.dtb” モジュールが存在するので、Volumio 1.55 ではポピュラーではない”rpi-dac-overlay.dtb” モジュールを外してあるのだろう.WebGUIのI2Sサウンドドライバメニューの項目としては載っているのだが、肝心のモジュール本体が組み込まれていないということだろう.やはりカーネルから再構築して、”rpi-dac-overlay.dtb” モジュールを自分で組み込むしか方法は無さそうだ.


“RPI-DAC” については、”Audiophile, High Quality RPi-DAC for Raspberry Pi” を参照すると良いだろう.




GitHub Kernel Source Tree
GitHub にある Raspberry Pi の Linux Kernel Source を覗いてみる


“linux/sound/soc/bcm/rpi-dac.c” の中身を覗くと、”RPi-DAC” は PCM1794A 用のSocサウンドデバイスドライバであることが確認できる.BCK を 64fs に設定している部分が snd_rpi_rpi_dac_hw_params() で設定されている.





自分でLinux kernelモジュールをソースからコンパイルして、必要なデバイスドライバを組み込んでカーネル廻りを再構築すれば良いのだが、Linuxのドライバ廻りの組み込みはとても複雑で面倒な作業だ.


邪道かもしれないが、 Volumio 1.55 で ”rpi-dac” を組み込む方法として、カーネルの再コンパイルではなくて、アップデートという手段もある.Volumio 1.55 で組み込まれているLinuxカーネルのバージョンは、3.18.5 だが、カーネルアップデートで最新版の4.4.14(2016年6月下旬時点)へ強制的にアップデートしてしまうことも可能だ.ただ、折角音楽再生用に軽量化したカーネル関係のモジュールがごっそり入れ替わり、余分なカーネルモジュールまで組み込まれてしまうので、カーネルの肥大化は避けられない. 後で自分で不要なモジュールを手動削除すると良いだろう.


オリジナルのVolumio 1.55 は 新しいRaspberry Pi 3 では動作しないが、カーネルを最新版にアップデートすると、Raspberry Pi 3 上でVolumio 1.55 を稼働させる事が可能だ.Volumio 2 を使いたくない場合にはカーネルアップデートをお薦めする.






snd-rpi-dac
今度はきちんと”sndrpirpidac”が Audio Output セレクターで選択可能となる




Raspberry Pi のオーディオ関連で今のところ一番詳しいのは、『インタフェース 2015年12月号』の関連記事だろう.この中で、Volumioの兄弟分的な存在で、アルバムのカバーアート表示が可能な “RuneAudio” というものが有るそうなので、まずはこちらを試してみることにする.



RuneAudioを試してみる



RuneAudio Web GUI
RuneAudio Web GUI画面は Volumioと非常に良く似ている

RuneAudio Library UI
RuneAudio が対応可能な音源(ライブラリ)は幅広い

RuneAudio Output Selector
Audio output interface で “and_rpi_rpi_dac” に切り替える


RuneAudioはVolumioを使った事があれば、使い方はほぼ同じなので簡単に使いこなすことができるだろう.RuneAudioのホームページにかなり詳しいドキュメントがあるので、RuneAudioの入手方法や、Raspberry Pi などのデバイスへのインストール方法や、PCやタブレット、スマートホンなどのクライアントデバイスの設定方法などが詳しく書かれている.


RuneAudioがサポートしているデバイスはVolumioよりも多く、最新のLinuxカーネルを採り入れているので、最新の Raspberry Pi 3も対応可能なようだ.インストール手順もVolumioと殆ど同じだ.


ホームページの解説は英語で記載されているが、とても分かり易く丁寧に書かれているので、英語が苦手な人でもそれ程苦労する事はなさそうだ.



RPI Audio System
TI SRC4192 & TI PCM1792a の組み合わせで無事音出し成功

44.1KHz 音源
44.1KHz のCD リッピング音源 [ LRCK : 44.1KHz ]

44.1KHz音源 [ BCK = 64fs ]
BCK = 64fs (2.822MHz) に設定されている


Local Search

Calendar

September 2018
S M T W T F S
« Aug    
 1
2345678
9101112131415
16171819202122
23242526272829
30  
  • Blogroll

  • Meta