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