NanoPi Neo2用 Volumio2

NanoPi Neo2 Volumio2 release

  • NanoPi Neo2 I2S Audio Kernelを適用したVolumio2です。
  • バージョンはv2.413を採用しています。
  • 2018/1012追記
    • ロット変更なのか、ブートローダを更新しないと起動しないNEO2があるようです。
    • もし、動作しないようであれば、下記ツイートの暫定版をお試しください。

特徴

  • I2S + MCLK出力可能
  • I2S 16bit長(32fs固定)出力対応
  • RJ 24bit(64fs)/ RJ 16bit(64fs)/ RJ 16bit(32fs)出力対応
  • HiFiBerry DAC+ PRO or compatible対応
  • AK4490/4495/4497/4493対応
  • DACが対応していれば、768kHzや1536kHzの再生が可能
  • 詳しくはNanoPi Neo2 I2S Audio Kernelを参照ください

既知の問題

  • DSD to PCM変換でサンプリングレートが上がりすぎる
    • I2Sの再生サンプリングレート上限が1536kHzとなっているため、DSD to PCM変換時の再生レートが高くなります。
      • DSD64 352.8kHz
      • DSD128 705.6kHz
      • DSD256 1411.2kHz
    • I2S Driver or Codec Driver側にて上限設定する方法を検討中です。
  • 高負荷時にカーネルクラッシュ
  • 再起動(reboot)でこける時がある
    • Linux Kernel 4.14へのアップデート時に解消予定
    • sdのレギュレータ制御不正
  • 標準でsshdが有効になっていません
    • http://volumio.local/dev or http://ipaddress/devで開発者モードに入り有効化してください。

制約など

  • 本Volumio2はNanoPi Neo2 I2S Audio Kernel評価用に作成したものです。
    • Volumio2の使い方については他のサイトを参照ください。
    • Volumio2への機能追加などをリクエストを頂いても基本的には対応できません。
  • ビルド手順を下の方に書いてますので、ぜひいろいろカスタムしてみてください。

使い方

バイナリダウンロード

書き込みと起動

  • windowsならrufuslinuxならddなどでSDカードにイメージを書き込んでください。
  • 初回起動はSDカードのresizeが走るため2-10分程度かかります。途中で電源を落とさないようしてください。

動作モードの切り替え方

  • デフォルトではI2S genericとなっています。
  • その他のモードで使う場合には、dtbファイルを差し替えて機能の切り替えを行ってください。
  • NanoPi Neo2のbootスクリプトは、defaultではsun50i-h5-nanopi-neo2.dtbで起動するので、sun50i-h5-nanopi-neo2.dtbへ上書きしてやるのが簡単です。
  • 下記はNEO2にSSHで接続orシリアルコンソール時の差し替え例で、sun50i-h5-nanopi-neo2-i2s-generic.dtbを使う場合の設定方法です。
$cd /boot
$ cp sun50i-h5-nanopi-neo2-i2s-generic.dtb sun50i-h5-nanopi-neo2.dtb

ソースコード

ビルド手順メモ

$ git clone https://github.com/tkztkztkz/Build.git
$ cd Build
$ sudo ./build.sh -b armv7 -d nanopineo2 -v 2.413
  • Ubuntu 16.04LTSにてビルドを確認済みです。18.04LTSではビルドに失敗することを確認しています。
    • ビルドに必要なパッケージはVolumioのドキュメントを参照ください。参考までにこちらでは下記を実行しました。
sudo apt install git squashfs-tools kpartx multistrap qemu-user-static samba debootstrap parted dosfstools qemu binfmt-support qemu-utils build-essential