ばかおもちゃ本店の動画:ニコニコ動画Youtube twitter:@sashimizakana

2014年5月6日火曜日

BeagleBone BlackにUbuntuを入れてnode.jsとbonescriptを入れる


BeagleBone BlackにUbuntuを入れて、node.jsとbonescriptを入れて開発が出来るようにした。あとntpを使えるようにしたり、最初の状態みたいに仮想LANを使えるようにしたり、USBスピーカーつないだり、無線LAN対応にしたりしたけどその辺はまた後日書く。このあたりのことはよく知らないのだけど、海外のフォーラムとかに情報が大量にあるので、ググればだいたいどうにかなった。

参考サイト:
minicubeな日々: BeagleBone Blackにubuntuを入れて使う。
Installing Node.js via package manager joyent/node Wiki  GitHub
jadonk/bonescript GitHub

Ubuntuを入れるにはイメージをmicro SDカードに焼いて、そこから起動する。

Downloads | armhf.com

BeageBone Black Ubuntu Saucyっていうのがイメージ。
WindowsなのでこのファイルをダウンロードしてWin32 Disk Imagerで焼いた。
カードをスロットに入れて、Bootボタン(マイクロSDスロット側に一個だけあるボタン)押したまま起動するとカード内のUbuntuが起動する。
カード不要でUbuntuにするには上記のイメージをこの環境から直接フラッシュメモリ(/dev/mmcblk1)に書き込んで、マイクロSDを抜けば良い。当たり前だけど、フラッシュメモリで起動してるときにフラッシュメモリに書き込むことは出来ないので、一回はマイクロSDから起動する必要がある。
イメージはSFTPでも、wgetでも良いのでとにかく持ってきて、
sudo su
xz -cd (イメージのファイル名.xz) > /dev/mmcblk1
を実行する。多少時間はかかる。
実行にはsudo suでrootにしないとダメだった(sudoでは実行できなかった)。

マイクロSDを抜いて再起動してubuntuが立ち上がれば成功。
続いてnode.jsとbonescriptのインストールを行う。

以下上から順番にやってけば動くはず。
#最初に実行しないとパッケージ入れられない
sudo apt-get update

#nodejsのインストール
sudo apt-get install -y software-properties-common
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install -y python-software-properties python g++ make nodejs

#bonescriptのインストール
sudo apt-get install -y build-essential python-setuptools python2.7-dev
wget -c https://raw.github.com/RobertCNelson/tools/master/pkgs/dtc.sh
chmod +x dtc.sh
./dtc.sh
sudo TERM=none npm install -g bonescript

#再起動しとく
sudo reboot

上記の方法でやると気にしなくて問題ないけど、普通にapt-getでインストールするとnode.jsのパッケージ名はnodeじゃなくてnodejsになる。これは既にnodeというパッケージがある(アマチュアパケットラジオノード?)ため。
で、その場合、/usr/bin/以下にあるnodejsにnodeという名前のシンボリックリンクを作っておかないとnpmのビルドとかが通らない。そのへん、参考サイトに並べた公式サイトに書いてある。
最後に再起動しないと、/usr/bin/node_modules/にパスが通らなくてrequireでbonescriptが見つからなかったりして色々混乱した。




BeagleBone Black
BeagleBone Black
posted with amazlet at 14.05.05
Circuitco Electronics LLC
売り上げランキング: 10,840
フラッシュメモリの容量が倍になった次期バージョンが出るらしくて品切れになってて、アホみたいなプレミア価格になってるので買わない方が良いっぽい。次期バージョンは$10上がって、$54くらい

microSDHCでOK。