BeagleBone BlackはTexas Instrument社が開発した小型組込みLinuxボードです。オンボードにeMMCと呼ばれる2GBのフラッシュメモリを搭載し、購入したらすぐに開発できます。
購入時にインストールされているLinuxはAngstromLinuxと呼ばれる少しマイナーなLinuxです。また、ブートはオンボードのeMMCかmicroSDからの二通りの行えます。
動作するLinuxOSは豊富で、Angstromはもちろん、UbuntuやAndroidなどが選べます。 豊富なIOが提供されているため、ちょっとした電子工作からロボット応用まで幅広く使えます。
今回はBeagleBone Blackをより手軽に開発できるようにするため、なるべく購入時のままでRTミドルウェアの動作検証を行います。
注意:この記事を書いている間に、より手軽にBeagleBone Blackの開発環境を構築できるOSのバージョンが出てきましたので、近日新しいOSを使った構築方法を公開します。
2013/11/16 追記:
Angstrom Linuxのバージョンに関係なく自動起動の仕組みを提供できるように改善したため、自分に合ったものをお使いください。
念のため、OSの入れ替えの方法を説明しているサイトを紹介します。
http://beagleboard.org/Getting%20Started
仕様 | ||
価格 | $45 | |
CPU | 1GHz 2000MIPS Sitara AM3359AZCZ100 | |
GPU | SGX530 3d, 20M Polygons/S | |
メモリ | 512MB DDR3L 400MHz | |
オンボードフラッシュ | 2GB 8-bit MMC | |
電源供給方法 | miniUSB、DCジャック、外部からピンヘッダに5VDC供給 | |
サイズ | 86×53mm | |
USB2.0ホスト | 1 | |
USB2.0クライアント | miniUSB ×1 | |
シリアルコンソール | 3.3V TTL ヘッダつき | |
イーサネット | 10/100 Mbps | |
外部ストレージ | microSD スロット | |
映像出力 | microHDMI | |
音声出力 | microHDMI | |
低レベル周辺機器 | A/D×7 タイマ×4 シリアル×4 CAN SPI I2C | |
OS | Angstrom(デフォルト)/ Ubuntu / Android / ArchLinux / Gentoo / Minix / RISC OS 他 | |
その他 | NEON floating-point accelerator | |
ホームページ | http://beagleboard.org/Products/BeagleBone%20Black |
BeagleBone Blackに初期状態でSSHでログインできるものと出来ないものがあったため、確実にログインできる方法を示します。
まず以下の写真のようにBeagleBone Blackと開発を行なう母艦PCをUSBで接続します。
後ほどLAN経由でOpenRTM-aistのパッケージをインストールするので、LANケーブルを接続していると良いでしょう。
こうすると、パソコンにはCOM*として接続されます。BeagleBone BlackはターミナルにCOM接続でアクセスできるので、 ターミナルソフト(Teraterm)を立ち上げてCOM接続を行なってください。
Teratermを使って接続する場合は、COM番号が自動的に選択されます
一度エンターキーを押すとこのような画面が出てくるので、ログインを行ないます
ユーザー: root パスワード: 無し
BeagleBone BlackにはデフォルトでAvahiが立ち上がっていますので、windows OSでSSHログインする場合、
Bonjourが入っていればbeaglebone.localでログインできます。
注意:SSHでログインできないことがあるので、もし入れない場合はCOM*でログインしてください。
ホストID : beaglebone.local ユーザー: root パスワード: 無し
OpenRTM-aistを自動的にインストールし、AngstromLinuxにおいて自動起動の仕組みを追加したスクリプトが以下の場所にあります。
このスクリプトは、ネームサーバーまでを自動起動しますので、自分の目的に合ったコンポーネントを起動させてください。
また、このスクリプトを実行すると、BeagleBone Blackでデフォルトで起動する192.168.7.2が起動しなくなります。
これは、RTコンポーネントの自動起動を行う際、コンポーネントのエンドポイントが192.168.7.2になってしまうのを防ぐためです。
このスクリプトを実行する際には、eMMC内部に書き込まれているOSイメージのバックアップをすることを強くお勧めします。
バックアップのとり方はこちらを参照してください。
注意:このスクリプトを実行すると、USBを通してCOM接続も出来なくなります。
2013/11/16 追記:
インストールスクリプトで192.168.7.2を無効にする機能を廃止(便利なこともあるので。)
代わりに、AngstromLinuxの起動時に192.168.7.2以外の自分のIPアドレスを探し、Corbaのエンドポイントをそこに指定するようにした。
192.168.7.2を無効にしないため、USBを使ったSSHのログインや、COM接続のログインが使える。
# wget http://openrtm.org/pub/Linux/Angstrom/armv7l/setuprtm.sh # sh setuprtm.sh
個別にインストールしたい方は以下を実行してください。
# opkg install http://openrtm.org/pub/Linux/Angstrom/armv7l/omniorb.opk # opkg install http://openrtm.org/pub/Linux/Angstrom/armv7l/openrtm-aist.opk
先程インストールしたOpenRTM-aistのパッケージにはコンパイル済みのサンプルがあるので、
ConsoleInCompを立ち上げてみましょう。
# /user/share/openrtm-1.1/example/ConsoleInComp
これでBeagleBone Black上でConsoleInCompが立ち上がります。
WindowsでConsoleOutCompを立ち上げて検証を行なった画面が以下になります。
これでBeagleBone BlackでのRTミドルウェア動作確認は終了です。
詳しく書いてある記事を見つけましたので、仕組みはこちらを参照してください。
詳しく書いてある記事を見つけましたので、仕組みはこちらを参照してください。
GUIは処理は重いので、しばらく開発する際にSSHでログインする場合はGUIを切っておいたほうが良いでしょう。 そのやり方を以下に記述します。
# systemctl disable gdm.service
これで次回のブートからXServerが立ち上がらなくなります。 その上で今すぐXserverを停止させたい場合は、
# systemctl stop gdm.service
で停止します。
Xserverをまた立ち上げたい場合は、
# systemctl enable gdm.service
で立ち上がります。
BeagleBone BlackをUbuntuで開発すると、一気に開発の敷居が下がるため、非常にお勧めです。
また、最近のUbuntuイメージでは、USBを使ったSSHログインが出来るため、手軽に開発が出来ます。
公式サイトにUbuntuに関して紹介があります
http://elinux.org/BeagleBoardUbuntu
すごく詳しく書いてありますので、参考になると思いますが、情報量が多すぎる気もするので、
以下に簡単にまとめます。
BeagleBone Blackを開発するにあたって、OS非依存の設定などがあるので、以下にまとめます。
・OSのインストール
・USBのWifiドングルを使ったネットワークの接続
・IOなどのIFを使う方法
============
・USBのWifiドングルを使ったネットワークの接続
まず手持ちのWifiドングルをUSBポートに接続します。
LinuxOSで、Wifiドングルを使用する際、4つのレベルがあります。
①USBに挿しただけで認識される
②色々設定を修正すれば認識される
③windows用のドライバをlinuxで使えるようにする
④デバイスドライバを自分で書く
①以外は面倒なので、挿しただけで認識されるものを使うのがベストだと思います。
以下のUSB-Wifiドングルは挿しただけで認識されました。参考になれば幸いです。
http://buffalo.jp/product/wireless-lan/client/wli-uc-gnm2/
http://www.planex.co.jp/product/wireless/gw-usvalue-ez/
では、認識されたかの確認方法ですが、
$ lsusb
でUSBポートに挿されているデバイスの一覧が表示されます。
また、無線LANの設定を確認する際には
$ iwconfig
で表示されます。
これはDebianで実行しました。
まだ何も設定していないので、SSIDもアクセスポイントも何も無いと思います。
それでは、実際に無線LANの設定を行っていきます。
$ sudo vi /etc/network/interfaces
を実行すると、LANの設定が出てきます。
エディタは好きなものを使ってください。
以下の設定を直します。
auto wlan0 iface wlan0 inet dhcp wpa-ssid "接続先のSSIDの名前" wpa-psk "パスワード"
最後にwlanを有効にします。
$ sudo ifup wlan0
ただし、WPA2で接続の確認は取れましたが、WEP方式だとうまくいきませんでした。 wpasupplicantを導入するのも手でしょう。
Linux開発をする際に、なるべくシンプルなOSで行いたいニーズは高いのではないか? と考え、なるべく情報公開していく予定です。
最近のDebianイメージでも、USB接続でSSHログイン出来るようになっているので、開発が格段に楽になりました。
公式サイトに詳しく記述があります。 http://elinux.org/BeagleBoardDebian