2014-02-27

OpenBlocks における開発環境構築手順について [debian Wheezy][AX3][A7][A6]

Debian Wheezy環境でのソフトウェア評価記事に関してのインデックスを右のタグから飛べるソフトウェア動作検証のページにまとめました。

また、当ブログでは、OpenBlocksの開発環境はすでにあるものとして記事を書いてきましたが、DPモデルではない、SSDオプションとの組み合わせや、USBおよびeSATA(AX3モデルのみ)の外付けストレージデバイスを使用した場合の環境構築方法にいての一連の手順を、本記事にまとめて上記ページよりリンクしておきます。

1. ストレージデバイスの用意


本体内蔵のSSDオプションを用意するか、もしくは、USB,eSATA(AX3のみ)ポートにストレージデバイスを接続します。

<内蔵ハーフサイズSSD>

<内蔵2.5inchSSD>

 <外付けUSBデバイス例>

2.パーティションの設定とフォーマット


fdiskによりパーティションを作成します。

# fdisk /dev/sda
Using /dev/sda
Command (m for help): o
Command (m for help): n
Partition type
   e   extended
   p   primary partition (1-4)
p
First cylinder  (default 0cyl): (Enter key)
Last cylinder or +size or +sizeMB or +sizeKB  (default 991cyl): (Enter key)
Warning: You requested a partition from 0cyl to 991cyl.
The closest location we can manage is 0cyl to 990cyl.  Is this still acceptable to you?
   y   Yes
   n   No
y
Command (m for help): w
Information: Don't forget to update /etc/fstab, if necessary.

Writing all changes to /dev/sda.

mke2fsによりフォーマットを行い、ボリュームラベルとしてDEBIANを設定します。

# mke2fs -j -L DEBIAN /dev/sda1
mke2fs 1.42.5 (29-Jul-2012)
Filesystem label=DEBIAN
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
991232 inodes, 3964030 blocks
198201 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4060086272
121 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done.

2. 起動後の確認


以下の例では、内蔵のSSD(/dev/sda)が接続された状態で、外付けのUSBメモリにボリュームラベルとしてDEBIANを設定していますので、/dev/sdb1が使用されています。

# mount
/dev/root on / type ext2 (rw,relatime,errors=continue,user_xattr,acl)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=51132k,mode=755)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev type tmpfs (rw,relatime,size=10240k,mode=755)
tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=102260k)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620)
/dev/sdb1 on /.rw type ext3 (rw,relatime,errors=continue,user_xattr,acl,barrier=1,data=ordered)
aufs on /etc type aufs (rw,relatime,si=57e9d387)
aufs on /bin type aufs (rw,relatime,si=57e9d987)
aufs on /home type aufs (rw,relatime,si=57e9de87)
aufs on /lib type aufs (rw,relatime,si=57e9df87)
aufs on /sbin type aufs (rw,relatime,si=57e9dc87)
aufs on /usr type aufs (rw,relatime,si=57e9d287)
aufs on /var type aufs (rw,relatime,si=57e9d687)
aufs on /root type aufs (rw,relatime,si=57e9d087)
aufs on /opt type aufs (rw,relatime,si=57e9d887)
aufs on /srv type aufs (rw,relatime,si=57e9db87)
aufs on /media type aufs (rw,relatime,si=45009587)

3. 環境の設定


一連の手順はユーザマニュアルに記載があります。
私がいつも行う手順は以下の通りです。

ネットワークの設定

# vi /etc/network/interfaces

DHCPによりアドレスを取得する場合

auto eth0
iface eth0 inet dhcp

固定アドレスを割り振る場合 ( アドレスはお使いのものに置き換えます)

auto eth0
iface eth0 inet static
     address 192.168.254.254
     network 192.168.254.0
     netmask 255.255.255.0
     broadcast 192.168.254.255
     gateway 192.168.254.1

設定後再起動するか、ifdown / ifup コマンドでネットワークインターフェースの設定を反映させます。

インストール可能なパッケージ情報の更新


#aptitude update


インストール済みパッケージの更新


#aptitude safe-upgrade

インストール済みのdebianの各種パッケージおよび、本体ファームウェアについても最新のものがリリースされていれば更新されます。

タイムゾーンの設定

# dpkg-reconfigure tzdata

ロケールの設定

# aptitude install locales
# dpkg-reconfigure locales

特にポリシーがないならば、ja_JP.UTF-8で設定しておくことをお勧めします。
また、日本語の扱いなどが必要ないならば、デフォルトのままでも構いません。

4. 開発環境の構築


 よく利用されるツール一式をインストールします。

# tasksel install standard

開発ツール一式をインストールします。(debianのパッケージ開発ツール)

# aptitude install build-essential

Webアプリケーションなどを構築する際のLAMP環境、Ruby環境などについては別途必要なものをインストールしてください。
いくつかのパッケージのインストール手順に関しては、本blogでも事前準備として記述していますので、参考にして下さい。

5. さいごに


今回は、ディスク共有モードでの一連の開発を行うための環境構築について説明をしました。
RAMディスクモードにおいて、ファームウェアや各種ランタイムプログラムを再構築する手順に関しては、以下の記事において解説しています。

OpenBlocks ファームウェア作成ガイドをgithubにて公開しました


2014-02-25

[.tested] RATOC REX-USB56 USBモデム [debian Wheezy][AX3][A7]

REX-USB56は、USB接続のアナログモデムです。 
OpenBlocks Aシリーズでの接続検証を行いました。


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

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

<使用機器>
OpenBlocks AX3
OpenBlocks A7
REX-USB56

1. 対応ドライバと事前準備


本デバイスは、Conexant USB MODEM CX93010 chipを採用しており、cdc_acm driverでサポートされています。
本デバイスを使用するための特別な設定は必要ありません。

dmesgの出力

usb 1-1.1: new full-speed USB device number 7 using orion-ehci
usb 1-1.1: New USB device found, idVendor=0572, idProduct=1321
usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-1.1: Product: USB Modem
usb 1-1.1: Manufacturer: Conexant
usb 1-1.1: SerialNumber: 24680246
cdc_acm 1-1.1:1.0: ttyACM0: USB ACM device

lsusbの出力
# lsusb
Bus 001 Device 007: ID 0572:1321 Conexant Systems (Rockwell), Inc.

minicomにより、ATコマンドの受付を確認しました。

2. PPP接続の方法 (接続未確認)


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

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

# aptitude install pppconfig

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

Provider Name  xxx
Configure Nameservers (DNS)  Dynamic
Authentication Method for test  PAP
User Name  アカウント名(*1)
Password  パスワード(*1)
Speed  115200
Pulse or Tone  Tone
Phone Number
 xxx-xxx-xxxxx
Choose Modem Config Method  No
Select Modem Port  Manual
Manually Select Modem Port  /dev/ttyACM0

(*1) プロバイダより提供されたアカウント名、パスワードを使用してください。
(*2) プロバイダより提供された番号を使用してください。

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

replacedefaultroute


一般的には、上記の設定で接続出来るはずです。

はずです、と書いたのは、現在当社もしくは私個人には、アナログのダイヤルアップ接続先の契約がないことと、当社の電話回線の設定で、0088番で始まる契約フリーな接続サービスへの発呼も出来ないことが原因です。

そのため、本デバイスの通信機能に関しては、次項の通り、fax送信により行いました。

3. efaxによるfax送信による検証


REX-USB56は、G3 FAXにも対応していますので、efaxにより設定を行いました。

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

# aptitude install efax

efaxの設定は、送信のテストのみのため、最低限の設定のみ行っています。


 :
DEV=ttyACM0
 :
FROM="+81 3 3xxx xxxx"

NAME="PLAT'HOME OBDN_Magazine"

TELCVT='sed -e s/+81 */0/'            # JP

DIALPREFIX="P"



postscript形式のファイルを用意し、送信してみます。

#fax send -v <発信先電話番号> test.ps

psファイルは、ghostscriptなどを使用してpdfファイル等から変換してもいいでしょう。

上記の手順にてfax送信を行い、受信を確認しました。

4. さいごに


 今回は、モデムの各種設定や、発呼、fax送信までの確認を行いました。
 検証としては、不完全な状況ですが、お貸出の期限もあるため、今回はここまでとします。



2014-02-21

[.tested] Wowza Media Server [Debian Wheezy][AX3]

Wowza Media Serverは、Flash media server互換のサーバ製品であり、 動画のストリーミング再生、ライブ配信、多人数接続でのチャットサービス、テレビ会議などに対応します。
本製品は、Javaで記述されており、Javaの動作する様々な環境での動作が可能です。


今回、OpenBlocks AX3 JモデルおよびDPモデルによる動作検証を行いました。

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

<検証環境>
OpenBlocks AX3/4 Debian 7.1 kernel: 3.2.40 JモデルまたはDPモデル


2. 導入方法


Javaのインストール

OpenBlocks AX3の、Debian 7.1版は、Java SE for Embededd 7を標準搭載しており、特にインストールの必要はありません。

wowza media serverパッケージの入手

wowza media systemsのサイトより、Free Trialバージョン、またはデベロッパーバージョンを入手してください。
それぞれ、ユーザ情報の登録を行い、シリアルコードを入手します。
Trialバージョンはトライアル期間が設定されますが、接続数制限がありません。デベロッパーバージョンは期間の設定がなく、接続数制限があります。

インストールするパッケージは、プラットフォームとして、Linux DEB版を選択してください。

Media Server & Video Streaming Server | Wowza Media Systems:

AX3より直接ダウンロードする場合は、wgetコマンドを使用します。
2013/8/19現在の最新版3.6.2の場合は以下のURLとなりますが、より新しいバージョンがリリースされた場合は変更してください。

# wget http://www.wowza.com/downloads/WowzaMediaServer-3-6-2/WowzaMediaServer-3.6.2.deb.bin


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

評価用のwebサーバとして、apache2をインストールしておきます。

# aptitude install apache2

wowza media serverのインストール

入手したパッケージにより、インストールを行います。

# chmod +x WowzaMediaServer-3.6.2.deb.bin
# ./WowzaMediaServer-3.6.2.deb.bin

トライアル用のシリアルコードの適用

トライアル用のシリアルコードを適用します。

# # cd /usr/local/WowzaMediaServer/bin
# ./startup.sh

ライセンスに関する合意文書に対しての確認の後、シリアルコードを入力すれば、自動的にサーバが立ち上がります。

wowza media serverの起動と停止

起動
# /etc/init.d/WowzaMediaServer start

停止
# /etc/init.d/WowzaMediaServer stop


2. 動作テスト


wowza media serverのインストール手順および、quick streaming testに関しては、以下のサポートフォーラムを参考にして行いました。

 Forum, Support | Wowza Media Systems - Quick Start Guide:


quick streaming testの手順

今回は、apache2を事前にインストールしているため、デフォルトのDocumentRootに評価用のplayer.htmlその他をコピーします。

# cd /usr/local/WowzaMediaServer/examples/VideoOnDemandStreaming/FlashRTMPPlayer
# cp -R * /var/www


テスト用のmp4ファイルは、 /usr/local/WowzaMediaServer/content以下に置いてください。
評価用として、sample.mp4が用意されています。

サーバを起動させた状態で、以下のURLにアクセスします。

http://wowza media serverのIPアドレス/player.html

wowza media serverをインストールしたサーバのアドレスおよび、コンテンツファイル名を入力し、connectボタンを押します。

Server: rtmp://wowza media serverのIPアドレス/vod
Stream: mp4:sample.mp4




3.さいごに


今回は、標準インストールのみで、プラグインなどの評価は行っておりません。

2014-02-18

[.tested] ownCloud 6.0.1 [Debian Wheezy][AX3][A7]

ownCloudは、WebブラウザやWebDAVクライアントからアクセスできるオンラインストレージを構築するソフトウェアです。

ownCloud.org | Your Cloud, Your Data, Your Way!

http://owncloud.org/

今回は、ownCloud をOpenBlocks Aシリーズにインストールする手順を紹介します。

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

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

(*)本ソフトウェアの利用にはSSDキットおよび開発環境の導入が必要です。

1.debianパッケージによる導入方法 (5.0.14)


ownCloudの最新は6.0.1ですが、debian wheezyでのパッケージ対応は、wheezy-backportsにて提供される、
ownCloud 5.0.14.a+dfsg-1~bpo70+2 (Debian)
となります。wheezy-backportsを使用する場合は、/etc/apt/sources.lstに以下の行を追加することで、wheezy-backportsにて提供されるパッケージの導入が可能です。

/etc/apt/sources.lstに以下の行を追加

# Backports repository
deb http://ftp.debian.org/debian wheezy-backports main contrib non-free

パッケージリストの更新とowncloudの導入

# aptitude update
# aptitude install owncloud

上記の操作により、owncloud 5.0.14の構築に必要な関連パッケージも全てインストールされますが、旧バージョンであるため、次項に最新版の導入手順について説明します。

2. 最新版(6.0.1)の導入方法


関連パッケージを導入します。

# apt-get install apache2 php5 php5-gd php-xml-parser php5-intl
# apt-get install php5-sqlite php5-mysql smbclient curl libcurl3 php5-curl
# apt-get install mysql-server mysql-client

ユーザ管理にmysqlを使用する場合は、データベースの初期化を行います。
ユーザ名およびDB名は別途設定されることをお勧めします。 
また、passwordは必ず独自のものを使用してください。


ユーザ名: owncloud@localhost
バスワード: password
データベース名: owncloud

注) A7の場合、ユーザ名を、oc_登録するユーザ名 とする必要がありました。

# mysql -u root -p

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

mysql> grant all on *.* to owncloud@localhost IDENTIFIED BY 'password';
mysql> create database owncloud character set utf8 ;
mysql> GRANT ALL PRIVILEGES ON owncloud.* TO owncloud@localhost IDENTIFIED BY 'password';

owncloudのwebページより、パッケージをダウンロードします。
INSTALLページより、tarファイルのURLを入手し、wgetしました。

# wget http://download.owncloud.org/community/owncloud-6.0.1.tar.bz2

パッケージを展開し、/var/www以下へコピーした後、パーミッションを変更します。

# tar xvjf owncloud-6.0.1.tar.bz2
# cp -r owncloud /var/www/
# chown -R www-data:www-data /var/www/

/etc/apache2/sites-enabled/000-defaultを編集します。

        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>


apache2の2つのモジュールを有効にし、再起動します。

# a2enmod rewrite
# a2enmod headers
# service apache2 restart

3.httpでの接続テスト


Webブラウザより、以下のURLにアクセスしてください。

http://URLまたはIPアドレス/owncloud

以下の画面が表示されますので、MySQLを選択し、上記で設定したユーザ名、パスワード、データベース名、ホスト名(今回はlocalhost)を入力します。


下記の画面が表示されます。dropboxの様に、専用の同期アプリケーションをインストールする場合は対応する機種のページよりクライアントをダウンロードし、インストールしてください。


Personalメニューより、言語を日本語に設定することが出来ます。


4.httpsによる接続設定


今回は、OpenSSLにより自己認証局を設定し、apache2でのhttps通信を行いました。

設定は以下の手順で行ってください。

# mkdir -p /usr/local/ssl
# cd /usr/local/ssl

秘密鍵を作成します。

# openssl genrsa -aes128 -rand /dev/urandom -out owncloud_server.key 2048
2048 semi-random bytes loaded
Generating RSA private key, 2048 bit long modulus
...(snip)...
Enter pass phrase for owncloud_server.key: xxxxxxxx
Verifying - Enter pass phrase for owncloud_server.key: xxxxxxxx

証明書の書名要求CSRを生成します。
Countroy NameとCommon Nameだけ設定し、省略可能な部分は.により省略しています。

# openssl req -new -key owncloud_server.key -out owncloud_server.csr
Enter pass phrase for owncloud_server.key:
...(snip)...
-----
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:.
Locality Name (eg, city) []:.
Organization Name (eg, company) [Internet Widgits Pty Ltd]:.
Organizational Unit Name (eg, section) []:.
Common Name (e.g. server FQDN or YOUR name) []:xxx.xxx.xxx.xxx
Email Address []:xxx@hoge.hoge

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:.
An optional company name []:.

サーバ証明書の発行を行います。

#openssl req -in owncloud_server.csr -out owncloud_server.crt -key owncloud_server.key -x509 -days 1825

owncloud_server.keyはバックアップを取った後に削除、パーミッションの設定などを行います。


# chmod 400 owncloud_server.*
# chown root:root owncloud_server.*

apacheを設定します。

# vi /etc/apache2/sites-available/default-ssl

以下の項目を修正します。

SSLCertificateFile /usr/local/ssl/owncloud_server.crt
SSLCertificateKeyFile /usr/local/ssl/owncloud_server.key

ssl関連を有効にし、apache2を再起動します。

# a2enmod ssl
# ln -s /etc/apache2/sites-available/default-ssl /etc/apache2/sites-enabled/default-ssl
# service apache2 restart

5.httpsによる接続確認


Webブラウザより、以下のURLにアクセスしてください。

https://URLまたはIPアドレス/owncloud

今回はプライベート認証局であるため、Webブラウザより警告が出ますが、例外として設定します。


確認後、常にhttpsでの接続に変更をします。


6. さいごに 


以上の設定により、owncloud 6.0.1の動作を確認しました。
A7の場合、最初のMySQLでのユーザ名に対して指定したものと違うものを要求されるため、記事内に書いた通りに指定することで回避しています。また、A7をサーバに使用した場合、操作に対しての反応が非常に遅いということも追記しておきます。



2014-02-04

OpenBlocks ファームウェア作成ガイドをgithubにて公開しました

OpenBlocks(AX3, A7, A6, 600)のファームウェア作成ガイドをgithubにて公開しました。

/ debian_based_firmware

・対応ファームウェアについて

OpenBlocksのファームウェアは、機種(AX3, A7, A6, 600)とOS(DebianGNU/Linux)によって異なります。対応しているファームウェアは下の表をご覧ください。

機種キシュ Debian 作成サクセイホスト TARGET DIST ARCH
AX3 7 7/amd64 obsax3 wheezy armhf
AX3 6 6/amd64 obsax3 squeeze armel
A7 7 7/amd64 obsa7 wheezy armel
A6 7 7/amd64 obsa6 wheezy armel
A6 6 6/amd64 obsa6 squeeze armel
600 7 7/i386 obs600 wheezy powerpc

ファームウェアを作成するホストのOSはDebian GNU/Linuxです。そのバージョンとアーキテクチャは、ファームウェアの対象となる機種とOSによって異ります。表の作成ホストに「バージョン/アーキテクチャ」を記述しました。