Raspberry Piでi2s-DACを音声出力にして高品位な音楽を聴く(Rev.C)
2016年10月28日現在、ラズパイのOSをupgradeすると、カーネルは4.4.27-v7+になります。
※この記事は音楽専用のOSであるVolumioではなく、RASPBIAN JESSIEで i2s-DACを使う事例です。
sudo apt-get update sudo apt-get upgrade sudo rpi-update |
再起動後、
uname -a |
4.4.27-v7+ という文字を確認します。
用意されている音関係のモジュールを確認します。A-Dコンバータのボードもふくまれています。
ls -l /lib/modules/4.4.27-v7+/kernel/sound/soc/bcm snd-soc-adau1977-adc.ko snd-soc-allo-piano-dac.ko snd-soc-audioinjector-pi-soundcard.ko snd-soc-bcm2835-i2s.ko snd-soc-digidac1-soundcard.ko snd-soc-dionaudio-loco.ko snd-soc-hifiberry-amp.ko snd-soc-hifiberry-dac.ko snd-soc-hifiberry-dacplus.ko snd-soc-hifiberry-digi.ko snd-soc-iqaudio-dac.ko snd-soc-iqaudio-digi.ko snd-soc-justboom-dac.ko snd-soc-justboom-digi.ko snd-soc-pisound.ko snd-soc-raspidac3.ko snd-soc-rpi-dac.ko snd-soc-rpi-proto.ko |
国内ではいつくか入手できるようです。
- iqaudio 共立電子産業
- justboom-dac RSコンポーネンツ
- hifiberry roboproduct
国内では流通していないと思われるもの。
- audioinjector-pi-soundcard http://www.audioinjector.net/#!/rpi-hat
- dionaudio-loco http://www.dionaudio.nl/index.php/products
- pisound https://hackaday.io/project/13241-pisound
- allo-piano-dac http://www.volumio.com/
ここではpianoを使いました。ラズパイのGPIOピンに重ねて挿すだけで接続は完了します。10月29日現在2781円です(送料、税金は別途かかる)。
●ターミナルで追加が必要なファイルは二つ
モジュール・ファイルに追加します。
sudo nano /etc/modules |
1行追加します。
snd-soc-allo-piano-dac |
ブート時に読み込む設定です。
sudo nano /boot/config.txt |
1行追加します。
dtoverlay=allo-piano-dac-pcm512x-audio |
この名称は、/boot/overlaysにあるファイル名を使います。
ls -l /boot/overlays adau1977-adc.dtbo ads1015.dtbo ads7846.dtbo akkordion-iqdacplus.dtbo allo-piano-dac-pcm512x-audio.dtbo at86rf233.dtbo audioinjector-wm8731-audio.dtbo audremap.dtbo bmp085_i2c-sensor.dtbo dht11.dtbo dionaudio-loco.dtbo dpi18.dtbo dpi24.dtbo dwc2.dtbo dwc-otg.dtbo enc28j60.dtbo gpio-ir.dtbo gpio-poweroff.dtbo hifiberry-amp.dtbo hifiberry-dac.dtbo hifiberry-dacplus.dtbo hifiberry-digi.dtbo hifiberry-digi-pro.dtbo hy28a.dtbo hy28b.dtbo i2c0-bcm2708.dtbo i2c1-bcm2708.dtbo i2c-gpio.dtbo i2c-mux.dtbo i2c-pwm-pca9685a.dtbo i2c-rtc.dtbo |
再起動します。読み込まれたモジュールをlsmodで確認します。
lsmod Module Size Used by bnep 10340 2 bluetooth 326105 5 bnep cfg80211 427855 0 rfkill 16037 3 cfg80211,bluetooth evdev 11396 4 snd_soc_pcm512x_i2c 2243 1 regmap_i2c 3393 1 snd_soc_pcm512x_i2c snd_bcm2835 20447 0 snd_soc_bcm2835_i2s 6354 2 i2c_bcm2708 4834 0 spi_bcm2835 6678 0 bcm2835_wdt 3225 0 bcm2835_gpiomem 3040 0 w1_gpio 3657 0 wire 25219 1 w1_gpio cn 4374 1 wire uio_pdrv_genirq 3164 0 uio 8000 1 uio_pdrv_genirq snd_soc_allo_piano_dac 2688 1 snd_soc_pcm512x 17268 1 snd_soc_pcm512x_i2c snd_soc_core 125885 3 snd_soc_pcm512x,snd_soc_bcm2835_i2s,snd_soc_allo_piano_dac snd_pcm_dmaengine 3391 1 snd_soc_core snd_pcm 75762 5 snd_bcm2835,snd_soc_pcm512x,snd_soc_core,snd_soc_allo_piano_dac,snd_pcm_dmaengine snd_timer 19288 1 snd_pcm snd 51908 6 snd_bcm2835,snd_soc_core,snd_timer,snd_pcm i2c_dev 5859 0 fuse 84037 3 ipv6 347530 52 |
Sound Cardに追加されているかをaplayで確認します。
aplay -l **** List of PLAYBACK Hardware Devices **** card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA] Subdevices: 8/8 Subdevice #0: subdevice #0 Subdevice #1: subdevice #1 Subdevice #2: subdevice #2 Subdevice #3: subdevice #3 Subdevice #4: subdevice #4 Subdevice #5: subdevice #5 Subdevice #6: subdevice #6 Subdevice #7: subdevice #7 card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835 IEC958/HDMI] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: PianoDAC [PianoDAC], device 0: Piano DAC HiFi pcm512x-hifi-0 [] Subdevices: 1/1 Subdevice #0: subdevice #0 |
●i2s-DACを常用にする設定
メニューからPreferences > Audio Device Settingsを選びます。
デフォルトではSound card の欄にはbcm2835 ALSA(Alsa mixer)しか出ていませんが、PianoDAC(Alsa mixer)が選べます。
PianoDAC(Alsa mixer)を選び、Select Contorolsをクリックすると、PianoDACの機能が出るので、Analogueにチェックしました。DSP Proguramをチェックすると、内部のフィルタなどの制御ができます。
この設定をデフォルトにするため、Make Defaultをクリックします。
OKを押します。
これ以降、HDMIではなくi2s-DACから音が出ます。
●i2s-DACをHifiberryに変更
D-Aコンバータは同じPCM5122を使っているHifiberry-DAC+に挿し替えて動作を確認します。
モジュール・ファイルを変更します。
sudo nano /etc/modules |
元のpianoの項目をコメントアウトし、1行追加します。
#snd-soc-allo-piano-dac snd-soc-hifiberry-dacplus |
ブート時に読み込む設定です。
sudo nano /boot/config.txt |
元のpianoの項目をコメントアウトし、1行追加します。
#dtoverlay=allo-piano-dac-pcm512x-audio dtoverlay=hifiberry-dacplus |
リブートして、設定メニューを開きます。Sound cardのpianoがhifiberryに変わっています。OKを押して終了します。WebブラウザのChromiumでyoutubeを開き再生します。pianoと同じく高音質の音楽が流れます。
(Rev.B) 2016/10/29 Hifiberryの項目を追加。
(Rev.C) 2017/05/02 /boot/overlays sを追加。2017/04/10バージョンで動作確認。カーネルは4.9.25-v7+
ALLO – BOSS DAC(PCM5122)でも動作確認。
sudo nano /etc/modules で追加する文字列は、snd-soc-allo-boss-dac
sudo nano /boot/config.txt で追加する文字列は、dtoverlay=allo-boss-dac-pcm512x-audio