Saturday, May 24, 2014

JDK 8 on Raspberry Pi

先日Oracle Java Day Tokyo 2014に参加し、JavaをRaspberry Pi上で動かしているセッションを見て、自分のRaspberry PiにもJava 8を入れてみましたので、その手順について書きます。

JDK 8のダウンロード

まず、OracleのWebサイトに行き、Raspberry Pi向けのJDK 8をダウンロードします。
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-arm-downloads-2187472.html (2014/5/23時点)

ダウンロードしたら解凍して環境を整えます。
$ sudo tar zxvf jdk-8-linux-arm-vfp-hflt.gz -C /opt
$ sudo update-alternatives --install /usr/bin/javac javac /opt/jdk1.8.0/bin/javac 1
$ sudo update-alternatives --install /usr/bin/java java /opt/jdk1.8.0/bin/java 1
$ sudo update-alternatives --install /usr/bin/jjs jjs /opt/jdk1.8.0/bin/jjs 1
$ sudo update-alternatives --config javac
$ sudo update-alternatives --config java
$ sudo update-alternatives --config jjs
必要に応じて、jarコマンド等も設定するとよいかもしれません。

Javaコンパイル

以下のプログラムを入力して、コンパイルができることを確認してみます。

Hello.java
public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello, Java");
    }
}

コンパイルはjavacコマンドを使います。
$ javac Hello.java

コンパイルが成功すると、Hello.classが作成されます。
自分の環境では10秒程度かかりましたが、Javaは“Write once, run anywhere”なので、PCでコンパイルしても構わないでしょう。

Java実行

コンパイルで作成されたHello.classを実行してみましょう。
$ java Hello
Hello, Java

JavaScript (Nashorn)

Java VM上で、JavaScriptを動かすことができます。
alert()はWebブラウザで動くJavaScript用のため使えませんが、print()で標準出力を出すことができます。
$ jjs
jjs> print("Hello, Nashorn")
Hello, Nashorn
jjs>

JavaScript上からJavaのライブラリが呼べるのがとても魅力的です。
jjs> print(java.lang.System.currentTimeMillis());
1400923899236
jjs>

jjsコマンドの引数にファイル名を指定すれば、ファイルに記述されたプログラムが実行できますし、Node.jsのように、実行可能なJavaScriptを書くことができます。

test.js
#!/usr/bin/env jjs
print("test");

ファイルに実行権限を付与して、実行してみます。
$ chmod +x test.js
$ ./hello.js
test

JDK 8の導入手順は、以下を参考にさせていただきました。
http://www.rpiblog.com/2014/03/installing-oracle-jdk-8-on-raspberry-pi.html

Tuesday, April 29, 2014

MiniDLNA on Raspberry Pi

自宅のファイルサーバに記録した動画を自宅内で、PC、スマートフォン、iPadなどのタブレット、テレビから観えるようにしたい。それを実現する一つに、DLNA (Digital Living Network Alliance)があります。
ここでは、Raspberry PiをDLNAサーバとして使用するために、『miniDLNA』を導入する手順を説明します。

miniDLNAのインストールは、以下のコマンドを実行するだけです。
$ sudo apt-get install minidlna

インストールが終わったら、設定ファイルを編集してください。
$ sudo nano /etc/minidlna.conf

編集する項目として、以下を挙げておきます。
  • media_dir=<メディアデータの格納ディレクトリ>
  • friendly_name=<DLNAクライアントから見える名前(例:Raspberry Pi)>
  • inotify=yes
  • notify_interval=895
inotify項目はデフォルトでコメントアウトされています。このコメントアウトを取り除けば、ディレクトリ内のファイル追加・削除がデータベースに反映されます。変更を検知する周期は、notify_interval項目で設定できます。
media_dirは、Raspberry PiのSDカードの容量は限りがあるので、ファイルサーバ上のディレクトリをマウントして、マウントしたディレクトリを指定するとよいでしょう。

設定ファイルを編集したら、サービスを起動します。
サービスの起動・停止は、以下のコマンドで行えます。
$ sudo service minidlna start
$ sudo service minidlna stop

PCやiPadなどのDLNAクライアントソフトから、動画が見れれば成功です。

PCやAndroid用のDLNAクライアントとして、XBMCというソフトがあるようです。
iPadで無料で使えるDLNAクライアントとして、Media Link Player Liteなどがあります。

Friday, April 4, 2014

Orion on Raspberry Pi

Raspberry PiにOrionをインストールしてみた。
Orionはnode.js上で動作するので、node.jsが入っていなければここを参考に入れておこう。

ちなみに、自分のRaspberry Piには以下のバージョンを入れている。
$ node -v
v0.10.24

インストールはとてもシンプルで、インストール先ディレクトリを用意してrpmコマンドを叩くだけである。
$ mkdir orion
$ cd orion
$ npm install orion --production

インストールが終わったら設定ファイルorion.confを編集しておこう。
$ nano node_modules/orion/orion.conf

自分は、workspaceを以下のディレクトリにすることにした。
workspace=/home/pi/workspace

設定が終わったらさっそくOrionを起動してみよう。
npm start orion

「Listening on port 8081...」と出たら、Webブラウザからアクセスしてみよう。
http://<Raspberry Piのホスト名またはIPアドレス>:8081/