小型Linuxサーバ / GuruPlug Server

この記事は2012年8月8日から2013年7月1日の間に「GuruPlugServer Facebook」で紹介したものです。

#0 はじめに

#0-1 そもそもGuruPlugって?

今回は、そもそもGuruPlugってなんだろう?
というお話をしたいと思います。

GuruPlugは小型のWiFi対応Linuxサーバです。
大きさは横6cm×縦9cm×奥行き4cmで、手のひらサイズですよ。
重さは缶コーヒーぐらいかな。

左にイーサネット、右にUSB差し込み口が2つあります。

JTAGと繋げるための差し込みもあります。

電源プラグを差すと…
緑色のLEDが光ります。

少し経つと…(測ってみると80秒でした~)
左右が黄色く光ります。
左側はぴかぴか点灯しますが、初期状態なので安心してください。
早速、GuruPlugに接続してみましょう!

接続先は「guru-uAP-××××」です。(××××はGuruPlugの無線利用時のMACアドレス下4桁です)

そしてTera Termを起動しましょう。
インストールしていない方はこちら↓
http://www.forest.impress.co.jp/library/software/utf8teraterm/


初めて接続する場合は「192.168.1.1」になります。

ログインユーザ名は「root」
パスワードは「nosoup4u」です。
nosoup4uって「あなたに食べさせるスープはないよ」ってことかな?
まぁどうでもいいですね!

接続できた^^
少しGuruPlugのスペックを調べてみましょう♪

「uname -a」コマンドを実行すると…
カーネル2.6.33.7バージョンとわかりました。
これはGuruPlugに搭載しているバージョンで一番最新のものらしいです。

「 cat /proc/meminfo」コマンドでメモリ容量がわかります。
メモリ容量は512MBです。

 「cat /proc/cpuinfo」コマンドでCPUについて…
CPUは「Feroceon 88FR131 rev 1 (v51)」です。
調べてみたら、Marvell Kirkwood 6281-1.2GHzとも言うらしいですよ!

最後に、「df -BM」コマンドでディスク容量がわかります。
ディスク容量は463MBでした。現段階では残り259MB残っていますね。
小型なうえにこのスペックで2万円とは安価ですよね。
それでいて消費電力は最大20Wと省エネです!
24時間付けっぱなしでも一カ月当たり最大300円で済みます。
これは、アイディア次第でいろいろな活用法がありそうですね。
例えば、無線LANアクセスポイントとしてPCとGuruPlugを接続して…
WEBカメラと組み合わせて、ペットを監視してみたり。
GuruPlugに動画を入れて、テレビに映し出したり。

#0-2 JTAGってなに?

今回はJTAGについて書きたいと思います。

JTAGは、GuruPlugとシリアル通信を用いてデバッグやプログラミングができます。
まずはJTAGをGuruPlugと接続する手順方法からです。(※今回の手順はWindows7用です)
一緒に進めていきましょう^^

ドライバーのインストールをしましょう。
ダウンロード先は↓
https://www.jspnet.co.jp/download/smartserver/WindowsTeraTermUSBDriver.zip

SheevaPlug JTAGKey FT2232D Bという同じ名前のドライバー二つです。
同じ名前でややこしいですね。

「コンピュータを参照してドライバーソフトウェアを検索します」を選択します。

ダウンロードしたファイルは任意の場所に展開して下さい。

Windowsセキュリティ画面が表示されたら、
「このドライバーソフトウェアをインストールします」を選択しましょう。

二つのドライバーをインストールすると、もう一つインストールするべきものが発見されました!!
これも一緒にインストールしちゃいましょう。

Tera Termを起動して、シリアルポート「COM××: USB Serial Port(COM××)」を選択して下さい。

続いてはシリアルポートの設定ですね。
「設定」→「シリアルポート」を選択し、以下の設定を行って下さい。

  1. 1.ボー・レート:115200
    2.データ:8bit
    3.パリティ:none
    4.ストップ:1bit
    5.フロー制御:none


ユーザ名・パスワードを入力しましょう。
初期設定は
ユーザ名:root
パスワード:nosoup4u

みなさんJTAGの設定はうまくいきましたか?
設定がうまくいったことにして、JTAGを使ってみましょう!
JTAGを使うとどんなことができるんでしょう。
例えば…
GuruPlugを別の無線ルータに接続して使用する場合、
接続先ルータのSSIDやパスワードの初期設定に失敗してしまうこともあるかもしれません。
そんな時、次に考える方法は、有線を利用した接続です。
有線のIPアドレスが固定IPアドレスならば、GuruPlugのIPアドレスがわかり、接続は可能です。
しかし自動でIPアドレスを割り振るDHCPの場合、
ルータがいくつのIPアドレスをGuruPlugに割り振ったかがわからなくなってしまいます。
(IPアドレスの下3桁を1~255まで試してみれば不可能ではないです…)
そんな時JTAGがあれば、簡単にGuruPlugのIPアドレスを調べることもできるし、
接続先ルータのSSIDやパスワードの設定も再度行えます^^

#0-3 JTAGを用いた接続方法

ここではGuruPlugを購入し、まずはじめに行うであろう、GuruPlugへの接続方法を紹介します。
今回はJTAGを用いた接続方法を紹介します。

JTAGをお持ちの方は、JTAGを用いて接続すればよいです。

JTAGの接続方法は以下のとおりです。
1.「Tera Term」のインストールを行います。

2.以下のURLより、JTAGのドライバを入手し、展開します。
  http://www.plugcomputer.org/downloads/plug-basic/

  「Plug SW Support Package Windows Host」を選択し、
  「SheevaPlug_Host_SWsupportPackageWindowsHost1.2.zip」をダウンロードします。

  ダウンロードしたファイルを任意の場所に展開します。
  ※一度展開したのち、再度展開後のフォルダ内の圧縮ファイルを展開します。

3.JTAGを接続し、ドライバのインストールを行います。
  具体的な接続方法は写真の通りです。

4.「Tera Term」を起動し、GuruPlugに接続します。
  シリアル、「COMxx:USB Serial Port(COMxx)」を選択し、OKを押下します。

5.設定を変更します。
  「設定」⇒「シリアルポート」を選択し、シリアルポート設定画面を表示します。
  以下の設定を行い、OKを押下します。
   (1)ボー・レート:115200
   (2)データ:8 bit
   (3)パリティ:none
   (4)ストップ:1 bit
   (5)フロー制御:none

6.ユーザ名・パスワードを入力します。
  初期設定
   ユーザ名:root
   パスワード:nosoup4u

ここまでやっていただければ、GuruPlugにログインできているはずです。
後は、Debianのコマンドを用いて操作していけます。

#0-4 JTAGを利用しない接続方法

今回はJTAGを使用しない接続方法を紹介します。
JTAGを使用しない場合の接続方法は以下のとおりです。

1.「Tera Term」のインストールを行います。
  ※ 「Tera Term」でなくともssh接続ができるソフトウェアであれば問題ありません。

2.作業用PCを無線lanにてGuruPlugに接続します。
   SSID:guru-uAP-XXXX
   パスワード:なし
   ※ XXXXにはGuruPlug無線利用時ののMACアドレス下4桁が入ります。

3.ssh接続ソフトを用いて「192.168.1.1」へ接続します。
   ユーザ名:root
   パスワード:nosoup4u

ここまでやっていただければ、GuruPlugにログインできます。
後は、Debianのコマンドを用いて操作していけばよいです。

#0-5 GuruPlugのインターネット接続方法

今回はGuruPlugを無線のルータに接続するための設定についてご紹介します。

まずはGuruPlugの無線のモードについて簡単にご説明いたします。
GuruPlugの無線のモードには2種類があります。

■アクセスポイントモード
アクセスポイントモードはGuruPlug自体が無線のアクセスポイントとなるモードです。このモードの場合、自身がアクセスポイントとなっているため、他の無線機器(タブレット端末やノートPCなど)が無線でGuruPlugに接続することができます。その時、GuruPlugが有線でインターネットに接続されていれば、GuruPlugに接続している無線機器もインターネットに接続することができます。
このモードの場合GuruPlugは無線のクライアント(GuruPlugが他の無線ルータやアクセスポイントに接続する状態)としてはご利用いただけません。

■クライアントモード
クライアントモードはGuruPlugが他の無線ルータ・アクセスポイントに接続するモードです。このモードの場合は無線を利用する場合に必ず無線ルータやアクセスポイントが必要です。もしご自宅に既存の無線ネットワーク環境が存在する場合は、そこに接続するだけでGuruPlugをインターネットに接続することができます。

GuruPlugはご購入いただいた際は無線のアクセスポイントモードの設定となっています。

そのため、インターネットに接続する際には有線にてDHCP対応のルータに接続するか、無線のクライアントモードに変更して無線ルータに接続する必要があります。

ここでは、GuruPlugを無線クライアントに切り替え、接続先のSSID・パスワードを設定する手順をご紹介いたします。

※今回の手順はアクセスポイントモードにて起動完了後にシェルを実行することで、クライアントモードに設定するものです。GuruPlugが再起動後にはアクセスポイントモードで立ち上がるため、クライアントモードに変更するには再度シェルを実行していただく必要があります。

※起動時にクライアントモードとして立ち上げたい場合は今回作成するシェルを起動時シェル(/root/init_setup.sh)内で実行するようにしてください。その際無線の設定に失敗してしまうと、再度GuruPlugに接続するのが難しくなってしまうため、細心の注意を払って自己責任で行ってください。


1.まずはGuruPlugの設定を変更するために、GuruPlugにログインを行います。

GuruPlugは初期設定では以下のような設定です。
※詳しい接続方法は「GuruPlug Tips」内の「JTAGを利用しない接続方法」をご覧ください。

SSID:guru-uAP-XXXX(XXXXはGuruPlug無線利用時のMACアドレス下4桁です)
ユーザID:root
ユーザパスワード:nosoup4u


2.GuruPlug内に接続先の情報を記載したファイルを作成します。

以下のコマンドを実行し、接続先情報を設定したファイルを作成します。

wpa_passphrase 'SSID' 'PASSWORD' > /etc/wpa_supplicant/mlan.conf
※SSID、PASSWORDは各無線ルータの設定に合わせてください。

更に上記コマンドにて作成されたファイルに以下を書き加えます。
※書き加える位置は {} 内であればどこでも構いません。

key_mgmt=WPA-PSK
proto=WPA WPA2
pairwise=CCMP TKIP
group=CCMP TKIP WEP104 WEP40

以下は実際に作成してみたファイルのサンプルです。

3.GuruPlugを無線のクライアントとして利用するためのシェルを作成します。

まずは以下のコマンドを実行し、基となるシェルをコピーします。

cp /usr/bin/wlan.sh /usr/bin/wlan_SSID.sh

次に以下のコマンドを実行し、先ほど作成したシェルにSSID・パスワードを読み込む処理を加えます。

echo '/sbin/wpa_supplicant -i mlan0 -c /etc/wpa_supplicant/mlan.conf -B' >> /usr/bin/wlan_SSID.sh

次にIPアドレスの設定を書き加えます。 IPアドレスの設定はDHCP・固定IPで2種類に分かれます。

DHCPの場合は以下のコマンドを実行し、シェルにDHCPでIPアドレスを取得する処理を加えます。

echo 'dhclient mlan0' >> /usr/bin/wlan_SSID.sh

DHCPでIPアドレスを取得する場合のシェルは以下のようになるはずです。

固定IPアドレスの場合は以下のコマンドを実行し、シェルにIPアドレスを固定する処理を加えます。

echo 'ifconfig mlan0 uuu.uuu.uuu.uuu netmask vvv.vvv.vvv.vvv up' >> /usr/bin/wlan_SSID.sh
echo 'route add -net www.www.www.www netmask vvv.vvv.vvv.vvv mlan0' >> /usr/bin/wlan_SSID.sh
echo 'route add default gw xxx.xxx.xxx.xxx mlan0' >> /usr/bin/wlan_SSID.sh
※uuu:設定したいIPアドレス
  vvv:サブネットマスク
  www:ネットワークアドレス
  xxx:デフォルトゲートウェイ

固定IPアドレスの場合のシェルは以下のようになるはずです。

4.無線クライアントモードへの変更シェルを実行します。
以下のコマンドを実行し、無線クライアントモードへの変更シェルを起動します。
※以下のコマンドを実行するとアクセスポイントモードでの接続が解除されます。
※再度接続する場合は無線のルータを経由して接続してください。

/usr/bin/wlan_SSID.sh

作成したシェルを実行することで、無線のクライアントモードとして利用することができます。
以下にシェルを実行する前のネットワークの状態とシェルを実行した後のネットワークの状態を示します。

シェル実行前の状態

シェル実行後の状態

いかがでしょうか?これで無線でルータに接続し、GuruPlugをインターネットに接続することができます。
さらに今回ジェイエスピーにて販売を行うGuruPlugは、日本国内向けにWifiのチャンネルを14チャンネルまで解放しています。

下の図はチャンネル数を確認した画面です。

GuruPlugをインターネットにつなげることは、様々なアイデアの実現のための第一歩になるかもしれません。
是非GuruPlugをインターネットに接続して、利用してみてください。