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