Linux Computing
  1. ホーム
  2. BeagleBone Black 版 Volumio のビルド

BeagleBone Black 版 Volumio のビルド

今年の3月 Volumio がサポートする公式なプラットフォームから BeagleBone Black(BBB) が外れました。メインとなるプラットフォームである Raspberry Pi と x86 に注力するようです。そのため BBB のイメージファイルは Volumio のダウンロードページからダウンロードできなくなっています。

しかし完全に BBB 版のサポートをしなくなったわけではなく、「公式」なサポートではないけどコミュニティ移植版をセットアップしているので自分でビルドしてね、質問も受け付けるからということらしいです。

ということでビルドしてみることにしました。

ビルド環境

ビルドする環境は少し注意が必要なようです。VirtualBox 上の Ubuntu 17.10 でビルドしましたが動作しませんでした。Ubuntu 16.04 LTS 日本語 Remix でも同様に動作しません。ビルドのリポジトリには

if on Ubuntu, you may need to remove $forceyes from line 989 of /usr/sbin/multistrap

ということが書かれているので疑いもなく Ubuntu でビルドしていたのでした。しかし multistrap ファイルの 989 行付近には $forceyes は見つからなかったのですがこのことが何か関係があるのでしょうか。

Support for Botic Linux driver で Mull3t さんが Debian Jessie じゃないとちゃんと動くイメージができないと投稿していたのを見て Debian 8.0 で試したところ動作するイメージができました。

ビルドのスイッチオプション

BBB の CPU は Cortex-A8 を採用しています。Cortex-A8 のアーキテクチャは ARM の v7 バージョンなのでビルドの architecture スイッチのオプションは armv7 で良いと思うのですが出来上がったイメージでは旨く動作しません。Armv8 でもだめです。前述した Mull3t さんは armv7 を指定しています。

結局 architecture のオプションは arm とすることでできました。Armv7 でダメな理由はわかりませんが arm としてビルドしたイメージではちゃんと動いているようです。

How To ビルド

ビルドの方法をまとめておきます。といってもビルドのリポジトリに記載されているそのものですが。

必要なソフトウェアをインストールします。

# apt-get install git squashfs-tools kpartx multistrap qemu-user-static samba debootstrap parted dosfstools qemu binfmt-support qemu-utils

リポジトリのクローンを volumio_bbb ディレクトリ以下に作成します。ちなみにここでは赤外線リモコン(Lirc_BBB)をサポートしたリポジトリでビルドします。

# git clone https://github.com/Tigor888/Volumio_BBB volumio_bbb

作成された volumio_bbb ディレクトリに移動します。

# cd volumio_bbb

ビルドのスクリプトを実行します。

./build.sh -b arm -d bbb

ビルドのスイッチオプションでバージョンを指定していない場合 Volumio-<yyyy-mm-dd>-bbb.img ファイルが出来上がっています。

作成されたイメージファイルをマイクロ SD カードに焼いて Volumio を起動します。VolumioIP/DEV ページで SSH ENABLE をクリックして SSH を有効にします。Uname コマンドでシステム情報を確認。

volumio@volumio:~$ uname -a
Linux volumio 4.8.13-botic7-rc3 #25 PREEMPT Thu Mar 8 14:24:44 EET 2018 armv7l GNU/Linux

数日使っただけですが公式にサポートされていたバージョンの volumio-2.194-2017-06-11-bbb.img に比べ PCM、DSD ダイレクト再生そして Spotify も特に大きな問題は確認できませんでした。

赤外線リモコン

Lirc モジュールの起動確認

Lirc_bbb が使えるようになっているか確認してみます。

起動時にカーネルが出力するメッセージで lirc が含まれる行を dmesg コマンドで抽出します。

volumio@volumio:~$ dmesg | grep lirc
[   12.263618] lirc_dev: IR Remote Control driver registered, major 244
[   12.351728] lirc_bbb: module is from the staging directory, the quality is unknown, you have been warned.
[   12.384732] lirc_bbb lirc_bbb.0: lirc_dev: driver lirc_bbb registered at minor = 0
[   12.384824] lirc_bbb: manually using active low receiver on GPIO pin 65
[   12.384829] lirc_bbb: transmitter on GPIO pin 27

2 行目のメッセージが気になりますが、一応読み込まれているようです。また受信信号の入力は GPIO の65ピンに割り当てられています(B3D 基板や BBB ブリッジ基板 Type-AK では GPIO の66ピンであれば都合が良かったのですが)。GPIO ピンの割り当てを変更することはできると思うのですが方法がわかりません。

Lirc 関連モジュールがロードされているかを確認します。

volumio@volumio:~$ lsmod | grep lirc
lirc_bbb                6355  3
lirc_dev               10665  1 lirc_bbb

よさそうですね。

ハードウェアの変更

GPIO の65ピン(P8 の18番ピン)に受信信号を入力するように基板の修正をします。ブリッジ基板 Type-AK の場合、CN3 の 17,18番ピンにピンヘッダーをハンダ面側にハンダ付けし、17番ピンと8番ピンをジャンパー線で接続します。これで CN5 の1番ピンが +3.3V、2番ピンがリモコン受信信号、3番ピンが GND となります。

lirc-01.jpg(66541 byte)

B3D シリーズ基板の場合はもう少し複雑です。GPIO の65ピンは B3D シリーズ基板に簡単に取り出すことはできません。そこで BBB(G) 基板に手を入れます。BBB(G) の P8 の18番ピンと7番ピンをジャンパー線で接続します。尚、これは BBB(G) の GPIO の66ピンを使っていないことが前提ですので他のモジュール等で GPIO 66ピンを使う場合はできません。自己責任でお願いします。:-)

lirc-04.jpg(68118 byte)

次に B3D シリーズ基板を変更しますが、3.3V リレーミュート付き RCA ジャック基板を使う場合と使わない場合で内容が異なります。

3.3V リレーミュート付き RCA ジャック基板を使わない場合はハンダ面のハンダジャンパー(J4)をオープンにし、部品面のハンダジャンパー(J3)をショートすることで B3D シリーズ基板の CN6 を使って赤外線リモコン受信モジュールを接続できます。

lirc-03.jpg(22777 byte)

3.3V リレーミュート付き RCA ジャック基板を使っている場合は、はんだ面のハンダジャンパー(J4)をショートさせ、部品面のハンダジャンパー(J3)はオープンにします。そして赤外線リモコン受信モジュールに接続したケーブルの信号線をハンダジャンパー(J4)の片側(基板外側)と、 3.3V 電源(CN1 の3、4番ピン)と GND(CN1 の1、2番ピン)を直接はんだ付けします。

lirc-05.jpg(28533 byte)

赤外線リモコン受信モジュールは秋月電子で入手可でき 3.3V 電源で使用可能な OSRB38C9AA を使いました。このモジュールは1番ピンがリモコン受信信号、2番ピンが GND、3番ピンが電源になっていますのでこれに合わせてケーブルの接続を変えます。そしてケーブルに OSRB38C9AA を取り付けます。

lirc-02.jpg(27816 byte)

設定ファイルの修正

リモコンの操作を可能にするには /etc/lirc/lircd.conf と /etc/lirc/lircrc の2つの設定ファイルを修正します。アップルの Apple Remote MC377J/A の場合の設定ファイルです。

/etc/lircd.conf は

# Please make this file available to others
# by sending it to 
#
# this config file was automatically generated
# using lirc-0.9.0-pre1(default) on Mon May 28 05:00:14 2018
#
# contributed by
#
# brand:                       apple_remote.conf
# model no. of remote control:
# devices being controlled by this remote:
#

begin remote

  name  apple_remote
  flags RAW_CODES|CONST_LENGTH
  eps            30
  aeps          100

  gap          107190

      begin raw_codes

          name enter
             9070    4465     565     555     594    1632
              569    1659     568    1659     591     531
              566    1662     597    1630     571    1653
              596    1630     567    1659     570    1656
              590     534     596     526     567     558
              568     555     567    1658     597     527
              569     555     596    1631     570    1654
              594    1631     568     557     595    1630
              598     526     596     527     593    1634
              568     554     596     528     570    1656
              567    1660     594    1634     590    1649
              567

          name up
             9091    4446     589     536     587    1637
              618    1608     589    1637     591     534
              590    1635     617    1611     618    1609
              615    1612     591    1636     589    1637
              590     535     588     538     586     536
              613     511     588    1635     592     534
              615    1610     589     537     589    1635
              615     510     589     534     589     535
              589     534     590     537     586    1637
              618     507     589     536     586    1637
              589    1636     592    1634     590    1655
              614

          name down
             9091    4443     588     534     588    1637
              590    1635     590    1635     590     534
              592    1633     592    1633     591    1636
              590    1635     591    1638     588    1637
              592     535     588     534     591     532
              590     534     589    1636     593     543
              582     532     589    1635     592    1635
              591     537     587     534     591     538
              591     530     588     538     586    1635
              590     536     587     539     587    1634
              589    1637     589    1636     591    1651
              591

          name next
             9093    4448     612     509     588    1636
              615    1613     588    1637     590     539
              587    1642     608    1611     616    1609
              591    1636     615    1616     587    1636
              589     537     587     535     588     537
              587     537     588    1638     588     534
              590    1636     614    1613     616     511
              614     509     589     535     613     514
              584     536     588     537     612    1612
              588     537     615     510     613    1632
              578    1645     578    1648     605    1636
              577

          name prev
             9104    4440     581     536     584    1643
              612    1612     607    1613     614     519
              587    1642     611    1616     583    1640
              585    1642     578    1635     587    1636
              591     534     614     510     616     508
              588     536     588    1636     616    1610
              621     510     583     536     586    1637
              590     536     588     536     589     534
              613     511     587     536     615    1610
              588     536     588     535     591    1635
              592    1636     589    1638     615    1626
              615

          name menu
             9093    4442     591     534     590    1637
              589    1634     592    1635     592     533
              591    1634     591    1639     586    1636
              592    1634     591    1636     591    1635
              595     530     591     534     590     533
              592     533     590    1635     590    1637
              592    1636     590     534     591     532
              591     533     590     535     588     535
              590     536     587     537     588    1637
              589     535     590     532     590    1635
              592    1635     590    1636     591    1650
              592

          name play
             9114    4418     591     534     587    1637
              613    1611     591    1637     589     539
              585    1636     592    1635     590    1637
              590    1650     590    1641     582    1644
              579     530     589     540     611     511
              614     511     589    1643     586    1642
              607    1620     579    1647     580    1647
              712    1516     579     531     588    1643
              586     536     587     535     589    1641
              596     526     591     530     598    1639
              609    1613     587    1638     591    1656
              589

      end raw_codes

end remote

リモコンのボタンと name との対応は以下のようにしています。

apple_remote.jpg(29234 byte)

押されたボタンでどう動くかは /etc/lirc/lircrc できまります。

begin
prog = irexec
button = play
config = /usr/local/bin/volumio toggle
end

#begin
#prog = irexec
#button = enter
#config = /usr/local/bin/volumio volume toggle
#end

begin
prog = irexec
button = up
config = /usr/local/bin/volumio volume plus
end

begin
prog = irexec
button = down
config = /usr/local/bin/volumio volume minus
end

begin
prog = irexec
button = prev
config = /usr/local/bin/volumio previous
end

begin
prog = irexec
button = next
config = /usr/local/bin/volumio next
end

#begin
#prog = irexec
#button = menu
#config = /usr/local/bin/volumio toggle
#end

begin
prog = irexec
button = menu
button = enter
button = menu
config = /sbin/shutdown now -h
end

再生とポーズは「play」ボタンのトグルで、シャットダウンは「menu」→「enter」→「menu」と続けて押すことで実行されるようにしています。

これでリモコンの操作はできるようになりましたが、ボリュームがうまく動作しません。「down」を一度押すとボリュームが 100 から 90 に減りますが、再度「down」を押しても変化しません。

イメージファイルの公開

ここで紹介したイメージファイルを公開します。uEnv.txt の optargs をブリッジ基板や B3D 基板シリーズに最適化してビルドしていますので SD カードにインストールした後編集する必要はありません。自己責任での使用を前提としてよかったら使ってみてください。:-)

Volumio-2018-05-13-bbb.zip

このページは2018年5月15日にはじめてアップされました。

目次
PR
コンテンツ
最近のトピック
週間アクセスランキング
デル株式会社
Copyright (C) 2018 Linux Computing All rights reserved