BeagleBone Blackで
Androidの下回りを学ぼう
(公開版)

日本Androidの会 金沢支部 きんねこ
2013.10.20 @ABC2013Autumn
おわび:
 ・LT 10分の予定が... 40分!
 ・中身薄めで申し訳ない
 BeagleBone Blackは、5000円以下で購入でき
る名刺サイズのボードです。 オープンハードウエア
として開発されており、日本でも簡単に入手できま
す。
 ちいさなボードですが、Androidだけでなく、
UbuntuやDebianなどのLinux環境も動作させるこ
とできます。
 このボードを使ったAndroidのシステム開発方法
について紹介します。 chromecastモドキのデモも
行う予定です。
CC BY-SA beagleboard.org
自己紹介:
 ・某青くなくなった周辺機器メーカー勤務
 ・ここしばらくは、HDMIドングル形状の
  Android端末の開発・製造
 ・転職先募集中∼!
最近の活動:
 ・日本史上最低金額のクラウドファンディング
 ・NT金沢2013:
   缶バッジ・ワークショップ
   光の小箱・ワークショップ
   21世紀のラフレシア
 ・ようやくBeagleBone Black買いました
 ・leapcastでchromecastモドキ
缶バッジワークショップ
「光の箱」は松村泰三氏が考案したアート作品で
す。フィルムミラーで光を乱反射させ、トレイシン
グペーパーに投影しています。光にかざすと様々に
模様が変化する不思議な箱です。これを子供でも
10分で作れるように小さくしてみました。

光の小箱
バザールで缶バッジ売ってました
BeagleBone Blackで
Androidの下回りを学ぼう
 時間があれば:leapcastでchromecastモドキ
RasPiをdisりに来ました!
ちょっとしたことを
やろうとしたとき、
ちょうどいいボードは
なんだろう?
・価格? 安いほうがいい!
・情報? 多い方がいい!
・入手性? 普通に買いたい!
・中華Android?
 ソースコードやSDKが揃わない
実際のところ
 ・Raspberry Pi
 ・BeagleBone Black
しか残らない
でも、Raspberry Pi がベスト?
Raspberry Pi

BeagleBone Black

Amazon 価格

¥4,380($35)

¥4,980($45)

ARMアーキテクチャ

ARM1176JZF-S

Cortex-A8

CPU

Broadcom BCM2835

TI Sitara AM3359

CPU Clock

700MHz

1.0GHz

DRAM

512MB SDRAM 400MHz

512MB DDR3L 400MHz

ROM Boot

-

eMMC 2GB

bootable device

SD

micro SDHC
Raspberry Pi

BeagleBone Black

画像出力

HDMI x1 / アナログ x1

micro HDMI x1

出力解像度

狭くて書けぬ

狭くて書けぬ

音声出力

HDMI/Audio

HDMI

GPU

VideoCore IV

PowerVR SGX530

Video decode

1080p/ H.264, MPEG2, VC1

NEON software decode

Video encode

1080p H.264(要ラインセンス)

-
Raspberry Pi

BeagleBone Black

USB

2 Host

1 Device, 1 Host

NIC

100BASE-T(USB変換)

100BASE-T

その他I/F

1x USART

4x UART, 8x PWM
LCD, GPMC, MMC1

1x SPI, 1x I2C

2x SPI, 2x I2C
A/D Converter
2xCAN Bus, 4 Timers

8x GPIO

-
Raspberry Pi

BeagleBone Black

電源

USB

USB/AC5V

消費電力

322mA(idle)

210mA(idle)

サイズ

85.60 mm

53.98 mm

重さ

86.40 mm

53.3 mm

39.68 g

雑誌記事

⃝

△

書籍

⃝

-

発売日
対応OS

April 23, 2013
いろいろ

いろいろ
どちらがお得か?
書籍や雑誌の日本語情報の量か、
圧倒的なパワーか、
ただし、ビデオデコードは?
何をしたいかによって選ぶ
とりあえず、今日のところは、
BeagleBone Blackにしといて∼
Amazonで購入
翌日には到着
小さい箱、軽い
リビジョン重要
カード的なもの

mini Bケーブル

ボード

たったこれだけ
ボードは絶縁袋入り
表裏はこんな感じ
外部I/O
シリアル

NIC

USB
microSD miniB
microHDMI

表側コネクタ

AC
裏側コネクタ
ケースをどうする?
市販品はいろいろあるの
ですが、案外高い
ヘタするとボードが、
もう半分買えちゃう
しょうがない、
100均頼む!
Daiso系

この2つダメでした
SERIA系

これは何とか使えました
そのままでは入りません
カットします
カットします
入りました
ちょっと微妙
こっちも、ちょっと微妙
そのままでも起動します
Cloud9 IDEが動作します。
USBストレージとしてマウ
ントされたドキュメントに
使い方やリンクがあります。
Androidを起動してみる
TIのディベロッパーサイトで
は、TIのBSPと同等の扱い
で、BeagleBone Blackがサ
ポートされている。
ドキュメントなども豊富。
ビルド済みのバイナリイメ
ージが公開されているの
で、それを使ってみる。
Android Development Kit
for Sitara Microprocessors
http://www.ti.com/tool/androidsdk-sitara
http://downloads.ti.com/sitara_android/esd/TI_Android_DevKit/TI_Android_JB_4_2_2_DevKit_4_1_1/index_FDS.html
http://downloads.ti.com/sitara_android/esd/TI_Android_DevKit/TI_Android_JB_4_2_2_DevKit_4_1_1/exports/
TI_Android_JB_4.2.2_DevKit_4.1.1_beagleboneblack.tar.gz
$ wget http://downloads.ti.com/sitara_android/esd/TI_Android_DevKit/
TI_Android_JB_4_2_2_DevKit_4_1_1/exports/
TI_Android_JB_4.2.2_DevKit_4.1.1_beagleboneblack.tar.gz
$ tar zxvf TI_Android_JB_4.2.2_DevKit_4.1.1_beagleboneblack.tar.gz
このあたりがインストールする実体。
beagleboneblack/Boot_Images/uEnv.txt
beagleboneblack/Boot_Images/uImage
beagleboneblack/Boot_Images/MLO
beagleboneblack/Boot_Images/u-boot.img
beagleboneblack/Filesystem/rootfs.tar.bz2
$ cd beagleboneblack/
書き込み用のSDは2.0GB以上が必要。
$ export LANG=C
$ sudo ./mkmmc-android.sh /dev/sdc
Assuming Default Locations for Prebuilt Images
All data on /dev/sdc now will be destroyed! Continue? [y/n]
y
[Unmounting all existing partitions on the device ]
umount: /dev/sdc: not mounted
umount: /dev/sdc1: not mounted
[Partitioning /dev/sdc...]
Disk /dev/sdc doesn't contain a valid partition table
DISK SIZE - 7822376960 bytes
CYLINDERS - 951
[Making filesystems...]
[Copying files...]
[Copying START_HERE folder to boot partition]
[Copying all clips to data partition]
[Done]
作成したSDの中身を見る
$ sudo fdisk -l /dev/sdc
Disk /dev/sdc: 7822 MB, 7822376960 bytes
255 heads, 63 sectors/track, 951 cylinders, total 15278080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot
/dev/sdc1 *
/dev/sdc2
/dev/sdc3
/dev/sdc4
(LBA)

Start
End
Blocks Id System
63
144584
72261 c W95 FAT32 (LBA)
144585
3951989
1903702+ 83 Linux
3951990
7759394
1903702+ 83 Linux
7759395 15277814
3759210 c W95 FAT32
sdc1: boot: 起動に必要なブートローダー, kernel等
MLO START_HERE/ u-boot.img uEnv.txt uImage

sdc2: rootfs: Androidシステム
data/
init.am335xevm.usb.rc proc/ ueventd.am335xevm.rc
default.prop init.goldfish.rc
sbin/ ueventd.rc
dev/
init.trace.rc
sys/
init
lost+found/
system/

sdc3: usrdata
lost+found/

sdc4: data: データ領域
Audio/ Images/ Video/
TIのAndroidをソースコード
からビルドしてみる
http://processors.wiki.ti.com/index.php/TI-Android-JB-4.2.2-DevKit-4.1.1_DeveloperGuide
やった人の体験談 (^^;
http://salt.air-nifty.com/salt/2013/08/beaglebone-bl-1.html
rawboatプロジェクトの
Androidをビルドしてみる
rowboat:TI OMAP 35x,
AM37x, AM35x プラットフォ
ームへの移植とNEON対応、内
蔵DSP、GPUなどハードウェア
機能への対応を行っている
Androidの開発コミュニティ
やった人の体験談 (^^;
http://blog.sola-dolphin-1.net/archives/4487695.html
ソースコードの構造
改造前に、
知っておく必要あり
でも、作成間に合わず
質疑&次回にでも
Androidの起動の流れ
改造前に、
知っておく必要あり
でも、作成間に合わず
質疑&次回にでも
電話以外のハードウエア
への移植時の注意点
改造前に、
知っておく必要あり
でも、作成間に合わず
質疑&次回にでも
おしまい
当日動画、ゲリラ公開されてました
http://www.nicovideo.jp/watch/sm22087444
40名ほど聞きにきていただきました。
ありがとうございました。
ささやかですが、お礼に
売れ残りのバッジを配布しました。
作りかけですが、このプレゼンの
ネタ資料でまとめていたものを
Wikiに落とし始めています。
全部で3つ作ったシノプシスのう
ちの1つです。残りの1つも盛り
込んでいく予定です。
https://github.com/kinneko/BBBB/wiki
ユーザー会とかあったほうが
いいかなというヒトは、
twitter: @kinneko
kinneko@gmail.com
までご意見ください。
軽いウインドマネージャーで
UbuntuのXorg環境も動きます

BeagleBone BlackでAndroidの下回りを学ぼう (公開版)