Getting started - kinneko/BBBB GitHub Wiki

とりあえず単体で使ってみる

 BeagleBone Blackは、購入した状態でもある程度は使うことができます。

 内部のeMMC領域には、Angstromがインストールされているので、付属のmini USBケーブルを接続するだけで起動します。起動は、mini USBコネクタのすぐ上に4つあるLEDで確認できます。一番外側のLEDが二回連続の点滅を続けていたら動作しています。



USBマスストレージとしてマウント

 PCから電源供給をしていると、USBデバイスは、マスストレージとUSB-CDC-Etherとして認識されます。起動したAngstromでは、USBガジェットドライバの仕組みを使って、USBデバイスとしての仮想的な動作をするように設定が行われているからです。

 まず、マスストレージとして動きを確認してみましょう。Ubuntuに接続すると、自動的にマウントされているのが確認できます(デスクトップでユーザーログインしていないと自動マウントはされません)。
 dmesgコマンドでkernelのログを確認してみると、マスストレージとして認識されているのがわかります。

[  170.059997] usb 1-1.3: new high-speed USB device number 8 using ehci_hcd
[  170.253562] Initializing USB Mass Storage driver...
[  170.254154] scsi2 : usb-storage 1-1.3:1.4
[  170.254274] usbcore: registered new interface driver usb-storage
[  170.254276] USB Mass Storage support registered.
[  171.252992] scsi 2:0:0:0: Direct-Access     Linux    File-CD Gadget   0308 PQ: 0 ANSI: 2
[  171.254487] sd 2:0:0:0: Attached scsi generic sg2 type 0
[  171.255928] sd 2:0:0:0: [sdc] 144522 512-byte logical blocks: (73.9 MB/70.5 MiB)
[  171.256569] sd 2:0:0:0: [sdc] Write Protect is off
[  171.256580] sd 2:0:0:0: [sdc] Mode Sense: 0f 00 00 00
[  171.257154] sd 2:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[  171.263238]  sdc:
[  171.265617] sd 2:0:0:0: [sdc] Attached SCSI removable disk

 マウントされたデバイスの内容を見てみましょう。

$ cat /proc/mounts
/dev/sdc /media/BEAGLEBONE vfat rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0077,codepage=cp437,iocharset=iso8859-1,shortname=mixed,showexec,utf8,flush,errors=remount-ro 0 0

$ df
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sdc           71133    55238     15895  78% /media/BEAGLEBONE

 ファイルシステムはFATです。内蔵eMMCの中は、2つのパーティションに分かれています。そのうちの先頭のFATの部分が、ストレージとして利用できるようになっています。rwでマウントされているので、書き込みも可能です。75MB弱ですが、USBメモリとしての使用ができます。ネットワークなどにつながっていない状態のとき、Angstromに小さいファイルを持ち込むのに使えそうです。

 ただし、この領域は、Angstromの起動時に使用されるものですので、すでにあるファイルの改変は極力避けましょう。

マウント状態

$ cd /media/BEAGLEBONE/
$ ls
App   Drivers  LICENSE.txt  README.md  autorun.inf  uEnv.txt
Docs  ID.txt   MLO          START.htm  u-boot.img

$ tree ./
./
|-- App
|   |-- README
|   `-- beaglebone-getting-started.zip
|-- Docs
|   |-- Hardware
|   |   `-- BeagleBone_Black_DOCS.zip
|   |-- bbone-target-config.ccxml
|   |-- beagle-ui.js
|   |-- beagle.css
|   |-- beagle.ico
|   |-- bonescript.js
|   |-- ccs-jtag-simple.htm
|   |-- common.css
|   |-- favicon.ico
|   |-- images
|   |   |-- 88x31.png
|   |   |-- Black-on-USB.jpg
|   |   |-- beagle-bullet-list-arrow.gif
|   |   |-- beagle.png
|   |   |-- beagle_logo_hdr.gif
|   |   |-- bone-usr3-led.png
|   |   |-- bone101.png
|   |   |-- ccs-jtag
|   |   |   |-- screen1-copy.jpg
|   |   |   |-- screen2-viewtargetconf.jpg
|   |   |   |-- screen3-refresh-topright.jpg
|   |   |   |-- screen4-launch.jpg
|   |   |   |-- screen5-connect.jpg
|   |   |   `-- screen6-startaddr.jpg
|   |   |-- download-7zip.png
|   |   |-- download-latestimage.png
|   |   |-- download-win32diskimager.png
|   |   |-- extract-latestimage.png
|   |   |-- extract-win32diskimager.png
|   |   |-- icon_facebook.png
|   |   |-- icon_google+.png
|   |   |-- icon_linkedin.png
|   |   |-- icon_twitter.png
|   |   |-- in-hand.png
|   |   |-- run-7zip-installer.png
|   |   |-- small_check.png
|   |   |-- url.png
|   |   `-- write-latestimage.png
|   |-- jquery-ui.css
|   |-- jquery-ui.min.js
|   |-- jquery.dimensions.js
|   |-- jquery.js
|   |-- jquery.mousewheel.js
|   |-- jquery.movingboxes.min.js
|   |-- jquery.svg.css
|   |-- jquery.svg.js
|   |-- jquery.terminal.css
|   |-- jquery.terminal.js
|   |-- jquery.ui.accordion.js
|   |-- jquery.ui.core.js
|   |-- jquery.ui.widget.js
|   |-- login.css
|   `-- none
|-- Drivers
|   |-- Linux
|   |   `-- FTDI
|   |       `-- mkudevrule.sh
|   |-- MacOSX
|   |   |-- FTDI
|   |   |   |-- FTDI_Ser.dmg
|   |   |   |-- README.txt
|   |   |   `-- do_patch.sh
|   |   `-- RNDIS
|   |       `-- HoRNDIS-rel4.pkg
|   `-- Windows
|       |-- BONE_D64.exe
|       |-- BONE_DRV.exe
|       `-- src
|           |-- 7zSD.sfx
|           |-- Makefile
|           |-- config.txt
|           |-- dpinst
|           |   `-- dpinst.exe
|           |-- dpinst64
|           |   `-- dpinst.exe
|           `-- files
|               |-- CDCACM
|               |   `-- linux-cdc-acm.inf
|               |-- FTDI
|               |   |-- Static
|               |   |   |-- amd64
|               |   |   |   `-- ftd2xx.lib
|               |   |   `-- i386
|               |   |       `-- ftd2xx.lib
|               |   |-- amd64
|               |   |   |-- ftbusui.dll
|               |   |   |-- ftcserco.dll
|               |   |   |-- ftd2xx.lib
|               |   |   |-- ftd2xx64.dll
|               |   |   |-- ftdibus.sys
|               |   |   |-- ftlang.dll
|               |   |   |-- ftser2k.sys
|               |   |   `-- ftserui2.dll
|               |   |-- ftd2xx.h
|               |   |-- ftdibus.cat
|               |   |-- ftdibus.inf
|               |   |-- ftdiport.cat
|               |   |-- ftdiport.inf
|               |   `-- i386
|               |       |-- ftbusui.dll
|               |       |-- ftcserco.dll
|               |       |-- ftd2xx.dll
|               |       |-- ftd2xx.lib
|               |       |-- ftdibus.sys
|               |       |-- ftlang.dll
|               |       |-- ftser2k.sys
|               |       `-- ftserui2.dll
|               |-- RNDIS
|               |   |-- linux-rndis.cat
|               |   `-- linux.inf
|               |-- beagle.ico
|               |-- dpinst.xml
|               `-- in-hand.bmp
|-- ID.txt
|-- LICENSE.txt
|-- MLO
|-- README.md
|-- START.htm
|-- autorun.inf
|-- u-boot.img
`-- uEnv.txt

24 directories, 102 files

 uEnv.txt, u-boot.img, MLOは、起動に必要なブートローダー関連のファイルです。起動に必要なファイルなので、変更や削除は行わないように注意が必要です。本格的な作業をする場合は、これらも変更したり操作したりすることになりますので、名前くらいはおぼえておいてください。

$ cat uEnv.txt
optargs=quiet drm.debug=7

$ file u-boot.img
u-boot.img: u-boot legacy uImage, U-Boot 2013.04-dirty for am335x \024, Firmware/ARM, Firmware Image (Not compressed), 379364 bytes, Wed Jun 19 22:57:37 2013, Load Address: 0x80800000, Entry Point: 0x00000000, Header CRC: 0x3CF947AF, Data CRC: 0x1B6A5A4F

$ file MLO
MLO: data

 LICENSE.txtは、eMMCに含まれるソフトウエアやドキュメントのライセンスがまとめて記載されています。目を通しておきましょう。

 ID.txtは、内蔵eMMCにインストールされているAngstromのバージョン情報が記載されています。

$ cat ID.txt
Cloud9 GNOME Image 2013.06.20

 README.mdは、使い方の簡単な記述があります。まずは、ブラウザでSTART.htmを開き、ガイドを読むように書かれています。

$ cat README.md
beaglebone-getting-started
==========================

BeagleBone Getting Started Guide

Please open START.htm in your web browser to view the guide.

Please submit any improvements to https://github.com/jadonk/beaglebone-getting-started.

For bone101, see https://github.com/jadonk/bone101.

 autorun.infは、Windows環境で、マスストレージとしてマウントされた直後に自動実行するファイルです。Windows環境では、USBを差し込むと、自動的にデフォルトブラウザでSTART.htmが開き、FTDIのシリアルデバイスドライバと、CDC-Etherのデバイスドライバのインストールが行われるようになっています。

 MacやLinuxでは、START.htmがブラウザで自動的に開かないので、クリックするか、ブラウザにドロップして開いてください。

$ cat autorun.inf
[Autorun]
shellexecute=START.htm
icon=Docs\beagle.ico
label=BeagleBone Getting Started
action=Open BeagleBone Getting Started Guide

[DeviceInstall]
DriverPath=Drivers\Windows\FTDI
DriverPath=Drivers\Windows\RNDIS

 Appディレクトリには、READMEとbeaglebone-getting-started.zipが入っています。beaglebone-getting-startedは、Windows環境で使える、node-webkitを使ったアプリケーションです。

$ cat App/README
node-webkit comes from https://github.com/rogerwang/node-webkit/commit/20eec65cb7788c9e969d5ad8e41f03b8ad66b9ea
For build scripts, see https://github.com/jadonk/beaglebone-gettig-started/tree/webkit-build-scripts

This is provided as a convenience to Windows users who don't have a great browser installed.
$ unzip beaglebone-getting-started.zip
Archive:  beaglebone-getting-started.zip
  inflating: LICENSE
  inflating: README
   creating: Windows/
  inflating: Windows/beaglebone-getting-started.exe
  inflating: Windows/ffmpegsumo.dll
  inflating: Windows/icudt.dll
  inflating: Windows/libEGL.dll
  inflating: Windows/libGLESv2.dll
  inflating: Windows/nw.pak

 Driversディレクトリには、Linux, Mac, Windowsに対応したデバイスドライバや設定ファイルが入っています。

 Docsディレクトリには、ハードウエアのドキュメントであるHardware/BeagleBone_Black_DOCS.zipと、START.htmからリンクしている、ブラウザから利用できる簡単なUIシステムが入っています。


USBをEthernetとして認識させる

 START.htmを開く前に、BeagleBone BlackとのEtnernetでの通信ができるようになっている必要があります。

 BeagleBone Blackを、CDC-Etherとして認識させるためには、OS側にデバイスドライバのインストールが必要になります。Ubuntuでは標準的なドライバで特にインストールなしに認識が可能です。  dmesgコマンドでkernelのログを確認してみると、CDC-Etherとして認識されているのがわかります。

[  170.059997] usb 1-1.3: new high-speed USB device number 8 using ehci_hcd
[  170.317778] usbcore: registered new interface driver cdc_ether
[  170.322056] rndis_host 1-1.3:1.0: eth1: register 'rndis_host' at usb-0000:00:1a.7-1.3, RNDIS device, 90:59:af:5c:4d:b7
[  170.322075] usbcore: registered new interface driver rndis_host
[  170.327571] usbcore: registered new interface driver rndis_wlan
[  170.342739] cdc_acm 1-1.3:1.2: This device cannot do calls on its own. It is not a modem.
[  170.342787] cdc_acm 1-1.3:1.2: ttyACM0: USB ACM device
[  170.343381] usbcore: registered new interface driver cdc_acm
[  170.343391] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[  180.497583] eth1: no IPv6 routers present

  インターフェイスの状態を見てみましょう。

$ sudo ifconfig eth1
eth1      Link encap:Ethernet  HWaddr 90:59:af:5c:4d:b7
          inet addr:192.168.7.1  Bcast:192.168.7.3  Mask:255.255.255.252
          inet6 addr: fe80::9259:afff:fe5c:4db7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:25 errors:0 dropped:0 overruns:0 frame:0
          TX packets:57 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:5989 (5.9 KB)  TX bytes:13454 (13.4 KB)

 192.168.7.1としてIPアドレスが割り当てられ、ネットワークが構成されているのがわかります。

 UbuntuとBeagleBone Blackが一対一で接続されているネットワークですので、ルーティングの設定がされておらず、BeagleBone BlackがUbuntuを通じて外部のネットワークを使うことはできません。


START.htmを開く

 Ubuntuのブラウザで、START.htmを開いてみましょう。Windowsで開く場合には、IEでは使えないので、chromeかfirefoxをインストールして使いましょう。

START.htm

 基本的な内容は、http://beagleboard.org/Getting%20Started で公開されているものの簡略版といったところです。

 "System Reference Manual and Hardware Documentation"というタイトルで、以下の様な構成になっています。

  • Step-by-Step Quick-Start
  • Step #1: Plug in BeagleBone via USB
  • Step #2: Install drivers
  • Step #3: Browse to your board
  • Troubleshooting
  • Update board with latest software
  • Step #1: Download the latest software image
  • Step #2: Install compression utility
  • Step #3: Decompress the image
  • Step #4: Install SD card programming utility
  • Step #5: Connect SD card to your computer
  • Step #6: Write the image to your SD card
  • Step #7: Eject the SD card
  • Step #8: Boot your board off of the SD card
  • Other currently available software images
  • Hardware documentation

 "Step-by-Step Quick-Start"では、起動、LEDの説明、各種ドライバの設定方法、BeagleBone BlackにブラウザからアクセスするURLなどが書かれています。これらは、すでにこのサイトで解説済みです。

 "Troubleshooting"では、IEは使うな、BeagleBone Blackをブラウズするにはnode-webkitベースのWindowsアプリを使う方法もある、仮想マシンからの利用はUSBで問題があることがあるのでオススメしない、デバッグの追加情報は http://beagleboard.org/support 見てね、などが書いてあります。

 "Update board with latest software"については、内蔵eMMCに書かれているAngstromの更新方法が書かれています。これも、すでに「内蔵eMMCにプリインストールされたAngstromを最新版にアップデートする」で解説済みです。

 "Other currently available software images"では、現在動作するOS環境とその情報へのリンクが書かれています。

 "Hardware documentation"では、ボード内にあるハードウエアドキュメント・アーカイブへのリンクと、 http://beagleboard.org/hardware/design へのリンクが書かれています。


sshでリモート接続する

 BeagleBone Blackの、Angstromには、sshサーバーとしてdropbearがインストールされています。dropbearは、OpenSSLを必要としないので、組み込みなどフットプリントを小さくする必要がある場合には便利なsshサーバーです。

 CDC-Etherを使って、BeagleBone Blackとの間でネットワークが確立されているので、ssh接続をやってみましょう。

 ユーザーはroot、パスワードは設定されていないのでなし。

$ ssh [email protected]
The authenticity of host '192.168.7.2 (192.168.7.2)' can't be established.
RSA key fingerprint is 44:05:d6:69:ac:4c:fc:10:28:16:f0:78:bb:a8:4d:55.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.7.2' (RSA) to the list of known hosts.
[email protected]'s password:
root@beaglebone:~#

 カギの交換をして、接続できました。あとはシェルから自由に操作できます。

 BeagleBone Blackは、有線LANのインターフェイスも持っているので、直接ssh接続することもできます。


BeagleBone Black内蔵のWebページ

 BeagleBone Blackでは、Webサーバーが動作していて、ブラウザでアクセスすることにより、ドキュメントやCloud9 IDEなどにアクセスできるようになっています。

 まずは、ブラウザで、USB-CDC-Etherで接続している人は、http://192.168.7.2/ に、有線LANで接続している人は、割り当てられたアドレスにアクセスします。Support/bone101/にリダイレクトされ、"BeagleBone 101・BeagleBone: open-hardware expandable computer"というページが開きます。表示される内容は、http://beagleboard.org/Support/bone101/ と同じ内容です。

内蔵ドキュメント

 このページには、以下の内容が書かれています。

  • Latest ARM open source focused on easy hardware experimentation
  • Update board with latest software
  • BoneScript interactive guide
  • Cloud9 IDE
  • GateOne SSH client
  • Hardware documentation
  • Capes

 BoneScriptと、Cloud9 IDEについては、別のページで解説します。

 GateOne SSH clientは、ブラウザ画面でssh操作を行うものです。開いてみましたが、chrome環境では、まず証明書が信用できないとアラートが出ます。先に進むと、リダイレクトループが多すぎると出て使用することができませんでした。プロジェクトのWebサイトはこちらです。GateOne

 Hardware documentationには、各インターフェイスの内容と、ピン番号とファンクションの対比表が書かれています。

 さらに、このページから、BoneScriptの関数やjavascriptを解説したページと、標準的な操作を学ぶためのCape拡張ボードである、Bacon Capeの情報ページを見ることができます。
 BoneScriptのページは、http://beagleboard.org/Support/BoneScript/ と同一の内容でした。
 Bacon Capeのページは、 http://beagleboard.org/Support/BoneScript/cape_bacon/ と同一の内容でした。