ブログ

Armadillo-IoT(G1/G2): Node.jsを入れてみた

at_ito
2015年10月2日 16時15分

Armadillo-IoTを使ったデモを作成する際、ArmadilloではRuby、クラウドのサンプルではjavascript等と複数の言語を使い分ける必要があります。

複数の言語を扱うのは面倒なので、Armadilloでもjavascriptが動かせないかと思い、Node.jsの実行環境をArmadilloに入れてみました。

1. Node.jsの追加

Node.jsをDebian Packagesから取得、展開し、Atmark Distのromfsディレクトリに展開します。

以下のコマンドを実行し、Node.jsをromfsディレクトリに配置してください。

[ATDE ~]$ wget http://ftp.jp.debian.org/debian/pool/main/n/nodejs/nodejs_0.10.29~dfsg-1~bpo70+1_armel.deb
[ATDE ~]$ dpkg -x nodejs_0.10.29~dfsg-1~bpo70+1_armel.deb .
[ATDE ~]$ rm -rf usr/share/{doc,man,doc-base}
[ATDE ~]$ cp -R usr/ atmark-dist/romfs/

※: Atmark Distは一度ビルドしておいた状態にしておいてください。

2. 依存ライブラリのインストール

Node.jsを動かすためにはlibv8ライブラリが必要になります。そのため、ATDE側にクロス開発用ライブラリをインストールします。

以下のコマンドを実行し、libv8ライブラリをインストールしてください。

[ATDE ~]$ wget http://ftp.jp.debian.org/debian/pool/main/libv/libv8-3.14/libv8-3.14.5_3.14.5.8-8~bpo70+1_armel.deb
[ATDE ~]$ mv libv8-3.14.5_3.14.5.8-8~bpo70+1_armel.deb libv8-3.14.5_3.14.5.8-8~bpo70_armel.deb
[ATDE ~]$ dpkg-cross --arch armel --build libv8-3.14.5_3.14.5.8-8~bpo70_armel.deb
[ATDE ~]$ sudo dpkg -i libv8-3.14.5-armel-cross_3.14.5.8-8~bpo70+1_all.deb

3. ユーザーランドイメージの作成

以下のコマンドを実行し、ユーザーランドイメージを作成してください。

[ATDE ~]$ cd ~/atmark-dist
[ATDE ~/atmark-dist]$ make romfs image

上記コマンドを実行して出来上がったromfs.img.gzをAramdilloのユーザーランド領域に書き込んでください。

4. サンプルアプリケーションの実行

hello.jsという名前のファイルを、以下の内容で作成してください。

console.log("hello world");

上記で作成したサンプルアプリケーションを、以下のコマンドを実行してください。

[armadillo ~]# nodejs hello.js
hello world

上記のように「hello world」が表示されます。