2014年5月9日金曜日

[.tested] node.js [debian Wheezy][AX3][A7][A6]

node.jsはサーバサイドのJavaScriptインタプリタです。
今回は、node.jsのOpenBlocks Aシリーズへの導入を行いました。

<検証環境>
Debian 7.1 Wheezy
OpenBlocks AX3/4 kernel: 3.2.40
OpenBlocks A7 Ketnel 3.2.40

<使用機器>
OpenBlocks AX3 DPパッケージ (もしくは、SSD搭載モデル)
OpenBlocks A7 DPパッケージ (もしくは、SSD搭載モデル)

1. 導入前の準備


node.jsは、公式サイトからソースコードをダウンロードしてビルドを行います。
そのため、開発環境のインストールを行っておく必要があります。

OpenBlocks における開発環境構築手順について [debian Wheezy][AX3][A7][A6]

検索などをすると、npmのインストールのためにcurlを入れる事例などありますが、現状では、node.jsのインストールによりnpmもインストールされますので必要ありません。

2. node.jsのビルド


node.jsの公式サイトより最新のソースパッケージを入手してください。


以下の例は、2014/05/09時点での最新のバージョンです。

# wget http://nodejs.org/dist/v0.10.28/node-v0.10.28.tar.gz

展開します。

# tar xvzf node-v0.10.28.tar.gz
# cd node-v0.10.28

一般的には、ここでconfigureしてmakeするだけなのですが、Aシリーズの場合は、以下のパラメータを指定する必要があります。

AX3の場合

# ./configure --without-snapshot --with-arm-float-abi=hard

A7/6の場合

# ./configure --without-snapshot

また、A7/6の場合、一部のソースコードを修正する必要があります。

# vi deps/v8/src/arm/macro-assembler-arm.cc

以下のイタリック表記の3行を追加してください。

// We always generate arm code, never thumb code, even if V8 is compiled to
// thumb, so we require inter-working support
#if defined(__thumb__) && !defined(USE_THUMB_INTERWORK)
#error "flag -mthumb-interwork missing"
#endif

// ADD THESE THREE LINES TO macro-assembler-arm.cc

#if !defined(CAN_USE_THUMB_INSTRUCTIONS)
# define CAN_USE_THUMB_INSTRUCTIONS 1
#endif


// We do not support thumb inter-working with an arm architecture not supporting
// the blx instruction (below v5t).  If you know what CPU you are compiling for
// you can use -march=armv7 or similar.
#if defined(USE_THUMB_INTERWORK) && !defined(CAN_USE_THUMB_INSTRUCTIONS)
# error "For thumb inter-working we require an architecture which supports blx"
#endif

上記の修正および、configureの実行を行った後、makeを実行し、インストールします。

# make
# make install


3. 動作確認その他


インストール後、nodeコマンドを実行し動作を確認してください。

# node -v
v0.10.28

前述しましたが、npmは同時にインストールされます。


プロジェクト毎に必要なモジュールはインストールされますので、特にグローバルにインストールする必要はないようです。

*) 2014/05/12 expressに関しての記述は削除しました。

0 件のコメント:

コメントを投稿