<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Kurobox-pro</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/Kurobox-pro2/" />
    <link rel="self" type="application/atom+xml" href="http://www.eleki-jack.com/Kurobox-pro2/atom.xml" />
    <id>tag:www.eleki-jack.com,2007-10-03:/Kurobox-pro2//11</id>
    <updated>2008-08-18T02:42:40Z</updated>
    <subtitle>組み込み、Linuxと電子工作</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 4.1</generator>

<entry>
    <title>赤外線リモコン信号送受信機を自作する（製作編）</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/Kurobox-pro2/2008/08/post-29.html" />
    <id>tag:www.eleki-jack.com,2008:/Kurobox-pro2//11.1853</id>

    <published>2008-08-18T02:07:19Z</published>
    <updated>2008-08-18T02:42:40Z</updated>

    <summary>■はじめに　前回は、自作赤外線リモコン信号送受信機の設計概略を紹介しました。今回...</summary>
    <author>
        <name>mitsunaga</name>
        
    </author>
    
        <category term="玄箱PROと電子工作" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="16f628" label="16F628" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="赤外線リモコン" label="赤外線リモコン" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/Kurobox-pro2/">
        <![CDATA[<b>■はじめに<br /></b>　前回は、自作赤外線リモコン信号送受信機の設計概略を紹介しました。今回は、製作編として、作例とプログラムを公開します。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/08/11/DSC_7487.html" onclick="window.open('http://www.eleki-jack.com/Kurobox-pro2/2008/08/11/DSC_7487.html','popup','width=640,height=428,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.eleki-jack.com/Kurobox-pro2/2008/08/11/DSC_7487-thumb-400x267.jpg" alt="DSC_7487.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="267" width="400" /></a></span>]]>
        <![CDATA[<b>■赤外線リモコン信号の解析</b><br />　基本的なプログラムの考え方は､ KURO-RS からの信号を解析したプログラム
(以前に紹介した改造版 lcdproc の LCDd 用ドライバの kurors.c) と同じです。リモコン受信モジュールの信号が一定時間 H
または L であることに従って､リモコン送信側が 0, 1 あるいはデータの開始、終了を送っているかを判別します。<br /><br />　PIC
上のプログラムでは、タイマ割り込み内に判別プログラムを書きました。実際にプログラムをダウンロードして眺めるとわかりますが､ON / OFF
時間の比を調べ、4ビット受信するたびにシリアル・ポートに送信すると共に、EEPROM 内のデータとの照合をしています。<br /><br /><b>■通信プロトコル</b><br />　PIC16F628 の内部発振子を利用するため、19200bps, 8ビット, パリティなし、フロー制御なしとしました。コマンドは以下のとおりです。エコーバックはありません。<br /><br /><blockquote><pre>&lt;ESC&gt;p&nbsp;&nbsp; &nbsp;PORTA, 0 を 0 にする
&lt;ESC&gt;P&nbsp;&nbsp; &nbsp;PORTA, 0 を 1 にする
&lt;ESC&gt;q&nbsp;&nbsp; &nbsp;PORTA, 1 を 0 にする
&lt;ESC&gt;Q&nbsp;&nbsp; &nbsp;PORTA, 1 を 1 にする
&lt;ESC&gt;r&nbsp;&nbsp; &nbsp;PORTA, 2 を 0 にする
&lt;ESC&gt;R&nbsp;&nbsp; &nbsp;PORTA, 2 を 1 にする
&lt;ESC&gt;s&nbsp;&nbsp; &nbsp;PORTA, 3 を 0 にする
&lt;ESC&gt;S&nbsp;&nbsp; &nbsp;PORTA, 3 を 1 にする
&lt;ESC&gt;t&nbsp;&nbsp; &nbsp;PORTA, 4 を 0 にする
&lt;ESC&gt;T&nbsp;&nbsp; &nbsp;PORTA, 4 を 1 にする (open drain なことに注意)
&lt;ESC&gt;x&nbsp;&nbsp; &nbsp;現在の PORTA, 3 の状態を返す
&lt;ESC&gt;X&nbsp;&nbsp; &nbsp;リモコン信号を送信する
&nbsp;&nbsp; &nbsp;&lt;ESC&gt;X を送って PIC から 'O' が返ってきた後、
&nbsp;&nbsp; &nbsp;送信するコード + '\n' (例: "400401000405\n") を送ると
&nbsp;&nbsp; &nbsp;赤外線リモコン信号が送信される
</pre>
</blockquote><br />
赤外線リモコンの信号を受信すると PIC からは、以下の文字を送ります。<br /><br /><blockquote><pre>L&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;リーダ・コード受信
r&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;リーダ・コード受信 (リピート・コード)
0-9,a-f&nbsp;&nbsp; &nbsp;受信した4ビットのデータ
T&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;トレーラ・コードを受信
P,Q,R,S&nbsp;&nbsp; &nbsp;トレーラ・コードを受信し､データを &lt;code 1&gt;, &lt;code 2&gt;, &lt;code 3&gt;, &lt;code 4&gt;
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; と解釈した (T の代わりに送る)
&nbsp;&nbsp; &nbsp;ただし、ソース・コード内で SEND_STATUS を定義した場合は、
&nbsp;&nbsp; &nbsp;PORTA, 3 が 0　のときには p を送る (現在の RA3 の状態を返す)
n,N&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;リモコン信号受信エラー
</pre></blockquote><br />　リモコン信号の受信例は、以下のようになります。<br /><br />
<blockquote>
<pre>r400401000405P	→ &lt;code 1&gt; ボタンを受信
r400401008485Q	→ &lt;code 2&gt; ボタンを受信
r400401004c4dR    → &lt;code 3&gt; ボタンを受信
r40040d00bcb1S    → &lt;code 4&gt; ボタンを受信, PORTA, 4 をトグル

La55a50afT		→ PIONEER CU-FD001 の &lt;vol +&gt; (非登録時)
La55ad02fT		→ PIONEER CU-FD001 の &lt;vol -&gt; (非登録時)
L1d00d926TrTrTrT  → KENWOOD (RC-RP0702, VH7PC) の &lt;vol +&gt; 
</pre>
</blockquote>
<b>■基板を製作する</b><br />　ユニバーサル基板上に写真のような配置にしました。24ピンICソケットが手元になかったので、28ピンのものを使っています。また、基板の端に USB コネクタが来るようにICソケットの端のほうの足はカットしています。裏面の配線は、いきあたりばったりなので、参考までにしてください...<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/08/11/DSC_7453.html" onclick="window.open('http://www.eleki-jack.com/Kurobox-pro2/2008/08/11/DSC_7453.html','popup','width=640,height=428,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.eleki-jack.com/Kurobox-pro2/2008/08/11/DSC_7453-thumb-400x267.jpg" alt="DSC_7453.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="267" width="400" /></a></span><div align="center">写真：ICを挿す前の様子<br /></div><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/08/11/DSC_7486.html" onclick="window.open('http://www.eleki-jack.com/Kurobox-pro2/2008/08/11/DSC_7486.html','popup','width=640,height=428,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.eleki-jack.com/Kurobox-pro2/2008/08/11/DSC_7486-thumb-400x267.jpg" alt="DSC_7486.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="267" width="400" /></a></span><div align="center">写真：配線を終え、ICを挿したところ<br /></div><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/08/11/DSC_7485.html" onclick="window.open('http://www.eleki-jack.com/Kurobox-pro2/2008/08/11/DSC_7485.html','popup','width=640,height=428,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.eleki-jack.com/Kurobox-pro2/2008/08/11/DSC_7485-thumb-400x267.jpg" alt="DSC_7485.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="267" width="400" /></a></span><br /><div align="center">写真：パターン面の配線の様子。白い２本の電線は AC 100V、灰色が赤外 LED のアノード側、緑がカソード側 (GND)、茶色は赤外受光モジュールの GND, オレンジが受信した信号、赤が VCC。<br /></div><br /><font style="font-size: 1.25em;"></font><blockquote><font style="font-size: 1.25em;"><b>警告：</b></font><b>この回路では商用電源 (AC100V) を取り扱います。感電やショートなどがないよう十分に注意し､自己責任で楽しんでください。<br /></b></blockquote><br /><b>■動作をテストする</b><br />　まだ、コンセントにはつながないでください。PC, 玄箱 PRO などにつなぎ、TeraTerm, cu などを使ってシリアル・ポートを開きます。適当なリモコンから送信して、何か文字が表示されれば OK です。次に、&lt;ESC&gt;X を送り､o が返ってきてから､受信された文字列＋リターンを送って､機器が動作すれば、正常に送受信できています。<br /><br />　このあと、商用電源につなぐ前に、再度ショートなどがないことを確認してください。登録した (EEPROM に書いた) リモコンのボタンで、電源が ON/OFF されれば完成です。玄箱 PRO の lcdcompo と、LCDd (の kurors ドライバ) を入れ替えて、音楽を楽しみましょう。<br /><br /><br /><b>■自分のリモコンに合わせるには</b><br />　今のプログラムでは､電源ボタンに使いたいリモコンの信号が 40040100bcbd と受信される場合を想定しています(パナソニックの DVD レコーダの電源ボタンの信号)。kurors.c は 130 行目のように、<br /><br /><blockquote>&nbsp; {"40040100bcbd", "POWER"}, /* power */<br /></blockquote><br />　一つ目に左側にリモコン信号を、二つ目に lcdproc 内の key の名前を書きます。remocon.asm 内では 204 行目から、<br /><br /><blockquote>&nbsp;&nbsp; &nbsp;org&nbsp;&nbsp; &nbsp;0x2130<br />&nbsp;&nbsp; &nbsp;de&nbsp;&nbsp; &nbsp;0x4&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;; POWER button<br />&nbsp;&nbsp; &nbsp;de&nbsp;&nbsp; &nbsp;0x0<br />&nbsp;&nbsp; &nbsp;de&nbsp;&nbsp; &nbsp;0x0<br />&nbsp;&nbsp; &nbsp;de&nbsp;&nbsp; &nbsp;0x4<br />&nbsp;&nbsp; &nbsp;de&nbsp;&nbsp; &nbsp;0x0<br />&nbsp;&nbsp; &nbsp;de&nbsp;&nbsp; &nbsp;0xd<br />&nbsp;&nbsp; &nbsp;de&nbsp;&nbsp; &nbsp;0x0<br />&nbsp;&nbsp; &nbsp;de&nbsp;&nbsp; &nbsp;0x0<br />&nbsp;&nbsp; &nbsp;de&nbsp;&nbsp; &nbsp;0xb<br />&nbsp;&nbsp; &nbsp;de&nbsp;&nbsp; &nbsp;0xc<br />&nbsp;&nbsp; &nbsp;de&nbsp;&nbsp; &nbsp;0xb<br />&nbsp;&nbsp; &nbsp;de&nbsp;&nbsp; &nbsp;0x1<br />&nbsp;&nbsp; &nbsp;de&nbsp;&nbsp; &nbsp;0xff<br /></blockquote><br />のように、4ビットずつ書き、最後を 0xff とします。<br /><br /><br /><b>■ダウンロード</b><br /><span class="mt-enclosure mt-enclosure-file" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/08/11/remocon.hex">remocon.hex</a></span>&nbsp;(PIC16F628 書き込み用 HEX ファイル) PIC16F628 用にアセンブルしています。PIC16F628A を利用する場合は、コンフィグレーション・ビットを確認してください。<br /><br /><span class="mt-enclosure mt-enclosure-file" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/08/11/remocon.asm">remocon.asm</a></span>
PIC 用のソース・ファイル。GPL v.3 で再配布をしてかまいません。<br /><br /><span class="mt-enclosure mt-enclosure-file" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/08/11/lcdcompo-0.1.tar.gz">lcdcompo-0.1.tar.gz</a></span>&nbsp;玄箱PRO で実行する lcdproc client である lcdcompo の改造版。変更点は、上記のとおり、リモコンの電源ボタンが押されてアンプのスイッチが切れたときに mpd の再生を止めること。リモコンの再生ボタンが押されたときに､アンプのスイッチを入れることです。<br /><br /><span class="mt-enclosure mt-enclosure-file" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/08/11/kurors.tar.gz">kurors.tar.gz</a></span>&nbsp;以前に紹介した lcdproc をインストールしているときに差し替える、kurors.c と kurors.so をまとめたもの。ソースからコンパイルする場合は、<a href="http://www.eleki-jack.com/Kurobox-pro2/2007/09/-lcdproc-1.html">こちら</a>のパッチを当てた状態で kurors.c を差し替えてください。<br /><br />
<span class="mt-enclosure mt-enclosure-file" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/08/11/lcdproc_0.5.2p4_arm.deb">lcdproc_0.5.2p4_arm.deb</a></span>&nbsp;ここで使っている変更を加えた lcdproc の Debian パッケージ。<br /><br /><br /><div align="right">&lt;光永 法明&gt;</div>]]>
    </content>
</entry>

<entry>
    <title>XPort活用 「その３」《家庭電源制御編》　その2</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/Kurobox-pro2/2008/08/xport-2-1.html" />
    <id>tag:www.eleki-jack.com,2008:/Kurobox-pro2//11.1861</id>

    <published>2008-08-15T00:56:47Z</published>
    <updated>2008-08-15T01:34:27Z</updated>

    <summary> 　一度、この論文を読んでしまうと、並大抵の利用方法では勝ち目はなさそうです。 ...</summary>
    <author>
        <name>yoshida</name>
        
    </author>
    
        <category term="家庭の電源を制御しよう" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/Kurobox-pro2/">
        <![CDATA[

　一度、<a href="http://siio.jp/projects/papers/wiss_syncdecor.pdf">この論文</a>を読んでしまうと、並大抵の利用方法では勝ち目はなさそうです。<br />
　さて、気を取り直して、今般は玄箱(pro)と組み合わせて「家人を検出して知能的な照明をする」ことを目標にしてみました。
<br />
　まとめてみますと、こうなります。 <ul>
<li> 家人を感知する。
</li><li> 玄箱(pro)が察知し、種々計算して電灯を制御する。
</li><li> 制御にはネットワーク経由の X10 を利用する。
</li><li> 出来合いのものを利用する。
</li></ul>]]>
        <![CDATA[　人間を感知する方法(センサ)には多くのものがありますが、「人感センサ」を利用してみました。<br />
これは<a href="https://biz.national.jp/Ebox/katte_sw/catalog5.html"> Nationalの製品(PDFへのリンク)</a>を使っています。以下に、詳細な写真をお見せします。親機センサには、動作する明るさの調節とオフするまでの時間調節があって、検知範囲を変えるために、中心のセンサ部分を傾けられるような工夫がされています。また、範囲拡張用に子機センサーが使えます。<br />　この製品の場合では、動作時間が連続および 10 秒～ 30 分となっており、動作する明るさの閾値のボリュームが付いています。なお、子機の方では親機のみに接続するようになっており、電力制御はできません。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/08/15/x6-6P1000210.jpg"><img alt="x6-6P1000210.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/08/15/x6-6P1000210-thumb-400x201.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="201" width="400" /></a></span><div align="center">

写真６：人感センサ(配線側の様子、左側は子機)<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/08/15/x6-7P1000211.jpg"><img alt="x6-7P1000211.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/08/15/x6-7P1000211-thumb-400x237.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="237" width="400" /></a></span>

写真７：人感センサ(表面側の様子、左側は子機)<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/08/15/x6-7P1000212.jpg"><img alt="x6-7P1000212.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/08/15/x6-7P1000212-thumb-400x243.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="243" width="400" /></a></span>

写真８：人感センサ(設定スイッチの様子、右側は子機)<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/08/15/x6-8P1000216.jpg"><img alt="x6-8P1000216.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/08/15/x6-8P1000216-thumb-400x300.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="300" width="400" /></a></span>

写真９：人感センサ(カバーを外したところ)<br /><br /><div align="left">　玄箱(pro)には、「USB のシリアル通信」でセンサ感知を伝えることにしました。写真１０のように人感センサは、オンすると AC100V
で照明器具をオンするように働きますから、これでモデムの電源を入れさせます(写真１１)。<br />　近頃、モデムという言葉は耳にしませんが、それゆえパソコン中
古部品ショップでタダ同然で購入することができます。<br /></div><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/08/15/x6-8P1000217.jpg"><img alt="x6-8P1000217.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/08/15/x6-8P1000217-thumb-400x321.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="321" width="400" /></a></span>


写真１０：人感センサ(AC電源の配線をしたところ)<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/08/15/x6-9P1000230.jpg"><img alt="x6-9P1000230.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/08/15/x6-9P1000230-thumb-400x300.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="300" width="400" /></a></span>

写真１１：モデムを接続している様子<br /><br /><h2 align="left">●人の感知(モデムの稼働確認) </h2><div align="left">　人の感知は、人感センサでモデムがオンになったことが、玄箱(pro)からわかれば、(大体の峠を越えた意味として)"以上終了"です。モデムに電源が入ってレディ状態になると、シリアル通信で"AT"コマンドを送り付けると、"OK"なる返答をしてきます。<br />　したがって、プログラムとしては、以下のように非常に簡単になっています。人感センサの動作時間は、人が居なくなり次の検知に備えるため 10 秒にしておきます。
<br />


</div><h3 align="left"><br /></h3><h3 align="left">●モデムをつないで、反応をみる</h3><div align="left">　これまでの記事で使用している「USB シリアル通信ケーブル」にて、モデムへの接続を確認しておきます。キーボードより"AT"(小文字でも可)と入力すると、"OK"と返事が帰ってくるはずです。<br /><br />
<pre>kurobox-pro:/home/k-wada/program# cu -l /dev/ttyUSB0
Connected.
at
OK
</pre><h3>●モデム通信プログラム</h3>
　上記の部分だけを模したプログラムを作成します。これは、起動されると /dev/ttyUSB0 に対して "AT" を出力し、返事を標準出力に表示するだけのものです。<br /><br />
<pre>#include <stdio.h>
#include <unistd.h>
#include <sys time.h="">
#include <sys types.h="">
#include <sys uio.h="">
#include <sys fcntl.h="">
#include <sys termios.h="">

#define BAUD       1200

unsigned char buff[256] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
char txbuff[256] = {'A', 'T', 0x0d, 0x0a};
char flag = 1;

int FD232c;
struct termios qtermios;                     /* termios.h */

static char sio[] = "/dev/ttyUSB0";

int main()
{
        int r, c;
        if((r = open232c(sio)) &gt; 0) {
          fprintf(stderr, "%d\n", r);
          exit (1);
        }
        while (flag) {
                flag = 0;
                write(FD232c, txbuff, 4);
                sleep(1);
                if ((c = read(FD232c, buff, 10)) &gt; 0) {
                      fprintf(stdout, "%c%c\n", buff[0], buff[1]);
                }
        }
        close(FD232c);
}


int open232c(char* ttyname)
{
  struct termios  tty;
  int             r;
  
  if((FD232c = open(ttyname, O_RDWR|O_NDELAY|O_NONBLOCK, 0477)) &gt;= 0) {
    qtermios.c_iflag = IXOFF;
    qtermios.c_lflag = (PENDIN|ECHOKE|ECHOE);
    qtermios.c_cflag = (CLOCAL|HUPCL|CREAD|CS8);
    qtermios.c_ispeed = BAUD;
    qtermios.c_ospeed = BAUD;
    tcsetattr (FD232c, TCSANOW, &amp;qtermios);
    return 0;
  }
  perror("Can't open SIO.\n");
  return 1; 
}

</sys></sys></sys></sys></sys></unistd.h></stdio.h></pre>

<br /><h3>●コントロール・プログラム(control.bsh)</h3>
　コントロール・プログラムといっても大袈裟なものではなく、１秒ごとにモデムの電源オンを監視している単純なものです。モデムは、人感センサでオンされるの
で、モデムよりの"OK"の返答があれば、"人間を感知した"ことに相当します。人間を感知すれば、玄箱(pro)のコンソール画面の表示でわかります。<br />　なお、"!A20" および "!A28" という文字列は、電源オンまたは電源オフのための制御コードです。より詳細な情報については、情報検索の結果として <a href="http://www.freecon.co.jp/pdf/X10_FCPLC.pdf">http://www.freecon.co.jp/pdf/X10_FCPLC.pdf</a>がありましたので、参考にしてください。<br />　こうして製作過程をお読み頂けた方の中には、何か別への応用を思い付かれた方もいらっしゃるかもしれませんね。<br /><br />
<pre>#! /bin/sh

modem=/home/k-wada/program/modem/modem
xport=/home/k-wada/program/xport/xport
ip="192.168.1.22"
ON="!A20"
OFF="!A28"

while true
do
        ack=`$modem`
        if [ "$ack" = "AT" ]
        then
                echo "ON"
                echo $ON | $xport -h $ip
                sleep 3
        else
                echo "OFF"
                echo $OFF | $xport -h $ip
                sleep 1
        fi
done
</pre>

　もともと玄箱(pro)を利用して考えている基本的なことは、人を感知し、何らかのインテリジェンスな処理をこなし、XPortにてネットワーク経由で親
機ユニット(シリアル通信タイプ)に通信を行い、この親機が 100V
ラインを通じて、別の部屋の機材の電源オン/オフすることでした。上述のように「人の感知」の製作部分は終了したわけです。<br />

　過去記事のように XPort を応用してネットワーク通信は実験ずみですから、残すところ XPort と X10 の親機ユニット(シリアル通信タイプ)をつなぐだけです。<br />　ところが、親機ユニット(シリアル通信タイプ)を購入しようとオーダーしてみると、すでに冒頭で紹介したサイトでは、この製品の扱いを終了したとのことで、ハタと困ってしまいました。
<br />
<br />(次回につづく)




</div></div><br /><div align="right">&lt;和田 好司&gt;<br /></div><br /><div><br /></div>]]>
    </content>
</entry>

<entry>
    <title>赤外線リモコン信号送受信機を自作する（設計編）</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/Kurobox-pro2/2008/08/post-28.html" />
    <id>tag:www.eleki-jack.com,2008:/Kurobox-pro2//11.1852</id>

    <published>2008-08-13T01:33:46Z</published>
    <updated>2008-08-13T01:05:07Z</updated>

    <summary>■はじめに　玄箱PROに KURO-RS を組み合わせることで「リモコンと液晶で...</summary>
    <author>
        <name>mitsunaga</name>
        
    </author>
    
        <category term="玄箱PROと電子工作" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/Kurobox-pro2/">
        <![CDATA[<b>■はじめに</b><br />　玄箱PROに KURO-RS を組み合わせることで「<a href="http://www.eleki-jack.com/Kurobox-pro2/2008/01/post-7.html">リモコンと液晶で音楽を楽しむ</a>」ことを実現しました。このおかげで、筆者のミュージック・サーバは玄箱PROになってしまいました。<br />　ところで KURO-RS は、もともとリモコン信号の送信が主な役目として設計されているため､リモコンのボタンを押してから玄箱PROが反応するまでの遅れが気になります。<br />　それでは自作してしまおうということで、赤外線リモコン信号の送受信機を作ることにしました。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/08/11/DSC_7449.html" onclick="window.open('http://www.eleki-jack.com/Kurobox-pro2/2008/08/11/DSC_7449.html','popup','width=640,height=428,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.eleki-jack.com/Kurobox-pro2/2008/08/11/DSC_7449-thumb-400x267.jpg" alt="DSC_7449.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="267" width="400" /></a></span><br /><div align="center">自作回路に使った主要部品<br /></div><br /> ]]>
        <![CDATA[<b>■リモコン信号の処理はマイコンでする</b><br />　KURO-RS の場合は、リモコンの信号の解析は玄箱PRO (PC) 側で行っていました。ところで、リモコン送受信機を自作するなら､赤外線リモコンの発光をとらえ、玄箱PROへ送れる形に加工するために､マイコンを使うのがよさそうです。<br />　せっかくマイコンを使うのなら、マイコン側で信号の解析をすれば､玄箱PRO側のプログラムの負担が減るほかに､リモコン信号にあわせた動作もすることができるようになります。そこで、マイコンで受光したリモコン信号を解析することにします。<br /><br /><b>■リモコン信号でアンプの電源もコントロールしたい</b><br />　さて、玄箱PROと自作アンプを組み合わせたミュージック・サーバを使っていると、アンプの電源のオン/オフ操作が、mpd の再生・停止動作と連動していないことが気になり始めました。メーカ製のミニコンポだと再生中に電源を切るのは、電源ボタンを押すだけですし、アンプの電源が入っていないのに再生することもありません。<br /><br />　そこでリモコン信号送受信機で、アンプの電源を制御し､玄箱PROに電源の状態を伝えることにします。玄箱PRO上の lcdcompo プログラムで再生中にアンプの電源をリモコンで切ると、mpd に停止を送ります。また再生ボタンを押すと、アンプの電源が自動で入るようにします。そのため、LCDd の kurors ドライバ､ lcdcompo のプログラムを入れ替えます。<br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/08/11/fig.png"><img alt="fig.png" src="http://www.eleki-jack.com/Kurobox-pro2/2008/08/11/fig-thumb-400x300.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="300" width="400" /></a></span><div align="center">リモコンのボタンを押したときの信号の流れ<br /></div><br /><b>■回路を構成する部品を決める</b><br />　リモコン受光モジュール、赤外線 LED、PIC マイコン(PIC16F628)、シリアル USB モジュール (FT232)、半導体リレー (SSR) が主な部品です。リモコン受光モジュール、赤外線LED は、多くのものが使えると思います。半導体リレーは 5V 用のものを想定しています。マイコンは手持ちの中から非同期シリアル・モジュール内蔵のものを選びました。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/08/11/remocon.html" onclick="window.open('http://www.eleki-jack.com/Kurobox-pro2/2008/08/11/remocon.html','popup','width=640,height=400,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.eleki-jack.com/Kurobox-pro2/2008/08/11/remocon-thumb-400x250.gif" alt="remocon.gif" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="250" width="400" /></a></span><div align="center">自作赤外線リモコン信号送受信機の回路図<br /></div><br /><b>■仕様を決める</b><br />　赤外線リモコン信号送受信機の仕様は以下のように決めました。<br /><br /><ol><li>送信する赤外線LEDの数は1個</li><li>PIC内で、四つまでのリモコン信号を照合する</li><li>リモコンでの電源の ON/OFF は RA3 (PORTA の 3)</li><li>PIC からの ON/OFF 信号は五つ (RA0 から RA4 (PORTA の 0 から 4))</li><li>接続は USB (FT232 の USB シリアル機能を使う) </li></ol><br />　PIC では受信したリモコン信号を解析し、HEX データとしてシリアル・ポートへ出力します。それと同時に、EEPROM 内のデータと照合し､一致していれば、RA3 を H/L 反転するようにしています。これにより、リモコンの電源ボタンを押したら SSR が、100V を ON/OFF します。<br /><br />　PIC 内では 四 つまでのデータと照合処理をしているので､プログラムを改造すれば、ほかのリモコン信号で RA0 から RA4 を H/L 反転するようにすることも容易です。ただし、RA4 はオープン・コレクタ出力なので、H とするにはプルアップ抵抗が必要です。<br /><br />　また、シリアル・ポートからのコマンドに応じて､RA0 から RA4 の H/L の状態を設定したり､赤外線リモコン信号を送信することにします。<br /><br /><b>■赤外線リモコンの信号</b><br />　赤外線リモコンの信号は、NEC エレクトロニクスのマイクロコンピュータFAQ内のリモコンについての解説<sup> *1</sup> がわかりやすいと思います。<br />　38 ～ 40kHz ぐらいで、点滅する赤外線LEDさせている期間を ON 時間、LEDを消灯している時間を OFF 時間と呼ぶとします。ON 時間と、OFF 時間の比によって、１ビット (0 または 1) を送受します。データが 1 のときには、ON 時間 T (約 0.56ms) に対して、OFF 時間が 3T とし、データが 0 のときには、ON 時間 T に対して、OFF 時間を T と決められています。リモコン側は、ボタンに対応したデータ（たとえば32ビット）を順に 1 ビットずつ送信します。実際には、さらにデータの前後に、データの開始と終了を示す信号が送られます。<br />　また、リモコン送信機の電池電圧などによって T は変動しますが､ON 時間と OFF 時間の比はあまり変わらないように設計されています。本連載の中で紹介したプログラム<sup>*2, *3</sup> も参考にしてください。<br /><br />　受信側では、38-40kHz の点滅信号のみを受光するように設計された、リモコン受光モジュールを利用します。これによって、赤外線を出す白熱灯などで照明されている環境でも､リモコンの信号を受信しやすくしているのです。受光モジュールからの信号は、ON 期間で L (0V)、OFF 期間で H (5V) となっていますから、マイコンのプログラムを書くときには注意します。<br /><br />*1 NEC エレクトロニクスのマイクロコンピュータFAQ内のリモコンについて<br /><a href="http://www.necel.com/ja/faq/mi_com/__com_remo.html">http://www.necel.com/ja/faq/mi_com/__com_remo.html</a><br /><br />*2 学習型赤外線リモコン (KURO-RS) を調べる<br />
<a href="http://www.eleki-jack.com/Kurobox-pro2/2007/07/-kurors-1.html">http://www.eleki-jack.com/Kurobox-pro2/2007/07/-kurors-1.html</a>
<br /><br />*3 秋月グラフィック液晶対応 lcdproc<br /><a href="http://www.eleki-jack.com/Kurobox-pro2/2007/09/-lcdproc-1.html">http://www.eleki-jack.com/Kurobox-pro2/2007/09/-lcdproc-1.html</a><br /><br />　次回「赤外線リモコン信号送受信機を自作する（製作編）」では、リモコン信号の解析方法の概略などを紹介し、プログラムを公開します。お楽しみに。<br /><br /><div align="right">&lt;光永 法明&gt;<br /></div>]]>
    </content>
</entry>

<entry>
    <title> XPort活用 「その３」《家庭電源制御編》</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/Kurobox-pro2/2008/08/xport-4.html" />
    <id>tag:www.eleki-jack.com,2008:/Kurobox-pro2//11.1856</id>

    <published>2008-08-12T04:11:18Z</published>
    <updated>2008-08-12T04:49:50Z</updated>

    <summary>　その昔、FreeBSD 4.7R の頃ですがパスワード・ファイルには、&quot;xte...</summary>
    <author>
        <name>yoshida</name>
        
    </author>
    
        <category term="家庭の電源を制御しよう" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/Kurobox-pro2/">
        <![CDATA[　その昔、FreeBSD 4.7R の頃ですがパスワード・ファイルには、"xten" というのがありました。その /etc/passwd ファイルはこんな感じになっていた訳です(その一部を表示しています)。<br />
<pre>bind:*:53:53:Bind Sandbox:/:/sbin/nologin
uucp:*:66:66:UUCP pseudo-user:/var/spool/uucppublic:/usr/libexec/uucp/uucico
<font color="red">xten</font>:*:67:67:X-10 daemon:/usr/local/xten:/sbin/nologin
pop:*:68:6:Post Office Owner:/nonexistent:/sbin/nologin
www:*:80:80:World Wide Web Owner:/nonexistent:/sbin/nologin
</pre>
<br /> ]]>
        <![CDATA[　uucp というモデム系のユーザも懐かしいところですが、xten というユーザは家電製品の商用電源を制御する"人(アカウント)"でした。もちろん、現在では xten ユーザはパスワード・ファイルに存在していません。<br />　この xten というハードウェアですが、まずパソコンがシリアル通信で親ユニットと通信します。次に、この親ユニットは"電源ライン"を通信路として、子ユニット通信とします。とくに最近では、電源ライン(電力線)を利用してネットワーク接続が可能な PCL アダプタ がありますから、皆さんにも直感していただけると思います。子ユニットには、AC100V を制御できる半導体素子あるいはリレーが内蔵されていて、これで照明などをオンオフする仕組みです。<br />　この Xten(X10)というキーワードで調べていくと、<a href="http://www.freecon.co.jp/">リモート・コントローラ専門ショップ</a>なるストアが見つかりました。そこには「<a href="http://www.freecon.co.jp/x10_lighting.php">X10関連製品</a>」がありました。この回では、このユニットと玄箱(pro)をつないで遊んでみたいと考えました。図１が概要図で、写真１が購入した子機ユニットです<br /><br />図１：電力線を使ったコントロールの概要図 <br /><a href="http://www.freecon.co.jp/pdf/X10_EXPLANATION.pdf">http://www.freecon.co.jp/pdf/X10_EXPLANATION.pdf</a> の「こんな感じで接続します」の図<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/08/12/x6-1P1000235.jpg"><img alt="x6-1P1000235.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/08/12/x6-1P1000235-thumb-400x314.jpg" class="mt-image-center" style="margin: 0pt auto 2px; text-align: center; display: block;" height="314" width="400" /></a></span><br /><div align="center">


写真１：商用電源を制御する標準的なユニット(側面と背面)<br /></div><br /><div>●<font style="font-size: 1.25em;"><b>パワーライン・コントローラとは</b></font><br /><br />　端末側の子機ユニットは複数の設置が可能で、一つの親機(コントローラ)で制御が可能です。上の写真と同じに写真２が子機ユニットで、写真３が親機ユニットです。このように AC コンセントを利用して遠隔にある照明器具などをオン/オフできます。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/08/12/x6-2PICT0092.jpg"><img alt="x6-2PICT0092.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/08/12/x6-2PICT0092-thumb-400x394.jpg" class="mt-image-center" style="margin: 0pt auto 2px; text-align: center; display: block;" height="394" width="400" /></a></span><br /><div align="center">写真２：子機ユニット<br /></div><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/08/12/x6-3PICT0030.jpg"><img alt="x6-3PICT0030.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/08/12/x6-3PICT0030-thumb-400x270.jpg" class="mt-image-center" style="margin: 0pt auto 2px; text-align: center; display: block;" height="270" width="400" /></a></span><br /><div align="center">

写真３：親機ユニット<br /></div><br />　ただし、通信が可能なのは、一つのブレーカで接続されているコンセント内の範囲であって、ブレーカ間で制御する場合には専用部品("ブリッジ")が必要となります。たいていの家庭のブレーカは10個以上あるので、遠隔制御をしたい部屋同士の間には、まずもってブレーカが存在していると考えるべきでしょう。家庭の電気配線をいじるには電気工事士の資格が必要な上に、工事も大がかりになりすぎます。<br />　それゆえ、有線ネットワークまたは無線LANを利用して通信すれば、この問題が解決しそうです。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/08/12/x6-4P1000233.jpg"><img alt="x6-4P1000233.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/08/12/x6-4P1000233-thumb-400x305.jpg" class="mt-image-center" style="margin: 0pt auto 2px; text-align: center; display: block;" height="305" width="400" /></a></span><br /><div align="center">写真４：制御信号を"ブレーカ越え"させるユニット(右側)<br /></div><br />

ところで、今回は実験予定をしていないのですが、アナログ信号も扱えるユニットもありましたので入手だけしてみました。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/08/12/x6-5P1000240.jpg"><img alt="x6-5P1000240.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/08/12/x6-5P1000240-thumb-400x272.jpg" class="mt-image-center" style="margin: 0pt auto 2px; text-align: center; display: block;" height="272" width="400" /></a></span><br /><div align="center">

写真５：アナログ信号用にユニット(左)<br /></div><br />　パワーライン(家庭用商用電源＝AC100V)に制御信号を乗せて、各種の機器のリモート・コントロールをしようというのが X10
ユニットの思想です。こららの対象は、照明器具などがメインだと思います。同サイトには、より詳しいマニュアル(pdf)が用意されていますので、読んでみま
しょう。<br /><br /></div><div>
<br />



<table border="1" cellpadding="3" cellspacing="3"> 
<tbody><tr><td class="tdg">全体的な使用方法(構成図)
</td><td><a href="http://www.freecon.co.jp/pdf/X10_HOW_TO_USE.pdf">http://www.freecon.co.jp/pdf/X10_HOW_TO_USE.pdf</a>
</td></tr><tr><td class="tdg">コントローラ(親ユニット)
</td><td><a href="http://www.freecon.co.jp/pdf/X10_F7MC460.pdf">http://www.freecon.co.jp/pdf/X10_F7MC460.pdf</a></td></tr>
<tr><td class="tdg">証明用アダプタ(子ユニット)
</td><td><a href="http://www.freecon.co.jp/pdf/X10_F7LM465.pdf">http://www.freecon.co.jp/pdf/X10_F7LM465.pdf</a></td></tr>
</tbody></table>
<br /></div>　"ブレーカ越え"の課題をネットワークを利用して解決しようと考えつつ、"X10" をキーワードにして、ネットを検索していると、こんな<a href="http://siio.jp/projects/papers/wiss_syncdecor.pdf">面白い研究論文</a>も見つかって、これには驚かされました。家庭内 LAN ではなくインターネット経由でも制御しているところは想定の範囲でしたが、この研究目的(論文テーマ)が何ともクールです！(リンクを辿ってご覧ください)<br /><br />　次回は、何に使うかという本題に入っていきます。<br /><div align="right">&lt;和田 好司&gt;<br /></div><br />]]>
    </content>
</entry>

<entry>
    <title>外付けHDD に自動で電源ON/OFFしてバックアップ</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/Kurobox-pro2/2008/07/hdd-onoff.html" />
    <id>tag:www.eleki-jack.com,2008:/Kurobox-pro2//11.1773</id>

    <published>2008-07-25T00:53:30Z</published>
    <updated>2008-09-01T08:26:04Z</updated>

    <summary>■はじめに　玄箱PROの使い方の一つとして NAS (Networked Att...</summary>
    <author>
        <name>mitsunaga</name>
        
    </author>
    
        <category term="玄箱PROと電子工作" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="cron" label="cron" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="バックアップ" label="バックアップ" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="外付けhdd" label="外付けHDD" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="節電" label="節電" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/Kurobox-pro2/">
        <![CDATA[<b>■はじめに</b><br />　玄箱PROの使い方の一つとして NAS (Networked Attached Disk: ネットワーク接続型ディスク) があります。NAS として使うときに重要になるのはバックアップです。今回はバックアップに使えるソフトウェアと、バックアップ時に外付けディスクの電源を自動で ON/OFF する方法を紹介します。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/07/14/R0010815bs.jpg"><img alt="R0010815bs.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/07/14/R0010815bs-thumb-400x300.jpg" class="mt-image-center" style="margin: 0pt auto 2px; text-align: center; display: block;" height="300" width="400" /></a></span><br /><div align="center">図1 完成した自動電源 ON 回路<br /></div><br /> ]]>
        <![CDATA[<b>■バックアップの意味</b><br />　バックアップには二つの意味があります。一つには、ハードディスクの故障に代表されるハードウェア障害に対する備えです。もう一つは、誤って消去してしまうなど人為的なミスに対する備えです。<br /><br /><b>■ディスクのミラーリング</b><br />　バックアップの方法はいくつかありますが、一つの方法がミラーリングと呼ばれる方法です。ミラーリングとは1台のディスクが壊れたときのために､同じ物を保存した別のディスク（コピー）を用意する方法です。常にミラーリングする方法として RAID 1 があります。常時ミラーリングしていると、バックアップ忘れがないメリットがあります。一方でハードウェア障害には対応できますが､即時に変更が反映されるため､人為的ミスには対応できません。<br /><br />　そこで定期的にソフトウェアでミラーリングをする方法をとることにします。Windows でファイルをディレクトリ単位でミラーリングするには、WinSync2000*1 や、BunBackup*2 といったソフトウェアを利用すると便利です。Windows マシンから玄箱 PRO が SAMBA で共有している領域にバックアップをとることもできます。玄箱 PRO 上(UNIX マシン)では、rsync というソフトを使うとミラーリングが簡単にできます。<br /><br />*1 WinSync2000:<br /><a href="http://hp.vector.co.jp/authors/VA015685/">http://hp.vector.co.jp/authors/VA015685/</a><br />*2 BunBackup:<br /><a href="http://homepage3.nifty.com/nagatsuki/bunbackup/bunbackup.htm">http://homepage3.nifty.com/nagatsuki/bunbackup/bunbackup.htm</a><br /><br /><b>■rsync を使ったミラーリング</b><br />　rsync は UNIX でよく使われるファイル同期がとれるソフトウェアです。cp や tar を使ったコピーと違い、削除したファイルをコピー先から消すことや､更新されたファイルのみコピーすることで時間が短縮される、ローカルだけでなくネットワークを通してファイルを同期できるなどの特徴があります。Debian パッケージが用意されているのでインストールは、<br /><br /><blockquote>apt-get install rsync<br /></blockquote><br />だけで済みます。/home 以下を /disk2/home 以下にミラーリングする場合の基本的な使い方は、<br /><br /><blockquote>rsync -aHv --delete /home/ /disk2/home<br /></blockquote><br />とします。ここで注意が必要なのは /home の後ろについている / です。これがないと、/disk2/home/home ディレクトリが作成されることになります。--delete オプションがない場合は、rsync はコピー元のファイルが削除されたときも､コピー先からファイルを削除しません。そのためミラーリングする場合には必要になります。v は詳細なメッセージを表示するためなのでなくてもかまいません。--dry-run をつけると実際にはファイルの操作はしません。動作の確認のために使うことができます。<br /><br /><blockquote>rsync -aHv --delete --dry-run /home/ /disk2/home<br /></blockquote><br />　一度､誤って消してもよいディレクトリを用意して動作を確認するとよいでしょう。<br /><br /><b>■電源のON/OFF</b><br />　ACアダプタの電源のON/OFFには半導体リレー (SSR: Solid State Relay) を使いました（図2）。低い電圧の直流で商用電源 (AC 100V) を ON/OFF 制御できます。玄箱PROから指令するために､秋月電子の FT245RL USB パラレル変換モジュールを使いました。<br />　回路図は図3のとおりです。SSR には、オムロンの G3MB-202P 5V を使っています。ほかの SSR を使う場合には､FT245RL の最大出力電流(2mA程度)と図2にある JC208SC (ジェルシステム) のように電流制限抵抗が外付けで必要なものもあることに注意してください。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/07/14/R0010646s.jpg"><img alt="R0010646s.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/07/14/R0010646s-thumb-400x300.jpg" class="mt-image-center" style="margin: 0pt auto 2px; text-align: center; display: block;" height="300" width="400" /></a></span><br /><div align="center">図2 半導体リレー (SSR: Solid State Relay)の例<br /></div><br /><br /><blockquote><div align="center"><blockquote><font style="font-size: 1.25em;"><b>警告</b></font>：この回路では商用電源 (AC100V) を取り扱います。感電やショートなどがないよう十分に注意し､自己責任で楽しんでください。<br /></blockquote></div></blockquote><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/07/14/FT245RL_SSR.html" onclick="window.open('http://www.eleki-jack.com/Kurobox-pro2/2008/07/14/FT245RL_SSR.html','popup','width=639,height=402,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.eleki-jack.com/Kurobox-pro2/2008/07/14/FT245RL_SSR-thumb-400x251.gif" alt="FT245RL_SSR.gif" class="mt-image-center" style="margin: 0pt auto 2px; text-align: center; display: block;" height="251" width="400" /></a></span><br /><div align="center">図3 FT245RL を利用して商用電源を制御する回路<br /></div><br /><b>■回路の組み立て</b><br />　図4, 図5のように部品を用意しました。商用電源用には必ず商用電源用のコードを利用するようにし､電子回路用（耐圧30V以下など）の電線を利用しないでください。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/07/14/R0010645s.jpg"><img alt="R0010645s.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/07/14/R0010645s-thumb-400x533.jpg" class="mt-image-center" style="margin: 0pt auto 2px; text-align: center; display: block;" height="533" width="400" /></a></span><br /><div align="center">図4 松下電器 ベター　小型コード・コネクタ (平形コード用) WH 451P と平形コード<br /></div><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/07/14/R0010808s.jpg"><img alt="R0010808s.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/07/14/R0010808s-thumb-400x300.jpg" class="mt-image-center" style="margin: 0pt auto 2px; text-align: center; display: block;" height="300" width="400" /></a></span><br /><div align="center">図5 基板上に実装する部品 (FT245RL モジュール, ICソケット、抵抗とLED, SSR)<br /></div><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/07/14/R0010809s.html" onclick="window.open('http://www.eleki-jack.com/Kurobox-pro2/2008/07/14/R0010809s.html','popup','width=640,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.eleki-jack.com/Kurobox-pro2/2008/07/14/R0010809s-thumb-400x300.jpg" alt="R0010809s.jpg" class="mt-image-center" style="margin: 0pt auto 2px; text-align: center; display: block;" height="300" width="400" /></a></span><br /><div align="center">図6 基板を表から見たところ<br /></div><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/07/14/R0010810s.html" onclick="window.open('http://www.eleki-jack.com/Kurobox-pro2/2008/07/14/R0010810s.html','popup','width=360,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.eleki-jack.com/Kurobox-pro2/2008/07/14/R0010810s-thumb-400x533.jpg" alt="R0010810s.jpg" class="mt-image-center" style="margin: 0pt auto 2px; text-align: center; display: block;" height="533" width="400" /></a></span><br /><div align="center">図7 FT245RLモジュールの実装方向と、SSRの向き。SSRは文字が読める側を FT245RLモジュールに向ける<br /></div><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/07/14/R0010811s.html" onclick="window.open('http://www.eleki-jack.com/Kurobox-pro2/2008/07/14/R0010811s.html','popup','width=640,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.eleki-jack.com/Kurobox-pro2/2008/07/14/R0010811s-thumb-400x300.jpg" alt="R0010811s.jpg" class="mt-image-center" style="margin: 0pt auto 2px; text-align: center; display: block;" height="300" width="400" /></a></span><br /><div align="center">図8 基板裏面の様子<br /></div><br />基板ができたら、平形コードを加工し配線しました。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/07/14/R0010813bs.jpg"><img alt="R0010813bs.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/07/14/R0010813bs-thumb-400x275.jpg" class="mt-image-center" style="margin: 0pt auto 2px; text-align: center; display: block;" height="275" width="400" /></a></span><br /><div align="center">図9 平形コードの加工<br /></div><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/07/14/R0010814bs.jpg"><img alt="R0010814bs.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/07/14/R0010814bs-thumb-400x300.jpg" class="mt-image-center" style="margin: 0pt auto 2px; text-align: center; display: block;" height="300" width="400" /></a></span><br /><div align="center">図10 平形コードを基板につける<br /></div><br />　基板が完成したらテストの前にケースに組み込みます。感電防止です。用意したケースは100円ショップで購入したものです。基板を蓋側に両面テープで貼り付け､コードはケースに切り欠きをつくり、そこを通すことにしました。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/07/14/R0010815bs.jpg"><img alt="R0010815bs.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/07/14/R0010815bs-thumb-400x300.jpg" class="mt-image-center" style="margin: 0pt auto 2px; text-align: center; display: block;" height="300" width="400" /></a></span><br /><div align="center">図11 完成した基板と用意したケース<br /></div><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/07/14/R0010819bs.jpg"><img alt="R0010819bs.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/07/14/R0010819bs-thumb-400x300.jpg" class="mt-image-center" style="margin: 0pt auto 2px; text-align: center; display: block;" height="300" width="400" /></a></span><br /><div align="center">図12 基板は両面テープでケースに止める<br /></div><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/07/14/R0010817bs.jpg"><img alt="R0010817bs.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/07/14/R0010817bs-thumb-400x300.jpg" class="mt-image-center" style="margin: 0pt auto 2px; text-align: center; display: block;" height="300" width="400" /></a></span><br /><div align="center">図13 平形コードをコネクタに止める<br /></div><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/07/14/R0010830bs.jpg"><img alt="R0010830bs.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/07/14/R0010830bs-thumb-400x300.jpg" class="mt-image-center" style="margin: 0pt auto 2px; text-align: center; display: block;" height="300" width="400" /></a></span><br /><div align="center">図14 ケースの切り欠きにコードを通す<br /></div><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/07/14/R0010829bs.jpg"><img alt="R0010829bs.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/07/14/R0010829bs-thumb-400x300.jpg" class="mt-image-center" style="margin: 0pt auto 2px; text-align: center; display: block;" height="300" width="400" /></a></span><br /><div align="center">図15 ケースに収めたところ<br /></div><br />　動作テストの前にテスタで必ずショートしていないことをオス､メスとも確認します。火災などの原因になるので必ず確認してください。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/07/14/R0010818s.jpg"><img alt="R0010818s.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/07/14/R0010818s-thumb-400x300.jpg" class="mt-image-center" style="margin: 0pt auto 2px; text-align: center; display: block;" height="300" width="400" /></a></span><br /><div align="center">図16 ショートしていないか必ず確認する<br /></div><br />
<b>■動作テスト</b><br />　動作テストの前に環境を用意する必要があります。<a href="http://www.eleki-jack.com/Kurobox-pro2/2008/02/usb-led.html">以前の記事</a>を参考に環境を用意してください。プログラムは LED の点滅と同様に作成してあります。<span class="mt-enclosure mt-enclosure-file" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/07/14/power245.c">power245.c</a></span> をダウンロードして以下でコンパイルしてください。<br /><br />
<blockquote>cc -o power245 -I/usr/local/include power245.c -L/usr/local/lib -lftdi -lusb<br /></blockquote>まずコンセントには何も挿さずにテストします。FT245RL を USB で玄箱PROにつなぎ、認識された後、<br /><br /><blockquote>./power245 on<br /></blockquote><br />で LED が点灯し､<br /><br /><blockquote>./power245 off <br /></blockquote><br />で LED が消灯すればOKです。<br />　つぎに、テスタで LED 点灯時、消灯時ともにショートしていないことを確認してください。LED点灯時にSSRを通したコネクタ間の配線で抵抗が多少あるのは無視してかまいません。OK なら、コンセントに負荷（電気スタンドなど）を接続し､ LED の点灯、消灯とともに、負荷が ON,/OFF できれば完成です。<br />　SSR の容量は 1A となっていますが､ 0.5A 以下で利用するほうがよいでしょう。扇風機などのモータを使ったものは利用できません。<br /><br /><b>■バックアップ・スクリプト</b><br />　コンパイルした power245 を /usr/local/sbin にコピーし、以下のようなバックアップ・スクリプト <br /><span class="mt-enclosure mt-enclosure-file" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/07/14/backup.sh">backup.sh</a></span> を作成しました。電源を投入後、30秒待ち、/, /home を順にバックアップしています。USBハードディスクは、記事「玄箱PROのハードディスク交換」に従ってパーティションを作成し、用意したものです。<br /><br /><blockquote>
<pre>#!/bin/sh

/usr/local/sbin/power245 on

sleep 30

mount /disk2

rsync -aHvx --delete / /disk2

mount /disk2/home

rsync -aHv --delete /home/ /disk2/home

umount /disk2/home
umount /disk2

/usr/local/sbin/power245 off
</pre>
</blockquote><br />mount コマンドを見て分かるように /etc/fstab には、以下の2行を追加しています。<br /><br />
<blockquote>
<pre>/dev/sdb2       /disk2          ext3    noauto          0       0
/dev/sdb4       /disk2/home     ext3    noauto          0       0
</pre>
</blockquote><br />　さらに backup.sh を cron から定期的に実行するようにすれば、節電しながら自動バックアップがとれる環境の完成です。<br /><div align="right">&lt;光永 法明&gt;<br /></div>]]>
    </content>
</entry>

<entry>
    <title>玄箱PROのハードディスク交換</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/Kurobox-pro2/2008/07/pro.html" />
    <id>tag:www.eleki-jack.com,2008:/Kurobox-pro2//11.1721</id>

    <published>2008-07-14T22:06:16Z</published>
    <updated>2008-07-15T02:18:30Z</updated>

    <summary>■はじめに　玄箱PROのディスクがいっぱいになってきたとき、ディスクを増設したり...</summary>
    <author>
        <name>mitsunaga</name>
        
    </author>
    
        <category term="Debian 化した玄箱PROでデバイスを使う" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Debian 環境を整える" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/Kurobox-pro2/">
        <![CDATA[<b>■はじめに</b><br />　玄箱PROのディスクがいっぱいになってきたとき、ディスクを増設したり、コピーして交換したくなります。今回は新しい HDD を USB HDD ケースに入れてコピーをし、玄箱PRO内蔵の HDD と交換してみます(図1)。そのために、fdisk, mkfs などを使って USB HDD を初期化してから、tar で玄箱PRO内蔵のディスクから内容をコピーして、ディスクを交換します。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="USBHDDs.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/06/26/USBHDDs.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="158" width="240" /></span><br /><div align="center">図1 1TB HDD を組み込んだ USB HDD ケース (玄人志向の玄蔵)<br /></div><br /> ]]>
        <![CDATA[<b>■デバイス・ファイルを確かめる<br /></b>&nbsp;　USB HDD を取り付けるとシリアル・コンソールに以下のように表示されます。<br /><br />

<pre>usb 2-1.4: new high speed USB device using ehci_platform and address 6
scsi2 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at 6
usb-storage: waiting for device to settle before scanning
  Vendor: WDC WD10  Model: EACS-00ZJB0       Rev: 1B01
  Type:   Direct-Access                      ANSI SCSI revision: 02
SCSI device sdb: 1953525168 512-byte hdwr sectors (1000205 MB)
sdb: assuming drive cache: write through
SCSI device sdb: 1953525168 512-byte hdwr sectors (1000205 MB)
sdb: assuming drive cache: write through
 sdb: unknown partition table
Attached scsi disk sdb at scsi2, channel 0, id 0, lun 0
Attached scsi generic sg1 at scsi2, channel 0, id 0, lun 0,  type 0
usb-storage: device scan complete
</pre>　これを見ると sdb として認識されたことがわかります。したがってデバイス・ファイルとしては /dev/sdb です。シリアル・コンソールに現れたメッセージを見るのを忘れたといったときには、dmesg コマンドと tail コマンドを組み合わせて使うとよいでしょう。<br /><br />

<pre>dmesg | tail
</pre>

を実行すると、<br /><br /><pre>kurobox@kurobox:~$ dmesg | tail
  Vendor: WDC WD10  Model: EACS-00ZJB0       Rev: 1B01
  Type:   Direct-Access                      ANSI SCSI revision: 02
SCSI device sdb: 1953525168 512-byte hdwr sectors (1000205 MB)
sdb: assuming drive cache: write through
SCSI device sdb: 1953525168 512-byte hdwr sectors (1000205 MB)
sdb: assuming drive cache: write through
 sdb: unknown partition table
Attached scsi disk sdb at scsi2, channel 0, id 0, lun 0
Attached scsi generic sg1 at scsi2, channel 0, id 0, lun 0,  type 0
usb-storage: device scan complete
kurobox@kurobox:~$
</pre>

のようになります。tail コマンドはファイル(標準入力)の最後の部分だけを標準出力に出力するコマンドです。もちろん、tail コマンドではなく､less などページャを使って調べてもかまいません。


<br /><br /><b>■fdisk の実行
<br /></b>　fdisk コマンドを使うとディスクを初期化できます。fdisk の引数は初期化するディスクのデバイス・ファイル名です。たとえば、<br /><br />

<pre>fdisk /dev/sdb
</pre>

とします。実行には、root の権限が必要なので､ su コマンドで root になるか、root でログインします。間違ったディスクを指定すると誤って重要なディスクのパーティション情報を壊してしまうことになるので、実行には十分に注意してください。


<br /><br /><b>■fdisk でパーティション情報を調べる (p コマンド)<br /></b>&nbsp;　ディスクを初期化する前に、今利用しているディスク (/dev/sda) のパーティション情報を知りたい場合があると思います。そのときには、fdisk を実行し､fdisk の p コマンドを利用します。fdisk の終了は q コマンドです。インストーラ使ってパーティションを作成した 250GB HDD の場合には、以下のようになりました。<br /><br /><pre>kurobox:/home/kurobox# fdisk /dev/sda

The number of cylinders for this disk is set to 30401.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p

Disk /dev/sda: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1           7       56196   83  Linux
/dev/sda2               8         373     2939895   83  Linux
/dev/sda3             374         390      136552+  82  Linux swap / Solaris
/dev/sda4             391       30401   241063357+  83  Linux

Command (m for help): q

kurobox:/home/kurobox#
</pre>　1から4番目の各領域の開始と終了のシリンダ番号、ブロックの大きさ、パーティション情報がわかります。つぎに購入したての新しい HDD に対して実行してみると以下のようになりました。<br /><br />

<pre>kurobox:/home/kurobox# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.


The number of cylinders for this disk is set to 121601.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

28Command (m for help): p

Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

Command (m for help):
</pre>　まったくパーティション情報がないことがわかります。

<br /><br /><b>■fdisk のコマンド<br /></b>&nbsp;　fdisk の主に利用するコマンドは以下の七つです。

<br /><ul><li>d パーティションの削除
m メニュー（コマンド）の確認</li><li>n パーティションの作成</li><li>p 現在のパーティション情報の確認</li><li>t パーティション・タイプの変更</li><li>w パーティション情報のディスクへの書き込みと fdisk の終了</li><li>q fdisk の終了</li></ul>　w コマンドを実行するまで、変更はディスクには書き込まれないので安心してください。よくわからなくなったら Ctrl + C でも fdisk を終了することができます。<br /><br /><b>■パーティションを作成してみる
<br /></b>　前置きが長くなりましたが､パーティションを作成してみます。まず、fdisk を実行します。<br /><br /><pre>kurobox:/home/kurobox# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.


The number of cylinders for this disk is set to 121601.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
</pre>　pコマンドで、現在のパーティション情報を確認してみます。<br /><br />

<pre>Command (m for help): p

Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
</pre>　新品のディスクなのでパーティション情報がありません。m でメニュー（コマンド）を確認してみます。<br /><br />

<pre>Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)
</pre>　n コマンドでパーティションを作成してみます。<br /><br /><pre>Command (m for help): n                          ←入力
Command action
   e   extended
   p   primary partition (1-4)
p                          　　　　　　　　　　　←入力
Partition number (1-4): 1                        ←入力
First cylinder (1-121601, default 1):            ←入力
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-121601, default 121601): 7 ←入力
</pre>　質問に答える形で、プライマリ・パーティション (p), パーティション番号 (1), 開始シリンダ (リターンのみでデフォルトの1を選択), 終了シリンダ (7) を入力しています。玄箱PROの場合はパーティション番号 1 には起動用のカーネルを保存しています。次のパーティションを作ります。<br /><br />

<pre>Command (m for help): n     ←入力
Command action
   e   extended
   p   primary partition (1-4)
p     ←入力
Partition number (1-4): 2     ←入力
First cylinder (8-121601, default 8):     ←入力
Using default value 8
Last cylinder or +size or +sizeM or +sizeK (8-121601, default 121601): 2800M  ←入力
</pre>　プライマリ・パーティション (p), パーティション番号 (2), 開始シリンダ (リターンのみでデフォルトの8を選択), パーティションのサイズ (2800M) を入力しています。玄箱PROの場合はパーティション番号 2 は / パーティションに利用しています。次のパーティションを作ります。失敗したと思ったら､dコマンドでパーティションを削除します。<br /><br /><pre>Command (m for help): d     ←入力
Partition number (1-4): 2     ←入力

Command (m for help): p     ←入力

Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1           7       56196   83  Linux
</pre>　もう一度パーティションを作ります。<br /><br /><pre>Command (m for help): n     ←入力
Command action
   e   extended
   p   primary partition (1-4)
p     ←入力
Partition number (1-4): 2     ←入力
First cylinder (8-121601, default 8):     ←入力
Using default value 8
Last cylinder or +size or +sizeM or +sizeK (8-121601, default 121601): +3000M     ←入力

Command (m for help): p     ←入力

Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1           7       56196   83  Linux
/dev/sdb2               8         373     2939895   83  Linux
</pre>　プライマリ・パーティション (p), パーティション番号 (2), 開始シリンダ (リターンのみでデフォルトの8を選択), パーティションのサイズ (3000M) を入力しています。3000M は約 3GB です。さらに二つのパーティションを作ります。パーティション3はスワップに 128MB 確保し､残り全部を /home に確保しています。<br /><br />

<pre>Command (m for help): n     ←入力
Command action
   e   extended
   p   primary partition (1-4)
p     ←入力
Partition number (1-4): 3     ←入力
First cylinder (374-121601, default 374):     ←入力
Using default value 374
Last cylinder or +size or +sizeM or +sizeK (374-121601, default 121601): +128M     ←入力

Command (m for help): p     ←入力

Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1           7       56196   83  Linux
/dev/sdb2               8         373     2939895   83  Linux
/dev/sdb3             374         390      136552+  83  Linux

Command (m for help): n     ←入力
Command action
   e   extended
   p   primary partition (1-4)
p     ←入力
Selected partition 4
First cylinder (391-121601, default 391):     ←入力
Using default value 391
Last cylinder or +size or +sizeM or +sizeK (391-121601, default 121601):     ←入力
Using default value 121601

　tコマンドで /dev/sdb3 のパーティション・タイプを Linux swap に変更します。

Command (m for help): t     ←入力
Partition number (1-4): 3     ←入力
Hex code (type L to list codes): 82     ←入力
Changed system type of partition 3 to 82 (Linux swap / Solaris)
</pre>　最後に確認します。<br /><br />

<pre>Command (m for help): p     ←入力

Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1           7       56196   83  Linux
/dev/sdb2               8         373     2939895   83  Linux
/dev/sdb3             374         390      136552+  82  Linux swap / Solaris
/dev/sdb4             391      121601   973627357+  83  Linux
</pre>　よければ w コマンドで書き込みます。<br /><br />

<pre>Command (m for help): w    ←入力
The partition table has been altered!

Calling ioctl() to re-read partition table.
SCSI device sdb: 1953525168 512-byte hdwr sectors (1000205 MB)
sdb: assuming drive cache: write through
 sdb: sdb1 sdb2 sdb3 sdb4
SCSI device sdb: 1953525168 512-byte hdwr sectors (1000205 MB)
sdb: assuming drive cache: write through
 sdb: sdb1 sdb2 sdb3 sdb4
Syncing disks.
kurobox:/home/kurobox#
</pre>　書き込みが終わると fdisk も終了します。もちろん、USB 外付けデータ・ディスクとして利用するときには、パーティションは一つだけしか作成しなくてもかまいません。


<br /><br /><b>■各パーティションの初期化<br /></b>&nbsp;　以下を順に実行し、各パーティションをフォーマットします。<br /><br /><pre>mkfs.ext3 /dev/sdb1
mkfs.ext3 /dev/sdb2
mkswap /dev/sdb3
mkfs.ext3 /dev/sdb4
</pre>　3番目のパーティションだけ､swap パーティションなので利用するコマンドが違います。fdisk でパーティションを一つだけ作成したときには､そのパーティションだけ初期化します。

<br /><br /><b>■tune2fs でパーティションの調整をする
<br /></b>　1TB のディスクで /home 用に大きな領域を確保してみましたが、そのままではパーティションの中に予備領域 (reserved block) が領域の10％ほど確保されてしまいます。10% というと 1TB では、100GB にもなります。少しむだが大きいので､tune2fs で確保する領域を減らしておきます。

<pre><br />tune2fs -r 2000000 /dev/sdb4
</pre>

を実行すると、確保される領域が 2,000,000 ブロック (512bytes/ブロック) = 約 1GBになります。現在の値は、<br /><br />

<pre>tune2fs -m /dev/sdb4
</pre>

を実行すると確認できます。

<br /><br /><b>■データをコピーする<br /></b>&nbsp;　まずディスクをマウントします。マウント先ディレクトリがない場合には、ディレクトリを作成します。ここでは以下のように /mnt2 を作成し､ /dev/sda1 を /mnt に、/dev/sdb1 を /mnt2 にマウントし、起動領域をコピーしました。まず /mnt2 がない場合はディレクトリを作ります。<br /><br />

<pre>kurobox:/home/kurobox# mkdir /mnt2/　　←入力
</pre>

/dev/sda1, /dev/sdb1 をマウントします。<br /><br /><pre>kurobox:/home/kurobox# mount /dev/sda1 /mnt　　←入力
kjournald starting.  Commit interval 5 seconds
EXT3 FS on sda1, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
kurobox:/home/kurobox# mount /dev/sdb1 /mnt2　　←入力
kjournald starting.  Commit interval 5 seconds
EXT3 FS on sdb1, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
</pre>　次に tar でコピーしました。tar を使うことで、パーミッションなどの情報を保ってコピーができます。昔からのテクニックです。/mnt がコピー元、/mnt2 がコピー先のディレクトリです。<br /><br /><pre>kurobox:/home/kurobox# cd /mnt　　←入力
kurobox:/mnt# tar cf - . | (cd /mnt2; tar xpf -)　　←入力
</pre>　tar でコピーするのではなく､cp -a を使ってもかまいません。<br />
<br /><blockquote>
cp -a . /mnt2/<br /></blockquote>
<br />　コピーが終わったら､マウントを外します。カレント・ディレクトリが /mnt のままだとマウントを外せないことに注意してください。<br /><br /><pre>kurobox:/mnt# cd /　　←入力
kurobox:/# umount /mnt /mnt2　　←入力
</pre>　同様に / パーティションをコピーします。/ パーティション (/dev/sda2) はマウントされているので､ /dev/sdb2 のみマウントします。<br /><br /><pre>kurobox:/# mount /dev/sdb2 /mnt　　←入力
kjournald starting.  Commit interval 5 seconds
EXT3 FS on sdb2, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
</pre>　必要なディレクトリだけを指定してコピーします。<br /><br /><pre>kurobox:/# tar cf - bin boot dev etc initrd lib media mtd opt root sbin srv tmp usbflash usr var  | (cd /mnt; tar xpf -)　　←入力
</pre>

　警告が多少出ますが、無視します。コピーしなかったディレクトリは作成します。以下を実行するとよいでしょう。<br /><br /><pre>mkdir /mnt/home /mnt/mnt /mnt/sys /mnt/proc /mnt/tmp
chmod 1777 /mnt/tmp
umount /mnt
</pre>　最後に /home (/dev/sda4) をコピーしました。<br /><br />

<pre>kurobox:/# mount /dev/sdb4 /mnt　　←入力
kjournald starting.  Commit interval 5 seconds
EXT3 FS on sdb4, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
kurobox:/# cd /home/　　←入力
kurobox:/home# tar cf - . | (cd /mnt; tar xpf -)　　←入力
</pre>　この状態で電源を切り､USB HDD ケースからディスクを取り出し､玄箱PROに内蔵して電源を入れ起動すればディスクの入れ替えは終了です。なお玄箱PROの場合は不要ですが、PC でディスクを入れ替えたときにはブート領域(MBR: Master Boot Record)の書き換えも必要です。<br /><div align="right">&lt;光永 法明&gt;<br /></div>]]>
    </content>
</entry>

<entry>
    <title>XPort活用 「その２」《パトライト編》　後編</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/Kurobox-pro2/2008/06/xport-3.html" />
    <id>tag:www.eleki-jack.com,2008:/Kurobox-pro2//11.1711</id>

    <published>2008-06-23T02:35:52Z</published>
    <updated>2008-06-23T05:54:43Z</updated>

    <summary><![CDATA[&nbsp;●パトライトを点灯させる　１ビットでも重要な情報となる場合は様々です...]]></summary>
    <author>
        <name>yoshida</name>
        
    </author>
    
        <category term=" XPortを活用する" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="パトライト" label="パトライト" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/Kurobox-pro2/">
        <![CDATA[<font style="font-size: 1.25em;"><b>&nbsp;●パトライトを点灯させる</b></font><br />　１ビットでも重要な情報となる場合は様々です。例えば、"警報"というのは、「あり」と「なし」(０と１)では状況は反転します。仕事でも遊びでも異常自体をすぐに知ることは重要案件ですね。そこで、ネットワーク上のトラブルはネットワーク上の警報表示(パトライト)で察知することにします。<br />　「パトライト」というのは商品名ですが、これはパトカーの天井で見掛けたり、工場とかでも生産ラインで目にすると思います。何らかの異常があった際には点灯して人間にアラートを知らせます。最近のパトカーに付いているものは円筒形でなくなりましたが、"パトライト"というと誰もが円筒形で強烈なライトが回転しているものを想像するのではないでしょうか。<br />　さて、実際の製品は結構値が張ります。そこで前回で紹介しているような、たまたま玩具店で見掛けた「おもちゃのパトライト」を改造してみます。そもそも XPort は"ちっちゃなシステム"に似合うと直感しているので、むしろ、このおもちゃの改造には興味が湧いてきました。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/06/23/x5-1-P1000101.jpg"><img alt="x5-1-P1000101.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/06/23/x5-1-P1000101-thumb-400x353.jpg" class="mt-image-center" style="margin: 0pt auto 2px; text-align: center; display: block;" height="353" width="400" /></a></span><br /><div align="center">おもちゃ屋で見つけてきたパトライト<br /></div>&nbsp;<br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/06/23/x5-2-P1000098.jpg"><img alt="x5-2-P1000098.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/06/23/x5-2-P1000098-thumb-400x300.jpg" class="mt-image-center" style="margin: 0pt auto 2px; text-align: center; display: block;" height="300" width="400" /></a></span><br /><div align="center">&nbsp;&nbsp; 実際に設置している様子 </div><div><br /></div><div><br /></div>]]>
        <![CDATA[<font style="font-size: 1.25em;">●<b>おもちゃパトライトの改造</b></font><br />　下の写真１に示す「おもちゃパトライト」は、豆電球、回転反射板、モータ、電池ボックス、それと電源スイッチによって構成されていましたが、考え方として、スイッチ部分をトランジスタに置き換えただけです。<br />　写真には、このスイッチの役目をするトランジスタが見えています。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/06/23/x5-3-P1000102.jpg"><img alt="x5-3-P1000102.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/06/23/x5-3-P1000102-thumb-400x300.jpg" class="mt-image-center" style="margin: 0pt auto 2px; text-align: center; display: block;" height="300" width="400" /></a></span><br /><div align="center">写真１：改造を終えたパトライト内部の様子<br /><br /><div align="left">　XPort の装着場所としては、裏側にある電池ボックスのところが最適でしたので、プラスチック部分を加工して、上手に押し込めました。接着剤としては、"ホットメルト"を活用すると楽です。この様子が写真２です。<br />　ただ、後で気づいて"しまった！"と思ったのは、XPort の MAC アドレスのラベルの位置です。加工して接着した後に、この MAC アドレスが読めないと、場合によっては非常に困ったことになると思われます(私の場合は運よく、かろうじて読めました)。<br />　おもちゃだったので、一度分解すると再びモータが回転するかは、スリルがありました。詳しく言いますと、改造部品が底カバーに当たったり、あるいは中心軸を出すためのガイド部分を除去してしまったりしたので、なかなか中心軸が定まりませんでした。<br />　皆さんが入手されるものが不明なところですけれども、部品を納めるスペースを上手に探し、"ホットメルト"で固定してみてください。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/06/23/x5-4-P1030364m.jpg"><img alt="x5-4-P1030364m.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/06/23/x5-4-P1030364m-thumb-400x348.jpg" class="mt-image-center" style="margin: 0pt auto 2px; text-align: center; display: block;" height="348" width="400" /></a></span><br /><div align="center">

写真２：XPort を組み込んでいるところ<br /><br /><div align="left"><h2><b>●</b><b>回路図</b> </h2>

　１ビットの制御しか行っていないので、回路図は単純です。モータ、ランプ、回転機構、スイッチの場所と取り合いで、3.3V のレギュレータとモータ制御用のトランジスタを"空中配線"してあります。<br />　レギュレータ用のヒートシンクのスペースが見当たらなかったので、形状の大きなレギュレータを使用し(ここでは NEC のμPC2033)、筐体部に接着してヒートシンク替わりにしてあります。<br /> 　電源としては 5V(DC) 程度の AC アダプタを利用します。電流容量としては、そのパトライトを点灯させテスタで確認しておいてください。
<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/06/23/x5-5-MotorControlByXPort.GIF"><img alt="x5-5-MotorControlByXPort.GIF" src="http://www.eleki-jack.com/Kurobox-pro2/2008/06/23/x5-5-MotorControlByXPort-thumb-400x250.gif" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="250" width="400" /></a></span><br />　回路図：記事の最後にデータを用意しています<br /><br /><h2>●<b>ソフトウェア</b> </h2>

　前述しているプログラムを使えば、このパトライトがオン/オフできる筈です。玄箱(pro)において、活用方法に合わせてシェル・スクリプトを組んでご利用ください。<br />　自動的に警報を出す方法以外に、人間が警報スイッチを入れる感覚で使いたい場合もあると思います。XPort はネットワーク上にいるので、もし、そういうスイッチを作るとすれば、ネットワーク通信ができなてはなりませんね。<br />　一方で、普段の生活では近場にパソコンがあるでしょうから、画面の上に警報スイッチを用意すれば事足ります。XPort は簡易 Web
サーバ機能があるので、これを利用してみることにしました。したがって、パソコン側としてはWebブラウザを通してインタフェースすることになります。以下、簡単に
順を追って説明します。<br />　Webブラウザとのインターフェースのため、XPort にトップページに「アプレット起動用HTML」を書いておきます。<br /><br /></div></div></div></div><div><br /></div>

<pre>&lt;html&gt;
&lt;body&gt;
    &lt;applet code="xport_patolight.class" width=250 height=300&gt; &lt;/applet&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>

　つまり、XPort から java apllet をダウンロードしてインターフェースさせようという作戦です。ここに関わる java プログラムのソースを示しておきます。<br /><br />
<pre>/* XPort でパトライトをオン/オフさせる java プログラム */

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
import java.awt.Graphics;
import java.net.URL;
import java.awt.Toolkit;


public class xport_patolight extends Applet implements Runnable{
	Image img1,img2,img3,img4;
	int px,py,com;
	boolean sw1,bt1,run;	
	Thread th=null;	
	Graphics g;
	
	public void init(){
		img1=getImage(getDocumentBase(),"b0029.gif");
		img2=getImage(getDocumentBase(),"on.png");
		img3=getImage(getDocumentBase(),"off.png");

		g=getGraphics();
				
		sw1=false;
		bt1=false;
		run=false;

    	addMouseListener(                         //sw1の処理
		new MouseAdapter(){
			public void mouseClicked(MouseEvent e){
				if(e.getX()&gt;129 &amp;&amp; e.getX()&lt;199 &amp;&amp; e.getY()&gt;118 &amp;&amp; e.getY()&lt;200){
					sw1=!sw1;
					if(sw1) {
					    com=0x01;
					} else {
					    com=0x00;
				    }
					repaint();
					run=true;
				}
			}
		});
}
	
	public void paint(Graphics g){
	    g.drawImage(img1, 100, 50, 200, 230, this);
		if(sw1){
			g.drawImage(img2,130,118,this);
		} else {
		    g.drawImage(img3,130,118,this);
        }
	}
	
	public void start(){
		if(th==null){
			th=new Thread(this);
			th.start();
		}
	}
	
	public void run(){                 //コマンド発信部分
		while(true){
			if(run){
				try{
					Socket theSock=new Socket("192.168.1.22",30704);

				    DataOutputStream sockout=new DataOutputStream(theSock.getOutputStream());
	       		    DataInputStream  sockin  =new DataInputStream(theSock.getInputStream());
					
				    sockout.writeByte(0x01);
				    sockout.writeByte(0x02);
				    sockout.writeByte(com);
				    sockout.writeByte(0x01);
					sockout.flush();			    
					
					th.sleep(20);
									
					sockin.close();
					sockout.close();
					theSock.close();
				}
				
				catch(Exception e){
					g.drawString("エラー発生！",240,450);
				}
				
				run=false;
				
			}
			else{
				try{
					th.sleep(100);
				}
				catch(Exception e){
				}
			}
		}
		
	}
}
</pre>

　　(ダウンロードするならば、xport_patolight.javaとなる)<br />&nbsp;<br />　動作説明が後回しになってしまいましたが、オンとオフのスイッチ画像をクリックします。この様子が下のスクリーンショットです。

<br /><br />　　　　　　　　　　画面ショット：マウスのクリックでオン状態とオフ状態のトグル動作<br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="x5-6-web_on.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/06/23/x5-6-web_on.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="447" width="341" /></span><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="x5-7-web_off.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/06/23/x5-7-web_off.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="447" width="341" /></span><span class="mt-enclosure mt-enclosure-image" style="display: inline;"></span><br />　上の java プログラムを java アプレットにコンパイルするには java 環境が必要となります。この説明部分は割愛させていただきますが、java をコンパイル(javac)するステップのスクリーンショットを用意しておきました。<br /><br />
<div><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/06/23/x5-8-cmd_javac_xport_patolight.jpg"><img alt="x5-8-cmd_javac_xport_patolight.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/06/23/x5-8-cmd_javac_xport_patolight-thumb-400x352.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="352" width="400" /></a></span>　次に、コマンドプロンプト画面にて、COB ファイルを生成しておきます。web2cob.exe は /o で出力ファイルを /d
で作業用のサブディレクトリを指定しますので、例えば、「 web2cob /o xport.cob /d source 」の形になります。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/06/23/x5-9-web2cob_xport_patolight.jpg"><img alt="x5-9-web2cob_xport_patolight.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/06/23/x5-9-web2cob_xport_patolight-thumb-400x612.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="612" width="400" /></a></span>　このように、XPort にデータを送るためには、cob という形式にまとめなくてはなりません。そのため、XPort のインストーラに付属しているソフトウェア(web2cob.exe)とその作業フォルダ(ここでは source とした)を用意します。

<br />　下記が、cob を作成するための親ディレクトリ(Web)の中身です。ここで web2cob.exe をコマンドプロンプト画面おいて起動します。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/06/23/x5-10-dir_xport_patolight.jpg"><img alt="x5-10-dir_xport_patolight.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/06/23/x5-10-dir_xport_patolight-thumb-400x253.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="253" width="400" /></a></span><br /><p>　サブディレクトリ(source)の中身については、若干、無関係なものがあっても気にしないでまとめてしまいました。</p><p>


</p>　デバイスインストーラは、古いバージョンのものを起動しています。はじめに、IP アドレスをアサインしたり、CP1, CP2, CP3 の入出力を設定したりしておきます。そして、下の画面のように、COB を書き込むところまでクリックしていきます。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/06/23/x5-11-lantronix__xport_patolight.jpg"><img alt="x5-11-lantronix__xport_patolight.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/06/23/x5-11-lantronix__xport_patolight-thumb-400x254.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="254" width="400" /></a></span><br /></div><div>　ちなみに、このパトライト記事で使用している XPort はやや古いバージョン(firmware v1.2)です。<br />

 下は、XPort を検索後、生成した COB ファイルを書き込もうとしているところです。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/06/23/x5-12-lantronix__xport_patolight2.jpg"><img alt="x5-12-lantronix__xport_patolight2.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/06/23/x5-12-lantronix__xport_patolight2-thumb-400x298.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="298" width="400" /></a></span><br /></div><div>　話がずれますが、ブラウザからオン/オフするとして、ボタン(画像)が必要だったりするので、こんなソフトウェア(フリーウェア)を利用してボタン作成しておきます。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/06/23/x5-13-AquaMaker.jpg"><img alt="x5-13-AquaMaker.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/06/23/x5-13-AquaMaker-thumb-400x297.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="297" width="400" /></a></span><br />　オン/オフの画像などは好みで作成してかまわないのですが、手早く試したい方は下のものをお使い下さい。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="x5-14-on.png" src="http://www.eleki-jack.com/Kurobox-pro2/2008/06/23/x5-14-on.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="82" width="82" /></span><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="x5-15-off.png" src="http://www.eleki-jack.com/Kurobox-pro2/2008/06/23/x5-15-off.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="82" width="82" /></span></div><div><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="x5-16-b0029.gif" src="http://www.eleki-jack.com/Kurobox-pro2/2008/06/23/x5-16-b0029.gif" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="100" width="100" /></span></div><div>　最後になりましたが、パトライトが点灯しているスナップもおまけしておきます。<br /><br />　このパトライトの記事はいかがだったでしょうか。次回も引続き、玄箱(pro)をコントローラに見立て、XPort を活用しての記事を考えてみたいと思います。

<br /><br />　<br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/06/23/x5-17-P1030224m.JPG"><img alt="x5-17-P1030224m.JPG" src="http://www.eleki-jack.com/Kurobox-pro2/2008/06/23/x5-17-P1030224m-thumb-400x300.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="300" width="400" /></a></span><div align="center">デバッグ中の XPort 入りパトライト(点灯時)</div></div>


<br /><br />
<center>
<table border="1"> 
<tbody><tr><td align="center" bgcolor="green"><font color="white"><b>コラム</b></font></td>
<td align="center"><b>回路図について</b></td></tr>
<tr><td>
回路図エディタ
    </td><td>
回路図エディタは<a href="http://www.suigyodo.com/online/index.htm">水魚堂のBSch3V</a>を使っています。<br />
下記のファイルは"名前を付けて保存"してください。
    </td></tr>

<tr><td>
LED 点灯の回路図
    </td><td>
<span class="mt-enclosure mt-enclosure-file" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/06/23/LED.CE3">LED.CE3</a></span>
    </td></tr>
<tr><td>
パトライトの改造回路図
    </td><td>
<span class="mt-enclosure mt-enclosure-file" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/06/23/MotorControlByXPort.CE3">MotorControlByXPort.CE3</a></span>
    </td></tr>
</tbody></table>
</center><div align="right">

&lt;和田 好司&gt;</div>]]>
    </content>
</entry>

<entry>
    <title>新刊のお知らせ</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/Kurobox-pro2/2008/06/post-27.html" />
    <id>tag:www.eleki-jack.com,2008:/Kurobox-pro2//11.1693</id>

    <published>2008-06-13T01:28:08Z</published>
    <updated>2008-06-23T02:33:38Z</updated>

    <summary>　本ブログで光永氏が連載した内容をよりわかりやすくまとめ、内容に加筆した書籍が7...</summary>
    <author>
        <name>yoshida</name>
        
    </author>
    
        <category term="お知らせ" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/Kurobox-pro2/">
        <![CDATA[　本ブログで光永氏が連載した内容をよりわかりやすくまとめ、内容に加筆した書籍が7月の始めにCQ出版からでます。<br /><br /><blockquote>タイトル：<a href="http://shop.cqpub.co.jp/hanbai/books/46/46071.html">玄箱PROと電子工作で遊ぼう</a><br />価格：定価2,310円(税込)<br />B5変型判 216ページ<br />2008年7月2日発売予定！<br /></blockquote><br />　詳しいことがわかり次第、このブログで紹介します。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/06/19/%E8%A1%A8%E7%B4%9946071l.jpg"><img alt="表紙46071l.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/06/19/%E8%A1%A8%E7%B4%9946071l-thumb-200x258.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="258" width="200" /></a></span><br /><br />6/19　価格、発売日および表紙の写真を追加しました。<br />6/23　Webshopへのリンクを貼りました。<br /><br /> <div><br /></div>]]>
        
    </content>
</entry>

<entry>
    <title> XPort活用 「その２」《パトライト編》　前編</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/Kurobox-pro2/2008/06/xport-2.html" />
    <id>tag:www.eleki-jack.com,2008:/Kurobox-pro2//11.1625</id>

    <published>2008-06-05T05:39:34Z</published>
    <updated>2008-06-05T05:23:02Z</updated>

    <summary> さて、今回は？　XPort には３本の汎用 I/O 端子があって、少ない本数で...</summary>
    <author>
        <name>yoshida</name>
        
    </author>
    
        <category term=" XPortを活用する" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="xport" label="XPort" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/Kurobox-pro2/">
        <![CDATA[<br /><h2> さて、今回は？</h2>　XPort には３本の汎用 I/O 端子があって、少ない本数であってもいろいろと面白く活用している人がいます。

すでに前号の基板写真１と基板写真２で XPort に LED を接続したところを紹介してますが、こんな感じに CP1 に LED を接続しています。<br />　今回は、この LED をオン/オフさせる実験から入りましょう。下の写真をご覧ください。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/06/05/x4uP1040344.jpg"><img alt="x4uP1040344.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/06/05/x4uP1040344-thumb-400x300.jpg" class="mt-image-center" style="margin: 0pt auto 2px; text-align: center; display: block;" height="300" width="400" /></a></span><br />
<div style="text-align: center;">基板写真１</div>

 <div><br /></div>]]>
        <![CDATA[　ここでの LED の接続方法は、XPort の電源ピン(+3.3V)から抵抗(680Ω)と LED を直列につなぎ、CP1 に接続しているものです。<br />　回路図を必要としないような非常に簡単な話しですが、実験は慎重にする必要があります。その一つは電源電圧で、もう一つはもちろんピン配列です。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/06/05/x4LED.GIF"><img alt="x4LED.GIF" src="http://www.eleki-jack.com/Kurobox-pro2/2008/06/05/x4LED-thumb-400x250.gif" class="mt-image-center" style="margin: 0pt auto 2px; text-align: center; display: block;" height="250" width="400" /></a></span><br /><div align="center">LEDの点灯回路図<br /></div>&nbsp;<br />
　この実験では外部電圧を使っていませんから、まずは安心です。配線に関しては、XPort のピン配列がまとめられたカタログがありますので、再確認をしてからはんだ付けをしてください。<br />
　<a href="http://www.co-nss.co.jp/download/catalog/catalog-xport03.pdf">　http://www.co-nss.co.jp/download/catalog/catalog-xport03.pdf</a>
<br />

<h2><br /></h2><h2>LEDをオン/オフする</h2>

汎用入出力端子(GPIO)をコントロールする制御フォーマットは、<br />
　　　<a href="http://www.co-nss.co.jp/download/download-top.html">「汎用I/Oコントロール資料(日本語)」</a>
<br />
から知ることができます。<br />　9バイトの固定長によって GPIO がコントロールできるようになっています。<br /><br />

<table class="bold" border="1" cellpadding="3">
<tbody><tr><td colspan="3" align="center" bgcolor="#888888"><font color="white"> 送信データのフォーマット </font></td>
</tr><tr align="center"><td>バイト列</td><td>内容</td><td>実際に使われる値(XPort)</td></tr>
<tr><td align="center">０</td><td>指定するコマンド</td><td>設定確認(0x10)、出力設定(0x1a)など </td></tr> 
<tr><td align="center">１</td><td>パラメータ１の１番目</td><td>CP3(bit2) CP2(bit1) CP1(bit0) </td></tr> 

<tr><td align="center">２</td><td>パラメータ１の２番目</td><td>ダミー</td></tr>
<tr><td align="center">３</td><td>パラメータ１の３番目</td><td>ダミー </td></tr>
<tr><td align="center">４</td><td>パラメータ１の４番目</td><td>ダミー </td></tr>
<tr><td align="center">５</td><td>パラメータ２の１番目</td><td>ダミー </td></tr>
<tr><td align="center">６</td><td>パラメータ２の２番目</td><td>ダミー </td></tr>

<tr><td align="center">７</td><td>パラメータ２の３番目</td><td>ダミー </td></tr>
<tr><td align="center">８</td><td>パラメータ２の４番目</td><td>ダミー </td></tr>
</tbody></table>


<br />　ところでこの資料においては、出力を設定するコマンドは安全の意味で割愛されています。<br />　そこで、いま、<br />　　　
<a href="http://www.lantronix.com/pdf/XPort_UG.pdf">http://www.lantronix.com/pdf/XPort_UG.pdf</a>
<br />
にあるマニュアルから GPIO の制御部分だけを抜きだして説明します。<br /><br />
<table class="bold" border="1" cellpadding="3">
<tbody><tr><td colspan="2" align="center" bgcolor="#888888"><font color="white"> GPIO control protocol </font></td></tr><tr>
</tr><tr><td align="center"> Byte 0 </td><td>Command Types</td></tr>
<tr><td align="center">10h</td><td>Get functions</td></tr>
<tr><td align="center">11h</td><td>Get directions (input or output)</td></tr>

<tr><td align="center">12h</td><td>Get active levels (high active or low active)</td></tr>
<tr><td align="center">13h</td><td>Get current states (active or not active)</td></tr>
<tr><td align="center">19h</td><td>Set directions</td></tr>
<tr><td align="center">1Ah</td><td>Set active levels</td></tr>
<tr><td align="center">1Bh</td><td>Set current states</td></tr>
</tbody></table>
<br />
　LED をオンオフ(出力を０または１に)するために、そのコマンドとしては 0x1a を使うことになります。<br />


<br />
　さて、玄箱(pro)のコマンドとして、下に示すような形式で試すことができます。<br /><br /><br />

<pre>kurobox-pro:/home/k-wada/program/xport/LED# ls
Makefile  onoff  onoff.c  onoff.o
kurobox-pro:/home/k-wada/program/xport/LED# ./onoff 192.168.1.22 0
&lt;0&gt;
:1a:
:0:
:0:
:0:
:0:
kurobox-pro:/home/k-wada/program/xport/LED#
kurobox-pro:/home/k-wada/program/xport/LED# ./onoff 192.168.1.22 1
&lt;1&gt;
:1a:
:7:
:0:
:0:
:0:
kurobox-pro:/home/k-wada/program/xport/LED#
</pre>　コマンド(onoff)の後に IP アドレスを続けて、最後に 0 (オン)か 1 (オフ)を指定します。必要なデータを送出後にはステータスを表示させています。

<br />
　ここで作成したプログラム・ソースを下に、また Makefile を含めて tar で固めた<span class="mt-enclosure mt-enclosure-file" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/06/05/onoff.tar">onoff.tar</a></span> を用意しました。<br /><br /><br />

<pre>/* 
   XPort LED  on/off 
   2008-4-10
*/
#include <stdio.h>
#include <netdb.h>
#include <sys types.h="">
#include <sys socket.h="">
#include <netinet in.h="">


static  unsigned char status[] = {0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
static  unsigned char on[]  = {0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
static  unsigned char off[] = {0x1a, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00};

//static  unsigned char mesg[] = {0x01};

#define PROT_NO	30704	/* ポート番号 */
#define BUF_MAX	5	/* 通信バッファ・サイズ */

static	struct sockaddr_in	sv_addr;	/* サーバ・アドレス */
static	struct hostent		*sv_ip;		/* サーバIPアドレス */

static	int	sid;		/* ソケット識別子 */
static	char	buf[BUF_MAX];	/* 通信バッファ */

/* クライアント・メイン */
int
main(int argc, char	*argv[])

{
	int	rtn;		/* 返却値 */
	int i;


	for(i = 0; i &lt; BUF_MAX; i++) {
	  buf[i] = 0xff;
	}


	/* コネクション型ソケットの作成 (socket) */
	sid = socket(AF_INET, SOCK_STREAM, 0);
	if (sid &lt; 0) {
		perror("cl:socket");
		exit(1);
	}

	/* サーバのIPアドレスを取得 */
	sv_ip = gethostbyname(argv[1]);

	if (sv_ip == NULL) {
		perror("cl:gethostbyname");
		exit(1);
	}

	/* ソケットの接続要求 (connect) */
	bzero((char *)&amp;sv_addr, sizeof(sv_addr));
	sv_addr.sin_family = AF_INET;
	sv_addr.sin_port = htons(PROT_NO);
	memcpy((char *)&amp;sv_addr.sin_addr, (char *)sv_ip-&gt;h_addr, sv_ip-&gt;h_length);
	rtn = connect(sid, &amp;sv_addr, sizeof(sv_addr));
	if (rtn &lt; 0) {
		perror("cl:connect");
		close(sid);
		exit(1);
	}

//	printf("%c\n", *argv[2]);

	if (*argv[2] == '1') {
	  send(sid, on, sizeof(on), 0);
	  printf("&lt;1&gt;\n");
	} 
	if (*argv[2] == '0') {
	  send(sid, off, sizeof(off), 0);
	  printf("&lt;0&gt;\n");
	}
	if (*argv[2] == '9') {
	  send(sid, status, sizeof(status), 0);
	  printf("&lt;9&gt;\n");
	}

//	  printf("<!---->\n");


	/* メッセージ通信処理 (send/recv) */
	rtn = recv(sid, buf, BUF_MAX, 0);
	if (rtn &lt; 0) perror("cl:recv");
	for(i = 0; i &lt; BUF_MAX; i++) {
	  printf(":%x:\n", (unsigned char)buf[i]);
	  if(i == 6) {
		printf("-------------\n");
	  }
    }

	
	/* ソケットの開放 (shutdown/close) */
	rtn = shutdown(sid, 2);
	if (rtn &lt; 0) perror("cl:shutdown");
	close(sid);
	exit(0);
}


</netinet></sys></sys></netdb.h></stdio.h></pre>　紹介している3本の汎用端子は複数の機能を持っていますから、まず始めに例のデバイス・インストーラ(Device
Installer)を使って設定をしなくてはなりません。ここでは LED を点灯させるわけですから"出力"に設定します。ところが、最新の
Device Installer はこの設定が簡単にはできない様子です。現時点でのバージョンは 4.1.0.14 となっています。
<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/06/05/x4LantronixDeviceInstaller41014.jpg"><img alt="x4LantronixDeviceInstaller41014.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/06/05/x4LantronixDeviceInstaller41014-thumb-400x254.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="254" width="400" /></a></span><br />　結局のところ、使いなれた旧バージョンを探さなくてはならなくなり、
<a href="http://www.co-nss.co.jp/download/download-ds-app.html">http://www.co-nss.co.jp/download/download-ds-app.html</a>
<br />からたどってみましたが、リンク切れでした。そして、この Device Installer は新旧バージョンのどちらか一方のみがインストールできる仕様であるため、新しいバージョンをインストールした後に至っては、残念にも旧バージョンは UnInstall された後でした。<br />　 この点で、デバイスインストーラの Install の詳細と新旧バージョンの違いについて、わかりやすく説明しているサイトが見つかりました。それは、ここです。 <br />&nbsp; &nbsp;<a href="http://e-kit.jp/products/xport/update.htm">http://e-kit.jp/products/xport/update.htm</a>
<br />&nbsp;また、古いバージョンの詳細な説明も <br />&nbsp;&nbsp; <a href="http://www.shoshin.co.jp/computer/lantro/xportinstaller/index.html">http://www.shoshin.co.jp/computer/lantro/xportinstaller/index.html
</a><br />に記述がありました。それと、
<br />&nbsp;&nbsp; <a href="http://www.rasteme.co.jp/pdf/manual/lcnv232rx-manu.pdf">http://www.rasteme.co.jp/pdf/manual/lcnv232rx-manu.pdf</a>
<br />にも、より詳細な説明がありましたので参考にしてください。

<br />　なお、古いバージョン()の Device Installer を検索しまくってみると、<br />&nbsp; &nbsp; <a href="http://support.specorp.com/index.php?_m=downloads&amp;_a=viewdownload&amp;downloaditemid=7&amp;nav=0">Device Installer Version 3.6</a>
<br />を運良く拾うことができました。結局のところ、これで利用して設定を行いました。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/06/05/x4DeviceInstaller36-configure.jpg"><img alt="x4DeviceInstaller36-configure.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/06/05/x4DeviceInstaller36-configure-thumb-400x290.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="290" width="400" /></a></span><br />　この図のように、CP1～3 の入出力方向を出力に設定しておきます。今回は外界からの出力(XPort からは入力)という設定の場合に、出力同士がぶつからないように注意しましょう。
<br />　上述のように曲折しながらも XPort の汎用端子の制御方法がわかったので、この応用として「パトライトを点灯させる」ことにしました。写真のようなものです。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/06/05/x4uP1000101.jpg"><img alt="x4uP1000101.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2008/06/05/x4uP1000101-thumb-400x318.jpg" class="mt-image-center" style="margin: 0pt auto 2px; text-align: center; display: block;" height="318" width="400" /></a></span>&nbsp;<br /><div align="center">写真４：おもちゃながらパトライトを見つけて来ました<br /></div><br /><br />
　それでは、次回の記事をお楽しみに。&nbsp;<br /><div align="right">&lt;和田 好司&gt;<br /></div><div><br /></div>]]>
    </content>
</entry>

<entry>
    <title>カーネル2.6.25.4のDebian化</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/Kurobox-pro2/2008/05/26254debian.html" />
    <id>tag:www.eleki-jack.com,2008:/Kurobox-pro2//11.1636</id>

    <published>2008-05-27T06:58:11Z</published>
    <updated>2008-05-27T06:19:56Z</updated>

    <summary>■Debian化に必要なファイルのアップデート　先日のセキュリティ・ホール対策と...</summary>
    <author>
        <name>mitsunaga</name>
        
    </author>
    
        <category term="玄箱PROをDebian化して遊ぶ" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="26254" label="2.6.25.4" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/Kurobox-pro2/">
        <![CDATA[<b>■Debian化に必要なファイルのアップデート<br /></b>　先日のセキュリティ・ホール対策と、カーネルのバージョンアップ(2.6.25.4)に伴い Debian 化に必要なファイルを更新しました。<a href="http://www.eleki-jack.com/Kurobox-pro2/2008/01/prodebian.html">以前のページ</a>に記載した内容は、ほぼそのままに、このページからリンクしているファイルを使うことで、Debian化する時点でセキュリティ・ホール対策済みでカーネル2.6.25.4になります。<br /><br />　セキュリティホール対策については<a href="http://www.eleki-jack.com/Kurobox-pro2/2008/05/debian-etch.html">以前に書いたページ</a>をご覧下さい。カーネルのバージョンアップは、<a href="http://www.eleki-jack.com/Kurobox-pro2/2008/05/linux-26253.html">以前に書いたページ</a>に従い､このページにあるファイルを利用してください。<br /><br /> ]]>
        <![CDATA[<b>■アップデートしたファイル</b><br />Debianインストール(Debian化)用のバイナリ<br /><ul><li><a href="http://www.cqpub.co.jp/shoseki/mycomputer/hddrootfs.tar.gz">hddrootfs.tar.gz</a></li><li><span class="mt-enclosure mt-enclosure-file"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/05/25/inst.tar.gz">inst.tar.gz</a></span></li></ul><br />Keventd, Fandなど<br /><ul><li><span class="mt-enclosure mt-enclosure-file"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/05/25/daemon.tar.gz">daemon.tar.gz</a></span></li></ul><br />カーネル・イメージ、モジュールファイルとカーネル再構築用パッチ<br /><ul><li><span class="mt-enclosure mt-enclosure-file"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/05/25/uImage.2.6.25.4.tar.gz">uImage.2.6.25.4.tar.gz</a></span></li><li><span class="mt-enclosure mt-enclosure-file"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/05/25/modules.tar.gz">modules.tar.gz</a></span></li><li><span class="mt-enclosure mt-enclosure-file"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/05/25/kern-patch.tar.gz">kern-patch.tar.gz</a></span></li></ul><br />カーネル・ソース(kernel.orgで配布されているものと同じ)<br /><ul><li><a href="http://www.cqpub.co.jp/shoseki/mycomputer/linux-2.6.25.4.tar.bz2">linux-2.6.25.4.tar.bz2</a></li></ul><br /><div><br /></div>]]>
    </content>
</entry>

<entry>
    <title>Debian etch のセキュリティ・ホール</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/Kurobox-pro2/2008/05/debian-etch.html" />
    <id>tag:www.eleki-jack.com,2008:/Kurobox-pro2//11.1609</id>

    <published>2008-05-19T21:49:32Z</published>
    <updated>2008-05-20T01:44:43Z</updated>

    <summary>■セキュリティ・ホールが見つかりました　残念なことですが､Debian etch...</summary>
    <author>
        <name>mitsunaga</name>
        
    </author>
    
        <category term="玄箱PROをDebian化して遊ぶ" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="debianetch" label="Debian etch" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="セキュリティ・ホール" label="セキュリティ・ホール" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/Kurobox-pro2/">
        <![CDATA[<b>■セキュリティ・ホールが見つかりました</b><br />　残念なことですが､Debian etch の OpenSSL パッケージに脆弱性が見つかったそうです。ここで解説した Debian 化をした玄箱PROも、その影響を受けます。脆弱性の詳細は Debain JP Project の「<a href="http://www.debian.or.jp/blog/openssl_package_and_its_vulnerability.html">OpenSSL パッケージの脆弱性とその影響について</a>」を見てください。ページ中でリンクされている「<a href="http://lists.debian.or.jp/debian-users/200805/msg00069.html">deian-users メーリングリストでの訳</a>」も一読しておくとよいと思います。以下ではアップデートの方法を簡単に紹介します。<br /><br /> ]]>
        <![CDATA[<b>■apt-get でパッケージを更新<br />　</b>手順としては、root になり、
<br /><blockquote>apt-get update<br /></blockquote>を実行してから､
<br /><blockquote>apt-get dist-upgrade<br /></blockquote>をするだけです。dist-upgrade の際に、以下のようなダイアログが表示されますが、＜了解＞とすればよいです。<br /><br /><span class="mt-enclosure mt-enclosure-image"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/05/18/dist-upgrade1.html" onclick="window.open('http://www.eleki-jack.com/Kurobox-pro2/2008/05/18/dist-upgrade1.html','popup','width=668,height=482,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.eleki-jack.com/Kurobox-pro2/2008/05/18/dist-upgrade1-thumb-400x288.gif" alt="dist-upgrade1.gif" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="288" width="400" /></a></span><div align="center">図１．dist-upgrade のダイアログ１<br /><span class="mt-enclosure mt-enclosure-image"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/05/18/dist-upgrade2.html" onclick="window.open('http://www.eleki-jack.com/Kurobox-pro2/2008/05/18/dist-upgrade2.html','popup','width=668,height=482,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.eleki-jack.com/Kurobox-pro2/2008/05/18/dist-upgrade2-thumb-400x288.gif" alt="dist-upgrade2.gif" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="288" width="400" /></a></span>図2．dist-upgrade のダイアログ2</div><br /><strong>■TeraTerm などの known_hosts を更新</strong><br />　SSH クライアントでは、最初にサーバに接続したときにサーバが自身を証明するキーを保存します。そのキーが上記の更新で変更になるため､入れ替える必要があります。TeraTerm の場合には､以下の画面のダイアログが出ますので、Continue をクリックすれば入れ替えは終了です。<br /><br />
<div><div align="center"><span class="mt-enclosure mt-enclosure-image"><img alt="teraterm-warn.gif" src="http://www.eleki-jack.com/Kurobox-pro2/2008/05/18/teraterm-warn.gif" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="244" width="329" /></span>図３．TeraTerm の警告ダイアログ<br /></div><div align="right">&lt;光永 法明&gt;</div></div>]]>
    </content>
</entry>

<entry>
    <title>Linux カーネル 2.6.25.3</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/Kurobox-pro2/2008/05/linux-26253.html" />
    <id>tag:www.eleki-jack.com,2008:/Kurobox-pro2//11.1595</id>

    <published>2008-05-14T08:50:13Z</published>
    <updated>2008-05-14T09:18:33Z</updated>

    <summary>■カーネルを最新にする　最新の安定版の Linux カーネルが 2.6.25.3...</summary>
    <author>
        <name>mitsunaga</name>
        
    </author>
    
        <category term="Debian 環境を整える" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="26253" label="2.6.25.3" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/Kurobox-pro2/">
        <![CDATA[<b>■カーネルを最新にする</b><br />　最新の安定版の Linux カーネルが 2.6.25.3 になりました。玄箱PROも正式サポートされています。そこで、2.6.25-rc1-git4 に引き続き更新してみました。<br /><br /><b>■カーネルをコンパイルする</b><br />&nbsp;　まず <a href="http://www.kernel.org/">http://www.kernel.org/ </a>から 2.6.25.3 のソースをダウンロードしました。次に、Buffalo @ NAS-Central の Buffalo ARM9 Kernel Port を参考にします<sup>1)</sup>。玄箱PRO のフラッシュ・メモリに書き込まれている u-boot では、パッチを当てないと起動できないので､Buffalo ARM9 Kernel Port の force-mach-type.patch を当てます。また、shutdown時に電源が切れれるよう Sylver Bruneau さんのパッチを利用してみました。<br /><br /> ]]>
        <![CDATA[　コンパイルには、玄箱PROに付属のカーネルのコンパイルに必要なパッケージに加え devio が必要だったので apt-get でインストールします。<br /><br /><blockquote>apt-get install devio<br /></blockquote><br />　カーネルのコンフィグ・ファイルは、arch/arm/configs/orion_defconfig をベースにしました。デフォルトは EABI でしたが、OABI に変更しています。コンパイルにあたって､必要なパッチと config ファイルを kern-patch.tar.gz にまとめています(上記のパッチ､KURO-RS 用の変更、FT245RL を ftdi_sio ドライバに認識させないための変更、shutdown 時に -P なしで電源が切れるようにする変更を含みます）。<br /><br />1)Buffalo @ NAS-Central <br /><a href="http://buffalo.nas-central.org/">http://buffalo.nas-central.org/</a><br />Buffalo ARM9 Kernel Port <br /><a href="http://buffalo.nas-central.org/index.php/Buffalo_ARM9_Kernel_Port">http://buffalo.nas-central.org/index.php/Buffalo_ARM9_Kernel_Port</a><br /><br /><b>■試してみる</b><br />&nbsp;　uImage とカーネル・モジュールを /dev/sda1 にコピー（インストール）したら、シリアル・コンソールで、以下を入力して起動します。<br /><br /><blockquote>setenv kernel uImage<br />boot<br /></blockquote><br />　2.6.25-rc1-git4 で必要だった mem=128M は不要になりました。いまのところ気になる問題はなく USB audio での音とびもありません。USB serial を抜き差したときの USB audio の音とびがないのも 2.6.25-rc1-git4 同様です。<br />　 一方、玄人志向の MICON ドライバが組み込まれていないので、以前の Keventd では電源ボタンでのシャットダウンやリブートに対応できません。それについては Keventd のスクリプトを少し書き換えました(/proc/buffalo以下を見ずに sleep を使っている)。<br /><br /><b>■コンパイル済みバイナリなど</b><br />　コンパイル済みのバイナリなどを公開します。<br /><br /><ul><li><span class="mt-enclosure mt-enclosure-file"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/05/13/kern-patch.tar.gz">kern-patch.tar.gz</a>&nbsp; (上記のパッチとコンフィグ・ファイル)</span></li><li><span class="mt-enclosure mt-enclosure-file"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/05/13/uImage.2.6.25.3.tar.gz">uImage.2.6.25.3.tar.gz</a>　 (uImage 形式のカーネル・イメージ)</span></li><li><span class="mt-enclosure mt-enclosure-file"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/05/13/modules.tar.gz">modules.tar.gz</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (カーネル・モジュール) </span></li><li><span class="mt-enclosure mt-enclosure-file"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/05/13/daemon.tar.gz">daemon.tar.gz</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (更新した Keventd を含むファイル)</span></li><li><span class="mt-enclosure mt-enclosure-file"><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/05/13/inst.tar