ブログ

Armadillo-IoT:EnOceanLink試供版1_7_0をビルドしてみた

at_kazutaka.bito
2016年2月6日 16時14分

Armadillo-IoTの開発環境ATDE5で、EnOceanLink試供版1_7_0をビルドしてみました。 TutorialはHelloWorldのみ確認しました。

1.用意するファイル

EnOceanLinkTrial_1_7_0_0.zip(enocean-linkのサイトよりダウンロード) EnOceanLink_trial_1_7_0_0_x1.patch

注意)
patchファイルのTutorialのソースコードのシリアルポート名は、 Armadillo-IoTのCON1を使うことを想定して"/dev/ttymxc3"にしてます。 CON2に接続する場合は、patchファイル内の、"/dev/ttymxc3"を"/dev/ttymxc0"に修正します。 (なお、ログのシリアルポートの表示名はオリジナルのまま"USB300"になってます。)

2.libtoolのインストール

[ATDE ~]$ sudo apt-get install libtool

3.EnOceanLinkTrial_1_7_0_0にパッチを適用

[ATDE ~]$ ls
EnOceanLinkTrial_1_7_0_0.zip
EnOceanLink_trial_1_7_0_0_x1.patch
[ATDE ~]$ mkdir EnOcean_Link
[ATDE ~]$ cd EnOcean_Link
[ATDE ~/EnOcean_Link]$ unzip ../EnOceanLinkTrial_1_7_0_0.zip
[ATDE ~/EnOcean_Link]$ patch -p1 < ../EnOceanLink_trial_1_7_0_0_x1.patch

3.EnOcean Linkライブラリのクロスビルド

[ATDE ~/EnOcean_Link]$ cd EOLink
[ATDE ~/EnOcean_Link/EOLink]$ autoreconf -vfi
[ATDE ~/EnOcean_Link/EOLink]$
PKG_CONFIG_LIBDIR=/usr/arm-linux-gnueabi/lib/pkgconfig ./configure --build=$(./config.guess) --host=arm-linux-gnueabi
[ATDE ~/EnOcean_Link/EOLink]$ make

4.Tutorial/Makefileに合わせたディレクトリにライブラリのコピー、リンクを貼る。

[ATDE ~/EnOcean_Link/EOLink]$ mkdir -p ReleaseLib/.libs
[ATDE ~/EnOcean_Link/EOLink]$ cp -a .libs ReleaseLib/.libs/
[ATDE ~/EnOcean_Link/EOLink]$ cd ReleaseLib/.libs/
[ATDE ~/EnOcean_Link/EOLink/ReleaseLib/.libs]$ ln -s ../../libEOLink.la
libEOLink.la

5.Tutorialのビルド

[ATDE ~/EnOcean_Link/EOLink/ReleaseLib/.libs]$ cd ../../../Tutorial
[ATDE ~/EnOcean_Link/Tutorial]$ autoreconf -vfi
[ATDE ~/EnOcean_Link/Tutorial]$
PKG_CONFIG_LIBDIR=/usr/arm-linux-gnueabi/lib/pkgconfig ./configure
--build=$(./config.guess) --host=arm-linux-gnueabi
[ATDE ~/EnOcean_Link/Tutorial]$ chmod +x Tutorial.sh
[ATDE ~/EnOcean_Link/Tutorial]$ ./Tutorial.sh
[ATDE ~/EnOcean_Link/Tutorial]$ cd Tutorials

6.TutorialのHelloWorldで動作確認

Armadillo-IoTのCON1にEnOceanアドオンモジュールを接続します。 (手順1の説明のとおり、patchファイルが、CON1(/dev/ttymxc3)用になっているため)

ATDEの

/usr/arm-linux-gnueabi/lib/libstdc++.so.6.0.17
をArmadillo-IoTに転送します。

ATDEの

~/EnOcean_Link/Tutorial/Tutorials内の
HelloWorld

をArmadillo-IoTに転送します。

libstdc++.so.6.0.17をArmadillo-IoTの /libに置いて、

[root@armadillo-iotg (ttymxc1) ~]# cd /lib
[root@armadillo-iotg (ttymxc1) /lib]# ln -s libstdc++.so.6.0.17
libstdc++.so.6

でリンクを貼ります。

下記のようにHelloWorldを実行すると、EnOceanデバイスからのデータを受信すると情報を表示します。

[root@armadillo-iotg (ttymxc1) ~]# chmod +x HelloWorld
[root@armadillo-iotg (ttymxc1) ~]# ./HelloWorld