BeagleBone Black

http://beagleboard.org/Products/BeagleBone%20Black
TIのOSHWなマイコンボード

目次

ハードウェア

AM335x Coretex-A8 (ARM) 1GHz CPU
メインメモリ 512MB DDR3
3Dグラフィックアクセラレータ
オンボード eMMCフラッシュメモリ 2GB
と、結構豪華なワンボードコンピュータ。

I/O類

micro SDスロット×1
LAN ×1
HDMI(micro) ×1
USB(ホスト) ×1
USB(デバイス) ×1
DC(5V)入力(電源はDCからでもUSBデバイスコネクタからでも供給可能)
これら以外にも2×64ピンヘッダ、FTDIブレイクアウト用ヘッダが用意されている

OS

デフォルトではCloud9 IDEを含むÅngström Linux。しかしながら、ARMアーキテクチャのCPUのため、ARMをサポートするLinux系は動作するので用途は広い。メモリが少ないことと、ストレージがフラッシュなので、組み込み系に最適化されたLinuxを使うのがベター。

(普通の)使い方

"普通に"使ったりLEDをパカパカさせる使い方は、あちこちに情報があるので参考にしてください。うちのWikiではそもそも、普通に使いませんので。

シリアルコンソール

ボード上のJ1がFTDIブレイクアウト用のコネクタになっています。ピンの1番(●マーキングのある側)が、GNDになります。
ただし、BBBは3.3V I/Oのため3.3V用FTDIブレイクアウトを使用してください。スイッチサイエンスのこれ
http://www.switch-science.com/catalog/1032/
は、5V/3.3V切り替え式なので便利です。とはいえ他で使う用途がなければ3.3V専用品を買っておいてもかまいません。
デフォルトではシリアルは115,200bpsです。

シリアルコンソールを使わない場合どうするか

HDMIとUSBが付いているので、HDMI入力可能なディスプレイがあれば使えます。ただし、BBBのHDMIはmicroタイプなので変換アダプタか、microHDMI-HDMIのケーブルが必要になります。

なお、デフォルトのÅngström Linuxでもsshdは動いているのでDHCP環境があればネットワークに接続すればログインできるため、サーバとして使うのであればコンソール環境は無くてもかまいません。まかり間違えて起動しなくなってもコンソールは要らないかも。

ブートシーケンス

これ結構ハマりますので注意。
BBBは基本、以下のシーケンスでブートします。

電源投入->オンボードeMMCのブートパーティション

つまり、普通は電源が投入されるとオンボードのeMMCの1パーティション目を見に行き、そこからブートします。通常このパーティションはFAT32の64MBパーティションです。

Disk /dev/mmcblk0: 1920 MB, 1920991232 bytes, 3751936 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 label type: dos
Disk identifier: 0x00000000

        Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1   *          63      144584       72261    c  W95 FAT32 (LBA) <-これ
/dev/mmcblk0p2          144585     3743144     1799280   83  Linux

micro SDからブートしたい場合には、S2のスイッチ(micro SDスロットに近いところにあるやつ)を押しながら電源を投入します。この場合には、以下のシーケンスになります。

電源投入->micro SDのブートパーティション

なので、一般的にはmicro SDに64MBのFAT32パーティションをまず作り、そこを/bootにすればmicor SDから起動します。
ただし、micro SDから起動しようと思うと、S2スイッチを押していないとmicro SDからはブートしないという問題があります。このため、必ずmicro SDから起動させたい場合にはS2のところをハンダしてしまうのが良さそうです(eepromなどで変更できる方法見つけた人は教えてください)。
オンボードのeMMCを温存しつつ、micro SDからブートさせる場合には、eMMCの/boot(1パーティション目)を書き換えてしまいます。そうすると、次の順序でブートすることになります。

電源投入->オンボードeMMCのブートパーティション->micro SDのファイルシステム(/とか)

と、なるので"スイッチを押さずに"起動した場合には、必ずオンボードeMMCのブートパーティションを通らなくてはなりません。
なのでオンボードeMMCの中身を飛ばしてしまうと、S2スイッチを押さないと起動できないBBBになってしまいます。

本体アップデート&リカバリ

本体のオンボードeMMCを消してしまったなどという場合には以下の手順でeMMCをリカバリできます。アップデートも同じ方法です。
まず以下からイメージを落とします。
http://beagleboard.org/latest-images
BeagleBone Black (eMMC flasher)を落とします。これが本体のeMMC用のリカバリイメージになりますが、一旦これを適当なmicro SDに書き込みます。xz圧縮されたイメージなので展開してからdd等で書き込みます。4GBもあれば足りるので、そのへんで余っているmicro SDで。ブート情報込みなのでof=/dev/sdbのように頭から書き込んでください。書き込んだら以下の手順でリカバリします。
1)電源を切ってmicro SDを入れます
2)S2スイッチを押しながら電源を入れます
3)USER LED(LANコネクタ側のLED) 4つが点滅します
4)USER LEDの点滅が終わって4つとも常時点灯になるのを待ちます
これでオンボードeMMCが書き込まれます。
あたりまえの話ですがeMMCに何か書き込んでる場合にはバックアップしてからフラッシュしてください。当然、消えてなくなりますから。