USBカメラからの映像をストリーミングするソフトを決める前に、ソフトをコンパイルする環境、つまりクロスコンパイル環境を構築します。
参考にしたドキュメントはこれです。
この環境はLinuxマシン上に構築します。今回使用したのはLinuxBeanというUbuntuの軽量版です。
- 準備
Linux上で以下のコマンドを実行します。
$ sudo apt-get install make automake gcc g++ build-essential gcc-multilib - クロスコンパイラのダウンロード
インテルのサイトからクロスコンパイラをダウンロードします。今回は32ビット版を使用します。
- unzipで解凍
ダウンロードしたファイルedison-sdk-linux632-ww05-15.zipをunzipコマンドで解凍します。
- poky-して出来たファイルpoky-edison-eglibc-i686-edison-image-core2-32-toolchain-1.6.1.shを実行します。
$ ./poky-edison-eglibc-i686-edison-image-core2-32-toolchain-1.6.1.sh
Enter target directory for SDK (default: /opt/poky-edison/1.6.1):
You are about to install the SDK to “/opt/poky-edison/1.6.1″. Proceed[Y/n]?
Extracting SDK…done
Setting it up…done
SDK has been successfully set up and is ready to be used. - 環境変数の設定
$ source /opt/poky-edison/1.6.1/environment-setup-core2-32-poky-linux - 環境変数の確認$ echo $CC
i586-poky-linux-gcc -m32 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -mstackrealign -fno-omit-frame-pointer –sysroot=/opt/poky-edison/1.6.1/sysroots/core2-32-poky-linux$ echo $CXX
i586-poky-linux-g++ -m32 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -mstackrealign -fno-omit-frame-pointer –sysroot=/opt/poky-edison/1.6.1/sysroots/core2-32-poky-linux$ echo $CPP
i586-poky-linux-gcc -E -m32 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -mstackrealign -fno-omit-frame-pointer –sysroot=/opt/poky-edison/1.6.1/sysroots/core2-32-poky-linux
$ echo $LD
i586-poky-linux-ld –sysroot=/opt/poky-edison/1.6.1/sysroots/core2-32-poky-linux$ echo $GDB
i586-poky-linux-gdb
以上で開発環境の構築は終了です。とても簡単ですね。
それではさっそくプログラムを書いてEdisonで動かしてみます。
- $ vi hello_world.c
Linuxマシン上でviエディタを使ってソースコードを書きます。
#include int main(){ printf(“Hello World\n”); return 0; } - コンパイル
$ $CC -o hello hello_world.c
Linuxマシン上でコンパイルします。 - 確認1
コンパイルに成功するとhelloファイルが出来ます。lsコマンドで確認します。
$ ls -l hello
-rwxrwxr-x 1 uname gname 8540 3月 22 15:23 hello - 確認2
Edison用のバイナリになっているか確認します。
$ file hello
hello: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, BuildID[sha1]=cd533dabc53fc35cf4392b084ca792ead4689cfe, not stripped
EdisonのCPUはIntel Atomなので、「Intel 80386」と表示されます。 - プログラムをEdison上に転送するために、Wifiをセットアップします(Wifi環境が既にある前提です)。
$ configure –wifi
シリアルコンソールで上記を実行すると、アクセスポイントを検索します。
検索が終了すると次の画面になります。
接続するアクセスポイントを選択し、セキュリティの設定をしてWifiの設定は終了です。
- IPアドレスが割り当てられているかifconfigコマンドで確認します。
wlan0 I/FにIPアドレス192.168.3.14が割り当てられています。
- 同じアクセスポイント経由でつながっているPCからEdisonにpingしてみます。
応答が帰ってきています。 - LinuxマシンからEdisonにhelloプログラムをscpコマンドで転送します。
$ scp hello root@192.168.3.14:/home/root/sample
root@192.168.3.14’s password:
hello 100% 8540 8.3KB/s 00:00 - Ediosn上でhelloプログラムを実行します。
無事、実行することが出来ました。
以上で、クロス開発環境の構築は終了です。
次回はいよいよ、カメラをEdisonに接続です。お楽しみに!