node.jsスクリプトの自動起動

覚書な為、詳しくは書いていません。

Raspberry pi 2上で動作するnode.jsアプリを起動時に自動起動するためやり方。

sudo npm install -g forever

/etc/rc.local に下記の行を追記する


sudo -u pi /usr/bin/node /usr/bin/forever start -p /var/run/forever --pidfile /var/run/node-app.pid -l /home/pi/node-app.log -a -d /home/pi/aaa/aaa.js

※sudo で、ユーザを指定して起動するのがコツ

Raspberry pi 2 購入 その6 VNCサーバ(覚書)

基本は、SSH接続できれば十分な気もするが、VNC接続できるようにサーバを設定する

sudo apt-get install tightvncserver

で、パッケージをインストール。

パスワードを設定する。短いパスワードだと設定出来ないので、長めに!

vncpasswd

VNCサーバを起動します。

vncserver :0 -geometry 1024×600 -depth 16

ディスプレイ番号0番(5900ポート)で、解像度1024×600、色数は16bitっていう設定になります。

これで、VNCクライアントから接続確認がとれたら、自動起動するように設定する。

/etc/init.d/vncboot
っていうファイルを新規に作成する

### BEGIN INIT INFO
# Provides: vncboot
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start VNC Server at boot time
# Description: Start VNC Server at boot time.
### END INIT INFO

#! /bin/sh
# /etc/init.d/vncboot

USER=pi
HOME=/home/pi

export USER HOME

case "$1" in
    start)
        echo "Starting VNC Server"
        #Insert your favoured settings for a VNC session
        su $USER -c '/usr/bin/vncserver :0 -geometry 1024x600 -depth 16'
        ;;

    stop)
        echo "Stopping VNC Server"
        su $USER -c '/usr/bin/vncserver -kill :1'
        ;;

    *)
        echo "Usage: /etc/init.d/vncboot {start|stop}"
        exit 1
        ;;
esac

exit 0

管理者権限を追加します。

sudo chmod 755 /etc/init.d/vncboot

自動起動の設定を行う。

sudo update-rc.d vncboot defaults

これで、再起動させて、クライアントから、VNC接続ができればOK!

Raspberry pi 2 購入 その5 固定IPアドレス(覚書)

サーバとして利用したいので、無線LANのIPをDHCPから固定IPに設定する

/etc/network/interface

auto lo
iface lo inet loopback
allow-hotplug eth0
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

を下記のように編集する

auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet static
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
address 192.168.100.10
network 192.168.100.0
netmask 255.255.255.0
broadcast 192.168.100.255
gateway 192.168.100.1
dns-nameservers 192.168.100.1

iface default inet dhcp

8行目はもともと、wpa-roamになっているので、これをwpa-confに設定しないと無線LANの接続は行われないので注意

Raspberry pi 2 購入 その4 node.js導入(覚書)

Rasberry pi 2導入ではまったことの1つに、Node.jsをインストールができなくて困ったこと。

arm6からarm7になった為、定番の方法では、CPUが違うので、インストールさせないという事例が発生したのだ!

例えば、

nodebrewを使った方法
Raspberry PiにnodebrewでNode.jsをインストールする

nvmを使った方法
Raspberry PiでNode.jsを動かす

が撃沈しました。

ソースをコンパイルするべきなのか?と思っていたら、

node-armのページを発見した!

ここに書かれているとおりにやってみたら、node.js 0.10.36がインストールできました!

追記(2015.02.10)
node-arm のモジュールでは、Expressがインストールに失敗するという事象に遭遇。。。。
sudo npm -g install express をやってみたら、クラッシュしてしまったので、これもダメでした。

で、今度は、Raspberry pi用のモジュールを本家から持ってくるをやってみた。

wget http://nodejs.org/dist/v0.10.28/node-v0.10.28-linux-arm-pi.tar.gz
tar -zxvf node-v0.10.28-linux-arm-pi.tar.gz
sudo mv node-v0.10.28-linux-arm-pi /usr/local/node

sudo ln -s /usr/local/node/bin/node /usr/bin/node
sudo ln -s /usr/local/node/bin/npm /usr/bin/npm
sudo ln -s /usr/local/node/lib/node_modules /usr/lib/node_modules

で、とりあえず、Expressモジュールはインストールできました。

同じようにハマっている方が居ましたら、ご参考までに

Raspberry pi 2 購入 その3 USB Bluetooth Adapter設定(覚書)

今度は、BT-Micro4の設定に行きたいと思います。

これは無線LANのように挿したら、使えるのか?とおもいきや使えないので、OS側にBlueZというものをインストールすれば、すぐ使える状態になります。

sudo apt-get install bluez

で、インストールされます。ちなみにバージョンは、4.99 でした。

インストールが完了したら、もう使える状態になっています。

hciconfig

とたたくと、 USB Bluetooth AdapterのBluetooth Addressの値等が確認できると思います。

hcitool scan

とかやると、デバイスの検索もOKです。

BLEのデバイスを探したい場合は

sudo hcitool lescan

で探せます。

ひたすら、アドレスが表示されまくるので、ctrl+cで止めましょう!

hcitoolとか使って、Bluetootデバイスの設定もできるようですが、私的には、デバイススキャンだけできればいいので、ここまで!

追記
node.jsでbleaconを使う場合は、下記のライブラリをインストール
sudo apt-get install libbluetooth-dev

Raspberry pi 2 購入 その2 USB無線LAN設定(覚書)

USB無線LANであるWLI-UC-GNM2を設定する。

実は、何も設定しなくても、USB無線LANは認識され、使える状態になっているので、あとは、SSID等を設定するだけです。

GUIでやった方が楽なので、startxでGUIを起動して、
Menu→Prefencias→WiFi Configurationを選ぶと、設定画面が出てきます。

Adapterを見て、wlan0と出ていれば、ちゃんと認識できていることが確認出来ます。

Networkの部分は空白のままなので、ここから、無線LANのAPの情報を設定していきます。

せっかく、GUIなので、APをスキャンして設定していく簡単なやり方を!

Current Statusタブに、Scanってボタンがあるので、押すと、Scan Result画面がでています。

この時点では、何も出ていないので、Scanボタンを押すと、無線LAN APを探しに行きます。

すると、APが出てくると思いますので、繋ぎたいAPを選択すると!

設定画面が出てくるので、PSKキーの部分を入力して、Addボタンで設定完了!

うまくいくと勝手に繋がると思います。

これでOK!

とはいえ、設定ファイルがどこにあるのか?は示しておきます。

/etc/wpa_supplicant/wpa_supplicant.conf

にAPのSSID等の設定がされていることがわかります。

複数のAPの情報を格納もできます!

network={}の部分を増やせばOK

これで、自宅の場合、職場の場合のAPの設定を書いておけば、すぐに使える状態にすることができるでしょう。

Raspberry pi 2 購入 その1(覚書)

昨日、Raspberry Pi 2を秋葉原の千石電商で購入した。(税込み、5400円 2/9得現在)

初代、Raspberry piを3台持っていたが、もう何をしたらいいのか?忘れてしまっているので、覚書を記す。

パソコンはMac OSX Yosemiteを使ってインストール作業を行っています。

Raspberry pi 2(Model B)は、初代Raspberry piと違って、Micro SDを採用しているので、GigaStone Micro SDカード 16GB準備した。(あきばお~で691円だった)

まずは、OSのダウンロード
公式サイトから、NOOBS(執筆時点1.3.12)をダウンロードする。
Network install onlyなら、22MB程度、でも、Ethernetを使ったネットワーク環境が必要。

SDカードのフォーマット
SD Associationから、提供されているSD Card Formatterで、SDカードをフォーマットし、NOOBSを回答した中身をドラッグアンドドロップでコピーすればOK

Raspberry Pi 2にMicroSDを挿入し、モニターとHDMIケーブルで接続、Ethnernetケーブルを接続、USBデバイスとして、キーボード、トラックパットがついているLogicool K400rのレシーバー、WLI-UC-GNM2BTMicro4を装着して、MicroUSBケーブル経由で電源を投下。

OSは、RASPBIANを選択して、インストール!

無事起動できると、Raspberry Pi Software Configuration Toolの画面が出てくるので!

Expand FileSystemを選択する。

Internationalisation Options→Change Locateを選択する

デフォルトで、en_GB.UTF-8 UTF-8が選択してあるので、外して
es_US.UTF-8 UTF-8
jp_JP.EUC-JP EUC-JP
jp_JP.UTF-8 UTF-8
の3つをスペースで選択する。

その後、選んだ3つから選択しろと出るので、es_US.UTF-8 UTF-8を選択する。

タイムゾーンの選択
Internationalisation Options→Change Timezone→Asia→Tokyoを選択

キーボードの選択
Internationalisation Options→Change Keyboad Layout→Generic 105 (Intl) PC→Other→Japanese→Japanese (OADG 109A)→The Default for the Keyboad layout→No compose key→No

Finishを選択して、終了

とりあえず、アップデート

sudo apt-get update
sudo apt-get upgrade

長くなってきたので、まずは、ここまで、次は無線LANの設定を書く予定