2013-12-11

[.tested] OpenBlocks AX3/A7 OpenSSLベンチマーク [debian Wheezy][AX3][A7]

OpenSSLは、DebianのパッケージよりUbuntuの方が40%前後良い結果になるのですが、原因はコンパイルオプションの違いによるものと思われます。
今回、マイクロサーバ技術課にてDebianのOpenSSLを再構築、速度検証を行った結果を、当blogにて報告します。

<検証環境>
OpenBlocks AX3/4 Debian 7.1 kernel: 3.2.40
OpenBlocks AX7 Debian 7.1 kernel: 3.2.40

OBDN技術ブログによる動作検証は、該当するソフトウェアの動作を保証およびサポートを行うものではありません。
内容に関するご指摘などありましたら、ブログ記事の担当までご連絡下さい。

1.OpenSSLの作成


開発環境の準備

SSD併用モードの検証機を用意します。
以下のコマンドを入力して、ビルド環境を作成します。

# apt-get install build-essential devscripts
# apt-get build-dep openssl
# apt-get source opnessl


OpenSSLのビルド

configはデフォルトで。

# cd openssl-1.0.1e
# ./config
# make


2.ベンチマーク


以下のopensslのオプションコマンドによるベンチマークを行いました。

# openssl speed md5 sha rc4 aes-128-cbc aes-256-cbc -elapsed

elapsedオプション このオプションを付けた場合は、経過時間に実時間を使用します。
付けない場合は、経過時間にユーザ時間を使用します。
( timeコマンドでいうところのrealを使うかuserを使うかの違いです。)


# time
real 0m0.000s
user 0m0.000s
sys 0m0.000s

AX3

MD5

16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
original 3959.72k 14570.50k 45317.27k 96043.04k 142521.75k
rebuild 3176.47k 11748.89k 38143.49k 86815.81k 139127.92k

SHA


SHA1
16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
original 4118.90k 13892.91k 37209.22k 64278.28k 81364.79k
rebuild 3258.12k 11657.12k 35595.82k 73223.14k 105856.43k

SHA256
16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
original 1185.47k 2831.95k 21233.46k 27692.57k 30383.88k
rebuild 9166.13k 22245.57k 40425.80k 50926.48k 55104.13k

SHA512
16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
original 1001.78k 4010.72k 5859.25k 8083.48k 9087.40k
rebuild 2900.56k 11631.05k 16581.49k 22607.95k 25313.55k

RC4

16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
original 76616.54k 92183.77k 99732.75k 101792.74k 101980.87k
rebuild 86311.48k 97458.94k 101188.81k 102165.26k 101828.47k

AES


AES 128 CBC
16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
original 19698.47k 24733.85k 26619.24k 27161.86k 27324.81k
rebuild 37864.58k 48231.72k 52411.28k 53509.61k 53727.00k

AES 256 CBC
16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
original 15526.19k 18610.97k 19649.15k 19927.86k 20001.00k
rebuild 31212.60k 37900.44k 40606.87k 41398.18k 41575.08k
A7

MD5

16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
original 1498.52k 5339.41k 15721.63k 30893.06k 42628.34k
rebuild 1175.85k 4268.61k 13349.97k 28286.55k 42101.42k

SHA


SHA1
16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
original 1297.46k 4093.24k 10183.34k 16189.44k 19507.88k
rebuild 1140.14k 3761.33k 9810.09k 16310.86k 20307.97k

SHA256
16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
original 1185.47k 2831.95k 5132.54k 6406.29k 6927.70k
rebuild 2689.97k 6131.58k 10653.60k 13119.15k 14002.60k

SHA512
16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
original 153.51k 617.22k 871.08k 1195.69k 1349.91k
rebuild 729.19k 2926.45k 4139.18k 5635.75k 6278.72k

RC4

16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
original 22444.42k 25887.09k 27038.89k 27221.73k 27396.78k
rebuild 22965.96k 26169.81k 27001.28k 27336.02k 27303.04k

AES


AES 128 CBC
16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
original 4880.32k 5504.11k 5666.79k 5733.38k 5720.79k
original 7606.46k 8501.16k 8808.19k 8854.03k 8899.24k

AES 256 CBC
16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
original 3751.82k 4089.11k 4202.92k 4214.39k 4232.53k
rebuild 5890.15k 6452.46k 6589.41k 6650.88k 6660.10k
3.検証結果から


AX3
  • AESは2倍程度高速となります。
  • MD5は遅くなります。
  • RC4, SHA1は大きく変わりません。SHA256, SHA512は数倍高速となります。
A7
  • AESは3割程度高速となります。
  • MD5は遅くなります。
  • RC4, SHA1は大きく変わりません。SHA256, SHA512は数倍高速となります。

暗号化アルゴリズム単位で指定できるので、MD5を指定しない前提であれば、リビルドをすることにより速度向上を見込めます。

2013-12-09

TI CC2541 SensorTag Development Kit

TEXAS INSTRUMENTS社より、センサータグ開発キットCC2541が配布されているので、TIショップより入手しました。

 CC2541 SensorTag 開発キット - CC2541DK-SENSOR - TI ツール・フォルダ:

この開発キットは、以下のセンサー入力をBluetoothにより出力します。
  • IR 温度センサ
  • 湿度センサ
  • 圧力センサ
  • 加速度計
  • ジャイロスコープ
  • 磁力計


購入は、TIショップからの直接購入をお勧めします。($25で送料込み)
展示会などでの即売もあるようです。

Bluetooth LEデバイスとして、bluezでscan出来るところまでは確認しました。
OpenBlocksとの接続や監視ツールとの連携に関してはこれから行いたいと思います。

(TIのサイトより、各種OS向けの開発キットやテストツールが配布されていますが、ソースコードの入手にはagreementが必要になっていますので、muninプラグインなど作成した際の公開に関しては少し時間がかるかと思います)

2013-12-06

[.tested] SII MB-B100-00 CDMA 1X 通信アダプタ [debian Wheezy][AX3][A7/A6]



SII MB-B100-00は、CDMA 1x 通信モジュール(セイコーインスツル製 WM-M200A)を内蔵したKDDI CDMA1x 汎用通信アダプタです。
KDDI CDMA 1x 通信サービスを利用して、パケット通信、SMS 受信、GPS 測位を行うことができます。
今回は、本装置によるパケット通信サービスをOpenBlocks AX/A7/A6で 利用するための検証を行います。

OBDN技術ブログによる動作検証は、該当するデバイスの動作を保証およびサポートを行うものではありません。
内容に関するご指摘などありましたら、ブログ記事の担当までご連絡下さい。

<検証環境>
Debian 7.1 Wheezy
OpenBlocks AX3/4 kernel: 3.2.40
OpenBlocks A6/A7 kernel: 3.2.40

<使用機器>
OpenBlocks AX3
OpenBlocks A6/A7
SII MB-B100-00 CDMA 1X 通信アダプタ

1. 事前準備


本装置は、RS-232Cインタフェースにより接続します。
OpenBlocksの場合は、RS-232Cポートに接続しますが、他社の外付けモデムと同様に、別売の
シリアル変換アダプタ(ストレート) PH-RD/RH/600を使用します。
(添付のクロスアダプタを使用する場合は、Dsub9pinのオスメスのシリアルクロスケーブルにより接続して下さい)


RS-232Cポートのデバイス名は、
/dev/ttyS1
になります。


2. 接続方法


接続は、他のモバイル通信アダプタと同様、pppconfigで設定を行います。

pppconfigをインストールします。

# aptitude install pppconfig

pppconfigの設定は以下の通りです。

Provider Name  au
Configure Nameservers (DNS)  Dynamic
Authentication Method for test  PAP
User Name  アカウント名(*1)
Password  パスワード(*1)
Speed  19200
Pulse or Tone  Tone
Phone Number  電話番号(*2)
Choose Modem Config Method  No
Select Modem Port  Manual
Manually Select Modem Port  /dev/ttyS1

(*1) 通信事業者より提供されたアカウント名、パスワードを使用してください。
(*2) 通信事業者より提供された番号を使用してください。

/etc/chatscripts/auを編集します。
ATZコマンドはこのモジュールの場合使用出来ません。
また、その後の処理も一部変更しています。
(****は発信する電話番号のため、置き換えてください)

# This chatfile was generated by pppconfig 2.3.18.
# Please do not delete any of the comments.  Pppconfig needs them.
#
# ispauth PAP
# abortstring
ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' ABORT 'NO DIAL TON
E' ABORT 'NO ANSWER' ABORT DELAYED
# modeminit
#'' ATZ
# ispnumber
#OK-AT-OK "ATDT****"
'' "ATDT****"
# ispconnect
CONNECT \d\c
# prelogin

# ispname
# isppassword
# postlogin

# end of pppconfig stuff

eth0や他のインタフェースが有効になっている場合は、/etc/ppp/peers/auに、以下の行を加えることにより、defaultrouteが変更されます。

replacedefaultroute


上記設定により、外部のサーバにアクセス出来ることを確認しました。

# pon au
# ifconfig ppp0
ppp0      Link encap:Point-to-Point Protocol
          inet addr:106.170.173.51  P-t-P:210.169.0.102  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:3 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:72 (72.0 B)  TX bytes:87 (87.0 B)

ただ、poffコマンドにより通信終了後、最初のATコマンドの出力が”NO CARRIER"となり、ponによる再ダイヤルの最初の1回目がエラーになります。
これを避けるためには、再度ダイヤルするか、リセット用の専用プログラムを作成し、ATコマンドを1度実行するなどの対策が必要かと思います。

なお、コンシューマ向けの機器と違い、M2M向けは通信データ量に対しての従量課金が細かく定義されるため、評価を行う際は、条件に注意して行ってください。

2013-11-29

[.testted] GLPI + OCS Inventory NGによるIT資産管理 [Debian Wheezy][AX3][A7]

GLPIは、リソース管理、サービスデスク、ソフトウェアのライセンス管理、監査などの機能をもつ、オープンソースの資産管理システムです。

GLPI - Gestionnaire libre de parc informatique:

http://www.glpi-project.org/spip.php?lang=en

GLPIは、主に情報部門などで必要とされる機能の多くが実装されており、また日本語にも対応しています。
ただし、GLPIには、OSC Inventory-NGが提供するような、管理対象のPC等からリモートで情報を取り出す手段がないため、GLPIにOSC Inventory NGのデータベースと連携する機能が実装されています。

今回は、GLPIを管理台帳のシステム、OCS Inventory NGをエージェントからのデータ収集システムとして、OpenBlocks AX3/A7で利用する方法についてご紹介します。


OBDN技術ブログによる動作検証は、該当するソフトウェアの動作を保証およびサポートを行うものではありません。
内容に関するご指摘などありましたら、ブログ記事の担当までご連絡下さい。

<検証環境>
OpenBlocks AX3/4 Debian 7.1 kernel: 3.2.40
OpenBlocks AX7 Debian 7.1 kernel: 3.2.40

1.OCS Inventory-NGのインストール


OCS Inventory-NGのインストールに関しては、前回の記事を参照してください。

[.testted] OCS Inventory NG [Debian Wheezy][AX3]


2.GLPIのインストール


・データベースの作成について

 OCS Inventory-NGにてインストールしたMySQLを使用します。
 GLPIインストール時に、(MySQLの管理者パスワードを入力する必要があります)

・GLPIのインストール

 debian wheezyパッケージより、glpiをインストールします。
 提供されるバージョンは、GLPI 0.83.31です。

  # aptitude install glpi

 インストール中に、MySQLデータベースの管理者パスワード、および、GLPIが使用するデータベースのパスワードの入力を求められますので、前回のmysql-serverインストール時に設定した管理者パスワードおよび、GLPIで使用するDBのパスワードを入力してください。

・web GUIによる初期設定
 
 Webブラウザより、以下のURLにアクセスします。
 http://サーバのIPアドレス/glpi/

 http://サーバのIPアドレス/ocsreports/

 管理用のユーザ名および、初期パスワードは、user: glpi Password: glpi です。


初期画面が表示されます。


 右上のsettingボタンを押し、languageを日本語に変更します。


メニューが日本語となります。


3.OCS Inventory-NG との連携方法


OSC Inventory-NGとの連携は、OSCNGメニューより行いますが、事前に、OSCNG modeを有効にする必要があります。

 セットアップ-一般設定-一覧タブより、OSCNG modeを有効にしてください。



 有効にすることにより、セットアップメニューより、OSCNG modeが選択できます。


データベースのサーバ名を選択し、OSC Inventory-NGで使用するデータベースのパスワードを入力します。
また、OSCNG database in UTF8も「はい」にします。


インポートのオプションを設定します。
OSCNGソフトウェアリストの使用は「いいえ」にして下さい。
「はい」の場合、初期状態では登録されたリストとのマッチングの関係だと思いますが、ソフトウェアリストが取得されません。


ツール-OSCNGメニューより、「新しいコンピュータをインポート」を選択します。
 

OSC Inventory-NGで管理されているコンピュータのリストが表示されますので、全てインポートする場合は、そのままインポートを押します。


インポートが成功すると、一覧 - コンピュータ メニューにて機器一覧が表示されます。


閲覧したい機器の名前をクリックすることにより、情報が表示されます。
また、この情報は、csv形式で出力することも出来ます。




出力されるcsvファイルは、一旦保存し、excelなどで取り込む際には、文字コードとしてUTF-8を、セパレータとして「;」(セミコロン)を指定します。

5.さいごに


今回は、OpenBlocks AX3のdebian wheezyにより提供される、glpiパッケージと、ocsinventory-serverパッケージを使用し、エージェントプログラムより入手した情報をGLPIパッケージで使用する方法を紹介しました。
日本語の扱いについても、特にパッチなどを適用する必要もなく、比較的簡単に導入できると思います。

2013-11-28

[.testted] OCS Inventory NG [Debian Wheezy][AX3][A7]

OSC Inventory NGは、オープンソースのIT資産管理システムです。
公式サイトは、以下になります。

OCS Inventory NG | Home:

http://www.ocsinventory-ng.org/en/

debian wheezyのパッケージで提供されるOSC Inventory NG 2.0.5からはUTF-8対応しており、agentから送られてくる日本語の情報もローカルパッチなしに取得出来ます。
今回は、OCS Inventory NGをOpenBlocks AX3/A7で利用する方法についてご紹介します。


OBDN技術ブログによる動作検証は、該当するソフトウェアの動作を保証およびサポートを行うものではありません。
内容に関するご指摘などありましたら、ブログ記事の担当までご連絡下さい。

<検証環境>
OpenBlocks AX3/4 Debian 7.1 kernel: 3.2.40
OpenBlocks A7 Debian 7.1 kernel: 3.2.40

1.mysqlの導入


・パッケージのインストール

# aptitude install mysql-server

 インストール時にMySQLを管理するrootユーザのパスワードを聞かれるため、
 予め決めておく必要があります。

・動作確認

# mysql -u root -p

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
+--------------------+
2 rows in set (0.00 sec)

mysql>


2.OCS Inventory-NG serverのインストール


・データベースの作成

 あらかじめocs inventory serverで使用するデータベースを作成、設定します。
 rootユーザのパスワードは、aptitudeコマンドによりインストール時に設定しています。

 MySQL monitorを起動し、joruriユーザを作成します。

# mysql -u root -p
Enter password: ←インストール時に設定した(mysqlの)rootユーザパスワードを入力
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 39
Server version: 5.1.49-3 (Debian)

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

 DBを作成します。

mysql> create database ocsweb;

 確認は以下のコマンドにより行います。

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| ocsweb             |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)
mysql>

 ユーザを作成します。

mysql> grant all privileges on ocsweb.* to ocs@localhost identified by 'password';

 ※パスワードは適切な値を設定してください。
ocs inventory

 character setを設定します。

mysql> alter database `ocsweb` default character set utf8 collate utf8_general_ci;

・OCS Inventory-NG serverのインストール

 debian wheezyパッケージより、ocsinventory-serverをインストールします。
 関連パッケージとして、apache2、perl5、php5等が合わせてインストールされます。

  # aptitude install ocsinventory-server ocsinventory-reports

・web GUIによる初期設定
 
 Webブラウザより、以下のURLにアクセスします。
 http://サーバのIPアドレス/ocsreports/

  ここで、データベースのユーザ(ocs)、パスワード(設定したもの)、データベースサーバー名を入力します。


 データベースの設定が成功すると、以下の画面となります。


 改めて、以下のURLでアクセスします。
 http://サーバのIPアドレス/ocsreports/

 管理用のユーザ名および、初期パスワードは、user: Admin Password: admin です。


 以下のエラーが出ますが、これはセキュリティ警告で、

 ・install.phpが残っている
 ・Adminのパスワードがデフォルトのまま

 ですので、まずは/usr/share/ocsinventory-reportsの下のinstall.phpを消してください。


 Adminアカウントの変更は、以下のタグより行います。

  
 2つの修正が終わると、ログイン時のエラーメッセージが消えます。


3.OCS Inventory-NG Agentのインストール


 ・OCS Inventory-NG Serverの一部修正

 データベースocswebのユーザocsのパスワードをデフォルト以外にしておかないと、管理画面にてセキュリティエラーが表示されるため、今回の手順ではあらかじめ別のパスワードを設定していますが、Agentよりデータを受け取ろうとすると、受け取り側のモジュールでエラーが出ます。
 これは、一部の設定ファイルがデフォルトのまま記述されているのが原因のため、修正が必要となります。
 /etc/ocsinventory/ocsinventory.conf内の、
 PerlSetVar OCS_DB_PWD
 で設定された、パスワードをデフォルトのocsから設定したパスワードへ変更してください。

root@glpi3:/etc/ocsinventory# vi ocsinventory.conf

  :
  # Master Database settings
  # Replace DATABASE_SERVER by hostname or ip of MySQL server for WRITE
  PerlSetEnv OCS_DB_HOST localhost
  # Replace DATABASE_PORT by port where running MySQL server, generally 3306
  PerlSetEnv OCS_DB_PORT 3306
  # Name of database
  PerlSetEnv OCS_DB_NAME ocsweb
  PerlSetEnv OCS_DB_LOCAL ocsweb
  # User allowed to connect to database
  PerlSetEnv OCS_DB_USER ocs
  # Password for user
  PerlSetVar OCS_DB_PWD password
  :

 ・OCS Inventory-NG Agent for Windowsのインストール

 公式サイトより、OCS Inventory-NG Agent for windowsをインストールします。
 ただし、今回使用した、debian wheezyのパッケージは、2.0.5となりますので、対応したバージョンをインストールする必要があります。


ダウンロードしたzipファイルを解凍し、インストールを行ってください。

4.OCS Inventory-NGの操作画面例


 AgentをインストールしたPCより、一定時間毎に情報が送られてくると、操作画面には以下の様に情報が表示されます。


対象のPCをクリックすると、詳細の情報が表示されます。


操作画面メニューの日本語対応はしていませんが、入手したデータは表示されています。


5.さいごに


今回は、オープンソースの資産管理システムである、OCS Inventory-NGについて、debian wheezyのパッケージでのインストールおよび、agentっとの連携までを試しました。
agentの最新バージョンを使用する場合は、パッケージではなく、最新バージョンのサーバープログラムが必要となります。
IT資産管理システム、GLPIとの連携については、次回にまとめました。

[.testted] GLPI + OCS Inventory NGによるIT資産管理 [Debian Wheezy][AX3]

2013-11-25

OpenBlocks 600/600D用 Debian7ベース ファームウェア β版の公開

こんにちは。OpenBlocksファミリの開発・技術担当の木村です。
長らくお待たせしてしまいましたが、OpenBlocks 600 及び 600D に適用可能な、Debian7ベースのファームウェアを公開いたします。なお本ファームウェアについては、次の制限があることがわかっており、β版としての扱いとなります。

  • IPv6を使うには、インタフェースをallmultiにしなければならない (従来からの制限)
  • apache2パッケージで導入したhttpdが起動しない (ソースからのコンパイルであれば起動可。他にも同様の事例が予想される。)
  • 処理内容によって、10~30%程度のパフォーマンスダウンが見込まれる(ベンチマークに基づく)

適用方法

 

OpenBlocks 600(SSD/Linux搭載) への適用

http://openblocks.plathome.co.jp/support/guide/600d/for_obs600_user.html
※ ファームウェアファイル名は適宜読み替えてください

OpenBlocks 600D(Debian搭載) への適用

http://openblocks.plathome.co.jp/support/guide/600d/verup_to_6.html
※ Debian5からDebian6への更新方法ですが、ファームウェアのファイル名以外は同様の操作です。適宜読み替えてください

ダウンロード

http://openblocks.plathome.co.jp/support/software/600d/


  

2013-10-04

OpenBlocks A7のGPIOポートについて [A7]

OpenBlocks A7のGPIOポートの仕様は、A6と異なり、内部のピンにより7bitの入出力のサービスを行います。 (A6は、背面より、8bitのGPIO入出力をサポートします)


現在マニュアル記述はしておりませんが、以下のページにて仕様を暫定公開しています。

OpenBlocks A7 FAQ: GPIOポートは利用出来ますか?

--
GPIOポートは利用出来ますか?
外部には出しておりませんが、基板上にご用意しております。
ボタン電池の側にある、J202ポートがGPIOポートとなります。

ピン配置は、以下のようになります。

型番/メーカー: A1-10PA-2.54DSA(71) / ヒロセ電機

1: MPP17(GPIO_17)
2: MPP7 (GPIO_7) ※PD禁止
3: MPP29 (GPIO_29)
4: MPP28 (GPIO_28)
5: MPP35 (GPIO_35)
6: MPP34 (GPIO_34)
7: MPP40 (GPIO_40)
8: 未使用
9: 外部リセット入力
10: GND

ピンの配置
| 9| 7| 5| 3| 1|
|10| 8| 6| 4| 2|

--

内部ピンのみによる出力ということもありますが、A6と仕様が異なりますので、ご注意下さい。

なお、GPIOは、ファームウェアバージョン 3.2.40-2 以降より有効となっています。

操作方法については、Software Design 2012年11月号にて掲載された、以下の記事を参考にしてください。

第4回 GPIOにつないだパトランプで通知する,死活監視システム