Raspberry PiでVolumio2とLibreELECのデュアルブート環境を作るメモ

#動機
Volumio2とI2S DACで快適音楽環境を作ったので、どうせなら動画も再生できるようになるまいか？と思い押し入れからWinMe時代より愛用の古モニタを引っ張り出して接続し、環境構築した次第。
初めにVolumio2上にKodiをインストールするプラグインを試しましたが、ハードウェアアクセラレーションが効いていないのか動画再生がいまいちカクカクで断念。デュアルブートなら？となりました。

#前提条件

* Raspberry Pi 3B（たぶん他のでも動くと思います）
* Volumioは現時点で最新のVer2.348をインストール
* LibreELECも最新のVer8.2.2（KodiはVer17.6）
* どちらのOSでもALSAでI2S DAC（Hifiberry DAC準拠）から音を出せるようにする

#作業

##0.事前準備
SDカードは事前にパーティション等を削除の上FAT32でフォーマットしておくこと。

##1.OSインストール

###ブートローダーのインストール
まず初めに、RaspberryPi上でデュアルブート環境を実現するBerryBootのインストーラーをダウンロードする。
http://www.berryterminal.com/doku.php/berryboot
以上より、「Download link Berryboot for the quad-core Raspberry Pi 2 and Pi 3 only (36 MB)」のリンクをクリックしてzipファイルをダウンロード。
なお、クアッドコアのRasPi2か3ではないRasPiにインストールする場合は、もう一方のzipを使うとできると思います。（未確認）

次に、zipファイルの中身を**エクスプローラー上ですべてSDカードにコピーする。**
従来のRasPiディストリビューションのようにimgファイルを焼きこむわけではないので注意。

その後、コピーしたファイルのうち```cmdline.txt```に```bootdev=mmcblk0p1```と追記する。
ブートローダーのインストールされている所を明示するために必要。**これがないと以下のスクリプトが通らない。**

###Raspbianのインストール
Volumio2をインストールするために必要となるので、ひとまずSDカードをRasPiに差し込んで起動し、表示された画面の指示に従ってRaspbianをインストール。取り留めて難しい作業はないので省略する。

###Volumio2のインストール
Raspbianのインストールが終了し無事に起動したら、次にスクリプトを使ってVolumio2をインストールする。
https://volumio.org/forum/multiboot-volumio2-with-kodi-under-berryboot-t6818.html#p33742
Volumioのフォーラムにスクリプトが公開されているのでこれをありがたく頂戴し、利用させてもらう。

```bash
curl -Ls --output installVolumio2 http://bit.do/InstV2; chmod u+x installVolumio2; ./installVolumio2
```

ネットにつながっていれば自動的にダウンロードからインストールまでやってくれます。
途中ブートローダーでのOS名の表記などいくつか聞かれるが、問題なければすべてデフォルトでOK。

###LibreELECのインストール
同じページにLibreELECをインストールするスクリプトもあるので利用する。

```bash
curl -Ls --output installLibreELEC http://bit.do/InstLE; chmod u+x installLibreELEC; ./installLibreELEC
```

##2.OS設定

###Volumio2の設定
概ねネイティブにVolumio2をインストールした場合と同様。
最初に表示されるフォームで大体の設定を行えばWebUIからは通常通り再生できるようになる。
しかし、このままだと画面にはコンソールが表示されるだけなので、「Touch Display Plugin」を導入する。

####Touch Display Pluginのインストール
https://itdecoboconikki.com/2017/02/12/volumio_touchscreen_gui/
ここを参考にさせていただいた。
設定＞プラグイン＞プラグインの検索から「Touch Display Plugin」をインストールするが、通常では70％あたりで止まるので、一度rebootしてSSHもしくは直接コンソールから```sudo dpkg --configure -a```を叩いて、キーボードレイアウトをJapaneseに変更する。
その後もう一度プラグインをインストールするとうまくいく。

####日本語フォントのインストール
このままだと日本語が豆腐になるので、```sudo apt-get install fonts-noto```でNotoフォントをインストール。
フォントはお好みで。

###LibreELECの設定
これもネイティブにLibreELEC（Kodi）をインストールした時と同様で、```Settings＞Interface＞Skin>fonts```を```Arial based```に変えたのち、```Regional＞Language```を```Japanese```に変える。これで日本語化は完了なのであとはご随意に。
####I2S DACから音を出すための設定
が、このままではオンボードオーディオに出力されてしまいI2S DACからは音が出ないので、SSHで設定ファイルを編集する。
なお、インストール直後はrootパスワードは「libreelec」となっている。
https://www.hifiberry.com/build/documentation/libreelec-installation-and-configuration/

```bash
# mount -o remount,rw /flash
# nano /flash/config.txt
```

```config.txt
...
#### Volumio i2s setting below: do not alter ####
dtoverlay=hifiberry-dac    <- 追記。DACの種類に応じて適宜変更
dtdebug=1                  <- 必要かどうかはわからないが一応追記しておく
```
2018/01/16追記：

```config.txt
# Enable on-board audio
#dtparam=audio=on    <- コメント化
```
当初このように書いておりましたが、これを行うとVolumio2でI2S DACから正常に再生されなくなります。Volumioでは再生に使用するデバイスとして```hw:1,0```が指定されているため、オンボードオーディオを無効化するとI2S DACが```hw:0,0```となり、見失うのです。

なので、LibreELEC上のALSAがDefaultで読むデバイスを変更します。

```bash
# aplay -l

**** List of PLAYBACK Hardware Devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
...（中略）...
card 1: sndrpihifiberry [snd_rpi_hifiberry_dac], device 0: HifiBerry DAC HiFi pcm5102a-hifi-0 []
  Subdevices: 0/1
  Subdevice #0: subdevice #0

↑このカード番号を覚えておく
```

```bash
# nano /etc/asound.conf
```

```asound.conf
defaults.pcm.card 1 # I2S DACのカード番号に変更する
defaults.ctl.card 1 # 同上
```

以上を行うことで正常に再生されるようになりました。

#おわりに
以上でVolumio2とLibreELECのデュアルブート環境が完成しました。
Volumio2のKodiプラグインではかくかくだった動画再生が実にスムーズになりました。
いちいちOSを切り替えなければならないという点はありますが、そんなにコロコロ切り替えることってないと思うのでこれでいいかなと。
快適なマルチメディア生活を送れそうです。