今回は、node.jsのOpenBlocks Aシリーズへの導入を行いました。
<検証環境>
Debian 7.1 Wheezy
OpenBlocks AX3/4 kernel: 3.2.40
OpenBlocks A7 Ketnel 3.2.40
OpenBlocks AX3/4 kernel: 3.2.40
OpenBlocks A7 Ketnel 3.2.40
<使用機器>
OpenBlocks AX3 DPパッケージ (もしくは、SSD搭載モデル)
OpenBlocks A7 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
# 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
// 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
# make install
3. 動作確認その他
インストール後、nodeコマンドを実行し動作を確認してください。
# node -v
v0.10.28
v0.10.28
前述しましたが、npmは同時にインストールされます。
プロジェクト毎に必要なモジュールはインストールされますので、特にグローバルにインストールする必要はないようです。
*) 2014/05/12 expressに関しての記述は削除しました。
0 件のコメント:
コメントを投稿