<?xml version="1.0" encoding="utf-8" ?>
<rdf:RDF
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
 >

  <channel rdf:about="http://sourceforge.jp/projects/pepolinux/wiki/!feeds/list">
    <title>もっと早くもっとクールにリモートで解決！ Wiki</title>
    <link>http://sourceforge.jp/projects/pepolinux/wiki/!feeds/list</link>
    <description>
      SourceForge.jp Wiki pages for もっと早くもっとクールにリモートで解決！.    </description>
        <dc:date>2013-03-20T05:24:24+09:00</dc:date>
        <items>
      <rdf:Seq>
                <rdf:li rdf:resource="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_DIO" />
                <rdf:li rdf:resource="http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20pepopodcastget" />
                <rdf:li rdf:resource="http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20pepodioctl" />
                <rdf:li rdf:resource="http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20pepogmail_send" />
                <rdf:li rdf:resource="http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20pepogmail4pic" />
                <rdf:li rdf:resource="http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20pepogmail4dio" />
                <rdf:li rdf:resource="http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20pepowlan" />
                <rdf:li rdf:resource="http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20pepodiod" />
                <rdf:li rdf:resource="http://sourceforge.jp/projects/pepolinux/wiki/epicon" />
                <rdf:li rdf:resource="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux" />
                <rdf:li rdf:resource="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_OpenMicroserver" />
                <rdf:li rdf:resource="http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20pepousb-install" />
                <rdf:li rdf:resource="http://sourceforge.jp/projects/pepolinux/wiki/OpenMicroServer" />
                <rdf:li rdf:resource="http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20init.d_pepodiod" />
                <rdf:li rdf:resource="http://sourceforge.jp/projects/pepolinux/wiki/kernel%20make" />
                <rdf:li rdf:resource="http://sourceforge.jp/projects/pepolinux/wiki/FrontPage" />
                <rdf:li rdf:resource="http://sourceforge.jp/projects/pepolinux/wiki/acm-FOMA" />
                <rdf:li rdf:resource="http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog" />
                <rdf:li rdf:resource="http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20openoffice_calc_paste_picture" />
                <rdf:li rdf:resource="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand2VPN" />
                <rdf:li rdf:resource="http://sourceforge.jp/projects/pepolinux/wiki/TitleIndex" />
              </rdf:Seq>
    </items>
  </channel>

      <item rdf:about="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_DIO">
    <title>Remote-Hand_DIO</title>
    <link>http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_DIO</link>
    <dc:identifier>Remote-Hand_DIO</dc:identifier>
    <dc:date>2013-03-20T05:24:24+09:00</dc:date>
        <description>
      <![CDATA[{{{ GoogleAdsense
&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client=&quot;pub-8866927345406277&quot;;
google_ad_host=&quot;pub-9941151214016196&quot;;
google_alternate_color=]]>
    </description>
    <content:encoded>
      <![CDATA[<script type="text/javascript"><!--
google_ad_client="pub-8866927345406277";google_ad_host="pub-9941151214016196";google_alternate_color="FFFFFF";google_ad_width=468;google_ad_height=60;google_ad_format="468x60_as";google_ad_type="text_image";google_color_border="003399";google_color_bg="EEEEEE";google_color_link="0000FF";google_color_url="0000FF";google_color_text="000000";google_ad_host = "pub-9941151214016196";
//-->
</script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script><h1 id="h1-Remote-Hand_DIO">Remote-Hand_DIO</h1><h3 id="h3-Remote-Hand_DIO.E3.81.A8.E3.81.AF">Remote-Hand_DIOとは</h3><p>Remote-Hand_DIOはVMware Playerと1CDLinuxの<a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a>を使いFOMAやDIO-シリアルを接続してネットワーク監視や外部信号の入力監視を行えるものです。
</p><p>外部入力信号の変化によりメールの通知、パトライト点灯やgmailとwgetを使い遠隔地の入力信号の状態通知や外部接続機器をオン・オフすることが出来ます。
</p><p>防犯センサ、火災報知器などの入力監視で防犯、防災やWebカメラを接続すれば介護などで見守を必要とする場合もLinuxで行う事が出来ます。
</p><p>携帯電話FOMAをUSB接続すれば遠隔地からのリモートログイン・ダイヤルインサーバーなどまさにリモートハンド（remote-hand）を手軽に実現させるVMware Applianceです。
</p><p>※DIOとはDigital Input Digital Outputの略でコンピュータと外の世界をデジタル信号によって接続するものです。
</p><p>このパッケージはRemote-Hand <a href="http://sourceforge.jp/projects/pepolinux/wiki/OpenMicrosever">OpenMicrosever</a>で実現したものを外部信号の入出力端子を持つボードをWindowsXPなど普段使っているPCへシリアル接続して、それに対する動作をGUIでコントロール出来るようにした物です。
</p><p>2012.7.18リリースしたv.023のマイルストーンはDIOを入力イベントに画像メールを添付できるようになった、<a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a>はX-Windowを捨て軽量化の為を図って来ましたが、今回始めて映像をコマンドプロントから扱えるようにした事です。
</p><p>Yamauchi Isamu, also IZAMUKARERA
</p><p>2013.3.4
</p><p><a href="http://www.pepolinux.com" class="external" rel="nofollow">http://www.pepolinux.com</a>
</p><h3 id="h3-Remote-Hand_DIO.E3.82.A4.E3.83.A1.E3.83.BC.E3.82.B8.EF.BC.91">Remote-Hand_DIOイメージ１</h3><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_DIO/attach/slide2.PNG" alt="slide2.PNG" id="emb-slide2.PNG-1" title="slide2.PNG" class="embed-image" width="672" height="504" />
</p><h3 id="h3-Remote-Hand_DIO.E3.82.A4.E3.83.A1.E3.83.BC.E3.82.B8.EF.BC.92">Remote-Hand_DIOイメージ２</h3><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_DIO/attach/slide3.PNG" alt="slide3.PNG" id="emb-slide3.PNG-1" title="slide3.PNG" class="embed-image" width="672" height="504" />
</p><h3 id="h3-.E3.82.B7.E3.83.AA.E3.82.A2.E3.83.ABDIO.E3.83.9C.E3.83.BC.E3.83.89">シリアルDIOボード</h3><p>１４本の入出力端子を持ち、前半８本を入力、後半６本を出力として利用
</p><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_DIO/attach/dio_boad.png" alt="dio_boad.png" id="emb-dio_boad.png-1" title="dio_boad.png" class="embed-image" width="432" height="323" />
</p><h3 id="h3-.E9.98.B2.E7.8A.AF.E3.82.B0.E3.83.83.E3.82.BA.28.E3.83.91.E3.83.88.E3.83.A9.E3.82.A4.E3.83.88.29">防犯グッズ(パトライト)</h3><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_DIO/attach/patolight.png" alt="patolight.png" id="emb-patolight.png-1" title="patolight.png" class="embed-image" width="324" height="386" />
</p><h3 id="h3-.E3.82.BD.E3.83.AA.E3.83.83.E3.83.89.E3.82.B9.E3.83.86.E3.83.BC.E3.83.88.E3.82.B3.E3.83.B3.E3.82.BB.E3.83.B3.E3.83.88.28AC100V.E3.82.B3.E3.83.B3.E3.82.BB.E3.83.B3.E3.83.88.29">ソリッドステートコンセント(AC100Vコンセント)</h3><p>金属製のコンセントボックスの側面に穴を空け丸ピンコネンクタを取り付けＤＩＯの出力を取り込む
</p><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_DIO/attach/consento.png" alt="consento.png" id="emb-consento.png-1" title="consento.png" class="embed-image" width="432" height="323" />
</p><h3 id="h3-.E3.82.BD.E3.83.AA.E3.83.83.E3.83.89.E3.82.B9.E3.83.86.E3.83.BC.E3.83.88.E3.82.B3.E3.83.B3.E3.82.BB.E3.83.B3.E3.83.88.28AC100V.E3.82.B3.E3.83.B3.E3.82.BB.E3.83.B3.E3.83.88.E5.86.85.E9.83.A8.29">ソリッドステートコンセント(AC100Vコンセント内部)</h3><p>ＤＩＯの出力０-５Ｖをソリッドステートスイッチで１００Ｖ/ＡＣをオン・オフ出来る、金属製のコンセントボックスを使う事によりソリッドステートスイッチの放熱を出来るので比較的大きな５Ａ程度の通電が可能
</p><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_DIO/attach/consento_in.png" alt="consento_in.png" id="emb-consento_in.png-1" title="consento_in.png" class="embed-image" width="486" height="648" />
</p><h3 id="h3-.E3.83.95.E3.83.AD.E3.83.BC.E3.83.88.E3.82.B9.E3.82.A4.E3.83.83.E3.83.81">フロートスイッチ</h3><p>池や川の水が一定以上のなるとＡ接点出力、パトライトを点灯やメール通知などが出来る
</p><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_DIO/attach/float_sw.png" alt="float_sw.png" id="emb-float_sw.png-1" title="float_sw.png" class="embed-image" width="432" height="323" />
</p><h3 id="h3-.E7.85.99.E6.84.9F.E7.9F.A5.E5.99.A8">煙感知器</h3><p>Ａ接点を外部出力出来る煙感知器、動作するとパトライトを点灯やメール通知などが出来る
</p><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_DIO/attach/kemupiko_kemuri.png" alt="kemupiko_kemuri.png" id="emb-kemupiko_kemuri.png-1" title="kemupiko_kemuri.png" class="embed-image" width="256" height="455" />
</p><h3 id="h3-.E7.86.B1.E6.84.9F.E7.9F.A5.E5.99.A8">熱感知器</h3><p>Ａ接点を外部出力出来るガス・熱感知器、動作するとパトライトを点灯やメール通知などが出来る
</p><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_DIO/attach/kemupiko_netu.png" alt="kemupiko_netu.png" id="emb-kemupiko_netu.png-1" title="kemupiko_netu.png" class="embed-image" width="256" height="455" />
</p><h3 id="h3-.E5.8B.95.E7.89.A9.E7.9B.A3.E8.A6.96">動物監視</h3><p>出先から自宅のペットをＷＥＢカメラで動画を撮影、添付メール出来る
</p><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_DIO/attach/animal.png" alt="animal.png" id="emb-animal.png-1" title="animal.png" class="embed-image" width="256" height="456" />
</p><h3 id="h3-.E7.9B.A3.E8.A6.96.E3.82.AB.E3.83.A1.E3.83.A9">監視カメラ</h3><p>Ｌｉｎｕｘで使えるＵＶＣカメラ、人感センサーを利用して動画を撮影、添付メール出来る
</p><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_DIO/attach/Surveillance_camera.png" alt="Surveillance_camera.png" id="emb-Surveillance_camera.png-1" title="Surveillance_camera.png" class="embed-image" width="256" height="456" />
</p><h3 id="h3-.E4.BA.BA.E6.84.9F.E3.82.BB.E3.83.B3.E3.82.B5.28.E7.84.A1.E7.B7.9A.E3.83.BB.E9.80.81.E4.BF.A1.E6.A9.9F.29">人感センサ(無線・送信機)</h3><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_DIO/attach/transmitter.png" alt="transmitter.png" id="emb-transmitter.png-1" title="transmitter.png" class="embed-image" width="313" height="314" />
</p><h3 id="h3-.E4.BA.BA.E6.84.9F.E3.82.BB.E3.83.B3.E3.82.B5.28.E7.84.A1.E7.B7.9A.E3.83.BB.E5.8F.97.E4.BF.A1.E6.A9.9F.29">人感センサ(無線・受信機)</h3><p>市販の無線受信機を少し改造・Ａ接点出力、人感センサーが働いたらパトライトを点灯やメール通知などが出来る
</p><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_DIO/attach/receiver.png" alt="receiver.png" id="emb-receiver.png-1" title="receiver.png" class="embed-image" width="234" height="314" />
</p><h3 id="h3-.E7.84.A1.E7.B7.9A.E5.8F.97.E4.BF.A1.E6.A9.9F.E5.86.85.E9.83.A8">無線受信機内部</h3><p>フォトカップラと抵抗を取り付け、無電圧A接点として出力
</p><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_DIO/attach/jyusinki_into.png" alt="jyusinki_into.png" id="emb-jyusinki_into.png-1" title="jyusinki_into.png" class="embed-image" width="432" height="425" />
</p><h3 id="h3-.E3.83.96.E3.83.BC.E3.83.88.E3.82.A4.E3.83.A1.E3.83.BC.E3.82.B8">ブートイメージ</h3><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_DIO/attach/slide0002_image001.png" alt="slide0002_image001.png" id="emb-slide0002_image001.png-1" title="slide0002_image001.png" class="embed-image" width="494" height="408" />
</p><h3 id="h3-.E7.AB.8B.E3.81.A1.E4.B8.8A.E3.81.92.E5.AE.8C.E4.BA.86.E3.83.AD.E3.82.B0.E3.82.A4.E3.83.B3">立ち上げ完了ログイン</h3><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_DIO/attach/slide0003_image003.png" alt="slide0003_image003.png" id="emb-slide0003_image003.png-1" title="slide0003_image003.png" class="embed-image" width="614" height="498" />
</p><h3 id="h3-.E3.83.AD.E3.82.B0.E3.82.A4.E3.83.B3.E7.94.BB.E9.9D.A2.E3.81.AB.E8.A1.A8.E7.A4.BA.E3.81.95.E3.82.8C.E3.81.A6.E3.81.84.E3.82.8BIP.E3.82.A2.E3.83.89.E3.83.AC.E3.82.B9.E3.81.B8WEB.E3.82.A2.E3.82.AF.E3.82.BB.E3.82.B9">ログイン画面に表示されているIPアドレスへWEBアクセス</h3><p>一番下のリンク「GUIでRemote-Handの設定をします。」を選択します
</p><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_DIO/attach/slide0004_image005.png" alt="slide0004_image005.png" id="emb-slide0004_image005.png-1" title="slide0004_image005.png" class="embed-image" width="750" height="641" />
</p><h3 id="h3-WEB.E8.AA.8D.E8.A8.BC">WEB認証</h3><p>初期値はユーザー名：remote　パスワード：hand
</p><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_DIO/attach/slide0021_image007.png" alt="slide0021_image007.png" id="emb-slide0021_image007.png-1" title="slide0021_image007.png" class="embed-image" width="750" height="657" />
</p><h3 id="h3-.E2.91.A0.E5.88.9D.E6.9C.9F.E7.94.BB.E9.9D.A2.E3.83.BB.E3.82.A4.E3.83.BC.E3.82.B5.E3.83.8D.E3.83.83.E3.83.88.E8.A8.AD.E5.AE.9A">①初期画面・イーサネット設定</h3><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_DIO/attach/slide0006_image009.png" alt="slide0006_image009.png" id="emb-slide0006_image009.png-1" title="slide0006_image009.png" class="embed-image" width="784" height="715" />
</p><h3 id="h3-.E2.91.A1.E3.83.AB.E3.83.BC.E3.83.86.E3.82.A3.E3.83.B3.E3.82.B0.E8.A8.AD.E5.AE.9A.E7.94.BB.E9.9D.A2">②ルーティング設定画面</h3><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_DIO/attach/slide0005_image011.png" alt="slide0005_image011.png" id="emb-slide0005_image011.png-1" title="slide0005_image011.png" class="embed-image" width="750" height="641" />
</p><h3 id="h3-.E2.91.A2ppp.E8.A8.AD.E5.AE.9A.E7.94.BB.E9.9D.A2">③ppp設定画面</h3><p>FOMAの動作モード（64kデジタル通信、オンデマンド、PPP常時接続）を選択
</p><p>64kデジタル通信時にPPPクライアントのユーザー名とパスワードを設定、他はダミーで登録が必要
</p><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_DIO/attach/slide0008_image013.png" alt="slide0008_image013.png" id="emb-slide0008_image013.png-1" title="slide0008_image013.png" class="embed-image" width="750" height="657" />
</p><h3 id="h3-.E2.91.A3WEB.E3.83.A6.E3.83.BC.E3.82.B6.E3.83.BC.E8.A8.AD.E5.AE.9A.E7.94.BB.E9.9D.A2">④WEBユーザー設定画面</h3><p>初期状態はユーザー名：remote　パスワード：hand
</p><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_DIO/attach/slide0007_image015.png" alt="slide0007_image015.png" id="emb-slide0007_image015.png-1" title="slide0007_image015.png" class="embed-image" width="750" height="641" />
</p><h3 id="h3-.E2.91.A4DIO.E8.A8.AD.E5.AE.9A.E7.94.BB.E9.9D.A2">⑤DIO設定画面</h3><p>入力端子と出力端子に別名をつけて後の設定に反映します。
</p><p>１４本のＤＩＯ端子の状態をajaxで５秒毎に更新して表示します。
</p><p>６本の出力端子へ『low』又は『high』をajaxで設定することが出来ます。
</p><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_DIO/attach/slide0009_image017.png" alt="slide0009_image017.png" id="emb-slide0009_image017.png-1" title="slide0009_image017.png" class="embed-image" width="800" height="600" />
</p><h3 id="h3-.E2.91.A5PING.E7.9B.A3.E8.A6.96.E3.81.99.E3.82.8BIP.E3.82.A2.E3.83.89.E3.83.AC.E3.82.B9.E3.82.92.E8.A8.AD.E5.AE.9A.E3.81.97.E3.81.BE.E3.81.99.E3.80.82.EF.BC.88.E3.83.87.E3.82.B8.E3.82.BF.E3.83.AB.E3.82.A2.E3.82.A6.E3.83.88.EF.BC.89">⑥PING監視するIPアドレスを設定します。（デジタルアウト）</h3><p>監視する機器がタイムアウトを起こせばデジタル指定の出力端子をＯＮ又はＯＦＦします。
</p><p>削除はIPアドレスを指定して削除を選択します。
</p><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_DIO/attach/slide0010_image019.png" alt="slide0010_image019.png" id="emb-slide0010_image019.png-1" title="slide0010_image019.png" class="embed-image" width="784" height="715" />
</p><h3 id="h3-.E2.91.A6PING.E7.9B.A3.E8.A6.96.E3.81.99.E3.82.8BIP.E3.82.A2.E3.83.89.E3.83.AC.E3.82.B9.E3.82.92.E8.A8.AD.E5.AE.9A.E3.81.97.E3.81.BE.E3.81.99.E3.80.82.EF.BC.88.E3.83.A1.E3.83.BC.E3.83.AB.EF.BC.89">⑦PING監視するIPアドレスを設定します。（メール）</h3><p>監視する機器がタイムアウトを起こせば指定されたメールアドレスに時間情報とカウンタを付加してメッセージを送信します。
</p><p>正常にPING応答を返せば時間情報を付加してメッセージを送信します。
</p><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_DIO/attach/slide0011_image021.png" alt="slide0011_image021.png" id="emb-slide0011_image021.png-1" title="slide0011_image021.png" class="embed-image" width="750" height="657" />
</p><h3 id="h3-.E2.91.A7PING.E7.9B.A3.E8.A6.96.E3.81.99.E3.82.8BIP.E3.82.A2.E3.83.89.E3.83.AC.E3.82.B9.E3.82.92.E8.A8.AD.E5.AE.9A.E3.81.97.E3.81.BE.E3.81.99.E3.80.82.EF.BC.88.E9.9B.BB.E8.A9.B1.EF.BC.89">⑧PING監視するIPアドレスを設定します。（電話）</h3><p>監視する機器がタイムアウトを起こせば指定された電話番号へダイヤルします・・・ワンギリ
</p><p>正常にPING応答を返せば電話番号へダイヤルします・・・ワンギリ
</p><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_DIO/attach/slide0012_image023.png" alt="slide0012_image023.png" id="emb-slide0012_image023.png-1" title="slide0012_image023.png" class="embed-image" width="750" height="641" />
</p><h3 id="h3-.E2.91.A8.E3.83.87.E3.82.B8.E3.82.BF.E3.83.AB.E5.85.A5.E5.8A.9B.E4.BF.A1.E5.8F.B7.E3.81.AE.E5.A4.89.E5.8C.96.E3.81.AB.E5.AF.BE.E3.81.99.E3.82.8B.E3.82.A2.E3.82.AF.E3.82.B7.E3.83.A7.E3.83.B3.E3.82.92.E8.A8.AD.E5.AE.9A.E3.81.97.E3.81.BE.E3.81.99.EF.BC.8D.EF.BC.91">⑨デジタル入力信号の変化に対するアクションを設定します－１</h3><p>一つの入力信号に対して二つ、全部で１６のアクションを設定出来ます。
</p><p>つまり信号の立ち上がり：LOW→HIGH（０→１）と信号の立下り：HIGH→LOW（１→０）の二つでメール、出力信号HIGH又はLOW、電話又はアクションなしのカウンターリセット操作でイベントカウンターのみ表示が出来ます。
</p><p>ajaxで入力信号のHIGH→LOWとLOW→HIGHをそれぞれのイベントに対するイベント回数とリセット日時、最新イベント発生日時を定周期で更新します。
</p><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_DIO/attach/slide0013_image024.png" alt="slide0013_image024.png" id="emb-slide0013_image024.png-1" title="slide0013_image024.png" class="embed-image" width="800" height="580" />
</p><h3 id="h3-.E2.91.A9.E3.83.87.E3.82.B8.E3.82.BF.E3.83.AB.E5.85.A5.E5.8A.9B.E4.BF.A1.E5.8F.B7.E3.81.AE.E5.A4.89.E5.8C.96.E5.AF.BE.E3.81.99.E3.82.8B.E3.82.A2.E3.82.AF.E3.82.B7.E3.83.A7.E3.83.B3.E3.82.92.E8.A8.AD.E5.AE.9A.E3.81.97.E3.81.BE.E3.81.99.EF.BC.8D.EF.BC.92">⑩デジタル入力信号の変化対するアクションを設定します－２</h3><p>－１と同様にデジタル入力信号に対する二つのアクションを設定できます。
</p><p>例えば、トラが檻をやぶる（LOW→HIGH）：パトライトを点灯させる、メールを送信する
</p><p>トラが檻を閉める（HIGH→LOW）：パトライトを消灯させる、電話をワンギリするなど
</p><p>一つの入力信号に対して合わせ４つのアクションを設定出来る事が出来ます。
</p><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_DIO/attach/slide0014_image027.png" alt="slide0014_image027.png" id="emb-slide0014_image027.png-1" title="slide0014_image027.png" class="embed-image" width="801" height="600" />
</p><h3 id="h3-.E2.91.AA.E3.82.A2.E3.83.A9.E3.83.BC.E3.83.88.E3.83.A1.E3.83.BC.E3.83.AB.E3.81.AE.E8.A8.AD.E5.AE.9A.E3.82.92.E3.81.97.E3.81.BE.E3.81.99">⑪アラートメールの設定をします</h3><p>初期値ではFOMAを使用してダイヤルアップでインターネットへ直接接続してsendmailでメールを送信します。
</p><p>domain内部よりsmtpプロトコルを直接通せない場合はwgetを選択します。
</p><p>wgetはgmailアカントを使用してメッセージを送信する方法でpepogmail_send.cgiが動作するserverが別途必要
</p><p>例えばRemote-Hand_DIOが出先で自宅のserverへwgetでメッセージを送信依頼する事想定しています。
</p><p>実際にはRemote-Hand_DIOにpepogmail_send.cgiが動作しているのでIPアドレスなどの情報を自serverの情報へ設定する。
</p><p>下側のSUBメニューではでgmailのアカウント情報とserverのパスワードなどを設定して、定期的に新着メールをチェックして件名がマッチすればＤＩＯに対するコマンドを実行する。
</p><p>キーワードに『DIO』を設定して、件名に『DIO』を指定してgmailへ送信するとＤＩＯの入力ポート情報を下記の内容ように返信してくる
</p><pre>件名：remote-hand dio report

本文：

入力1=high
隣の家が火事です=high
一階が火事です=high
入力4=high
入力5=high
入力6=high
入力7=high
出力６loop接続=low
ランプを点灯=high
出力2=high
出力3=high
出力4=high
出力5=high
出力6=low
</pre><p>『DIO 1 1』を指定して送信すると出力ポート１番目を１（high）にするコマンドを実行する
</p><p>例えばDIOからの５ｖ－０ｖ出力をソリッドステートスイッチでAC100vをオンオフさせたら部屋の照明を
</p><p>点灯又は消灯がメール操作で出来る。
</p><p>『DIO 9』を指定して送信するとUSB接続されたWEBカメラからの動画数秒取得してメールに添付してくる。
</p><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_DIO/attach/slide0015_image029.png" alt="slide0015_image029.png" id="emb-slide0015_image029.png-1" title="slide0015_image029.png" class="embed-image" width="800" height="580" />
</p><h3 id="h3-.E2.91.AB.E6.8C.87.E5.AE.9A.E3.81.95.E3.82.8C.E3.81.9FURL.E3.81.8B.E3.82.89podcasts.E3.81.AE.E3.83.95.E3.82.A1.E3.82.A4.E3.83.AB.E5.8F.96.E5.BE.97.E3.81.A8.E3.83.87.E3.82.B8.E3.82.BF.E3.83.AB.E5.87.BA.E5.8A.9B.E3.81.AE.E5.AE.9A.E6.99.82.E8.B5.B7.E5.8B.95.E8.A8.AD.E5.AE.9A.E7.94.BB.E9.9D.A2">⑫指定されたURLからpodcastsのファイル取得とデジタル出力の定時起動設定画面</h3><p>上段のメニューはMP3のpodcastsファイルを指定、定期的に収集しMP3プレイヤーへ転送と世代管理を設定します。
</p><p>下段のサブメニューは定期的にデジタル出力制御を行う事が出来ます、例えばペット部屋の照明を定時で点灯/消灯など付加価値を上げるものと思います。
</p><p>実際にはcrontabの設定をGUIで出来るようにしたもの、下記は20時～23時の間10分毎にデジタル出力１を制御する。
</p><p>0-59/10 20-23 * * * /var/www/html/remote-hand/auto_act0
</p><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_DIO/attach/autoproc.png" alt="autoproc.png" id="emb-autoproc.png-1" title="autoproc.png" class="embed-image" width="720" height="523" />
</p><h3 id="h3-.E2.91.AC.E3.82.B5.E3.83.BC.E3.83.90.E3.83.BC.E3.81.AE.E8.A8.AD.E5.AE.9A.EF.BC.86.E3.82.B3.E3.83.B3.E3.83.88.E3.83.AD.E3.83.BC.E3.83.AB.E8.A8.AD.E5.AE.9A.E7.94.BB.E9.9D.A2">⑬サーバーの設定＆コントロール設定画面</h3><p>ブート時の初期情報の設定画面、これ以前の画面は一時設定この画面は立ち上げ時のIPアドレスなどの初期情報を設定します。
</p><p>WEBユーザー、パスワードを最低限入力し実行すると、現在の設定保存してブート時に反映します。
</p><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_DIO/attach/slide0018_image033.png" alt="slide0018_image033.png" id="emb-slide0018_image033.png-1" title="slide0018_image033.png" class="embed-image" width="750" height="657" />
</p><p>履歴
</p><p>2011.11.9 Rmote-Hand_DIOファーストリリース
</p><p>o <a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a>-0.52.iso以降のイメージ必要
</p><p>2011.11.13 Rmote-Hand_DIO v0.11リリース
</p><p>o WEBパスワード不可修正
</p><p>o startupエラー表示修正
</p><p>o eth0のdhcp対応
</p><p>o DIO関係のスクリプト修正
</p><p>2011.12.9  Rmote-Hand_DIO v0.12リリース
</p><p>o DIO関係のスクリプト修正
</p><p>o gmail経由でDIOの操作を出来るようにした
</p><p>2011.12.13  Rmote-Hand_DIO v0.13リリース
</p><p>o pepogmail4dioスクリプト修正
</p><p>2011.12.17  Rmote-Hand_DIO v0.14リリース
</p><p>o pepogmail4dioスクリプト修正
</p><p>o DIOの入力８本、出力６本を全てGUIで設定出来るようした
</p><p>2012.1.3  Rmote-Hand_DIO v0.15リリース
</p><p>o DISK容量を2Gスプリットへ変更（ホストメモリ512MB動作）
</p><p>o <a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a>-0.52.iso以降のイメージ必要
</p><p>o CGIを2012年版へ変更
</p><p>2012.1.8  Rmote-Hand_DIO v0.16リリース
</p><p>o gmailでDIO操作の件名を設定出来るようにした
</p><p>2012.1.12  Rmote-Hand_DIO v0.17リリース
</p><p>o デバイス未接続状態から接続状態時に正常動作しないバクを修正
</p><p>o デジタル入力信号の変化に対するアクション－２のメールアドレスが有効にならないバグ修正
</p><p>2012.1.22　Rmote-Hand_DIO v0.18リリース
</p><p>o gmailからのDIOの出力操作が出来ないpepogmail4dioのバグ修正
</p><p>o DIOのlockfile作成に失敗した場合にコマンドファイルが残るpepodioctlのバグ修正
</p><p>o pepodioctlでDIOのアクセス競合時リトライタイマーをランダムとしリトライを１０回に変更
</p><p>o 作業ディレクトリを/var/tmpから/var/www/html/remote-hand/tmp/へ変更
</p><p>2012.1.31 Rmote-Hand_DIO v0.19リリース
</p><p>o 入力端子４本のイベント登録から８本へ拡張
シリアルDIOのA～Hの８本を入力、I～Nの６本を出力として一つに設定画面で
１本の入力端子に対してhigh→lowとlow→highの２つのアクションを登録出来るようにして
もう一つの設定画面で同じイベントに対して更に２つのアクションを設定できるようにした
入力１番端子がlow→highのイベントに対し２つのアクションを起こせる
例えば、メールの送信とパトライトの点灯等（出力端子１番をhigh）が可能となった
</p><p>2012.2.22 Rmote-Hand_DIO v0.19リリース
</p><p>o pepodioctlの処理速度向上の為タイマーチューニング
</p><p>o pepodiodのpollタイマーを２秒から１秒へ変更
</p><p>o <a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a>-0.55以上で動作
</p><p>2012.3.4 Rmote-Hand_DIO v0.20リリース
</p><p>o pepodiodのDIOリードデータを８個同時にファイル書き込みするように変更
</p><p>o DIOの入力情報をajaxで１秒毎に自動更新するように変更
</p><p>o ajaxで１秒毎にアクセスするのでhttpdのlogrotateを4時間毎に行うように変更
</p><p>2012.3.15 Rmote-Hand_DIO v0.21リリース
</p><p>o pepodioctl：１５本の入出力情報を一度にリード出来るようにした
</p><p>o menu5：ajaxでDIO出力値の表示と設定が出来るようにした。『入力値更新』ボタン設置
</p><p>o httpdのアクセスログを減らす為DIOの入出力情報の表示を５秒毎に更新、logrotateを時間毎に変更
</p><p>o menu12：Podcastsメニューが動作しないバグ修正
</p><p>o pepogmial4dio：DIO出力情報を新たに付加するようにした。DIO操作キーワードのマッチングチェック変更（キーワードのマッチパターンとlengthをＡＮＤでチェック）
</p><p>2012.4.1 Rmote-Hand_DIO v0.22リリース
</p><p>o menu9,menu10でDIO入力端子のカウンターをajaxで表示出来るように機能UP
</p><p>o pepodiod：DIO入力端子のカウンターをjsonデータに追加するように機能UP
</p><p>o pepogmial4dio：gmailでDIO入力端子のカウンターを取得出来るように機能UP
</p><p>o javascriptを圧縮・外部参照にした
</p><p>o <a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a>-0.58以上で動作
</p><p>2012.7.18 Rmote-Hand_DIO v0.23リリース
</p><p>o pepogmial4dio：gmailで入力端子9を指定するとUSB接続カメラで録画と返信機能を追加
</p><p>o <a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a>-0.60以上で動作
</p><p>2012.7.27 Rmote-Hand_DIO v0.24リリース
</p><p>o DIOのアクションで電話関係のスクリプト修正
</p><p>o <a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a>-0.60以上対応
</p><p>2012.10.12 Rmote-Hand_DIO v0.25リリース
</p><p>o pepogmial4dio：操作許可メールアドレスにオールユーザー処理を追加
</p><p>o <a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a>-0.61以上対応
</p><p>013.1.20 Rmote-Hand_DIO v0.27リリース
</p><p>o 保存設定データでgmailによるdioの制御が出来ないバグ修正
</p><p>o 保存設定データのクリア操作をmenu13 Server Controlに追加
</p><p>o <a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a>-0.62以上対応
</p><p>2013.2.12 Rmote-Hand_DIO v0.28リリース
</p><p>o menu12へデジタル出力の自動処理を追加
</p><p>o <a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a>-0.62以上対応
</p><p>2013.2.21 Rmote-Hand_DIO v0.29リリース
</p><p>o menu12へデジタル出力の自動処理機能追加＆バグ修正
</p><p>o <a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a>-0.62以上対応
</p><p>2013.2.24 Rmote-Hand_DIO v0.30リリース
</p><p>o menu12：デジタル出力処理(crond, Permission denied)バグ修正
</p><p>o <a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a>-0.62以上対応
</p><p>2013.3.4 Rmote-Hand_DIO v0.31リリース
</p><p>o menu12へデジタル出力の自動処理機能UP（設定項目６→１２）
</p><p>o <a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a>-0.62以上対応</p>]]>
    </content:encoded>
      </item>
        <item rdf:about="http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20pepopodcastget">
    <title>chobit_prog pepopodcastget</title>
    <link>http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20pepopodcastget</link>
    <dc:identifier>chobit_prog pepopodcastget</dc:identifier>
    <dc:date>2012-11-15T08:29:42+09:00</dc:date>
        <description>
      <![CDATA[{{{ GoogleAdsense
&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client=&quot;pub-8866927345406277&quot;;
google_ad_host=&quot;pub-9941151214016196&quot;;
google_alternate_color=]]>
    </description>
    <content:encoded>
      <![CDATA[<script type="text/javascript"><!--
google_ad_client="pub-8866927345406277";google_ad_host="pub-9941151214016196";google_alternate_color="FFFFFF";google_ad_width=468;google_ad_height=60;google_ad_format="468x60_as";google_ad_type="text_image";google_color_border="003399";google_color_bg="EEEEEE";google_color_link="0000FF";google_color_url="0000FF";google_color_text="000000";google_ad_host = "pub-9941151214016196";
//-->
</script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script><h2 id="h2-.E3.81.8A.E5.A5.BD.E3.81.BF.E3.81.AEURL.E3.81.8B.E3.82.89podcasts.E3.81.AEMP3.E9.9F.B3.E6.A5.BD.E3.83.95.E3.82.A1.E3.82.A4.E3.83.AB.E3.82.92.E5.8F.96.E5.BE.97.E3.81.99.E3.82.8Blinux.E3.82.B9.E3.82.AF.E3.83.AA.E3.83.97.E3.83.88">お好みのURLからpodcastsのMP3音楽ファイルを取得するlinuxスクリプト</h2><pre>
<B><FONT COLOR="#5F9EA0">#!/bin/sh
</FONT></B><I><FONT COLOR="#B22222"># licence GPLv2 ; this scripts designed by IZAMUKARERA 2010.12.12 update 2012.11.15
</FONT></I><I><FONT COLOR="#B22222"># get pepopodcastget mp3
</FONT></I><I><FONT COLOR="#B22222"># XMLにpodcastのURLを登録
</FONT></I><I><FONT COLOR="#B22222">#XML=http://podcast.1242.com/ps/index.xml
</FONT></I><I><FONT COLOR="#B22222">#XML=http://podcasts.voanews.com/podcastxml_local.cfm?id=1631
</FONT></I>XML=http://www3.nhk.or.jp/rj/podcast/rss/english.xml
<I><FONT COLOR="#B22222">#XML=http://www.cnn.com/services/podcasting/newscast/rss.xml
</FONT></I><I><FONT COLOR="#B22222"># CTは保存世代数（古い順に消去）
</FONT></I>CT=6
<I><FONT COLOR="#B22222"># DEVはMP3プレーヤーのデバイス名
</FONT></I>DEV=/dev/sdb1
MNT=/mnt/music
MDIR=$MNT/MUSIC/podcasts
DIR=/tmp/music
RAND=`<B><FONT COLOR="#A020F0">echo</FONT></B> -e $RANDOM`
TMP=$DIR/${RAND}.xml
[ ! -e $DIR ] &amp;&amp; mkdir -p $DIR
wget $XML -O $TMP
URL=`cat $TMP |awk '/enclosure/{split($0,I,<B><FONT COLOR="#BC8F8F">&quot;\&quot;&quot;</FONT></B>)
  <B><FONT COLOR="#A020F0">for</FONT></B> ( J <B><FONT COLOR="#A020F0">in</FONT></B> I ) {
    <B><FONT COLOR="#A020F0">if</FONT></B> (I[J] ~ /\.mp3$/) {
      printf I[J]<B><FONT COLOR="#BC8F8F">&quot; &quot;</FONT></B>
    }
  }
}'`
<B><FONT COLOR="#A020F0">for</FONT></B> FIL <B><FONT COLOR="#A020F0">in</FONT></B> $URL
<B><FONT COLOR="#A020F0">do</FONT></B>
  MP3=`<B><FONT COLOR="#A020F0">echo</FONT></B> $FIL |awk '{s=split($0,I,<B><FONT COLOR="#BC8F8F">&quot;/&quot;</FONT></B>); printf I[s]}'`
  [ -f $DIR/$MP3 ] &amp;&amp; <B><FONT COLOR="#A020F0">continue</FONT></B>
  wget $FIL -O $DIR/$MP3
  [ ! -s $DIR/$MP3 ] &amp;&amp; rm -f $DIR/$MP3
<B><FONT COLOR="#A020F0">done</FONT></B>
rm -f $TMP
MFIL=`ls -tr $DIR`
MCT=`<B><FONT COLOR="#A020F0">echo</FONT></B> $MFIL | wc -w`
<B><FONT COLOR="#A020F0">if</FONT></B> [ $MCT -gt $CT ];<B><FONT COLOR="#A020F0">then</FONT></B>
  I=`expr $MCT - $CT`
  <B><FONT COLOR="#A020F0">for</FONT></B> J <B><FONT COLOR="#A020F0">in</FONT></B> $MFIL
  <B><FONT COLOR="#A020F0">do</FONT></B>
    rm -f $DIR/$J
    I=`expr $I - 1`
    [ $I -eq 0 ] &amp;&amp; <B><FONT COLOR="#A020F0">break</FONT></B>
  <B><FONT COLOR="#A020F0">done</FONT></B>
<B><FONT COLOR="#A020F0">fi</FONT></B>
[ ! -e $MNT ] &amp;&amp; mkdir -p $MNT
mount $DEV $MNT -t vfat &gt;/dev/null 2&gt;&amp;1
[ `mount |grep $DEV |wc -l` -eq 1 ] &amp;&amp; MDEV=OK || MDEV=NG
<B><FONT COLOR="#A020F0">if</FONT></B> [ $MDEV = <B><FONT COLOR="#BC8F8F">&quot;OK&quot;</FONT></B> ];<B><FONT COLOR="#A020F0">then</FONT></B>
  [ ! -e $MDIR ] &amp;&amp; mkdir -p $MDIR
  MFIL=`ls -tr $DIR`
  <B><FONT COLOR="#A020F0">for</FONT></B> MM <B><FONT COLOR="#A020F0">in</FONT></B> $MFIL
  <B><FONT COLOR="#A020F0">do</FONT></B>
    <B><FONT COLOR="#A020F0">if</FONT></B> [ -s $DIR/$MM ];<B><FONT COLOR="#A020F0">then</FONT></B>
      mv -f $DIR/$MM $MDIR
    <B><FONT COLOR="#A020F0">fi</FONT></B>
  <B><FONT COLOR="#A020F0">done</FONT></B>
  MFIL=`ls -tr $MDIR`
  MCT=`<B><FONT COLOR="#A020F0">echo</FONT></B> $MFIL | wc -w`
  <B><FONT COLOR="#A020F0">if</FONT></B> [ $MCT -gt $CT ];<B><FONT COLOR="#A020F0">then</FONT></B>
    I=`expr $MCT - $CT`
    <B><FONT COLOR="#A020F0">for</FONT></B> J <B><FONT COLOR="#A020F0">in</FONT></B> $MFIL
    <B><FONT COLOR="#A020F0">do</FONT></B>
      rm -f $MDIR/$J
      I=`expr $I - 1`
      [ $I -eq 0 ] &amp;&amp; <B><FONT COLOR="#A020F0">break</FONT></B>
    <B><FONT COLOR="#A020F0">done</FONT></B>
  <B><FONT COLOR="#A020F0">fi</FONT></B>
<B><FONT COLOR="#A020F0">fi</FONT></B>
[ $MDEV = <B><FONT COLOR="#BC8F8F">&quot;OK&quot;</FONT></B> ] &amp;&amp; umount $DEV
</pre>]]>
    </content:encoded>
      </item>
        <item rdf:about="http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20pepodioctl">
    <title>chobit_prog pepodioctl</title>
    <link>http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20pepodioctl</link>
    <dc:identifier>chobit_prog pepodioctl</dc:identifier>
    <dc:date>2012-10-17T06:03:33+09:00</dc:date>
        <description>
      <![CDATA[== pepodioctl
{{{ GoogleAdsense
&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client=&quot;pub-8866927345406277&quot;;
google_ad_host=&quot;pub-9941151214016196&quot;;
google_a]]>
    </description>
    <content:encoded>
      <![CDATA[<h2 id="h2-pepodioctl">pepodioctl</h2><script type="text/javascript"><!--
google_ad_client="pub-8866927345406277";google_ad_host="pub-9941151214016196";google_alternate_color="FFFFFF";google_ad_width=468;google_ad_height=60;google_ad_format="468x60_as";google_ad_type="text_image";google_color_border="003399";google_color_bg="EEEEEE";google_color_link="0000FF";google_color_url="0000FF";google_color_text="000000";google_ad_host = "pub-9941151214016196";
//-->
</script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script><h3 id="h3-.E6.9C.80.E5.88.9D.E3.81.AB">最初に</h3><p>pepodioctlとは<a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a>-0.51以降に収録されているシリアルDIOボードの各ポートをread/writeするちょっとしたプログラムです。
</p><p><a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a>に収録されているプログラムを必要とするので単独では動作しませんが、シリアル経由でコマンドのやり取りで制御する機器やボードのプログラムに応用出来ると思います。
</p><p>更新履歴
</p><p>2011.12.4：１５本ある入出力ポートを前８本を入力、後の６本を出力で使用するように変更
</p><p>これでチャンネル８を指定すると、入力８本分を一度のコマンドで読み込める。
</p><p>これによりＤＩＯ監視デーモン：pepodiodの入力ポートのスキャン時間及び処理時間を短縮出来る。
</p><p>2011.12.11
</p><p>o ６５６ミリ秒以下のパルス出力をＰＩＣ内部のタイマーを使用してより正確な時間幅とするように変更
</p><p>o 現在のバージョンでは６５５ミリ秒以上のパルスは１秒程度の誤差がある
</p><p>2011.12.12
</p><p>６５６ミリ秒以下のパルス出力をＰＩＣ内部のタイマーの乗数を１００倍に修正
</p><p>2012.1.19
</p><p>o デバイスアクセス時のリトライ・タイマーをランダム、リトライ回数を１０回にしてよりＤＩＯの動作を確実にした
</p><p>2012.1.21
</p><p>o pid毎にコマンド・ファイルを生成するようにした
</p><p>o lockfileが失敗した時にコマンド・ファイルを消去するように修正
</p><p>2012.1.21
</p><p>o 処理速度向上の為、各タイマー調整
</p><p>2012.3.11
</p><p>o ＡＲＧにチャンネルＮＯ９を新たに機能追加、入力１５ビットを一度にリードできるように変更した
</p><p>2012.10.7
</p><p>o タイマーチューニングにより処理速度UP
</p><pre>[root@]# pepodioctl 9
3FFF
</pre><p>下記よりダウンロードしてください
</p><p><a href="http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20pepodioctl">http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20pepodioctl</a>
</p><p>2012.10.17 by.Yamauchi Isamu
<pre>
<B><FONT COLOR="#5F9EA0">#!/bin/sh
</FONT></B><I><FONT COLOR="#B22222"># licence GPLv2 ; this scripts designed by IZAMUKARERA 2011.10.8 update 2012.10.7
</FONT></I><I><FONT COLOR="#B22222"># pepodioctl for contorl digital-IN/digital-OUT to ANDDIO
</FONT></I><I><FONT COLOR="#B22222"># Input channel A to H ,Output channel I to N
</FONT></I><I><FONT COLOR="#B22222"># pepodioctl $1:chno [$2:0 or 1] [$3: time-&gt;1 to 65535ms]
</FONT></I><I><FONT COLOR="#B22222">#
</FONT></I><B><FONT COLOR="#A020F0">PATH</FONT></B>=$<B><FONT COLOR="#A020F0">PATH</FONT></B>:/usr/local/bin:/usr/local/sbin
<B><FONT COLOR="#A020F0">if</FONT></B> [ $<I><FONT COLOR="#B22222"># = 0 ]; then
</FONT></I>  <B><FONT COLOR="#A020F0">echo</FONT></B> <B><FONT COLOR="#BC8F8F">&quot;usage $0 usage $0 read-&gt;chno:0-9 | write-&gt;chno:0-5 [DO:0|1] [time-&gt;1 to 65535ms]&quot;</FONT></B>
  <B><FONT COLOR="#A020F0">exit</FONT></B> -1
<B><FONT COLOR="#A020F0">fi</FONT></B>
DI_ADR=<B><FONT COLOR="#BC8F8F">&quot;A&quot;</FONT></B>
<I><FONT COLOR="#B22222">#DIO_DEV=&quot;/dev/ttyUSB0&quot;
</FONT></I>DI_TTY=ttyS1
<I><FONT COLOR="#B22222">#DI_TTY=ttyUSB0
</FONT></I>WAIT=10
READTM=10
TRY=30
pid=`<B><FONT COLOR="#A020F0">echo</FONT></B> -en $$`
DIO_DEV=<B><FONT COLOR="#BC8F8F">&quot;/dev/${DI_TTY}&quot;</FONT></B>
ALIAS_DI=/var/www/html/remote-hand/tmp/.alias_di
CMD=<B><FONT COLOR="#BC8F8F">&quot;/var/www/html/remote-hand/tmp/dioctl.${pid}&quot;</FONT></B>
[ -e <B><FONT COLOR="#BC8F8F">&quot;$ALIAS_DI&quot;</FONT></B> ] &amp;&amp; . <B><FONT COLOR="#BC8F8F">&quot;$ALIAS_DI&quot;</FONT></B>
[ ! -z <B><FONT COLOR="#BC8F8F">&quot;$DI_TTY&quot;</FONT></B> ] &amp;&amp; DIO_DEV=<B><FONT COLOR="#BC8F8F">&quot;/dev/&quot;</FONT></B>${DI_TTY}
<B><FONT COLOR="#A020F0">if</FONT></B> [ ! -e $DIO_DEV ];<B><FONT COLOR="#A020F0">then</FONT></B>
  <B><FONT COLOR="#A020F0">echo</FONT></B> -en <B><FONT COLOR="#BC8F8F">&quot;-1&quot;</FONT></B>
  <B><FONT COLOR="#A020F0">exit</FONT></B> -1
<B><FONT COLOR="#A020F0">fi</FONT></B>
LOCKFILE=<B><FONT COLOR="#BC8F8F">&quot;/var/lock/LCK..${DI_TTY}.dio&quot;</FONT></B>
LOCK=<B><FONT COLOR="#BC8F8F">&quot;/var/lock/LCK..${DI_TTY}&quot;</FONT></B>
RETRY=$TRY
<B><FONT COLOR="#A020F0">while</FONT></B> [ -e $LOCK ]
<B><FONT COLOR="#A020F0">do</FONT></B>
  msleep `<B><FONT COLOR="#A020F0">echo</FONT></B> -en  $RANDOM |cut -c 1-2`
  RETRY=$(($RETRY - 1))
  <B><FONT COLOR="#A020F0">if</FONT></B> [ $RETRY = 0 ];<B><FONT COLOR="#A020F0">then</FONT></B>
    <B><FONT COLOR="#A020F0">echo</FONT></B> -en <B><FONT COLOR="#BC8F8F">&quot;-1&quot;</FONT></B> &gt;/dev/stderr
    <B><FONT COLOR="#A020F0">exit</FONT></B> -1
  <B><FONT COLOR="#A020F0">fi</FONT></B>
<B><FONT COLOR="#A020F0">done</FONT></B>

CMD_DIO=<B><FONT COLOR="#BC8F8F">&quot;/usr/local/bin/epicon -d 5 -D 5 -ql ${DIO_DEV} -c ${CMD}&quot;</FONT></B>
n=$1
<B><FONT COLOR="#A020F0">if</FONT></B> [ <B><FONT COLOR="#BC8F8F">&quot;$n&quot;</FONT></B> -gt 9 ] || [ <B><FONT COLOR="#BC8F8F">&quot;$n&quot;</FONT></B> -lt 0 ] || [ -n <B><FONT COLOR="#BC8F8F">&quot;$2&quot;</FONT></B> -a <B><FONT COLOR="#BC8F8F">&quot;$1&quot;</FONT></B> -gt 5 ] ;<B><FONT COLOR="#A020F0">then</FONT></B>
  <B><FONT COLOR="#A020F0">echo</FONT></B> <B><FONT COLOR="#BC8F8F">&quot;usage $0 read-&gt;chno:0-9 | write-&gt;chno:0-5 [DO:0|1] [time-&gt;1 to 65535ms]&quot;</FONT></B>
  <B><FONT COLOR="#A020F0">exit</FONT></B> -1
<B><FONT COLOR="#A020F0">fi</FONT></B>

error(){
  [ -e ${CMD} ] &amp;&amp; rm -f ${CMD}
  [ -e ${LOCKFILE} ] &amp;&amp; rm -f ${LOCKFILE}
  [ -e ${LOCK} ] &amp;&amp; rm -f ${LOCK}
  <B><FONT COLOR="#A020F0">exit</FONT></B> 0
}
<B><FONT COLOR="#A020F0">trap</FONT></B> error SIGHUP SIGTERM SIGQUIT SIGKILL SIGINT SIGCHLD

<B><FONT COLOR="#A020F0">if</FONT></B> [ ! -z $2 ];<B><FONT COLOR="#A020F0">then</FONT></B>
<I><FONT COLOR="#B22222"># DIO Output channel address set
</FONT></I>  k=0
  <B><FONT COLOR="#A020F0">for</FONT></B> i <B><FONT COLOR="#A020F0">in</FONT></B> I J K L M N
  <B><FONT COLOR="#A020F0">do</FONT></B>
    j[$k]=$i
    k=$[$k+1]
  <B><FONT COLOR="#A020F0">done</FONT></B>
  CH=${j[$n]}
  <B><FONT COLOR="#A020F0">if</FONT></B> [ <B><FONT COLOR="#BC8F8F">&quot;$2&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;1&quot;</FONT></B> ];<B><FONT COLOR="#A020F0">then</FONT></B>
    DO=<B><FONT COLOR="#BC8F8F">&quot;H&quot;</FONT></B>
    DO_INVERT=<B><FONT COLOR="#BC8F8F">&quot;L&quot;</FONT></B>
  <B><FONT COLOR="#A020F0">else</FONT></B> 
    DO=<B><FONT COLOR="#BC8F8F">&quot;L&quot;</FONT></B>
    DO_INVERT=<B><FONT COLOR="#BC8F8F">&quot;H&quot;</FONT></B>
  <B><FONT COLOR="#A020F0">fi</FONT></B>
  [ ! -z $3 ] &amp;&amp; OUTTM=$3 || <B><FONT COLOR="#A020F0">unset</FONT></B> OUTTM
<B><FONT COLOR="#A020F0">else</FONT></B>
<I><FONT COLOR="#B22222"># DIO Input channel address set
</FONT></I>  <B><FONT COLOR="#A020F0">unset</FONT></B> DO
  k=0
  <B><FONT COLOR="#A020F0">for</FONT></B> i <B><FONT COLOR="#A020F0">in</FONT></B> A B C D E F G H P Q
  <B><FONT COLOR="#A020F0">do</FONT></B>
    j[$k]=$i
    k=$[$k+1]
  <B><FONT COLOR="#A020F0">done</FONT></B>
  CH=${j[$n]}
<B><FONT COLOR="#A020F0">fi</FONT></B>

dio_setup(){
 cat&gt;$CMD&lt;&lt;END
<B><FONT COLOR="#5F9EA0">#!/bin/sh
</FONT></B>dio_out() {
<I><FONT COLOR="#B22222"># dio_out CH DATA
</FONT></I>  <B><FONT COLOR="#A020F0">echo</FONT></B> -en <B><FONT COLOR="#BC8F8F">&quot;${DI_ADR}\${2}\${1}\${3}\\r&quot;</FONT></B>
  <B><FONT COLOR="#A020F0">if</FONT></B> [ \$? != <B><FONT COLOR="#BC8F8F">&quot;0&quot;</FONT></B> ]; <B><FONT COLOR="#A020F0">then</FONT></B>
    <B><FONT COLOR="#A020F0">echo</FONT></B> -en <B><FONT COLOR="#BC8F8F">&quot;-1&quot;</FONT></B> &gt;/dev/stderr
    <B><FONT COLOR="#A020F0">return</FONT></B> -1
  <B><FONT COLOR="#A020F0">fi</FONT></B>
}

dio_out_in(){
<I><FONT COLOR="#B22222"># dio out after read
</FONT></I>  msleep ${READTM}
  <B><FONT COLOR="#A020F0">read</FONT></B> -s -n 3 -t 1 R || R=<B><FONT COLOR="#BC8F8F">&quot;-1&quot;</FONT></B>
  [ \`<B><FONT COLOR="#A020F0">echo</FONT></B> -en \$R | awk '{ printf(length(\$0))}'\` != 3 ] &amp;&amp; R=<B><FONT COLOR="#BC8F8F">&quot;-1&quot;</FONT></B>
  <B><FONT COLOR="#A020F0">if</FONT></B> [ \$R != <B><FONT COLOR="#BC8F8F">&quot;-1&quot;</FONT></B> ];<B><FONT COLOR="#A020F0">then</FONT></B>
    <B><FONT COLOR="#A020F0">echo</FONT></B> -en \$R |awk '{D=substr(\$0,2,1);sub(<B><FONT COLOR="#BC8F8F">&quot;L&quot;</FONT></B>,<B><FONT COLOR="#BC8F8F">&quot;0&quot;</FONT></B>,D);sub(<B><FONT COLOR="#BC8F8F">&quot;H&quot;</FONT></B>,<B><FONT COLOR="#BC8F8F">&quot;1&quot;</FONT></B>,D);printf D}'&gt;/dev/stderr
  <B><FONT COLOR="#A020F0">else</FONT></B>
    <B><FONT COLOR="#A020F0">echo</FONT></B> -en <B><FONT COLOR="#BC8F8F">&quot;-1&quot;</FONT></B> &gt;/dev/stderr
    <B><FONT COLOR="#A020F0">return</FONT></B> -1
  <B><FONT COLOR="#A020F0">fi</FONT></B>
}

dio_in() {
<I><FONT COLOR="#B22222"># dio_input CH
</FONT></I>  local ch
  ch=\$1
  [ \$1 = <B><FONT COLOR="#BC8F8F">&quot;Q&quot;</FONT></B> ] &amp;&amp; ch=<B><FONT COLOR="#BC8F8F">&quot;&quot;</FONT></B>
  <B><FONT COLOR="#A020F0">echo</FONT></B> -en <B><FONT COLOR="#BC8F8F">&quot;${DI_ADR}R\${ch}\\r&quot;</FONT></B>
  msleep ${READTM}
  <B><FONT COLOR="#A020F0">if</FONT></B> [ \$1 = <B><FONT COLOR="#BC8F8F">&quot;Q&quot;</FONT></B> ];<B><FONT COLOR="#A020F0">then</FONT></B>
    <B><FONT COLOR="#A020F0">read</FONT></B> -s -n 5 -t 1 R || R=<B><FONT COLOR="#BC8F8F">&quot;-1&quot;</FONT></B>
    [ \`<B><FONT COLOR="#A020F0">echo</FONT></B> -en \$R | awk '{ printf(length(\$0))}'\` != 5 ] &amp;&amp; R=<B><FONT COLOR="#BC8F8F">&quot;-1&quot;</FONT></B>
  <B><FONT COLOR="#A020F0">else</FONT></B>
    <B><FONT COLOR="#A020F0">read</FONT></B> -s -n 3 -t 1 R || R=<B><FONT COLOR="#BC8F8F">&quot;-1&quot;</FONT></B>
    [ \`<B><FONT COLOR="#A020F0">echo</FONT></B> -en \$R | awk '{ printf(length(\$0))}'\` != 3 ] &amp;&amp; R=<B><FONT COLOR="#BC8F8F">&quot;-1&quot;</FONT></B>
  <B><FONT COLOR="#A020F0">fi</FONT></B>
  <B><FONT COLOR="#A020F0">if</FONT></B> [ \$R != <B><FONT COLOR="#BC8F8F">&quot;-1&quot;</FONT></B> ];<B><FONT COLOR="#A020F0">then</FONT></B>
    [ \${1} = <B><FONT COLOR="#BC8F8F">&quot;P&quot;</FONT></B> ] &amp;&amp; <B><FONT COLOR="#A020F0">echo</FONT></B> -en \$R |awk '{D=substr(\$0,2,2);printf D}'&gt;/dev/stderr
    [ \${1} = <B><FONT COLOR="#BC8F8F">&quot;Q&quot;</FONT></B> ] &amp;&amp; <B><FONT COLOR="#A020F0">echo</FONT></B> -en \$R |awk '{D=substr(\$0,2,4);printf D}'&gt;/dev/stderr
    [ \${1} != <B><FONT COLOR="#BC8F8F">&quot;P&quot;</FONT></B> ] &amp;&amp; [ \${1} != <B><FONT COLOR="#BC8F8F">&quot;Q&quot;</FONT></B> ] &amp;&amp; <B><FONT COLOR="#A020F0">echo</FONT></B> -en \$R |awk '{D=substr(\$0,3,1);sub(<B><FONT COLOR="#BC8F8F">&quot;L&quot;</FONT></B>,<B><FONT COLOR="#BC8F8F">&quot;0&quot;</FONT></B>,D);sub(<B><FONT COLOR="#BC8F8F">&quot;H&quot;</FONT></B>,<B><FONT COLOR="#BC8F8F">&quot;1&quot;</FONT></B>,D);printf D}'&gt;/dev/stderr
  <B><FONT COLOR="#A020F0">else</FONT></B>
    <B><FONT COLOR="#A020F0">echo</FONT></B> -en <B><FONT COLOR="#BC8F8F">&quot;-1&quot;</FONT></B> &gt;/dev/stderr
    <B><FONT COLOR="#A020F0">return</FONT></B> -1
  <B><FONT COLOR="#A020F0">fi</FONT></B>
}
END
}

dio_exec(){
<I><FONT COLOR="#B22222"># lockfile &amp; DIO command exec
</FONT></I>  RETRY=$TRY
  <B><FONT COLOR="#A020F0">while</FONT></B> [ $RETRY != 0 ]
  <B><FONT COLOR="#A020F0">do</FONT></B>
    lockfile -0 -r 1 ${LOCKFILE} &gt;/dev/null 2&gt;&amp;1
    [ $? = 0 ] &amp;&amp; <B><FONT COLOR="#A020F0">break</FONT></B>
    msleep `<B><FONT COLOR="#A020F0">echo</FONT></B> -en  $RANDOM |cut -c 1-2`
    RETRY=$(($RETRY - 1))
  <B><FONT COLOR="#A020F0">done</FONT></B>
  <B><FONT COLOR="#A020F0">if</FONT></B> [ $RETRY = 0 ];<B><FONT COLOR="#A020F0">then</FONT></B>
    <B><FONT COLOR="#A020F0">echo</FONT></B> -en <B><FONT COLOR="#BC8F8F">&quot;-1&quot;</FONT></B> &gt;/dev/stderr
    rm -f $CMD
    <B><FONT COLOR="#A020F0">return</FONT></B>
  <B><FONT COLOR="#A020F0">else</FONT></B>
    <B><FONT COLOR="#A020F0">echo</FONT></B> -en $$ &gt;${LOCKFILE}
    chmod +x $CMD
    $CMD_DIO
    rm -f $CMD
    rm -f ${LOCKFILE}
  <B><FONT COLOR="#A020F0">fi</FONT></B>
}

<B><FONT COLOR="#A020F0">if</FONT></B> [ ! -z $DO ];<B><FONT COLOR="#A020F0">then</FONT></B>
<I><FONT COLOR="#B22222"># DIO Ouput mode
</FONT></I>  <B><FONT COLOR="#A020F0">if</FONT></B> [ ! -z $OUTTM ];<B><FONT COLOR="#A020F0">then</FONT></B>
    <B><FONT COLOR="#A020F0">if</FONT></B> [ ${OUTTM} -lt 656 ];<B><FONT COLOR="#A020F0">then</FONT></B>
      OUTTM=$(($OUTTM * 100))
      dio_setup
    cat&gt;&gt;$CMD&lt;&lt;END
dio_out ${CH} ${DO} ${OUTTM}
dio_out_in ${CH}
END
      dio_exec
    <B><FONT COLOR="#A020F0">else</FONT></B>
      dio_setup
    cat&gt;&gt;$CMD&lt;&lt;END
dio_out ${CH} ${DO}
END
      dio_exec
      msleep $OUTTM
      dio_setup
      cat&gt;&gt;$CMD&lt;&lt;END
dio_out ${CH} ${DO_INVERT}
msleep $WAIT
dio_out_in ${CH}
END
      dio_exec
    <B><FONT COLOR="#A020F0">fi</FONT></B>
  <B><FONT COLOR="#A020F0">else</FONT></B>
    dio_setup
    cat&gt;&gt;$CMD&lt;&lt;END
dio_out ${CH} ${DO}
msleep $WAIT
dio_out_in ${CH}
END
    dio_exec
  <B><FONT COLOR="#A020F0">fi</FONT></B>
<B><FONT COLOR="#A020F0">else</FONT></B>
<I><FONT COLOR="#B22222"># DIO Input mode
</FONT></I>  dio_setup
  cat&gt;&gt;$CMD&lt;&lt;END
dio_in ${CH}
END
  dio_exec
  <B><FONT COLOR="#A020F0">exit</FONT></B> 0
<B><FONT COLOR="#A020F0">fi</FONT></B>
</pre></p>]]>
    </content:encoded>
      </item>
        <item rdf:about="http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20pepogmail_send">
    <title>chobit_prog pepogmail_send</title>
    <link>http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20pepogmail_send</link>
    <dc:identifier>chobit_prog pepogmail_send</dc:identifier>
    <dc:date>2012-10-11T04:44:08+09:00</dc:date>
        <description>
      <![CDATA[{{{ GoogleAdsense
&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client=&quot;pub-8866927345406277&quot;;
google_ad_host=&quot;pub-9941151214016196&quot;;
google_alternate_color=]]>
    </description>
    <content:encoded>
      <![CDATA[<script type="text/javascript"><!--
google_ad_client="pub-8866927345406277";google_ad_host="pub-9941151214016196";google_alternate_color="FFFFFF";google_ad_width=468;google_ad_height=60;google_ad_format="468x60_as";google_ad_type="text_image";google_color_border="003399";google_color_bg="EEEEEE";google_color_link="0000FF";google_color_url="0000FF";google_color_text="000000";google_ad_host = "pub-9941151214016196";
//-->
</script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script><h3 id="h3-pepogmail_send">pepogmail_send</h3><p>pepogmail_sendとはdomain内よりsendmailなどのMTAを使用してメールが送信できない場合、サブミッションポート（587）が空いていれば自分のgmailアカントからメールを送信できるちょびっとなrubyスクリプト(CGI)です。
</p><p>変更履歴
</p><p>2011.11.28
</p><p>o ファーストリリース
</p><p>o 2012.7.21
</p><p>o 添付ファイルを送信出来るよう機能UP
</p><pre>
<I><FONT COLOR="#B22222">#!/usr/bin/ruby -Ku
</FONT></I><I><FONT COLOR="#B22222"># pepogmail_image_send.cgi ; mail send test &amp; file 
</FONT></I><I><FONT COLOR="#B22222"># licence GPLv2 ; this scripts designed by IZAMUKARERA 2011.11.28 update 2012.7.21
</FONT></I><B><FONT COLOR="#A020F0">def</FONT></B> <B><FONT COLOR="#0000FF">error_cgi
</FONT></B>        print <B><FONT COLOR="#BC8F8F">&quot;Content-Type:text/html;charset=UTF-8\n\n&quot;</FONT></B>
        print <B><FONT COLOR="#BC8F8F">&quot;*** CGI Error List ***&lt;br /&gt;&quot;</FONT></B>
        print <B><FONT COLOR="#BC8F8F">&quot;#{CGI.escapeHTML($!.inspect)}&lt;br /&gt;&quot;</FONT></B>
        <FONT COLOR="#B8860B">$@</FONT>.each {|x| print CGI.escapeHTML(x), <B><FONT COLOR="#BC8F8F">&quot;&lt;br /&gt;&quot;</FONT></B>}
<B><FONT COLOR="#A020F0">end</FONT></B>

<B><FONT COLOR="#A020F0">class</FONT></B> Gmail
  <B><FONT COLOR="#A020F0">def</FONT></B> <B><FONT COLOR="#0000FF">initialize</FONT></B>()
    <FONT COLOR="#B8860B">@mail</FONT> = TMail::Mail.new
    <FONT COLOR="#B8860B">@mail</FONT>.mime_version = <B><FONT COLOR="#BC8F8F">'1.0'</FONT></B>
  <B><FONT COLOR="#A020F0">end</FONT></B>
  <B><FONT COLOR="#A020F0">def</FONT></B> <B><FONT COLOR="#0000FF">set_account</FONT></B>(user)
    <FONT COLOR="#B8860B">@account</FONT> = user
  <B><FONT COLOR="#A020F0">end</FONT></B>
  <B><FONT COLOR="#A020F0">def</FONT></B> <B><FONT COLOR="#0000FF">set_mailfrom</FONT></B>(from_address)
    <FONT COLOR="#B8860B">@mail</FONT>.from = from_address
    <FONT COLOR="#B8860B">@mail</FONT>.reply_to = from_address
  <B><FONT COLOR="#A020F0">end</FONT></B>
  <B><FONT COLOR="#A020F0">def</FONT></B> <B><FONT COLOR="#0000FF">set_password</FONT></B>(password)
    <FONT COLOR="#B8860B">@password</FONT> = password
  <B><FONT COLOR="#A020F0">end</FONT></B>
  <B><FONT COLOR="#A020F0">def</FONT></B> <B><FONT COLOR="#0000FF">set_to</FONT></B>(to_addresses)
    <FONT COLOR="#B8860B">@mail</FONT>.to = to_addresses
  <B><FONT COLOR="#A020F0">end</FONT></B>
  <B><FONT COLOR="#A020F0">def</FONT></B> <B><FONT COLOR="#0000FF">set_subject</FONT></B>(subject)
    work = Kconv.tojis(subject).split(//,1).pack('m').chomp
    <FONT COLOR="#B8860B">@mail</FONT>.subject = <B><FONT COLOR="#BC8F8F">&quot;=?ISO-2022-JP?B?&quot;</FONT></B>+work.gsub(<B><FONT COLOR="#BC8F8F">'\n'</FONT></B>, <B><FONT COLOR="#BC8F8F">''</FONT></B>)+<B><FONT COLOR="#BC8F8F">&quot;?=&quot;</FONT></B>
  <B><FONT COLOR="#A020F0">end</FONT></B>
  <B><FONT COLOR="#A020F0">def</FONT></B> <B><FONT COLOR="#0000FF">set_text</FONT></B>(text)
    main_text = TMail::Mail.new
    main_text.set_content_type <B><FONT COLOR="#BC8F8F">'text'</FONT></B>, <B><FONT COLOR="#BC8F8F">'plain'</FONT></B>, {<B><FONT COLOR="#BC8F8F">'charset'</FONT></B>=&gt;<B><FONT COLOR="#BC8F8F">'iso-2022-jp'</FONT></B>}
    main_text.body = Kconv.tojis(text)
    <FONT COLOR="#B8860B">@mail</FONT>.parts.push main_text
  <B><FONT COLOR="#A020F0">end</FONT></B>
  <B><FONT COLOR="#A020F0">def</FONT></B> <B><FONT COLOR="#0000FF">send</FONT></B>()
    <FONT COLOR="#B8860B">@mail</FONT>.date = Time.now
    <FONT COLOR="#B8860B">@mail</FONT>.write_back
    smtpserver = Net::SMTP.new(<B><FONT COLOR="#BC8F8F">'smtp.gmail.com'</FONT></B>, 587)
    smtpserver.enable_tls(OpenSSL::SSL::VERIFY_NONE)
    smtpserver.start(<B><FONT COLOR="#BC8F8F">'gmail.com'</FONT></B>, <FONT COLOR="#B8860B">@account</FONT>, <FONT COLOR="#B8860B">@password</FONT>, :login) <B><FONT COLOR="#A020F0">do</FONT></B> |smtp|
    smtp.sendmail(<FONT COLOR="#B8860B">@mail</FONT>.encoded, <FONT COLOR="#B8860B">@mail</FONT>.from, <FONT COLOR="#B8860B">@mail</FONT>.reply_to, <FONT COLOR="#B8860B">@mail</FONT>.to)
    <B><FONT COLOR="#A020F0">end</FONT></B>
  <B><FONT COLOR="#A020F0">end</FONT></B>
  <B><FONT COLOR="#A020F0">def</FONT></B> <B><FONT COLOR="#0000FF">set_attach</FONT></B>(file_dir, file_name)
    attach = TMail::Mail.new
    file_dir_name = file_dir + file_name
    attach.body = Base64.encode64 File.read(file_dir_name)
    attach.set_content_type <B><FONT COLOR="#BC8F8F">'application'</FONT></B>,<B><FONT COLOR="#BC8F8F">'mp4'</FONT></B>,<B><FONT COLOR="#BC8F8F">'name'</FONT></B>=&gt;file_name
    attach.set_content_disposition <B><FONT COLOR="#BC8F8F">'attachment'</FONT></B>,<B><FONT COLOR="#BC8F8F">'filename'</FONT></B>=&gt;file_name
    attach.transfer_encoding = <B><FONT COLOR="#BC8F8F">'base64'</FONT></B>
    <FONT COLOR="#B8860B">@mail</FONT>.parts.push attach
  <B><FONT COLOR="#A020F0">end</FONT></B>
<B><FONT COLOR="#A020F0">end</FONT></B>

<B><FONT COLOR="#A020F0">begin</FONT></B>
  <B><FONT COLOR="#5F9EA0">require</FONT></B> <B><FONT COLOR="#BC8F8F">'net/smtp'</FONT></B> 
  <B><FONT COLOR="#5F9EA0">require</FONT></B> <B><FONT COLOR="#BC8F8F">'rubygems'</FONT></B>
  <B><FONT COLOR="#5F9EA0">require</FONT></B> <B><FONT COLOR="#BC8F8F">'tmail'</FONT></B>
  <B><FONT COLOR="#5F9EA0">require</FONT></B> <B><FONT COLOR="#BC8F8F">'tlsmail'</FONT></B>
  <B><FONT COLOR="#5F9EA0">require</FONT></B> <B><FONT COLOR="#BC8F8F">'kconv'</FONT></B>
  <B><FONT COLOR="#5F9EA0">require</FONT></B> <B><FONT COLOR="#BC8F8F">'openssl'</FONT></B>
  <B><FONT COLOR="#5F9EA0">require</FONT></B> <B><FONT COLOR="#BC8F8F">'base64'</FONT></B>
  <B><FONT COLOR="#5F9EA0">require</FONT></B> <B><FONT COLOR="#BC8F8F">'cgi'</FONT></B>
 
  cgi = CGI.new()
  cgi_mail_from = cgi[<B><FONT COLOR="#BC8F8F">'mail_from'</FONT></B>]
  cgi_password = cgi[<B><FONT COLOR="#BC8F8F">'password'</FONT></B>]
  cgi_mail_to = cgi[<B><FONT COLOR="#BC8F8F">'mail_to'</FONT></B>]
  cgi_subject = cgi[<B><FONT COLOR="#BC8F8F">'subject'</FONT></B>]
  cgi_message = cgi[<B><FONT COLOR="#BC8F8F">'msg'</FONT></B>]
  cgi_server = cgi[<B><FONT COLOR="#BC8F8F">'server'</FONT></B>]
  cgi_file_name = cgi[<B><FONT COLOR="#BC8F8F">'image_file'</FONT></B>]
  cgi_file_dir = <B><FONT COLOR="#BC8F8F">'/var/www/html/remote-hand/tmp/'</FONT></B>
  user = <B><FONT COLOR="#BC8F8F">'gmail_account@gmail.com'</FONT></B>
  user_password = <B><FONT COLOR="#BC8F8F">'gmail_password'</FONT></B>
  s_password = <B><FONT COLOR="#BC8F8F">'this_server_password'</FONT></B>
  print <B><FONT COLOR="#BC8F8F">&quot;Content-Type:text/html;charset=UTF-8\n\n&quot;</FONT></B>
  print <B><FONT COLOR="#BC8F8F">'&lt;BODY BGCOLOR=&quot;#E0FFFF&quot;&gt;'</FONT></B>
  print <B><FONT COLOR="#BC8F8F">&quot;&lt;HEAD&gt;&quot;</FONT></B>
  print <B><FONT COLOR="#BC8F8F">&quot;&lt;TITLE&gt;Mail Send Process&lt;/TITLE&gt;&quot;</FONT></B>
  print <B><FONT COLOR="#BC8F8F">&quot;&lt;/HEAD&gt;&quot;</FONT></B>
  print <B><FONT COLOR="#BC8F8F">&quot;&lt;BODY&gt;&quot;</FONT></B>
  <B><FONT COLOR="#A020F0">if</FONT></B> cgi_password == s_password <B><FONT COLOR="#A020F0">then</FONT></B>
    gmail = Gmail.new()
    gmail.set_account(user)
    gmail.set_password(user_password)
    gmail.set_mailfrom(cgi_mail_from)
    gmail.set_to(cgi_mail_to)
    gmail.set_subject(cgi_subject)
    gmail.set_text(cgi_message)
    <B><FONT COLOR="#A020F0">if</FONT></B> cgi_file_name != <B><FONT COLOR="#BC8F8F">&quot;&quot;</FONT></B>
      gmail.set_attach(cgi_file_dir, cgi_file_name)
    <B><FONT COLOR="#A020F0">end</FONT></B>
    gmail.send
    print <B><FONT COLOR="#BC8F8F">&quot;Send gmail -Successful completion&lt;BR&gt;&quot;</FONT></B>
  <B><FONT COLOR="#A020F0">elsif</FONT></B> cgi_password != s_password <B><FONT COLOR="#A020F0">then</FONT></B>
    print <B><FONT COLOR="#BC8F8F">&quot;Wrong password -Abend&lt;BR&gt;&quot;</FONT></B>
  <B><FONT COLOR="#A020F0">end</FONT></B>
  print <B><FONT COLOR="#BC8F8F">&quot;&lt;/BODY&gt;&quot;</FONT></B>
  print <B><FONT COLOR="#BC8F8F">&quot;&lt;/HTML&gt;&quot;</FONT></B>
<B><FONT COLOR="#A020F0">rescue</FONT></B>
    error_cgi
<B><FONT COLOR="#A020F0">end</FONT></B>  
</pre><h3 id="h3-CGI.E7.A2.BA.E8.AA.8D.E7.94.A8.E3.81.AE.E3.81.A1.E3.82.87.E3.81.B3.E3.81.A3.E3.81.A8.E3.81.AAmail.20form.E3.81.A7.E3.81.99.E3.80.82">CGI確認用のちょびっとなmail formです。</h3><pre>&lt;HTML&gt;
&lt;HEAD&gt;
&lt;META http-equiv=&quot;Content-Type&quot; content=&quot;text/HTML; charset=UTF-8&quot;&gt;
&lt;META NAME=&quot;Auther&quot; content=&quot;yamauchi.isamu&quot;&gt;
&lt;META NAME=&quot;Copyright&quot; content=&quot;pepolinux.local&quot;&gt;
&lt;META NAME=&quot;Build&quot; content=&quot;2012.7.9&quot;&gt;
&lt;META NAME=&quot;reply-to&quot; content=&quot;pepo1@pepolinux.local&quot;&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
function mail_ck(str) {
/* mailアドレスチェック */
  var ck_pattern = /[!#-9A-~]+@+[0-9A-Za-z.-]+.+[^.]$/;
  if( ! str.match(ck_pattern)) {
    alert(str + &quot;←&quot; + &quot;メールアドレスに誤りがあります。&quot;);
    return -1;
  }
  return 1;
}
function num_alpha_ck(str) {
/* 半角英数字チェック */
  if( str.match( /[^A-Za-z0-9\s.\-_]/ ) ) {
    alert(str + &quot;←&quot; + &quot;半角英数字でのみ入力してください。&quot;);
    return -1;
  }
  return 1;
}

function msg_ck(str) {
/* メッセージ長さチェック */
  var ck_size = str.length
  if( ck_size &gt; 255 ) {
    alert(&quot;メッセージサイズオーバーです&quot;);
    return -1;
  }
  return 1;
}

function sendmail_ck() {
  var check = 0;
  var error_ct = 0;
  var ck_str = &quot;&quot;;
  ck_str = document.menu.mail_to.value;
  if ( ck_str != &quot;&quot; ) {
    check++;
    if ( mail_ck(ck_str) == -1 ) {
      error_ct++;
    }
  }
  ck_str = document.menu.mail_from.value;
  if ( ck_str != &quot;&quot; ) {
    check++;
    if ( mail_ck(ck_str) == -1 ) {
      error_ct++;
    }
  }
  ck_str =  document.menu.msg.value;
  if ( ck_str != &quot;&quot; ) {
    check++;
    if ( msg_ck(ck_str) == -1 ) {
      error_ct++;
    }
  }
  ck_str =  document.menu.subject.value;
  if ( ck_str != &quot;&quot;) {
    check++;
  }
  ck_str =  document.menu.password.value;
  if ( ck_str != &quot;&quot;) check++;
  ck_str =  document.menu.server.value;
  if ( ck_str != &quot;&quot;) {
    check++;
    if (num_alpha_ck(ck_str) == -1 ) {
      error_ct++;
    }
  }
  ck_str =  document.menu.image_file;
  if ( ck_str != &quot;&quot;) check++;
  if( error_ct == 0 &amp;&amp; check == 6 || check == 7) {
    document.menu.submit(ck_str);
  }
  if ( check &lt; 6) {
    alert(&quot;入力されていない項目があります&quot;)
  }
  return false;
}

function keypress() {
/*  Enter キー無効 */
    if(window.event.keyCode == 13){ 
        return false; 
    }   
    return true;   
}   
window.document.onkeydown= keypress;

&lt;/script&gt;
&lt;TITLE&gt;メール送信&lt;/TITLE&gt;
&lt;/HEAD&gt;
&lt;BODY BGCOLOR=&quot;#E0FFFF&quot;&gt;
&lt;!--Remote-Hand--&gt;
&lt;DT&gt;&lt;FONT SIZE=&quot;+1&quot;&gt;&lt;B&gt;メールを送信します&lt;/B&gt;&lt;/FONT&gt;&lt;/DT&gt;
&lt;FORM name=&quot;menu&quot; ACTION=&quot;/cgi-bin/pepogmail_send.cgi&quot; METHOD=&quot;POST&quot;&gt;
&lt;FONT SIZE=&quot;-1&quot;&gt;Ｍａｉｌ　ｔｏ：&lt;INPUT TYPE=&quot;text&quot; style=&quot;width:200px;text-align:left;&quot; VALUE=&quot;&quot; NAME=&quot;mail_to&quot;&gt;
&lt;BR&gt;
&lt;FONT SIZE=&quot;-1&quot;&gt;Ｍａｉｌ　Ｆｒｏｍ：&lt;INPUT TYPE=&quot;text&quot; style=&quot;width:200px;text-align:left;&quot; VALUE=&quot;pepo1@pepolinux.local&quot; NAME=&quot;mail_from&quot;&gt;
&lt;FONT&gt;
&lt;BR&gt;
&lt;FONT SIZE=&quot;-1&quot;&gt;Ｓｕｂｊｅｃｔ：&lt;INPUT TYPE=&quot;text&quot; style=&quot;width:240px;text-align:left;&quot; VALUE=&quot;メールの送信テスト&quot; NAME=&quot;subject&quot;&gt;
&lt;BR&gt;
&lt;textarea NAME=&quot;msg&quot; rows=&quot;4&quot; cols=&quot;40&quot; &gt;ここにメッセージを書いて送信してください&lt;/textarea&gt;&lt;BR&gt;
&lt;HR&gt;
&lt;FONT SIZE=&quot;-1&quot;&gt;パスワード：&lt;INPUT SIZE=&quot;10&quot; TYPE=&quot;password&quot; NAME=&quot;password&quot;&gt;
&lt;BR&gt;
&lt;FONT SIZE=&quot;-1&quot;&gt;メールサーバ：&lt;INPUT TYPE=&quot;text&quot; style=&quot;width:200px;text-align:left;&quot; VALUE=&quot;&quot; NAME=&quot;server&quot;&gt;
&lt;BR&gt;
&lt;FONT SIZE=&quot;-1&quot;&gt;イメージファイル：&lt;INPUT TYPE=&quot;text&quot; style=&quot;width:100px;text-align:left;&quot; VALUE=&quot;&quot; NAME=&quot;image_file&quot;&gt;
&lt;BR&gt;

&lt;INPUT style=&quot;text-align:center&quot; TYPE=&quot;button&quot; VALUE=&quot;実行&quot; onClick=&quot;return sendmail_ck()&quot; ;&gt;
&lt;INPUT style=&quot;text-align:center&quot; TYPE=&quot;reset&quot; VALUE=&quot;クリア&quot;&gt;
&lt;/FORM&gt;
&lt;/BODY&gt;
&lt;/HTML&gt;
</pre>]]>
    </content:encoded>
      </item>
        <item rdf:about="http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20pepogmail4pic">
    <title>chobit_prog pepogmail4pic</title>
    <link>http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20pepogmail4pic</link>
    <dc:identifier>chobit_prog pepogmail4pic</dc:identifier>
    <dc:date>2012-10-10T07:05:40+09:00</dc:date>
        <description>
      <![CDATA[== pepogmail4pic
{{{ GoogleAdsense
&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client=&quot;pub-8866927345406277&quot;;
google_ad_host=&quot;pub-9941151214016196&quot;;
googl]]>
    </description>
    <content:encoded>
      <![CDATA[<h2 id="h2-pepogmail4pic">pepogmail4pic</h2><script type="text/javascript"><!--
google_ad_client="pub-8866927345406277";google_ad_host="pub-9941151214016196";google_alternate_color="FFFFFF";google_ad_width=468;google_ad_height=60;google_ad_format="468x60_as";google_ad_type="text_image";google_color_border="003399";google_color_bg="EEEEEE";google_color_link="0000FF";google_color_url="0000FF";google_color_text="000000";google_ad_host = "pub-9941151214016196";
//-->
</script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script><h3 id="h3-.E6.9C.80.E5.88.9D.E3.81.AB">最初に</h3><p>pepogmail4picとは<a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a>-0.60以降に収録されているUSB接続のWEBカメラで動画を取得してメールプログラムを起動する、ちょっとしたプログラムです。
</p><p>pepogmail4dioから起動されるプログラムで例えばSubjectに『dio_get 9』を設定して監視用gmailのアドレスへ送信すると数秒の動画を記録、添付メールで返信する事が出来ます。
</p><p><a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a>に収録されているプログラムを必要とするので単独では動作しませんが、現地のイベント＆アクションでペットや制御機器の動画で遠隔地の状態監視や防犯などのプログラムに応用出来ると思います。
</p><p>更新履歴
</p><p>2012.7.11：ファーストリリース
</p><p>ｏ pepogmail4dioからUSB接続のWEBカメラで静止画を取得してメールプログラムを起動できるようにした。
</p><p>2012.10.7：タイマー値などチューニング
</p><p>ｏ 動画を取得してメールプログラムを起動できるようにした。
<pre>
<B><FONT COLOR="#5F9EA0">#!/bin/sh
</FONT></B><I><FONT COLOR="#B22222"># licence GPLv2 ; this scripts designed by IZAMUKARERA 2012.7.11 update 2012.10.7
</FONT></I><I><FONT COLOR="#B22222"># pepogmail4pic ; get video or jpeg &amp; send mail
</FONT></I><I><FONT COLOR="#B22222"># pepogmail4pic mail_to subject message
</FONT></I><I><FONT COLOR="#B22222"># wget_mail.sh $1:mail_to, $2:subject, $3:message ,$4:image.mp4
</FONT></I>
<I><FONT COLOR="#B22222">#IMAGE=remote_hand.jpeg
</FONT></I>IMAGE=remote_hand.mp4
OPTION=<B><FONT COLOR="#BC8F8F">&quot;-t 8&quot;</FONT></B>
WORKDIR=/var/www/html/remote-hand/tmp
WORKIMAGE=${WORKDIR}/${IMAGE}
WGETMAIL=/pepolinux/wget_mail.sh
MAIL_TO=$1
<B><FONT COLOR="#A020F0">if</FONT></B> [ $<I><FONT COLOR="#B22222"># = 0 ];then
</FONT></I>  <B><FONT COLOR="#A020F0">echo</FONT></B> <B><FONT COLOR="#BC8F8F">&quot;usage :$0 mail_to | subject | message&quot;</FONT></B>
  <B><FONT COLOR="#A020F0">exit</FONT></B>
<B><FONT COLOR="#A020F0">fi</FONT></B>
[ ! -z $2 ] &amp;&amp; SUBJECT=<B><FONT COLOR="#BC8F8F">&quot;$2&quot;</FONT></B>
[ -z $2 ] &amp;&amp; SUBJECT=<B><FONT COLOR="#BC8F8F">&quot;remote_hand+picture&quot;</FONT></B>
[ ! -z $3 ] &amp;&amp; MESSAGE=<B><FONT COLOR="#BC8F8F">&quot;$3&quot;</FONT></B>
[ -z $3 ] &amp;&amp; MESSAGE=<B><FONT COLOR="#BC8F8F">&quot;remote_hand+picture&quot;</FONT></B>
prog=peposendmail4pic
pidfile=/var/run/$prog.pid
error(){
  [ -e $WORKIMAGE ] &amp;&amp; rm -f $WORKIMAGE
  [ -e $pidfile ] &amp;&amp; rm -f $pidfile
  <B><FONT COLOR="#A020F0">exit</FONT></B> 0
}
<B><FONT COLOR="#A020F0">trap</FONT></B> error SIGINT SIGTERM SIGHUP SIGKILL

<B><FONT COLOR="#A020F0">while</FONT></B> [ -e ${pidfile} ]
<B><FONT COLOR="#A020F0">do</FONT></B>
  msleep 100
<B><FONT COLOR="#A020F0">done</FONT></B>

VIDEO=/dev/video
<B><FONT COLOR="#A020F0">if</FONT></B> [ -e <B><FONT COLOR="#BC8F8F">&quot;$VIDEO&quot;</FONT></B> ];<B><FONT COLOR="#A020F0">then</FONT></B>
  <B><FONT COLOR="#A020F0">echo</FONT></B> -en $$ &gt;$pidfile
  [ -e $WORKIMAGE ] &amp;&amp; rm -f $WORKIMAGE
  ffmpeg $OPTION -f video4linux2 -s 640x480 -i /dev/video0 -y $WORKIMAGE &gt;/dev/null 2&gt;&amp;1
  msleep 1000
  <B><FONT COLOR="#A020F0">if</FONT></B> [ ! -e $WORKIMAGE ];<B><FONT COLOR="#A020F0">then</FONT></B>
    [ -e ${pidfile} ] &amp;&amp; rm -f ${pidfile}
    <B><FONT COLOR="#A020F0">exit</FONT></B> -1
  <B><FONT COLOR="#A020F0">fi</FONT></B>
<B><FONT COLOR="#A020F0">else</FONT></B>
  <B><FONT COLOR="#A020F0">echo</FONT></B> <B><FONT COLOR="#BC8F8F">&quot;Video device is not connected -&gt; $VIDEO&quot;</FONT></B>
  [ -e ${pidfile} ] &amp;&amp; rm -f ${pidfile}
  <B><FONT COLOR="#A020F0">exit</FONT></B> -1
<B><FONT COLOR="#A020F0">fi</FONT></B>
<B><FONT COLOR="#A020F0">if</FONT></B> [ -e $WORKIMAGE ];<B><FONT COLOR="#A020F0">then</FONT></B>
  $WGETMAIL $MAIL_TO $SUBJECT $MESSAGE $IMAGE
  rm -f $WORKIMAGE
  rm -f ${pidfile}
<B><FONT COLOR="#A020F0">fi</FONT></B>
</pre></p>]]>
    </content:encoded>
      </item>
        <item rdf:about="http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20pepogmail4dio">
    <title>chobit_prog pepogmail4dio</title>
    <link>http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20pepogmail4dio</link>
    <dc:identifier>chobit_prog pepogmail4dio</dc:identifier>
    <dc:date>2012-10-08T12:32:34+09:00</dc:date>
        <description>
      <![CDATA[== pepogmail4dio
{{{ GoogleAdsense
&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client=&quot;pub-8866927345406277&quot;;
google_ad_host=&quot;pub-9941151214016196&quot;;
googl]]>
    </description>
    <content:encoded>
      <![CDATA[<h2 id="h2-pepogmail4dio">pepogmail4dio</h2><script type="text/javascript"><!--
google_ad_client="pub-8866927345406277";google_ad_host="pub-9941151214016196";google_alternate_color="FFFFFF";google_ad_width=468;google_ad_height=60;google_ad_format="468x60_as";google_ad_type="text_image";google_color_border="003399";google_color_bg="EEEEEE";google_color_link="0000FF";google_color_url="0000FF";google_color_text="000000";google_ad_host = "pub-9941151214016196";
//-->
</script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script><h3 id="h3-.E6.9C.80.E5.88.9D.E3.81.AB">最初に</h3><p>pepogmail4dioとは<a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a>-0.52以降に収録されているwgetでgmailの新着メールを定期的にチェックして、シリアルDIOボードの各ポートへの書き込みや０～７チャンネルの入力ポート情報をメールしてくれる、ちょっとしたプログラムです。
</p><p><a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a>に収録されているプログラムを必要とするので単独では動作しませんが、シリアル経由でコマンドのやり取りで制御する機器やボードのプログラムに応用出来ると思います。
</p><p>usage：メールの件名に入力ポートの状態通知メール：『dio』
</p><p>出力ポートチャンネル０へ『１』writeライト：『dio 0 1』など
</p><p>更新履歴
</p><p>2011.12.7：ファーストリリース
</p><p>2011.12.11
</p><p>o ネットワーク遅延時間による揺れを自動補正するようにに変更
</p><p>o ＤＩＯのライトコマンドの結果を入力全ポート情報で返信するよう変更
</p><p>現在のバージョンではｗｇｅｔを使い新着メール到着時間と現在時間とネットワーク遅延時間による揺れを変数で補正して検出しているこの為コマンドが１０％以上の確立で不実行となる
</p><p>これを出力ポート６本を入力ポート端子へジャンパ接続すればライトコマンドの結果を返信メールで良否が判定出来る
</p><p>2011.12.11現在、携帯（ＤＯＣＯＭＯ）からコマンドのメール送信で、ＬＯＯＰ変数：１０秒、ＪＩＴＴＥＲ変数：７秒とした時に１０回に１回位失敗する
</p><p>2011.12.16
</p><p>o 件名がマッチしなくてもＤＩＯ入力情報を返信していたバグを修正
</p><p>2012.1.19
</p><p>o gmail新着チェック方法を強化してよりDIOコマンドが確実になった
</p><p>o ＤＩＯ出力コマンドとメールを多重化出来るようにした、これにより下記のようなコマンドの多重化と入力ポート情報のメール返信が同時実行できるようになった
</p><p>dio 1 1 60000 &lt;= 出力ポート1番を60秒オン
</p><p>2012.1.24
</p><p>o メール応答分の入力端子エイリアス名が正しく参照出来ないバグ修正
</p><p>2012.3.7
</p><p>ＤＩＯ操作キーワードのマッチングチェック変更（キーワードのマッチパターンとlengthをＡＮＤでチェック）
</p><p>2012.3.11
</p><p>o pepodiodのバージョンＵＰに伴い１５ビット入出力全ての情報を返信するようにした
</p><p>2012.3.29
</p><p>o DIO入力端子のカウンターを取得出来るように機能UP
</p><p>2012.10.8
</p><p>o pepogmail4picと連携『dio_get 9』で動画の取得が出来るように機能UP
</p><p>例:menud11のKey Wordで設定した『dio_get』で入力ポート１番目の情報を取得する
</p><p>送信件名：dio_get 1
</p><p>以下返信メール内容
</p><p>件名：remote-hand dio report
</p><p>本文：
</p><p>うさぎ小屋の扉=high
</p><p>dio0high
</p><p>Reset 2012/03/30 05:19:57
</p><p>Update 2012/03/30 05:22:50
</p><p>Count 2
</p><p><a href="http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog+pepogmail4dio">http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog+pepogmail4dio</a>
</p><p>2012.10.8 by.Yamauchi Isamu also IZAMUKARERA
</p><pre>
<B><FONT COLOR="#5F9EA0">#!/bin/sh
</FONT></B><I><FONT COLOR="#B22222"># pepogmail4dio ; get mail &amp; dio actions
</FONT></I><I><FONT COLOR="#B22222"># licence GPLv2 ; this scripts designed by IZAMUKARERA 2011.11.28 update 2012.10.7
</FONT></I><B><FONT COLOR="#A020F0">PATH</FONT></B>=$<B><FONT COLOR="#A020F0">PATH</FONT></B>:/usr/local/bin:/usr/local/sbin
RETRYTIME=10
RETRY=2
ALLOW_FROM=”all@pepolinux.local”
WORKDIR=/var/www/html/remote-hand/tmp
CONF=<B><FONT COLOR="#BC8F8F">&quot;$WORKDIR/.pepogmail4dio.conf&quot;</FONT></B>
USERAGENT=<B><FONT COLOR="#BC8F8F">&quot;Chrome/15.0.874.121&quot;</FONT></B>k
SUBJECT=<B><FONT COLOR="#BC8F8F">&quot;remote-hand+dio+report&quot;</FONT></B>
WORK=$WORKDIR/.wget_tmp
tWORK=$WORKDIR/.wget_tmp.tmp
tAWK=$WORKDIR/.wget_awk.tmp
DIRD=$WORKDIR/.di_read_data
DOWD=$WORKDIR/.do_write_data
ALIAS_DI=$WORKDIR/.alias_di
ALIAS_DO=$WORKDIR/.alias_do
DIOCTL=<B><FONT COLOR="#BC8F8F">&quot;/usr/local/bin/pepodioctl&quot;</FONT></B>
DIOEXEC=<B><FONT COLOR="#BC8F8F">&quot;/usr/local/bin/pepodiodexec&quot;</FONT></B>
DIOCMD_DIO=<B><FONT COLOR="#BC8F8F">&quot;$WORKDIR/.pepogmail4dioexec&quot;</FONT></B>
DIOCMD_MAIL=<B><FONT COLOR="#BC8F8F">&quot;$WORKDIR/.pepogmail4mailexec&quot;</FONT></B>
GMAILIMAGE=/usr/local/bin/pepogmail4pic
MATCHDIO=<B><FONT COLOR="#BC8F8F">&quot;dio&quot;</FONT></B>
GETSIZE=<B><FONT COLOR="#BC8F8F">&quot;1k&quot;</FONT></B>
prog=pepogmail4dio
pidfile=/var/run/$prog.pid
<B><FONT COLOR="#A020F0">echo</FONT></B> -en $$ &gt;$pidfile
error(){
  [ -e $DIOCMD_DIO ] &amp;&amp; rm -f $DIOCMD_DIO
  [ -e $DIOCMD_MAIL ] &amp;&amp; rm -f $DIOCMD_MAIL
  [ -e ${WORK} ] &amp;&amp; rm -f ${WORK}
  [ -e ${tWORK} ] &amp;&amp; rm -f ${tWORK}
  [ -e ${tAWK} ] &amp;&amp; rm -f ${tAWK}
  <B><FONT COLOR="#A020F0">exit</FONT></B> 0
}
<B><FONT COLOR="#A020F0">trap</FONT></B> error SIGTERM SIGHUP SIGKILL
exec_dio() {
<I><FONT COLOR="#B22222"># dio write &amp; exec command
</FONT></I><I><FONT COLOR="#B22222"># exec_dio message_id diocmd ch 0|1 [time]
</FONT></I>  local pid CH
  [ ! -z $3 ] &amp;&amp; CH=$(($3 - 1))
  pid=`<B><FONT COLOR="#A020F0">echo</FONT></B> $1 | cut -c 1-10`
  CMDDIO=${DIOCMD_DIO}.${pid}
  CMDMAIL=${DIOCMD_MAIL}.${pid}
  <B><FONT COLOR="#A020F0">if</FONT></B> [ $<I><FONT COLOR="#B22222"># -gt 3 ];then
</FONT></I><I><FONT COLOR="#B22222"># dio write
</FONT></I>    cat &gt;${CMDDIO}&lt;&lt;END
<B><FONT COLOR="#5F9EA0">#!/bin/sh
</FONT></B><B><FONT COLOR="#A020F0">PATH</FONT></B>=$<B><FONT COLOR="#A020F0">PATH</FONT></B>:/usr/local/bin:/usr/local/sbin
${DIOCTL} $CH $4 $5
rm -f $CMDDIO
END
    chmod +x ${CMDDIO}
    ${DIOEXEC} ${CMDDIO}
  <B><FONT COLOR="#A020F0">fi</FONT></B>
<I><FONT COLOR="#B22222"># dio read &amp; send mail
</FONT></I>  msleep 2000
  [ -e $DIRD ] &amp;&amp; . $DIRD
  [ -e $DOWD ] &amp;&amp; . $DOWD
  [ -e $ALIAS_DI ] &amp;&amp; . $ALIAS_DI
  [ -e $ALIAS_DO ] &amp;&amp; . $ALIAS_DO
  [ -e $tWORK ] &amp;&amp; rm -f $tWORK &amp;&amp; touch $tWORK || touch $tWORK
  <B><FONT COLOR="#A020F0">for</FONT></B> n <B><FONT COLOR="#A020F0">in</FONT></B> 0 1 2 3 4 5 6 7;<B><FONT COLOR="#A020F0">do</FONT></B>
    DI[$n]=<B><FONT COLOR="#BC8F8F">&quot;none&quot;</FONT></B>
    [ <B><FONT COLOR="#BC8F8F">&quot;${di[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;1&quot;</FONT></B> ] &amp;&amp; DI[$n]=<B><FONT COLOR="#BC8F8F">&quot;high&quot;</FONT></B>
    [ <B><FONT COLOR="#BC8F8F">&quot;${di[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;0&quot;</FONT></B> ] &amp;&amp; DI[$n]=<B><FONT COLOR="#BC8F8F">&quot;low&quot;</FONT></B>
    [ -z <B><FONT COLOR="#BC8F8F">&quot;${alias_di[$n]}&quot;</FONT></B> ] &amp;&amp; alias_di[$n]=<B><FONT COLOR="#BC8F8F">&quot;入力&quot;</FONT></B>`expr $n + 1`
    <B><FONT COLOR="#A020F0">echo</FONT></B> -en <B><FONT COLOR="#BC8F8F">&quot;${alias_di[$n]}=${DI[$n]}\r\n&quot;</FONT></B> &gt;&gt;$tWORK
  <B><FONT COLOR="#A020F0">done</FONT></B>
  <B><FONT COLOR="#A020F0">for</FONT></B> n <B><FONT COLOR="#A020F0">in</FONT></B> 0 1 2 3 4 5;<B><FONT COLOR="#A020F0">do</FONT></B>
    DO[$n]=<B><FONT COLOR="#BC8F8F">&quot;none&quot;</FONT></B>
    [ <B><FONT COLOR="#BC8F8F">&quot;${do[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;1&quot;</FONT></B> ] &amp;&amp; DO[$n]=<B><FONT COLOR="#BC8F8F">&quot;high&quot;</FONT></B>
    [ <B><FONT COLOR="#BC8F8F">&quot;${do[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;0&quot;</FONT></B> ] &amp;&amp; DO[$n]=<B><FONT COLOR="#BC8F8F">&quot;low&quot;</FONT></B>
    [ -z <B><FONT COLOR="#BC8F8F">&quot;${alias_do[$n]}&quot;</FONT></B> ] &amp;&amp; alias_do[$n]=<B><FONT COLOR="#BC8F8F">&quot;出力&quot;</FONT></B>`expr $n + 1`
    <B><FONT COLOR="#A020F0">echo</FONT></B> -en <B><FONT COLOR="#BC8F8F">&quot;${alias_do[$n]}=${DO[$n]}\r\n&quot;</FONT></B> &gt;&gt;$tWORK
  <B><FONT COLOR="#A020F0">done</FONT></B>
  <B><FONT COLOR="#A020F0">if</FONT></B> [ $<I><FONT COLOR="#B22222"># = 3 ];then
</FONT></I><I><FONT COLOR="#B22222"># read di only ?
</FONT></I>    n=$CH
    <B><FONT COLOR="#A020F0">if</FONT></B>  [ <B><FONT COLOR="#BC8F8F">&quot;$n&quot;</FONT></B> = 8 ];<B><FONT COLOR="#A020F0">then</FONT></B>
      cat &gt;${CMDMAIL}&lt;&lt;END
<B><FONT COLOR="#5F9EA0">#!/bin/sh
</FONT></B><B><FONT COLOR="#A020F0">PATH</FONT></B>=$<B><FONT COLOR="#A020F0">PATH</FONT></B>:/usr/local/bin:/usr/local/sbin
${GMAILIMAGE} ${MAILFROM}
rm -rf ${CMDMAIL}
END
      chmod +x ${CMDMAIL}
      ${DIOEXEC} ${CMDMAIL}
      <B><FONT COLOR="#A020F0">return</FONT></B>
    elif [ $n -gt 8 -o $n -lt 0 ];<B><FONT COLOR="#A020F0">then</FONT></B>
      <B><FONT COLOR="#A020F0">return</FONT></B>
    <B><FONT COLOR="#A020F0">else</FONT></B>
      [ -z <B><FONT COLOR="#BC8F8F">&quot;${alias_di[$n]}&quot;</FONT></B> ] &amp;&amp; alias_di[$n]=<B><FONT COLOR="#BC8F8F">&quot;入力&quot;</FONT></B>`expr $n + 1`
      <B><FONT COLOR="#A020F0">echo</FONT></B> -en <B><FONT COLOR="#BC8F8F">&quot;${alias_di[$n]}=${DI[$n]}\r\n&quot;</FONT></B> &gt;$tWORK
      CT=`ls -a $WORKDIR/|egrep <B><FONT COLOR="#BC8F8F">&quot;.dio[$n][low|high]+.count+$&quot;</FONT></B>`
      <B><FONT COLOR="#A020F0">if</FONT></B> [ `<B><FONT COLOR="#A020F0">echo</FONT></B> $CT | wc -w` != 0 ];<B><FONT COLOR="#A020F0">then</FONT></B>
        <B><FONT COLOR="#A020F0">for</FONT></B> DIO <B><FONT COLOR="#A020F0">in</FONT></B> $CT ; <B><FONT COLOR="#A020F0">do</FONT></B>
          DIOCONT=$WORKDIR/$DIO
          <B><FONT COLOR="#A020F0">echo</FONT></B> $DIO| awk '{gsub(<B><FONT COLOR="#BC8F8F">&quot;\\.&quot;</FONT></B>,<B><FONT COLOR="#BC8F8F">&quot;&quot;</FONT></B>);sub(<B><FONT COLOR="#BC8F8F">&quot;count&quot;</FONT></B>,<B><FONT COLOR="#BC8F8F">&quot;&quot;</FONT></B>);printf(<B><FONT COLOR="#BC8F8F">&quot;%s\r\n&quot;</FONT></B>,$0)}' &gt;&gt;$tWORK
          cat $DIOCONT | awk '
            /^Reset/{printf(<B><FONT COLOR="#BC8F8F">&quot;%s\r\n&quot;</FONT></B>,$0)}
            /^Update/{printf(<B><FONT COLOR="#BC8F8F">&quot;%s\r\n&quot;</FONT></B>,$0)}
            /^<I><FONT COLOR="#B22222">#/{sub(&quot;#&quot;,&quot;Count &quot;);printf(&quot;%s\r\n\r\n&quot;,$0)}
</FONT></I>          ' &gt;&gt;$tWORK
        <B><FONT COLOR="#A020F0">done</FONT></B>
      <B><FONT COLOR="#A020F0">fi</FONT></B>
    <B><FONT COLOR="#A020F0">fi</FONT></B>
  <B><FONT COLOR="#A020F0">fi</FONT></B>
  <B><FONT COLOR="#A020F0">echo</FONT></B> -n <B><FONT COLOR="#BC8F8F">&quot;{gsub(/ /,\&quot;+\&quot;,\$0);printf \$0}&quot;</FONT></B> &gt;$tAWK
  MESSAGE=`cat $tWORK | awk -f $tAWK`
  WGETMAIL=/pepolinux/wget_mail.sh
cat &gt;${CMDMAIL}&lt;&lt;END
<B><FONT COLOR="#5F9EA0">#!/bin/sh
</FONT></B><B><FONT COLOR="#A020F0">PATH</FONT></B>=$<B><FONT COLOR="#A020F0">PATH</FONT></B>:/usr/local/bin:/usr/local/sbin
${WGETMAIL} ${MAILFROM} ${SUBJECT} ${MESSAGE}
rm -rf ${CMDMAIL}
END
  chmod +x ${CMDMAIL}
  ${DIOEXEC} ${CMDMAIL}
}
<B><FONT COLOR="#A020F0">while</FONT></B> true
<B><FONT COLOR="#A020F0">do</FONT></B>
  <B><FONT COLOR="#A020F0">while</FONT></B> true
  <B><FONT COLOR="#A020F0">do</FONT></B>
    <B><FONT COLOR="#A020F0">if</FONT></B> [ ! -e $CONF ];<B><FONT COLOR="#A020F0">then</FONT></B>
       LOOPTIME=10000
       <B><FONT COLOR="#A020F0">break</FONT></B>
    <B><FONT COLOR="#A020F0">fi</FONT></B>
    <B><FONT COLOR="#A020F0">if</FONT></B> [ -e $CONF ];<B><FONT COLOR="#A020F0">then</FONT></B>
      msleep 100
      . $CONF
      USER=$GMAILUSER
      PASSWORD=$GMAILPASSWORD
      MAILFROM=$PERMITMAIL
      JITTER=$JITTER
      LOOPTIME=`expr $LOOPTIME <B><FONT COLOR="#BC8F8F">&quot;*&quot;</FONT></B> 1000`
      MATCHMAIL=<B><FONT COLOR="#BC8F8F">&quot;&lt;email&gt;${MAILFROM}&quot;</FONT></B>
<I><FONT COLOR="#B22222"># all from address permit
</FONT></I>      MATCHDIO=$KEYWORD
    <B><FONT COLOR="#A020F0">fi</FONT></B>
    wget -Q $GETSIZE -T $RETRYTIME -t $RETRY -q --secure-protocol=TLSv1 --no-check-certificate --user-agent=${USERAGENT} https://mail.google.com/mail/feed/atom/unread --http-user=${USER} --http-password=${PASSWORD} --output-document=${WORK}
    [ -z ${WORK} ] &amp;&amp; <B><FONT COLOR="#A020F0">break</FONT></B>
    cat ${WORK} | head -n 20 &gt;${tWORK}
    NOW=`date -ud <B><FONT COLOR="#BC8F8F">&quot;${JITTER} second ago&quot;</FONT></B> +%Y-%m-%dT%H:%M:%S | cut -c 1-17`
    tNOW=`date -u +%Y-%m-%dT%H:%M:%S | cut -c 1-17`
    MATCHNOW=<B><FONT COLOR="#BC8F8F">&quot;&lt;issued&gt;${NOW}&quot;</FONT></B>
    tMATCHNOW=<B><FONT COLOR="#BC8F8F">&quot;&lt;issued&gt;${tNOW}&quot;</FONT></B>
    <B><FONT COLOR="#A020F0">echo</FONT></B> -n <B><FONT COLOR="#BC8F8F">&quot;BEGIN{I=\&quot;NO\&quot;};/${MATCHNOW}/{I=\&quot;YES\&quot;;exit};END{printf I}&quot;</FONT></B> &gt;${tAWK}
    NEW_YESNO=`cat ${tWORK}|awk -f ${tAWK}`
    <B><FONT COLOR="#A020F0">echo</FONT></B> -n <B><FONT COLOR="#BC8F8F">&quot;BEGIN{I=\&quot;NO\&quot;};/${tMATCHNOW}/{I=\&quot;YES\&quot;;exit};END{printf I}&quot;</FONT></B> &gt;${tAWK}
    tNEW_YESNO=`cat ${tWORK}|awk -f ${tAWK}`
    <B><FONT COLOR="#A020F0">echo</FONT></B> -n <B><FONT COLOR="#BC8F8F">&quot;BEGIN{I=\&quot;NO\&quot;};/$MATCHMAIL/{I=\&quot;YES\&quot;;exit};END{printf I}&quot;</FONT></B> &gt;${tAWK}
    FROM_YESNO=`cat ${tWORK}|awk -f ${tAWK}`
<I><FONT COLOR="#B22222"># all from address permit
</FONT></I>   <B><FONT COLOR="#A020F0">if</FONT></B> [ ${PERMITMAIL} = ${ALLOW_FROM} ];<B><FONT COLOR="#A020F0">then</FONT></B>
      FROM_YESNO=<B><FONT COLOR="#BC8F8F">&quot;YES&quot;</FONT></B>
   <B><FONT COLOR="#A020F0">fi</FONT></B>
    <B><FONT COLOR="#A020F0">if</FONT></B> [ ${NEW_YESNO} = <B><FONT COLOR="#BC8F8F">&quot;YES&quot;</FONT></B> -o ${tNEW_YESNO} = <B><FONT COLOR="#BC8F8F">&quot;YES&quot;</FONT></B> -a ${FROM_YESNO} = <B><FONT COLOR="#BC8F8F">&quot;YES&quot;</FONT></B> ];<B><FONT COLOR="#A020F0">then</FONT></B>
      newMESSAGEID=`cat ${tWORK} | grep <B><FONT COLOR="#BC8F8F">&quot;message_id=&quot;</FONT></B>|awk -F <B><FONT COLOR="#BC8F8F">&quot;=&quot;</FONT></B> '{gsub(<B><FONT COLOR="#BC8F8F">&quot;&amp;amp;view&quot;</FONT></B>,<B><FONT COLOR="#BC8F8F">&quot;&quot;</FONT></B>,$5);print $5}'`
      [ <B><FONT COLOR="#BC8F8F">&quot;$oldMESSAGEID&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;$newMESSAGEID&quot;</FONT></B> ] &amp;&amp; <B><FONT COLOR="#A020F0">break</FONT></B> || oldMESSAGEID=$newMESSAGEID
      <B><FONT COLOR="#A020F0">echo</FONT></B> -n <B><FONT COLOR="#BC8F8F">&quot;/email/{gsub(\&quot;&lt;email&gt;\&quot;,\&quot;\&quot;,\$0);gsub(\&quot;&lt;/email&gt;\&quot;,\&quot;\&quot;,\$0);exit};END{printf \$0}&quot;</FONT></B> &gt;${tAWK}
      MAILFROM=`cat ${tWORK}| grep <B><FONT COLOR="#BC8F8F">&quot;&lt;email&gt;&quot;</FONT></B> | awk -f ${tAWK}`
      <B><FONT COLOR="#A020F0">echo</FONT></B> -n <B><FONT COLOR="#BC8F8F">&quot;/${MATCHDIO}/{gsub(\&quot;&lt;/title&gt;\&quot;,\&quot;\&quot;,\$0);gsub(\&quot;&lt;title&gt;\&quot;,\&quot;\&quot;,\$0);exit};END{printf \$0}&quot;</FONT></B> &gt;${tAWK}
      CMD=`cat ${tWORK}| grep <B><FONT COLOR="#BC8F8F">&quot;&lt;title&gt;&quot;</FONT></B> | grep ${MATCHDIO} | awk -f ${tAWK}`
      CMDCNT=`<B><FONT COLOR="#A020F0">echo</FONT></B> -en $CMD | grep ${MATCHDIO} | wc -c`
      [ ${CMDCNT} = 0 ] &amp;&amp; <B><FONT COLOR="#A020F0">break</FONT></B>
      CMD_ARG1_LEN=`<B><FONT COLOR="#A020F0">echo</FONT></B> ${CMD}|awk -F <B><FONT COLOR="#BC8F8F">&quot; &quot;</FONT></B> '{printf length($1)}'`
      MATCHDIO_LEN=`<B><FONT COLOR="#A020F0">echo</FONT></B> ${MATCHDIO}|awk -F <B><FONT COLOR="#BC8F8F">&quot; &quot;</FONT></B> '{printf length($1)}'`
      [ <B><FONT COLOR="#BC8F8F">&quot;${CMD_ARG1_LEN}&quot;</FONT></B> != <B><FONT COLOR="#BC8F8F">&quot;${MATCHDIO_LEN}&quot;</FONT></B> ] &amp;&amp; <B><FONT COLOR="#A020F0">break</FONT></B>
      exec_dio $newMESSAGEID ${CMD}
    <B><FONT COLOR="#A020F0">fi</FONT></B>
    msleep ${LOOPTIME}
    [ -e ${WORK} ] &amp;&amp; rm -f ${WORK}
    [ -e ${tWORK} ] &amp;&amp; rm -f ${tWORK}
    [ -e ${tAWK} ] &amp;&amp; rm -f ${tAWK}
  <B><FONT COLOR="#A020F0">done</FONT></B>
  msleep ${LOOPTIME}
<B><FONT COLOR="#A020F0">done</FONT></B>
</pre>]]>
    </content:encoded>
      </item>
        <item rdf:about="http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20pepowlan">
    <title>chobit_prog pepowlan</title>
    <link>http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20pepowlan</link>
    <dc:identifier>chobit_prog pepowlan</dc:identifier>
    <dc:date>2012-06-16T04:33:45+09:00</dc:date>
        <description>
      <![CDATA[== pepowlan
{{{ GoogleAdsense
&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client=&quot;pub-8866927345406277&quot;;
google_ad_host=&quot;pub-9941151214016196&quot;;
google_alt]]>
    </description>
    <content:encoded>
      <![CDATA[<h2 id="h2-pepowlan">pepowlan</h2><script type="text/javascript"><!--
google_ad_client="pub-8866927345406277";google_ad_host="pub-9941151214016196";google_alternate_color="FFFFFF";google_ad_width=468;google_ad_height=60;google_ad_format="468x60_as";google_ad_type="text_image";google_color_border="003399";google_color_bg="EEEEEE";google_color_link="0000FF";google_color_url="0000FF";google_color_text="000000";google_ad_host = "pub-9941151214016196";
//-->
</script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script><h3 id="h3-.E6.9C.80.E5.88.9D.E3.81.AB">最初に</h3><p>pepowlanとは<a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a>-0.57以降に収録されている無線LANアダプタをWEPで簡易的に動作させるちょっとしたプログラムです。
</p><p><a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a>に収録されているプログラムを必要とするので単独では動作しませんが、無線LANアダプタを試験的に利用するプログラムに応用出来ると思います。
</p><p>更新履歴
</p><p>2012.3.20：ファーストリリース
</p><pre>
<B><FONT COLOR="#5F9EA0">#!/bin/sh
</FONT></B><I><FONT COLOR="#B22222"># licence GPLv2 ; this scripts was designed by IZAMUKARERA 2012.3.19 update 2012.3.20
</FONT></I><I><FONT COLOR="#B22222"># pepowlan for daemon contorl Wireless Lan.
</FONT></I><I><FONT COLOR="#B22222"># configure file /etc/wlan/wlan.conf
</FONT></I><B><FONT COLOR="#A020F0">PATH</FONT></B>=$<B><FONT COLOR="#A020F0">PATH</FONT></B>:/usr/local/bin:/usr/local/sbin
CONF=/etc/wlan/wlan.conf
WORK=/var/tmp/pepowlan
prog=pepowlan
pidfile=/var/run/$prog.pid
<B><FONT COLOR="#A020F0">echo</FONT></B> -en $$ &gt;$pidfile
WAIT=3000
error () {
  [ -e $WORK ] &amp;&amp; rm -f $WORK
  [ ! -z $WLAN_YES ] &amp;&amp; ifconfig wlan0 down 2&gt;&amp;1
  <B><FONT COLOR="#A020F0">exit</FONT></B> 0
}
<B><FONT COLOR="#A020F0">trap</FONT></B> error SIGKILL SIGTERM SIGHUP SIGINT

<B><FONT COLOR="#A020F0">while</FONT></B> true ;<B><FONT COLOR="#A020F0">do</FONT></B>
  iwconfig &gt;$WORK 2&gt;&amp;1
  WLAN=`cat $WORK |grep wlan|wc -l`
  [ $WLAN != <B><FONT COLOR="#BC8F8F">&quot;0&quot;</FONT></B> ] &amp;&amp; WLAN_YES=<B><FONT COLOR="#BC8F8F">&quot;yes&quot;</FONT></B> || WLAN_YES=<B><FONT COLOR="#BC8F8F">&quot;no&quot;</FONT></B>
  <B><FONT COLOR="#A020F0">while</FONT></B> [ $WLAN_YES = <B><FONT COLOR="#BC8F8F">&quot;yes&quot;</FONT></B> ];<B><FONT COLOR="#A020F0">do</FONT></B>
    iwconfig &gt;$WORK 2&gt;&amp;1
    WLAN=`cat $WORK |grep wlan|grep off|wc -l`
    WLAN_BITRATE=`cat $WORK |grep <B><FONT COLOR="#BC8F8F">&quot;Bit Rate&quot;</FONT></B>|wc -l`
    <B><FONT COLOR="#A020F0">if</FONT></B> [ $WLAN != <B><FONT COLOR="#BC8F8F">&quot;0&quot;</FONT></B> ] || [ $WLAN_BITRATE = <B><FONT COLOR="#BC8F8F">&quot;0&quot;</FONT></B> ];<B><FONT COLOR="#A020F0">then</FONT></B>
      WLAN=<B><FONT COLOR="#BC8F8F">&quot;down&quot;</FONT></B>
    <B><FONT COLOR="#A020F0">else</FONT></B>
      WLAN=<B><FONT COLOR="#BC8F8F">&quot;up&quot;</FONT></B>
      <B><FONT COLOR="#A020F0">if</FONT></B> [ ! -z $GATEWAY ];<B><FONT COLOR="#A020F0">then</FONT></B>
        DEFAULT=`ip route |grep default|wc -l`
        [ $DEFAULT != <B><FONT COLOR="#BC8F8F">&quot;0&quot;</FONT></B> ] &amp;&amp; ip route del default
        msleep $WAIT
        ip route add default via $GATEWAY &gt;/dev/null 2&gt;&amp;1 || <B><FONT COLOR="#A020F0">break</FONT></B>
      <B><FONT COLOR="#A020F0">fi</FONT></B>
    <B><FONT COLOR="#A020F0">fi</FONT></B>
    <B><FONT COLOR="#A020F0">if</FONT></B> [ $WLAN = <B><FONT COLOR="#BC8F8F">&quot;down&quot;</FONT></B> ];<B><FONT COLOR="#A020F0">then</FONT></B>
      <B><FONT COLOR="#A020F0">if</FONT></B> [ ! -e $CONF ];<B><FONT COLOR="#A020F0">then</FONT></B>
        <B><FONT COLOR="#A020F0">break</FONT></B>
      <B><FONT COLOR="#A020F0">else</FONT></B>
        . $CONF
        msleep $WAIT
        [ ! -z $ESSID ] &amp;&amp; iwconfig wlan0 essid $ESSID &gt;/dev/null 2&gt;&amp;1 || <B><FONT COLOR="#A020F0">break</FONT></B>
        [ ! -z  $ENCKEY ] &amp;&amp; iwconfig wlan0 enc $ENCKEY &gt;/dev/null 2&gt;&amp;1 || <B><FONT COLOR="#A020F0">break</FONT></B>
        msleep $WAIT
        <B><FONT COLOR="#A020F0">if</FONT></B> [ ! -z $IP ] &amp;&amp; [ $IP = <B><FONT COLOR="#BC8F8F">&quot;dhcp&quot;</FONT></B> ];<B><FONT COLOR="#A020F0">then</FONT></B>
          killall dhclient &gt;/dev/null 2&gt;&amp;1
          msleep $WAIT
          dhclient wlan0 &gt;/dev/null 2&gt;&amp;1
        <B><FONT COLOR="#A020F0">fi</FONT></B>
        <B><FONT COLOR="#A020F0">if</FONT></B> [ ! -z $IP ] &amp;&amp; [ $IP != <B><FONT COLOR="#BC8F8F">&quot;dhcp&quot;</FONT></B> ];<B><FONT COLOR="#A020F0">then</FONT></B>
          [ ! -z $IP ] &amp;&amp; ifconfig wlan0 $IP up &gt;/dev/null 2&gt;&amp;1 || <B><FONT COLOR="#A020F0">break</FONT></B>
          msleep $WAIT
          <B><FONT COLOR="#A020F0">if</FONT></B> [ ! -z $NAMESERVER ];<B><FONT COLOR="#A020F0">then</FONT></B>
            cat&gt;/etc/resolv.conf&lt;&lt;END
; generated by /usr/local/bin/pepowlan script
search localdomain
nameserver $NAMESERVER
END
          <B><FONT COLOR="#A020F0">fi</FONT></B>
        <B><FONT COLOR="#A020F0">fi</FONT></B>
      <B><FONT COLOR="#A020F0">fi</FONT></B>
    <B><FONT COLOR="#A020F0">fi</FONT></B>
    [ -e $WORK ] &amp;&amp; rm -f $WORK
    msleep 10000
  <B><FONT COLOR="#A020F0">done</FONT></B>
  [ -e $WORK ] &amp;&amp; rm -f $WORK
  msleep 10000
<B><FONT COLOR="#A020F0">done</FONT></B>
</pre><h3 id="h3-.E8.A8.AD.E5.AE.9A.E3.83.95.E3.82.A1.E3.82.A4.E3.83.AB">設定ファイル</h3><pre>[root@ ]# cat /etc/wlan/wlan.conf 
# Wireless Lan configure file was designed by IZAMUKARERA pepolinux 2012.3.20
# set essid
ESSID=&quot;pepochan&quot;
# wepkey set
ENCKEY=&quot;0123456&quot;
# ip address set or dhcp
#IP=&quot;192.168.1.2/24&quot;
IP=&quot;dhcp&quot;
# set gateway
GATEWAY=&quot;192.168.1.1&quot;
# set nameserver
NAMESERVER=&quot;192.168.1.1&quot;
</pre>]]>
    </content:encoded>
      </item>
        <item rdf:about="http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20pepodiod">
    <title>chobit_prog pepodiod</title>
    <link>http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20pepodiod</link>
    <dc:identifier>chobit_prog pepodiod</dc:identifier>
    <dc:date>2012-03-29T10:29:34+09:00</dc:date>
        <description>
      <![CDATA[== pepodiod
{{{ GoogleAdsense
&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client=&quot;pub-8866927345406277&quot;;
google_ad_host=&quot;pub-9941151214016196&quot;;
google_alt]]>
    </description>
    <content:encoded>
      <![CDATA[<h2 id="h2-pepodiod">pepodiod</h2><script type="text/javascript"><!--
google_ad_client="pub-8866927345406277";google_ad_host="pub-9941151214016196";google_alternate_color="FFFFFF";google_ad_width=468;google_ad_height=60;google_ad_format="468x60_as";google_ad_type="text_image";google_color_border="003399";google_color_bg="EEEEEE";google_color_link="0000FF";google_color_url="0000FF";google_color_text="000000";google_ad_host = "pub-9941151214016196";
//-->
</script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script><h3 id="h3-.E6.9C.80.E5.88.9D.E3.81.AB">最初に</h3><p>pepodiodとは<a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a>-0.51以降に収録されているシリアルDIOボード各ポートのON/OFF状態をポーリング監視して予め設定されたプログラムを起動するちょっとしたプログラムです。
</p><p><a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a>に収録されているプログラムを必要とするので単独では動作しませんが、シリアル経由でコマンドのやり取りで制御する機器やボードのプログラムに応用出来ると思います。
</p><p>更新履歴
</p><p>2011.12.6
</p><p>０－７チャンネル８本分の入力ポートを一度に読み込むようにしたので処理速度がアップした。
</p><p>2012.1.11
</p><p>デバイス未接続状態から接続状態時に正常動作しないバクを修正
</p><p>2012.1.19
</p><p>ワークディレクトリを変更
</p><p>2012.2.21
</p><p>o ポーリングタイマーを２秒→１秒、他clean up
</p><p>2012.3.3
</p><p>DIOリードデータを８個同時にファイル書き込みするように変更
</p><p>2012.3.6
</p><p>o DIOリードデータ取得に失敗した時にイベントスクリプトを起動するバグを修正
</p><p>2012.3.12
</p><p>o pepodioctlのバージョンＵＰで入力情報１５ビットを処理できるように変更
</p><p>o 出力情報をファイルに一度に書き出すように変更
</p><p>o ＷＥＢＵＩのＡｊａｘ用ＪＳＯＮデータを作るようにした
</p><p>2012.3.27
</p><p>o ＤＩＯ８本の入力端子のhigh2lowとlow2highのカウンターをＪＳＯＮデータとして追加した
</p><p>下記よりダウンロードしてください
</p><p><a href="http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20pepodiod">http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20pepodiod</a>
</p><p>2012.3.29 by.Yamauchi Isamu also IZAMUKARERA. 
<pre>
<B><FONT COLOR="#5F9EA0">#!/bin/sh
</FONT></B><I><FONT COLOR="#B22222"># licence GPLv2 ; this scripts designed by IZAMUKARERA 2011.10.7 update 2012.3.27
</FONT></I><I><FONT COLOR="#B22222"># pepodiod for daemon contorl digital-Input to ANDDIO
</FONT></I>DIOCTL=<B><FONT COLOR="#BC8F8F">&quot;/usr/local/bin/pepodioctl 9&quot;</FONT></B>
USR_BIN=/usr/bin/dio
EXEC_CMD=/usr/local/bin/pepodiodexec
<B><FONT COLOR="#A020F0">PATH</FONT></B>=$<B><FONT COLOR="#A020F0">PATH</FONT></B>:/usr/local/bin:/usr/local/sbin
DIR=/var/www/html/remote-hand/tmp
DIORD=$DIR/.di_read_data
DIOWD=$DIR/.do_write_data
tDIORD=$DIR/.di_read_data.tmp
tDIOWD=$DIR/.do_write_data.tmp
JSONRD=$DIR/.di_read_data.json
tJSONRD=$DIR/.di_read_data.json.tmp
prog=pepodiod
pidfile=/var/run/$prog.pid
<B><FONT COLOR="#A020F0">echo</FONT></B> -en $$ &gt;$pidfile
POLLTIME=1000 
error(){
  [ -e $tDIORD ] &amp;&amp; rm -f $tDIORD
  [ -e $DIORD ] &amp;&amp; rm -f $DIORD
  [ -e $DIOWD ] &amp;&amp; rm -f $DIOWD
  [ -e $tDIOWD ] &amp;&amp; rm -f $tDIOWD
  [ -e <B><FONT COLOR="#BC8F8F">&quot;$JSONRD&quot;</FONT></B> ] &amp;&amp; rm -f $JSONRD
  [ -e <B><FONT COLOR="#BC8F8F">&quot;$tJSONRD&quot;</FONT></B> ] &amp;&amp; rm -f $tJSONRD
  [ -e $pidfile ] &amp;&amp; rm -f $pidfile
  <B><FONT COLOR="#A020F0">exit</FONT></B> 0
}
exec_cmd() {
<I><FONT COLOR="#B22222"># dio read &amp; High or Low exec command
</FONT></I><I><FONT COLOR="#B22222"># exec_dio ch low or high
</FONT></I>  <B><FONT COLOR="#A020F0">echo</FONT></B> ${USR_BIN}${1}${2} &gt;/dev/tty1
  <B><FONT COLOR="#A020F0">if</FONT></B> [ -e ${USR_BIN}${1}${2} ];<B><FONT COLOR="#A020F0">then</FONT></B>
    $EXEC_CMD ${USR_BIN}${1}${2} &gt;/dev/null 2&gt;&amp;1
  <B><FONT COLOR="#A020F0">fi</FONT></B>
}
<B><FONT COLOR="#A020F0">trap</FONT></B> error SIGTERM SIGHUP SIGKILL

<I><FONT COLOR="#B22222"># dio read data initialize
</FONT></I>RD=<B><FONT COLOR="#BC8F8F">&quot;-1&quot;</FONT></B>
RD=`$DIOCTL 2&gt;&amp;1`
<B><FONT COLOR="#A020F0">if</FONT></B> [ $RD != <B><FONT COLOR="#BC8F8F">&quot;-1&quot;</FONT></B> ];<B><FONT COLOR="#A020F0">then</FONT></B>
  <B><FONT COLOR="#A020F0">for</FONT></B> i <B><FONT COLOR="#A020F0">in</FONT></B> 1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192; <B><FONT COLOR="#A020F0">do</FONT></B>
    <B><FONT COLOR="#A020F0">case</FONT></B> <B><FONT COLOR="#BC8F8F">&quot;$i&quot;</FONT></B> <B><FONT COLOR="#A020F0">in</FONT></B>
      1) tRD=<B><FONT COLOR="#BC8F8F">&quot;$(($((0x$RD &amp; 1)) / 1))&quot;</FONT></B> ;j=0 ;;
      2) tRD=<B><FONT COLOR="#BC8F8F">&quot;$(($((0x$RD &amp; 2)) / 2))&quot;</FONT></B> ;j=1 ;;
      4) tRD=<B><FONT COLOR="#BC8F8F">&quot;$(($((0x$RD &amp; 4)) / 4))&quot;</FONT></B> ;j=2 ;;
      8) tRD=<B><FONT COLOR="#BC8F8F">&quot;$(($((0x$RD &amp; 8)) / 8))&quot;</FONT></B> ;j=3 ;;
      16) tRD=<B><FONT COLOR="#BC8F8F">&quot;$(($((0x$RD &amp; 16)) / 16))&quot;</FONT></B> ;j=4 ;;
      32) tRD=<B><FONT COLOR="#BC8F8F">&quot;$(($((0x$RD &amp; 32)) / 32))&quot;</FONT></B> ;j=5 ;;
      64) tRD=<B><FONT COLOR="#BC8F8F">&quot;$(($((0x$RD &amp; 64)) / 64))&quot;</FONT></B> ;j=6 ;;
      128) tRD=<B><FONT COLOR="#BC8F8F">&quot;$(($((0x$RD &amp; 128)) / 128))&quot;</FONT></B> ;j=7 ;;
      256) tRD=<B><FONT COLOR="#BC8F8F">&quot;$(($((0x$RD &amp; 256)) / 256))&quot;</FONT></B> ;j=8 ;;
      512) tRD=<B><FONT COLOR="#BC8F8F">&quot;$(($((0x$RD &amp; 512)) / 512))&quot;</FONT></B> ;j=9 ;;
      1024) tRD=<B><FONT COLOR="#BC8F8F">&quot;$(($((0x$RD &amp; 1024)) / 1024))&quot;</FONT></B> ;j=10 ;;
      2048) tRD=<B><FONT COLOR="#BC8F8F">&quot;$(($((0x$RD &amp; 2048)) / 2048))&quot;</FONT></B> ;j=11 ;;
      4096) tRD=<B><FONT COLOR="#BC8F8F">&quot;$(($((0x$RD &amp; 4096)) / 4096))&quot;</FONT></B> ;j=12 ;;
      8192) tRD=<B><FONT COLOR="#BC8F8F">&quot;$(($((0x$RD &amp; 8192)) / 8192))&quot;</FONT></B> ;j=13 ;;
    <B><FONT COLOR="#A020F0">esac</FONT></B>
    old[$j]=$tRD
  <B><FONT COLOR="#A020F0">done</FONT></B>
<B><FONT COLOR="#A020F0">else</FONT></B>
  <B><FONT COLOR="#A020F0">for</FONT></B> i <B><FONT COLOR="#A020F0">in</FONT></B> 0 1 2 3 4 5 6 7 8 9 10 11 12 13;<B><FONT COLOR="#A020F0">do</FONT></B>
    old[$i]=<B><FONT COLOR="#BC8F8F">&quot;-1&quot;</FONT></B>
  <B><FONT COLOR="#A020F0">done</FONT></B>
<B><FONT COLOR="#A020F0">fi</FONT></B>
cat&gt;$tDIORD&lt;&lt;END
di[0]=${old[0]}
di[1]=${old[1]}
di[2]=${old[2]}
di[3]=${old[3]}
di[4]=${old[4]}
di[5]=${old[5]}
di[6]=${old[6]}
di[7]=${old[7]}
END
mv $tDIORD $DIORD
cat&gt;$tDIOWD&lt;&lt;END
<B><FONT COLOR="#A020F0">do</FONT></B>[0]=${old[8]}
<B><FONT COLOR="#A020F0">do</FONT></B>[1]=${old[9]}
<B><FONT COLOR="#A020F0">do</FONT></B>[2]=${old[10]}
<B><FONT COLOR="#A020F0">do</FONT></B>[3]=${old[11]}
<B><FONT COLOR="#A020F0">do</FONT></B>[4]=${old[12]}
<B><FONT COLOR="#A020F0">do</FONT></B>[5]=${old[13]}
END

mv $tDIOWD $DIOWD
chown apache.apache $DIORD
chown apache.apache $DIOWD
<I><FONT COLOR="#B22222"># loop for dio polling read 
</FONT></I><B><FONT COLOR="#A020F0">while</FONT></B> true
<B><FONT COLOR="#A020F0">do</FONT></B>
  RD=<B><FONT COLOR="#BC8F8F">&quot;-1&quot;</FONT></B>
  RD=`$DIOCTL 2&gt;&amp;1`
  <B><FONT COLOR="#A020F0">if</FONT></B> [ <B><FONT COLOR="#BC8F8F">&quot;$RD&quot;</FONT></B> != <B><FONT COLOR="#BC8F8F">&quot;-1&quot;</FONT></B> ];<B><FONT COLOR="#A020F0">then</FONT></B>
     <B><FONT COLOR="#A020F0">for</FONT></B> i <B><FONT COLOR="#A020F0">in</FONT></B> 1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384; <B><FONT COLOR="#A020F0">do</FONT></B>
    <B><FONT COLOR="#A020F0">case</FONT></B> <B><FONT COLOR="#BC8F8F">&quot;$i&quot;</FONT></B> <B><FONT COLOR="#A020F0">in</FONT></B>
      1) tRD=<B><FONT COLOR="#BC8F8F">&quot;$(($((0x$RD &amp; 1)) / 1))&quot;</FONT></B> ;j=0 ;;
      2) tRD=<B><FONT COLOR="#BC8F8F">&quot;$(($((0x$RD &amp; 2)) / 2))&quot;</FONT></B> ;j=1 ;;
      4) tRD=<B><FONT COLOR="#BC8F8F">&quot;$(($((0x$RD &amp; 4)) / 4))&quot;</FONT></B> ;j=2 ;;
      8) tRD=<B><FONT COLOR="#BC8F8F">&quot;$(($((0x$RD &amp; 8)) / 8))&quot;</FONT></B> ;j=3 ;;
      16) tRD=<B><FONT COLOR="#BC8F8F">&quot;$(($((0x$RD &amp; 16)) / 16))&quot;</FONT></B> ;j=4 ;;
      32) tRD=<B><FONT COLOR="#BC8F8F">&quot;$(($((0x$RD &amp; 32)) / 32))&quot;</FONT></B> ;j=5 ;;
      64) tRD=<B><FONT COLOR="#BC8F8F">&quot;$(($((0x$RD &amp; 64)) / 64))&quot;</FONT></B> ;j=6 ;;
      128) tRD=<B><FONT COLOR="#BC8F8F">&quot;$(($((0x$RD &amp; 128)) / 128))&quot;</FONT></B> ;j=7 ;;
      256) tRD=<B><FONT COLOR="#BC8F8F">&quot;$(($((0x$RD &amp; 256)) / 256))&quot;</FONT></B> ;j=8 ;;
      512) tRD=<B><FONT COLOR="#BC8F8F">&quot;$(($((0x$RD &amp; 512)) / 512))&quot;</FONT></B> ;j=9 ;;
      1024) tRD=<B><FONT COLOR="#BC8F8F">&quot;$(($((0x$RD &amp; 1024)) / 1024))&quot;</FONT></B> ;j=10 ;;
      2048) tRD=<B><FONT COLOR="#BC8F8F">&quot;$(($((0x$RD &amp; 2048)) / 2048))&quot;</FONT></B> ;j=11 ;;
      4096) tRD=<B><FONT COLOR="#BC8F8F">&quot;$(($((0x$RD &amp; 4096)) / 4096))&quot;</FONT></B> ;j=12 ;;
      8192) tRD=<B><FONT COLOR="#BC8F8F">&quot;$(($((0x$RD &amp; 8192)) / 8192))&quot;</FONT></B> ;j=13 ;;
    <B><FONT COLOR="#A020F0">esac</FONT></B>
    new[$j]=$tRD
    <B><FONT COLOR="#A020F0">done</FONT></B>
  <B><FONT COLOR="#A020F0">else</FONT></B>
    <B><FONT COLOR="#A020F0">for</FONT></B> i <B><FONT COLOR="#A020F0">in</FONT></B> 0 1 2 3 4 5 6 7 8 9 10 11 12 13;<B><FONT COLOR="#A020F0">do</FONT></B>
      new[$i]=<B><FONT COLOR="#BC8F8F">&quot;-1&quot;</FONT></B>
    <B><FONT COLOR="#A020F0">done</FONT></B>
  <B><FONT COLOR="#A020F0">fi</FONT></B>
  <B><FONT COLOR="#A020F0">for</FONT></B> i <B><FONT COLOR="#A020F0">in</FONT></B> 0 1 2 3 4 5 6 7;<B><FONT COLOR="#A020F0">do</FONT></B>
    [ ${new[$i]} = <B><FONT COLOR="#BC8F8F">&quot;-1&quot;</FONT></B> ] &amp;&amp; <B><FONT COLOR="#A020F0">break</FONT></B>
    <B><FONT COLOR="#A020F0">if</FONT></B> [ <B><FONT COLOR="#BC8F8F">&quot;${old[$i]}&quot;</FONT></B> != <B><FONT COLOR="#BC8F8F">&quot;${new[$i]}&quot;</FONT></B> ];<B><FONT COLOR="#A020F0">then</FONT></B>
      <B><FONT COLOR="#A020F0">if</FONT></B> [ <B><FONT COLOR="#BC8F8F">&quot;${old[$i]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;1&quot;</FONT></B> ];<B><FONT COLOR="#A020F0">then</FONT></B>
        old[$i]=${new[$i]}
        exec_cmd $i low
        j=`expr $i + 8`
        exec_cmd $j low
      elif [ <B><FONT COLOR="#BC8F8F">&quot;${old[$i]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;0&quot;</FONT></B> ];<B><FONT COLOR="#A020F0">then</FONT></B>
        old[$i]=${new[$i]}
        exec_cmd $i high
        j=`expr $i + 8`
        exec_cmd $j high
      <B><FONT COLOR="#A020F0">else</FONT></B>
        old[$i]=${new[$i]}
      <B><FONT COLOR="#A020F0">fi</FONT></B>
    <B><FONT COLOR="#A020F0">fi</FONT></B>
  <B><FONT COLOR="#A020F0">done</FONT></B>
cat&gt;$tDIORD&lt;&lt;END
di[0]=${new[0]}
di[1]=${new[1]}
di[2]=${new[2]}
di[3]=${new[3]}
di[4]=${new[4]}
di[5]=${new[5]}
di[6]=${new[6]}
di[7]=${new[7]}
END
cat&gt;$tDIOWD&lt;&lt;END
<B><FONT COLOR="#A020F0">do</FONT></B>[0]=${new[8]}
<B><FONT COLOR="#A020F0">do</FONT></B>[1]=${new[9]}
<B><FONT COLOR="#A020F0">do</FONT></B>[2]=${new[10]}
<B><FONT COLOR="#A020F0">do</FONT></B>[3]=${new[11]}
<B><FONT COLOR="#A020F0">do</FONT></B>[4]=${new[12]}
<B><FONT COLOR="#A020F0">do</FONT></B>[5]=${new[13]}
END
  mv $tDIORD $DIORD
  mv $tDIOWD $DIOWD
  chown apache.apache $DIORD
  chown apache.apache $DIOWD
  [ -e $DIORD ] &amp;&amp; . $DIORD
  [ -e $DIOWD ] &amp;&amp; . $DIOWD
  <B><FONT COLOR="#A020F0">for</FONT></B> n <B><FONT COLOR="#A020F0">in</FONT></B> 0 1 2 3 4 5 6 7;<B><FONT COLOR="#A020F0">do</FONT></B>
    <B><FONT COLOR="#A020F0">case</FONT></B> <B><FONT COLOR="#BC8F8F">&quot;$n&quot;</FONT></B> <B><FONT COLOR="#A020F0">in</FONT></B>
    0)
      [ <B><FONT COLOR="#BC8F8F">&quot;${di[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;1&quot;</FONT></B> ] &amp;&amp; di0=<B><FONT COLOR="#BC8F8F">&quot;high&quot;</FONT></B>
      [ <B><FONT COLOR="#BC8F8F">&quot;${di[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;0&quot;</FONT></B> ] &amp;&amp; di0=<B><FONT COLOR="#BC8F8F">&quot;low&quot;</FONT></B>
      [ <B><FONT COLOR="#BC8F8F">&quot;${di[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;-1&quot;</FONT></B> ] &amp;&amp; di0=<B><FONT COLOR="#BC8F8F">&quot;none&quot;</FONT></B>
    ;;
    1)
      [ <B><FONT COLOR="#BC8F8F">&quot;${di[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;1&quot;</FONT></B> ] &amp;&amp; di1=<B><FONT COLOR="#BC8F8F">&quot;high&quot;</FONT></B>
      [ <B><FONT COLOR="#BC8F8F">&quot;${di[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;0&quot;</FONT></B> ] &amp;&amp; di1=<B><FONT COLOR="#BC8F8F">&quot;low&quot;</FONT></B>
      [ <B><FONT COLOR="#BC8F8F">&quot;${di[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;-1&quot;</FONT></B> ] &amp;&amp; di1=<B><FONT COLOR="#BC8F8F">&quot;none&quot;</FONT></B>
    ;;
    2)
      [ <B><FONT COLOR="#BC8F8F">&quot;${di[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;1&quot;</FONT></B> ] &amp;&amp; di2=<B><FONT COLOR="#BC8F8F">&quot;high&quot;</FONT></B>
      [ <B><FONT COLOR="#BC8F8F">&quot;${di[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;0&quot;</FONT></B> ] &amp;&amp; di2=<B><FONT COLOR="#BC8F8F">&quot;low&quot;</FONT></B>
      [ <B><FONT COLOR="#BC8F8F">&quot;${di[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;-1&quot;</FONT></B> ] &amp;&amp; di2=<B><FONT COLOR="#BC8F8F">&quot;none&quot;</FONT></B>
    ;;
    3)
      [ <B><FONT COLOR="#BC8F8F">&quot;${di[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;1&quot;</FONT></B> ] &amp;&amp; di3=<B><FONT COLOR="#BC8F8F">&quot;high&quot;</FONT></B>
      [ <B><FONT COLOR="#BC8F8F">&quot;${di[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;0&quot;</FONT></B> ] &amp;&amp; di3=<B><FONT COLOR="#BC8F8F">&quot;low&quot;</FONT></B>
      [ <B><FONT COLOR="#BC8F8F">&quot;${di[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;-1&quot;</FONT></B> ] &amp;&amp; di3=<B><FONT COLOR="#BC8F8F">&quot;none&quot;</FONT></B>
    ;;
    4)
      [ <B><FONT COLOR="#BC8F8F">&quot;${di[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;1&quot;</FONT></B> ] &amp;&amp; di4=<B><FONT COLOR="#BC8F8F">&quot;high&quot;</FONT></B>
      [ <B><FONT COLOR="#BC8F8F">&quot;${di[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;0&quot;</FONT></B> ] &amp;&amp; di4=<B><FONT COLOR="#BC8F8F">&quot;low&quot;</FONT></B>
      [ <B><FONT COLOR="#BC8F8F">&quot;${di[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;-1&quot;</FONT></B> ] &amp;&amp; di4=<B><FONT COLOR="#BC8F8F">&quot;none&quot;</FONT></B>
    ;;
    5)
      [ <B><FONT COLOR="#BC8F8F">&quot;${di[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;1&quot;</FONT></B> ] &amp;&amp; di5=<B><FONT COLOR="#BC8F8F">&quot;high&quot;</FONT></B>
      [ <B><FONT COLOR="#BC8F8F">&quot;${di[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;0&quot;</FONT></B> ] &amp;&amp; di5=<B><FONT COLOR="#BC8F8F">&quot;low&quot;</FONT></B>
      [ <B><FONT COLOR="#BC8F8F">&quot;${di[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;-1&quot;</FONT></B> ] &amp;&amp; di5=<B><FONT COLOR="#BC8F8F">&quot;none&quot;</FONT></B>
    ;;
    6)
      [ <B><FONT COLOR="#BC8F8F">&quot;${di[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;1&quot;</FONT></B> ] &amp;&amp; di6=<B><FONT COLOR="#BC8F8F">&quot;high&quot;</FONT></B>
      [ <B><FONT COLOR="#BC8F8F">&quot;${di[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;0&quot;</FONT></B> ] &amp;&amp; di6=<B><FONT COLOR="#BC8F8F">&quot;low&quot;</FONT></B>
      [ <B><FONT COLOR="#BC8F8F">&quot;${di[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;-1&quot;</FONT></B> ] &amp;&amp; di6=<B><FONT COLOR="#BC8F8F">&quot;none&quot;</FONT></B>
    ;;
    7)
      [ <B><FONT COLOR="#BC8F8F">&quot;${di[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;1&quot;</FONT></B> ] &amp;&amp; di7=<B><FONT COLOR="#BC8F8F">&quot;high&quot;</FONT></B>
      [ <B><FONT COLOR="#BC8F8F">&quot;${di[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;0&quot;</FONT></B> ] &amp;&amp; di7=<B><FONT COLOR="#BC8F8F">&quot;low&quot;</FONT></B>
      [ <B><FONT COLOR="#BC8F8F">&quot;${di[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;-1&quot;</FONT></B> ] &amp;&amp; di7=<B><FONT COLOR="#BC8F8F">&quot;none&quot;</FONT></B>
    ;;
    <B><FONT COLOR="#A020F0">esac</FONT></B>
  <B><FONT COLOR="#A020F0">done</FONT></B>
  <B><FONT COLOR="#A020F0">for</FONT></B> n <B><FONT COLOR="#A020F0">in</FONT></B> 0 1 2 3 4 5;<B><FONT COLOR="#A020F0">do</FONT></B>
    <B><FONT COLOR="#A020F0">case</FONT></B> <B><FONT COLOR="#BC8F8F">&quot;$n&quot;</FONT></B> <B><FONT COLOR="#A020F0">in</FONT></B>
    0)
      [ <B><FONT COLOR="#BC8F8F">&quot;${do[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;1&quot;</FONT></B> ] &amp;&amp; do0=<B><FONT COLOR="#BC8F8F">&quot;high&quot;</FONT></B>
      [ <B><FONT COLOR="#BC8F8F">&quot;${do[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;0&quot;</FONT></B> ] &amp;&amp; do0=<B><FONT COLOR="#BC8F8F">&quot;low&quot;</FONT></B>
      [ <B><FONT COLOR="#BC8F8F">&quot;${do[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;-1&quot;</FONT></B> ] &amp;&amp; do0=<B><FONT COLOR="#BC8F8F">&quot;none&quot;</FONT></B>
    ;;
    1)
      [ <B><FONT COLOR="#BC8F8F">&quot;${do[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;1&quot;</FONT></B> ] &amp;&amp; do1=<B><FONT COLOR="#BC8F8F">&quot;high&quot;</FONT></B>
      [ <B><FONT COLOR="#BC8F8F">&quot;${do[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;0&quot;</FONT></B> ] &amp;&amp; do1=<B><FONT COLOR="#BC8F8F">&quot;low&quot;</FONT></B>
      [ <B><FONT COLOR="#BC8F8F">&quot;${do[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;-1&quot;</FONT></B> ] &amp;&amp; do1=<B><FONT COLOR="#BC8F8F">&quot;none&quot;</FONT></B>
    ;;
    2)
      [ <B><FONT COLOR="#BC8F8F">&quot;${do[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;1&quot;</FONT></B> ] &amp;&amp; do2=<B><FONT COLOR="#BC8F8F">&quot;high&quot;</FONT></B>
      [ <B><FONT COLOR="#BC8F8F">&quot;${do[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;0&quot;</FONT></B> ] &amp;&amp; do2=<B><FONT COLOR="#BC8F8F">&quot;low&quot;</FONT></B>
      [ <B><FONT COLOR="#BC8F8F">&quot;${do[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;-1&quot;</FONT></B> ] &amp;&amp; do2=<B><FONT COLOR="#BC8F8F">&quot;none&quot;</FONT></B>
    ;;
    3)
      [ <B><FONT COLOR="#BC8F8F">&quot;${do[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;1&quot;</FONT></B> ] &amp;&amp; do3=<B><FONT COLOR="#BC8F8F">&quot;high&quot;</FONT></B>
      [ <B><FONT COLOR="#BC8F8F">&quot;${do[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;0&quot;</FONT></B> ] &amp;&amp; do3=<B><FONT COLOR="#BC8F8F">&quot;low&quot;</FONT></B>
      [ <B><FONT COLOR="#BC8F8F">&quot;${do[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;-1&quot;</FONT></B> ] &amp;&amp; do3=<B><FONT COLOR="#BC8F8F">&quot;none&quot;</FONT></B>
    ;;
    4)
      [ <B><FONT COLOR="#BC8F8F">&quot;${do[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;1&quot;</FONT></B> ] &amp;&amp; do4=<B><FONT COLOR="#BC8F8F">&quot;high&quot;</FONT></B>
      [ <B><FONT COLOR="#BC8F8F">&quot;${do[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;0&quot;</FONT></B> ] &amp;&amp; do4=<B><FONT COLOR="#BC8F8F">&quot;low&quot;</FONT></B>
      [ <B><FONT COLOR="#BC8F8F">&quot;${di[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;-1&quot;</FONT></B> ] &amp;&amp; do4=<B><FONT COLOR="#BC8F8F">&quot;none&quot;</FONT></B>
    ;;
    5)
      [ <B><FONT COLOR="#BC8F8F">&quot;${do[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;1&quot;</FONT></B> ] &amp;&amp; do5=<B><FONT COLOR="#BC8F8F">&quot;high&quot;</FONT></B>
      [ <B><FONT COLOR="#BC8F8F">&quot;${do[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;0&quot;</FONT></B> ] &amp;&amp; do5=<B><FONT COLOR="#BC8F8F">&quot;low&quot;</FONT></B>
      [ <B><FONT COLOR="#BC8F8F">&quot;${do[$n]}&quot;</FONT></B> = <B><FONT COLOR="#BC8F8F">&quot;-1&quot;</FONT></B> ] &amp;&amp; do5=<B><FONT COLOR="#BC8F8F">&quot;none&quot;</FONT></B>
    ;;
    <B><FONT COLOR="#A020F0">esac</FONT></B>
  <B><FONT COLOR="#A020F0">done</FONT></B>
  NOWDATE=`date +<B><FONT COLOR="#BC8F8F">&quot;%Y/%m/%d %T&quot;</FONT></B>`
  cat&gt;$tJSONRD&lt;&lt;END
{
<B><FONT COLOR="#BC8F8F">&quot;di0&quot;</FONT></B>:<B><FONT COLOR="#BC8F8F">&quot;$di0&quot;</FONT></B>,
<B><FONT COLOR="#BC8F8F">&quot;di1&quot;</FONT></B>:<B><FONT COLOR="#BC8F8F">&quot;$di1&quot;</FONT></B>,
<B><FONT COLOR="#BC8F8F">&quot;di2&quot;</FONT></B>:<B><FONT COLOR="#BC8F8F">&quot;$di2&quot;</FONT></B>,
<B><FONT COLOR="#BC8F8F">&quot;di3&quot;</FONT></B>:<B><FONT COLOR="#BC8F8F">&quot;$di3&quot;</FONT></B>,
<B><FONT COLOR="#BC8F8F">&quot;di4&quot;</FONT></B>:<B><FONT COLOR="#BC8F8F">&quot;$di4&quot;</FONT></B>,
<B><FONT COLOR="#BC8F8F">&quot;di5&quot;</FONT></B>:<B><FONT COLOR="#BC8F8F">&quot;$di5&quot;</FONT></B>,
<B><FONT COLOR="#BC8F8F">&quot;di6&quot;</FONT></B>:<B><FONT COLOR="#BC8F8F">&quot;$di6&quot;</FONT></B>,
<B><FONT COLOR="#BC8F8F">&quot;di7&quot;</FONT></B>:<B><FONT COLOR="#BC8F8F">&quot;$di7&quot;</FONT></B>,
<B><FONT COLOR="#BC8F8F">&quot;do0&quot;</FONT></B>:<B><FONT COLOR="#BC8F8F">&quot;$do0&quot;</FONT></B>,
<B><FONT COLOR="#BC8F8F">&quot;do1&quot;</FONT></B>:<B><FONT COLOR="#BC8F8F">&quot;$do1&quot;</FONT></B>,
<B><FONT COLOR="#BC8F8F">&quot;do2&quot;</FONT></B>:<B><FONT COLOR="#BC8F8F">&quot;$do2&quot;</FONT></B>,
<B><FONT COLOR="#BC8F8F">&quot;do3&quot;</FONT></B>:<B><FONT COLOR="#BC8F8F">&quot;$do3&quot;</FONT></B>,
<B><FONT COLOR="#BC8F8F">&quot;do4&quot;</FONT></B>:<B><FONT COLOR="#BC8F8F">&quot;$do4&quot;</FONT></B>,
<B><FONT COLOR="#BC8F8F">&quot;do5&quot;</FONT></B>:<B><FONT COLOR="#BC8F8F">&quot;$do5&quot;</FONT></B>,
END
CT=`ls -a $DIR/|egrep '.dio[0-7][low|high]+.count+$'`
<B><FONT COLOR="#A020F0">if</FONT></B> [ -n `<B><FONT COLOR="#A020F0">echo</FONT></B> $CT | wc -w` ];<B><FONT COLOR="#A020F0">then</FONT></B>
  <B><FONT COLOR="#A020F0">for</FONT></B> DIO <B><FONT COLOR="#A020F0">in</FONT></B> $CT ; <B><FONT COLOR="#A020F0">do</FONT></B>
    DIOCONT=$DIR/$DIO
tDIO=`<B><FONT COLOR="#A020F0">echo</FONT></B> -en $DIO |awk '{gsub(<B><FONT COLOR="#BC8F8F">&quot;\\\.&quot;</FONT></B>,<B><FONT COLOR="#BC8F8F">&quot;&quot;</FONT></B>);sub(<B><FONT COLOR="#BC8F8F">&quot;count&quot;</FONT></B>,<B><FONT COLOR="#BC8F8F">&quot;&quot;</FONT></B>);print $0}'`
<B><FONT COLOR="#A020F0">echo</FONT></B> -en \&quot;$tDIO\&quot;:{ &gt;&gt;$tJSONRD
cat $DIOCONT |awk '
  /^Reset/{printf(<B><FONT COLOR="#BC8F8F">&quot;%creset%c:%c%s %s%c,&quot;</FONT></B>,34,34,34,$2,$3,34)}
  /^Update/{printf(<B><FONT COLOR="#BC8F8F">&quot;%cupdate%c:%c%s %s%c,&quot;</FONT></B>,34,34,34,$2,$3,34)}
  /^<I><FONT COLOR="#B22222">#/{sub(&quot;#&quot;,&quot;&quot;);printf(&quot;%ccount%c:%c%s%c},\n&quot;,34,34,34,$1,34)}
</FONT></I>' &gt;&gt;$tJSONRD
  <B><FONT COLOR="#A020F0">done</FONT></B>
<B><FONT COLOR="#A020F0">fi</FONT></B>
<B><FONT COLOR="#A020F0">echo</FONT></B> -e \&quot;date\&quot;:\&quot;$NOWDATE\&quot; &gt;&gt;$tJSONRD
<B><FONT COLOR="#A020F0">echo</FONT></B> <B><FONT COLOR="#BC8F8F">&quot;}&quot;</FONT></B> &gt;&gt;$tJSONRD
  mv $tJSONRD $JSONRD
  chown apache.apache $JSONRD
  msleep ${POLLTIME}
<B><FONT COLOR="#A020F0">done</FONT></B>
</pre></p>]]>
    </content:encoded>
      </item>
        <item rdf:about="http://sourceforge.jp/projects/pepolinux/wiki/epicon">
    <title>epicon</title>
    <link>http://sourceforge.jp/projects/pepolinux/wiki/epicon</link>
    <dc:identifier>epicon</dc:identifier>
    <dc:date>2012-03-08T10:33:11+09:00</dc:date>
        <description>
      <![CDATA[== epicon
{{{ GoogleAdsense
&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client=&quot;pub-8866927345406277&quot;;
google_ad_host=&quot;pub-9941151214016196&quot;;
google_alter]]>
    </description>
    <content:encoded>
      <![CDATA[<h2 id="h2-epicon">epicon</h2><script type="text/javascript"><!--
google_ad_client="pub-8866927345406277";google_ad_host="pub-9941151214016196";google_alternate_color="FFFFFF";google_ad_width=468;google_ad_height=60;google_ad_format="468x60_as";google_ad_type="text_image";google_color_border="003399";google_color_bg="EEEEEE";google_color_link="0000FF";google_color_url="0000FF";google_color_text="000000";google_ad_host = "pub-9941151214016196";
//-->
</script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script><h3 id="h3-.E6.9C.80.E5.88.9D.E3.81.AB">最初に</h3><p>epiconとはLinux通信ソフトです、特にシリアル・コンソールでコンフィグ設定・参照などを行うネットワーク機器の使用を想定して開発しています。
</p><p>SwitchやRouterなどシリアルポートでConfig設定するネットワーク機器はメーカーや機種を問わず使えると思います。
</p><p>Cisco製ルータなどの設定を自動化する際、事前に作成したテキスト・データをコピーしてシリアル・コンソール画面へ貼り付けコンフィグの流し込みを行います。
</p><p>この時、文字と改行の送出デレィを挿入しコンフィグ・データの取りこぼしを防ぐことが必要です。ルータのシリアル・コンソールとして重要な文字と改行の送出デレイをepiconはサポートしているのでコンフィグを安心してコピー＆ペーストが出来ます。
</p><p>この他、簡易telnet、zmodemなどのファイル転送ソフト、shell、マクロ、外部ソフトの起動などCUIだが多機能でコンパクトな作りとなっています。
</p><h3 id="h3-epicon.E3.82.92.E4.BD.BF.E3.81.A3.E3.81.9F.E3.83.AA.E3.83.A2.E3.83.BC.E3.83.88.E4.BF.9D.E5.AE.88.E3.82.A4.E3.83.A1.E3.83.BC.E3.82.B8">epiconを使ったリモート保守イメージ</h3><p><img src="http://pepolinux.sourceforge.jp/img/remote_small.png" alt="remote_small.png" id="emb-http:2f2fpepolinux.sourceforge.jp2fimg2fremote_small.png-1" title="remote_small.png" class="embed-image" />
</p><h3 id="h3-.E4.BD.BF.E7.94.A8.E6.96.B9.E6.B3.95">使用方法</h3><p>* オプションなし（com1：/dev/ttys0ポート、9600bps、8bitノンパリティ）
<pre>[root@~]# epicon

** Welcome to epicon Version-5.0 Copyright Isamu Yamauchi compiled:Oct 16 2011 **
      exec shell         ~!
      send binary files  ~f
      call rz,sz,sx,rx   ~rz,~sz,~sx,~rx
      call kermit        ~sk,~rk
      external command   ~C
      change speed       ~c
      exit               ~.
      Connected /dev/ttyS0
</pre>* 外部コマンド起動　オプションあり（/dev/ttyACM0ポート：FOMAモデムへスクリプト起動：FOMAダイヤルインサーバー）
</p><pre>[root@~]# epicon -l /dev/ttyACM0 -c /usr/local/bin/pepop2pchat
[root@~]# cat /usr/local/bin/pepop2pchat
#!/bin/sh
#This scripts sample for ppp chat
#licence GPLv2 ; this scripts designed by IZAMUKARERA 2007.3.18 ; update 2008.4.4
#usage /usr/local/bin/epicon -l /dev/ttyACM0 -c /usr/local/bin/pepop2pchat
CLR=&quot;\x1b[2J&quot;
RED=&quot;\x1b[41m&quot;
BULE=&quot;\x1b[44m&quot;
NORC=&quot;\x1b[39m&quot;
NORB=&quot;\x1b[49m&quot;
CR=&quot;\n&quot;
LF=&quot;\r&quot;
HOME=&quot;\x1b[r&quot;
POS=&quot;\x1b[20C\x1b[10B&quot;
MSG1=&quot;
#######################################$LF
#                                     #$LF
#     FOMA Cellular Phone Detected!   #$LF
#     Now Daial-in Server Ready       #$LF
#                                     #$LF
#######################################$LF
&quot;
MSG2=&quot;
#######################################$LF
#                                     #$LF
#    Just now Remote Host Calling!    #$LF
#    Going to PPP Negotiation         #$LF
#                                     #$LF
#######################################$LF
&quot;

I=&quot;&quot;
G=&quot;&quot;
sleep 1
while [ &quot;X$G&quot; != &quot;XOK&quot; ]
do
        echo -en &quot;AT&amp;F\r\n&quot; || exit 0
#       sleep 5
        read -s -n 3 -t 2 I || exit 0
        J=`echo $I|awk '/OK/{print &quot;OK&quot;}'`
        if [ &quot;X$J&quot; == &quot;XOK&quot; ]; then
                {
                echo -en &quot;$CLR$HOME$BULE&quot; &gt;/dev/tty1
                echo -en &quot;$MSG1$CR$LF$NORC$NORB&quot; &gt;/dev/tty1
                G=$J
                }
        fi
done
G=&quot;&quot;
while [ &quot;X$G&quot; != &quot;XRING&quot; ]
do
        sleep 5
        read -s -n 5 -t 604800 I || exit 0
        J=`echo $I|awk '/RING/{print &quot;RING&quot;}'`
        if [ &quot;X$J&quot; == &quot;XRING&quot; ]; then
                {
                echo -en &quot;$CRLF$RED&quot; &gt;/dev/tty1
                echo -en &quot;$MSG2$CR$LF$NORC$NORB&quot; &gt;/dev/tty1
                G=$J
                }
        fi
done
echo -en &quot;ATA\r\n&quot; || exit 0
sleep 2
exec /usr/sbin/pppd $1

</pre><p>* ルータの設定　オプションあり（/dev/ttyUSB0,19200bps,キャラクタデレイ：30ms,ＣＲデレイ：50ms）
</p><pre>[root@~]# epicon -d 30 -D 50 -s 19200 -l /dev/ttyUSB0

** Welcome to epicon Version-5.0 Copyright Isamu Yamauchi compiled:Oct 16 2011 **
      exec shell         ~!
      send binary files  ~f
      call rz,sz,sx,rx   ~rz,~sz,~sx,~rx
      call kermit        ~sk,~rk
      external command   ~C
      change speed       ~c
      exit               ~.
      Connected /dev/ttyUSB0
</pre><p>* ルータの設定　オプションあり（telnet,キャラクタデレイ：20ms,ＣＲデレイ：50ms）
</p><div class="indent">
</div><pre>[root@~]# epicon -d 20 -D 50 -n 192.168.0.1:23

** Welcome to epicon Version-5.0 Copyright Isamu Yamauchi compiled:Oct 16 2011 **
      exec shell         ~!
      send binary files  ~f
      call rz,sz,sx,rx   ~rz,~sz,~sx,~rx
      call kermit        ~sk,~rk
      external command   ~C
      change speed       ~c
      exit               ~.

Telnet Server 1.10  All rights reserved.


login   :
</pre><p>man抜粋
<pre>epicon(1)                       epicon Manuals                       epicon(1)

NAME
       epicon  is  Easy Personal Interface Console terminal software.  First I
       am sorry. Because my English linguistic power is very shabby, this sen-
       tence  is being translated by the machine.  Because of that, read it in
       the interpretation which it is tolerant of though it thinks that it  is
       a little funny translation.

SYNOPSIS
       usage:
       epicon [-options [argument] [-options [argument]]
              [-b ] &lt;--escape cannot be used
              [-c external_command]
              [-d send_charcacter_delay(ms)]
              [-D send_CR_delay(ms)]
              [-e escape_char]
              [-f send_file]
              [-F send_file_effective_delay]
              [-m ] &lt;--input echo mode
              [-M ] &lt;--line mode
              [-l com_port]
              [-L output_log_file]
              [-n ip_address[:port]]
              [-p [server_port]]
              [-q ] &lt;--quiet mode
              [-s speed]
              [-v ] &lt;--show version
              [-z ] &lt;--auto rz prohibition

        defaults:
            speed:  9600b/s (Higest of 460800)
            com_port :  /dev/ttyS0
            escape: ~ (escape char is three octal digits)

        running epicon escapes:
            escape,. or escape,CTRL-D program end
            escape,!                  into to shell
            escape,escape             send escape char
            escape,f                  send files
            escape,F                  send files delay effect
            escape,c                  chege speed
            escape,C                  external command
            escape,sz                 send file zmodem
            escape,rz                 recive file zmodem
            escape,sk                 send file gkermit
            escape,rk                 recive file gkermit
            escape,sx                 send file xmodem
            escape,rx                 recive file xmodem

DESCRIPTION
       The epicon is a Linux program for console Terminal.it need libc.so.5 or
       other libc,lrz,lsz,gkermit,pepolinux,compiling gcc-2.95.3 later.   Sym-
       bolic link are being done as flowing.
       lrwxrwxrwx   1 root   root      3 Sep 22 22:39 rb -&gt; lrz*
       lrwxrwxrwx   1 root   root      3 Sep 22 22:39 rx -&gt; lrz*
       lrwxrwxrwx   1 root   root      3 Jul 16 17:34 rz -&gt; lrz*
       lrwxrwxrwx   1 root   root      3 Sep 22 13:46 sz -&gt; lsz*
</pre></p>]]>
    </content:encoded>
      </item>
        <item rdf:about="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">
    <title>PepoLinux</title>
    <link>http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux</link>
    <dc:identifier>PepoLinux</dc:identifier>
    <dc:date>2011-12-19T06:13:26+09:00</dc:date>
        <description>
      <![CDATA[== PepoLinux
{{{ GoogleAdsense
&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client=&quot;pub-8866927345406277&quot;;
google_ad_host=&quot;pub-9941151214016196&quot;;
google_al]]>
    </description>
    <content:encoded>
      <![CDATA[<h2 id="h2-PepoLinux"><a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a></h2><script type="text/javascript"><!--
google_ad_client="pub-8866927345406277";google_ad_host="pub-9941151214016196";google_alternate_color="FFFFFF";google_ad_width=468;google_ad_height=60;google_ad_format="468x60_as";google_ad_type="text_image";google_color_border="003399";google_color_bg="EEEEEE";google_color_link="0000FF";google_color_url="0000FF";google_color_text="000000";google_ad_host = "pub-9941151214016196";
//-->
</script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script><p>ＰｅｐｏＬｉｎｕｘ（ぴぽりなっくす）はXWindowを捨てネットワークとサーバーに徹した軽量コンパクトな約２５０ＭＢの１ＣＤＬｉｎｕｘです。
初期設定でdns,web,mail,snmp,mrtg,webalizer等々が立ち上がっていますので、直ぐにサーバーの実験が出来ます。
</p><p>ＮＴＴｄｏｃｏｍｏのＦＯＭＡ携帯で<a href="http://www.nttdocomo.co.jp/product/relate/usb_cable01/" class="external" rel="nofollow">USB接続ケーブル</a>さえあればインターネットを経由しない高セキュリティの６４ｋデジタル通信による<a href="http://pepolinux.sourceforge.jp/remote.html" class="external" rel="nofollow">リモートハンド</a>が実現できます。
</p><p>これは通信モードが選択できるＦＯＭＡ携帯電話で機種を選ばない仕様で当サイトが開発している、<a href="http://sourceforge.jp/projects/pepolinux/wiki/acm-FOMA">Linux USB Driver acm-FOMA</a>を利用したものです。
</p><p>サーバー構築やネットワークの検証などで、ちょっと話の分かるサーバーが欲しい時もFDやUSBメモリに設定をちょこと書いて立ち上げるだけで、色々なサーバーを建てれます。
</p><p>ネットワークの勉強やＳＥの方にも大変便利ＣＤＲＯＭやＵＳＢメモリから起動出来るPCがあればどこでも自前のサーバーが建てれますし、WindowsXPのＨＤＤやＵＳＢメモリにインストールも出来ます。
</p><p>CentOS5をベースに開発環境も構築しています、Vmplayerを利用したDriver開発用のVmware appliance<a href="http://sourceforge.jp/projects/pepolinux/releases/52209">（Remote-Hand-v0.2）</a>やシリアルDIOとgmail経由でやり取り出来る
appliance<a href="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_DIO">Remote-Hand_DIO </a>も用意しています。
</p><p><a href="http://sourceforge.jp/projects/pepolinux/wiki/acm-FOMA">Linux USB Driver acm-FOMA</a>と<a href="http://sourceforge.jp/projects/pepolinux/wiki/kernel%20make">Kernel make</a>を合わせてインストールすれば、Kernel makeやDriverのDebugなどの実験もできます。
</p><p><a href="http://www.pepolinux.com" class="external" rel="nofollow">http://www.pepolinux.com</a>
</p><h3 id="h3-PepoLinux.20boot"><a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a> boot</h3><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux/attach/boot_img.png" alt="boot_img.png" id="emb-boot_img.png-1" title="boot_img.png" class="embed-image" width="618" height="511" />
</p><h3 id="h3-PepoLinux.20login"><a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a> login</h3><p><img src="http://pepolinux.sourceforge.jp/img/pepolinux_login.png" alt="pepolinux_login.png" id="emb-http:2f2fpepolinux.sourceforge.jp2fimg2fpepolinux_login.png-1" title="pepolinux_login.png" class="embed-image" />
</p><h3 id="h3-PepoLinux.20login.20small.20mode"><a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a> login small mode</h3><p>メモリが256M以下の場合自動的にスモールモードを選択、必要最低限のサービスとdhclientを起動して表示するIPアドレスへsshでログインする事が出来ます。
</p><p><img src="http://pepolinux.sourceforge.jp/img/pepolinux_login_small.png" alt="pepolinux_login_small.png" id="emb-http:2f2fpepolinux.sourceforge.jp2fimg2fpepolinux_login_small.png-1" title="pepolinux_login_small.png" class="embed-image" />
</p><h3 id="h3-PepoLinux.20.E8.A8.AD.E5.AE.9A.E3.83.95.E3.82.A1.E3.82.A4.E3.83.AB"><a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a> 設定ファイル</h3><p>MS_Windowsのテキストエディタで簡単に<a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLnux">PepoLnux</a>の設定ファイルを変更してUSBメモリや、C:\Windows\pepolinux\startup.sへ保存します。
<pre>
<B><FONT COLOR="#5F9EA0">#!/bin/sh
</FONT></B><I><FONT COLOR="#B22222">#
</FONT></I><I><FONT COLOR="#B22222"># PepoLinux Main Configuration Scripts. This startup.s scripts change by your idea.
</FONT></I><I><FONT COLOR="#B22222"># note! (This file is a copy of startup.s.org. When correcting it, it is a thing of the edit as for startup.s.org of the original.) 
</FONT></I><I><FONT COLOR="#B22222"># Copyright pepolinux.com pepolinux@users.sourceforge.jp
</FONT></I><I><FONT COLOR="#B22222"># Written by IZAMUKARERA 2001.4.12 last-update 2010.6.13
</FONT></I><I><FONT COLOR="#B22222"># この startup.s スクリプトを自分の環境に合うように編集して下さい。
</FONT></I><I><FONT COLOR="#B22222"># #を消すだけで dhcp、dns、http、mail等のサーバー機能がすぐ使える様にしています。
</FONT></I><I><FONT COLOR="#B22222"># デフォルトでdns、http、mailサーバが立ち上がります。
</FONT></I><I><FONT COLOR="#B22222"># 使用するIPが、かぶらないようにAPIPA(Automatic Private IP Addressing 169.254.0.0 - 169.254.255.255)が
</FONT></I><I><FONT COLOR="#B22222"># デフォルトで設定しています。先ずはIPアドレスを実環境に設定しましょう。それだけ設定して
</FONT></I><I><FONT COLOR="#B22222"># C:\peplinux\startup.s　へ置いてCDROMやUSBメモリから起動すればPepoLinuxのネットワーク・ワールドが開けます。
</FONT></I>
<I><FONT COLOR="#B22222"># バージョン情報です。
</FONT></I><B><FONT COLOR="#A020F0">export</FONT></B> Ver=Ver0.47


<I><FONT COLOR="#B22222"># 1番目の eth カードのIPアドレスの設定です、前述のCLIENTの数を足して254以上にならないようにする。
</FONT></I><I><FONT COLOR="#B22222"># IPADDRだけは最低限設定して下さい。dhcpdを起動させる時はGATEWAYを必ず設定しコメントを外す事。
</FONT></I><B><FONT COLOR="#A020F0">export</FONT></B> IPADD=168.254.100.100/16


<I><FONT COLOR="#B22222"># デフォルトゲートウェイの設定です。
</FONT></I><B><FONT COLOR="#A020F0">export</FONT></B> GATEWAY=168.254.100.100


<I><FONT COLOR="#B22222"># 2番目の eth カードのIPアドレスを記述する。
</FONT></I><B><FONT COLOR="#A020F0">export</FONT></B> IPADD1=169.254.200.100/16


<I><FONT COLOR="#B22222"># ホスト名を変更する場合 # を削除して hostname XXXX とします、初期値のホスト名は epicon です。
</FONT></I><I><FONT COLOR="#B22222">#hostname epicon
</FONT></I>
<I><FONT COLOR="#B22222">#これはコメントアウトしないで下さい。
</FONT></I><B><FONT COLOR="#A020F0">export</FONT></B> HOSTNAME=`hostname` 


<I><FONT COLOR="#B22222"># DHCP、DNSのクライアント数を指定、これから自動で設定ファイルを作成します。
</FONT></I><B><FONT COLOR="#A020F0">export</FONT></B> CLIENT=10
<I><FONT COLOR="#B22222"># DHCP、DNSで使うホスト名を設定します。初期値はホスト名の先頭4文字とクライアント数20で epic1?epic10 です。
</FONT></I><B><FONT COLOR="#A020F0">export</FONT></B> HOST=`hostname | cut -c 1-4`


<I><FONT COLOR="#B22222"># ドメインの設定です。
</FONT></I><B><FONT COLOR="#A020F0">export</FONT></B> DOMAIN=pepolinux.local


<I><FONT COLOR="#B22222"># ホストネームとドメインを合わせたFQDN（Fully Qualified Domain Name）です、触らないで下さい。
</FONT></I><B><FONT COLOR="#A020F0">export</FONT></B> HOSTNAME_TDL=$HOSTNAME.$DOMAIN


<I><FONT COLOR="#B22222"># ネームサーバの設定です。DNS_1の初期値は、自分自身のIPADDをネームサーバーに設定します。
</FONT></I><I><FONT COLOR="#B22222"># DNS_2 はプロバイダのDNSです、&quot;202.234.232.6&quot; はOCN西日本のDNSへフォワードする設定です。
</FONT></I><B><FONT COLOR="#A020F0">export</FONT></B> DNS_1=`<B><FONT COLOR="#A020F0">echo</FONT></B> $IPADD|awk 'BEGIN{FS=<B><FONT COLOR="#BC8F8F">&quot;/&quot;</FONT></B>};{print $1}'`
<B><FONT COLOR="#A020F0">export</FONT></B> DNS_2=$GATEWAY


<I><FONT COLOR="#B22222"># 外部宛てのメールを内部サーバーへリレーするホストをFQDN　&quot;mail.pepolinux.local&quot;　などで設定します。
</FONT></I><B><FONT COLOR="#A020F0">export</FONT></B> RELAYHOST=


<I><FONT COLOR="#B22222"># 自動認識出来ないドライバのモジュールを設定します。　
</FONT></I><I><FONT COLOR="#B22222">#modprobe e1000		#Intel(R) PRO/1000
</FONT></I><I><FONT COLOR="#B22222">#modprobe bcm5700 	#Broadcom Gigabit ethernet driver
</FONT></I><I><FONT COLOR="#B22222">#modprobe dm9601	#Corega FEther USB-TXC
</FONT></I>

<I><FONT COLOR="#B22222"># ここからはIPアドレスの詳細情報を自動作成するので触らない下さい。
</FONT></I><B><FONT COLOR="#A020F0">export</FONT></B> IF_PORT=10baseT
<B><FONT COLOR="#A020F0">export</FONT></B> NETMASK=`ipcalc -m $IPADD|awk 'BEGIN{FS=<B><FONT COLOR="#BC8F8F">&quot;=&quot;</FONT></B>};{print $2}'`
<B><FONT COLOR="#A020F0">export</FONT></B> BROADCAST=`ipcalc -b $IPADD|awk 'BEGIN{FS=<B><FONT COLOR="#BC8F8F">&quot;=&quot;</FONT></B>};{print $2}'`
<B><FONT COLOR="#A020F0">export</FONT></B> NETWORK=`ipcalc -n $IPADD|awk 'BEGIN{FS=<B><FONT COLOR="#BC8F8F">&quot;=&quot;</FONT></B>};{print $2}'`
<B><FONT COLOR="#A020F0">export</FONT></B> MASK=`<B><FONT COLOR="#A020F0">echo</FONT></B> $IPADD|awk 'BEGIN{FS=<B><FONT COLOR="#BC8F8F">&quot;/&quot;</FONT></B>};{print $2}'`
<B><FONT COLOR="#A020F0">export</FONT></B> IPADDR=`<B><FONT COLOR="#A020F0">echo</FONT></B> $IPADD|awk 'BEGIN{FS=<B><FONT COLOR="#BC8F8F">&quot;/&quot;</FONT></B>};{print $1}'`
<B><FONT COLOR="#A020F0">export</FONT></B> NETMASK1=`ipcalc -m $IPADD1|awk 'BEGIN{FS=<B><FONT COLOR="#BC8F8F">&quot;=&quot;</FONT></B>};{print $2}'`
<B><FONT COLOR="#A020F0">export</FONT></B> BROADCAST1=`ipcalc -b $IPADD1|awk 'BEGIN{FS=<B><FONT COLOR="#BC8F8F">&quot;=&quot;</FONT></B>};{print $2}'`
<B><FONT COLOR="#A020F0">export</FONT></B> NETWORK1=`ipcalc -n $IPADD1|awk 'BEGIN{FS=<B><FONT COLOR="#BC8F8F">&quot;=&quot;</FONT></B>};{print $2}'`
<B><FONT COLOR="#A020F0">export</FONT></B> IPADDR1=`<B><FONT COLOR="#A020F0">echo</FONT></B> $IPADD1|awk 'BEGIN{FS=<B><FONT COLOR="#BC8F8F">&quot;/&quot;</FONT></B>};{print $1}'`
<I><FONT COLOR="#B22222"># ここまではIPアドレスの詳細情報を自動作成するので触らない下さい。
</FONT></I>

<I><FONT COLOR="#B22222"># MRTG(Multi Router Traffic Grapher)で監視するSNMPエージェントのIPアドレスを設定します。(初期設定ではepiconです。）
</FONT></I>MRTG_IP=$IPADDR


<I><FONT COLOR="#B22222"># Registration No 設定をします。
</FONT></I><I><FONT COLOR="#B22222"># pepolinuxの#を消すと定期的な登録を促すメッセージが解除されます。
</FONT></I><B><FONT COLOR="#A020F0">cd</FONT></B> /etc
cat&gt;SERIAL&lt;&lt;Z
pepolinux
Z


<I><FONT COLOR="#B22222"># #を外すとWELCOMEメッセージがシンプルになります。
</FONT></I><I><FONT COLOR="#B22222">#rm /etc/WELCOME
</FONT></I>

<I><FONT COLOR="#B22222"># PPPのIPアドレスの設定
</FONT></I><B><FONT COLOR="#A020F0">export</FONT></B> PPPSERVER=169.254.198.1
<B><FONT COLOR="#A020F0">export</FONT></B> PPPCLIENT=169.254.198.2


<I><FONT COLOR="#B22222"># VTun(Virtual Tunnel over TCP/IP network)用のアドレスを設定します。
</FONT></I><B><FONT COLOR="#A020F0">export</FONT></B> TUNSERVER=169.254.197.1
<B><FONT COLOR="#A020F0">export</FONT></B> TUNCLIENT=169.254.197.2
<I><FONT COLOR="#B22222"># VTunの相手LANのネットワーク設定をします。
</FONT></I><B><FONT COLOR="#A020F0">export</FONT></B> TUNHOST=169.254.200.100
<B><FONT COLOR="#A020F0">export</FONT></B> TUNNETWORK=169.254.200.0
<B><FONT COLOR="#A020F0">export</FONT></B> TUNMASK=255.255.255.0
domainname $DOMAIN


<I><FONT COLOR="#B22222"># PCMCIA 設定をします。
</FONT></I>cat&gt;/etc/pcmcia.conf&lt;&lt;Z
PCMCIA=yes
<I><FONT COLOR="#B22222"># Should be either i82365 or tcic
</FONT></I>PCIC=i82365
<I><FONT COLOR="#B22222"># Put socket driver timing parameters here
</FONT></I><I><FONT COLOR="#B22222">#PCIC_OPTS=poll_interval=100 pci_csc=1 irq_list=3,9,10
</FONT></I><I><FONT COLOR="#B22222"># Put pcmcia_core options here
</FONT></I>CORE_OPTS=
<I><FONT COLOR="#B22222"># Put cardmgr options here
</FONT></I>CARDMGR_OPTS=
<I><FONT COLOR="#B22222"># To set the PCMCIA scheme at startup...
</FONT></I>SCHEME=
Z
<I><FONT COLOR="#B22222">#service hotplug start
</FONT></I><I><FONT COLOR="#B22222"># PCMCIAの無いPCはコメントアウトして下さい。
</FONT></I><B><FONT COLOR="#A020F0">if</FONT></B> grep -vq pcmcia /proc/devices ;<B><FONT COLOR="#A020F0">then</FONT></B> `service pcmcia start &gt;/dev/null 2&gt;&amp;1`;<B><FONT COLOR="#A020F0">fi</FONT></B>
sleep 3

<I><FONT COLOR="#B22222"># ネットワークの初期化をします。
</FONT></I><I><FONT COLOR="#B22222"># １番目スロットのethカードの設定をします。
</FONT></I>ifconfig lo 127.0.0.1 up
ifconfig eth0 $IPADDR broadcast $BROADCAST netmask $NETMASK up
route add -net $NETWORK netmask $NETMASK eth0
route add -net default gw $GATEWAY netmask 0.0.0.0 metric 1
<I><FONT COLOR="#B22222"># デフォルトゲートウェイが２つある場合(下記の設定は１番目が２番目に比べ10倍早い時
</FONT></I><I><FONT COLOR="#B22222">#ip route add default nexthop via $GATEWAY weight 100 nexthop via $GATEWAY1 weight 10
</FONT></I>

<I><FONT COLOR="#B22222"># 必要であれば、ethカードのMACアドレスを変更します。
</FONT></I><I><FONT COLOR="#B22222">#ip link set eth0 down ; ip link set eth0 address 00:01:02:03:04:05 ; ip link set eth0 up
</FONT></I>

<I><FONT COLOR="#B22222"># ダイヤルUPクライアントで起動する場合下記行の設定は#でコメントアウトして下さい。
</FONT></I><I><FONT COLOR="#B22222">#route add -net default gw $GATEWAY netmask 0.0.0.0 metric 1
</FONT></I>route add -net 127.0.0.0 netmask 255.0.0.0 lo
<I><FONT COLOR="#B22222">#route add default dev ppp0
</FONT></I>

<I><FONT COLOR="#B22222"># ２番目スロットのethカードの設定をします。
</FONT></I><B><FONT COLOR="#A020F0">if</FONT></B> grep -q eth1 /proc/net/dev; <B><FONT COLOR="#A020F0">then</FONT></B>
	ifconfig eth1 $IPADDR1 broadcast $BROADCAST1 netmask $NETMASK1 up
<B><FONT COLOR="#A020F0">fi</FONT></B>
<I><FONT COLOR="#B22222">#route add -net $NETWORK1 netmask $NETMASK1 eth1
</FONT></I>

<I><FONT COLOR="#B22222"># route コマンドにてネットワークアドレスを参照する時に使用する。
</FONT></I>cat&gt;networks&lt;&lt;Z
loopback        127.0.0.0
$DOMAIN         $NETWORK
Z


<I><FONT COLOR="#B22222"># ホストファイルの設定です、知っている ip アドレスとホスト名を列記します。
</FONT></I>cat&gt;hosts&lt;&lt;Z
127.0.0.1       localhost
<I><FONT COLOR="#B22222">#$IPADDR         $HOSTNAME
</FONT></I><I><FONT COLOR="#B22222">#$DNS_1          dns
</FONT></I>Z


<I><FONT COLOR="#B22222"># ppp サーバーの為の設定です、IPアドレス部分は使用するネットワークアドレスを書いて下さい。
</FONT></I><I><FONT COLOR="#B22222"># 左辺($PPPSERVER)がサーバー側、右辺($PPPCLIENT)がクライアント側のIPとなります。
</FONT></I>cat&gt;ppp/ppplogin&lt;&lt;Z
<B><FONT COLOR="#5F9EA0">#!/bin/sh
</FONT></B>mesg n
stty -<B><FONT COLOR="#A020F0">echo</FONT></B>
<B><FONT COLOR="#A020F0">exec</FONT></B> /usr/sbin/pppd passive -detach $PPPSERVER:$PPPCLIENT
Z
chmod 755 /etc/ppp/ppplogin
chmod +s /etc/ppp/ppplogin

<I><FONT COLOR="#B22222"># 64K接続用のpppdサーバーのオプションを設定します
</FONT></I>cat&gt;ppp/options.ttyACM0&lt;&lt;Z
lock
modem
kdebug 1
crtscts
$PPPSERVER:$PPPCLIENT
defaultroute
ms-dns $DNS_1
ms-wins $DNS_1
idle 120
Z

<I><FONT COLOR="#B22222"># パケット接続用のpppdサーバーのオプションを設定します
</FONT></I>cat&gt;ppp/options&lt;&lt;Z
debug 7
kdebug 6
updetach
115200
usepeerdns
defaultroute
lock
Z


<I><FONT COLOR="#B22222"># 携帯電話を使った、ダイヤルイン・サーバーのスクリプトを設定します。
</FONT></I><I><FONT COLOR="#B22222"># 起動方法は→　/etc/ppp/ppp-in
</FONT></I>cat&gt;ppp/ppp-<B><FONT COLOR="#A020F0">in</FONT></B>&lt;&lt;Z
<B><FONT COLOR="#5F9EA0">#!/bin/sh
</FONT></B>/usr/local/bin/epicon -l /dev/ttyACM0 -s 115200 -c /usr/local/bin/pepop2pchat
Z
chmod +x ppp/ppp-<B><FONT COLOR="#A020F0">in</FONT></B>


<I><FONT COLOR="#B22222"># ppp クライアント側の設定です、TELEPHONE=ダイヤルＵＰ先の電話番号を書いて下さい。
</FONT></I><I><FONT COLOR="#B22222"># 相手サーバー側がpepolinuxを想定していますがクライアントはwin95,98の方が便利の
</FONT></I><I><FONT COLOR="#B22222"># 為あまり使う事は無いでしょう、又/etc/inittabのc50、c51の#でコメントアウトが必要
</FONT></I><I><FONT COLOR="#B22222"># です、 ppp-on でダイヤルＵＰを開始し ppp-off でダイヤルアウトします。
</FONT></I>cat&gt;ppp/ppp-on&lt;&lt;Z
<B><FONT COLOR="#5F9EA0">#!/bin/sh
</FONT></B><B><FONT COLOR="#A020F0">export</FONT></B> TELEPHONE=09012345678
<B><FONT COLOR="#A020F0">export</FONT></B> PPPACCOUNT=ppp
<B><FONT COLOR="#A020F0">export</FONT></B> PPPPASSWORD=fradfrad
LOCAL_IP=0.0.0.0
REMOTE_IP=0.0.0.0
PPPNETMASK=255.255.255.0
DIALER_SCRIPT=/etc/ppp/pppscript
<B><FONT COLOR="#A020F0">exec</FONT></B> /usr/sbin/pppd debug lock modem crtscts /dev/ttyUSB0 19200 \\
idle 120 \\
asyncmap 20A0000 escape FF kdebug 0 \$LOCAL_IP:\$REMOTE_IP \\
noipdefault netmask \$PPPNETMASK defaultroute connect \$DIALER_SCRIPT
Z
chmod 777 /etc/ppp/ppp-on
chmod +s /etc/ppp/ppp-on


<I><FONT COLOR="#B22222"># pppのダイレクト接続の設定、COMポートに事前にクロスケーブルで相手
</FONT></I><I><FONT COLOR="#B22222"># シリアルポートを接続しておきます。
</FONT></I><I><FONT COLOR="#B22222"># サーバー側の設定です。
</FONT></I><I><FONT COLOR="#B22222">#pppd -detach crtscts lock  $PPPSERVER:$PPPCLIENT /dev/ttyS0 115200 &amp;
</FONT></I><I><FONT COLOR="#B22222"># クラインと側の設定です。
</FONT></I><I><FONT COLOR="#B22222">#pppd -detach crtscts lock  noipdefault /dev/ttyS0 115200 &amp;
</FONT></I>

<I><FONT COLOR="#B22222"># slipのダイレクト接続の設定、COMポートに事前にクロスケーブルで相手
</FONT></I><I><FONT COLOR="#B22222"># シリアルポートを接続しておきます。
</FONT></I><I><FONT COLOR="#B22222">#slattach -p cslip -s 19200 /dev/ttyS0 &amp;
</FONT></I><I><FONT COLOR="#B22222"># サーバー側の設定です。
</FONT></I><I><FONT COLOR="#B22222">#ifconfig sl0 $PPPSERVER pointopoint $PPPCLIENT up
</FONT></I><I><FONT COLOR="#B22222"># クラインと側の設定です。
</FONT></I><I><FONT COLOR="#B22222">#ifconfig sl0 $PPPCLIENT pointopoint $PPPSERVER up
</FONT></I>

<I><FONT COLOR="#B22222"># pppoe-serverの設定をします。(設定は、pppoeクライアントも同じです。)
</FONT></I>cat&gt;/etc/ppp/pap-secrets&lt;&lt;Z
<I><FONT COLOR="#B22222"># Secrets for authentication using PAP for FOMA packet
</FONT></I>*       pepolinux     <B><FONT COLOR="#BC8F8F">&quot;&quot;</FONT></B>      *
Z
cat&gt;/etc/ppp/chap-secrets&lt;&lt;Z
<I><FONT COLOR="#B22222"># Secrets for authentication using CHAP for FOMA 64k
</FONT></I><B><FONT COLOR="#BC8F8F">&quot;ppp&quot;</FONT></B>	*	<B><FONT COLOR="#BC8F8F">&quot;fradfrad&quot;</FONT></B>	*
Z
<I><FONT COLOR="#B22222"># pppoe-serverの起動をします。（pppoeクライアントは、adsl-startで起動します。）
</FONT></I><I><FONT COLOR="#B22222">#pppoe-server -L $PPPSERVER -R $PPPCLIENT
</FONT></I>

<I><FONT COLOR="#B22222"># pptp-serverの設定をします。
</FONT></I>cat&gt;/etc/pptpd.conf&lt;&lt;Z
option /etc/ppp/options.pptpd
localip  $PPPSERVER
remoteip `<B><FONT COLOR="#A020F0">echo</FONT></B>  $PPPCLIENT.$CLIENT|awk 'BEGIN{FS=<B><FONT COLOR="#BC8F8F">&quot;.&quot;</FONT></B>};\
                        {print $1<B><FONT COLOR="#BC8F8F">&quot;.&quot;</FONT></B>$2<B><FONT COLOR="#BC8F8F">&quot;.&quot;</FONT></B>$3<B><FONT COLOR="#BC8F8F">&quot;.&quot;</FONT></B>$4<B><FONT COLOR="#BC8F8F">&quot;-&quot;</FONT></B>$4+$5}'`
Z

<I><FONT COLOR="#B22222"># pptp-serverのoptions設定をします。
</FONT></I>cat&gt;/etc/ppp/options.pptpd&lt;&lt;Z
lock
<I><FONT COLOR="#B22222"># debug
</FONT></I>name $HOSTNAME
domain $DOMAIN
nodefaultroute
proxyarp
auth
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
ms-dns  $DNS_1
ms-wins $DNS_1
Z

<I><FONT COLOR="#B22222"># pptp-serverを起動します。
</FONT></I><I><FONT COLOR="#B22222">#/usr/sbin/pptpd
</FONT></I>

<I><FONT COLOR="#B22222"># ipsecの設定をします。（OpenSwanV2.Xを使いKernel2.6.Xのみ対応)
</FONT></I><I><FONT COLOR="#B22222"># 起動と停止は→ service ipsec start ; service ipsec stop
</FONT></I>cat&gt;/etc/ipsec.conf&lt;&lt;Z
<I><FONT COLOR="#B22222">#/etc/ipsec.conf - Openswan IPsec configuration file
</FONT></I><I><FONT COLOR="#B22222">#RCSID $Id: ipsec.conf.in,v 1.13 2004/03/24 04:14:39 ken Exp $
</FONT></I><I><FONT COLOR="#B22222">#This file:  /usr/local/share/doc/openswan/ipsec.conf-sample
</FONT></I><I><FONT COLOR="#B22222">#
</FONT></I><I><FONT COLOR="#B22222">#Manual:     ipsec.conf.5
</FONT></I>version	2.0	<I><FONT COLOR="#B22222"># conforms to second version of ipsec.conf specification
</FONT></I><I><FONT COLOR="#B22222">#basic configuration
</FONT></I>config setup
<I><FONT COLOR="#B22222"># Debug-logging controls:  &quot;none&quot; for (almost) none, &quot;all&quot; for lots.
</FONT></I><I><FONT COLOR="#B22222"># klipsdebug=none
</FONT></I><I><FONT COLOR="#B22222"># plutodebug=&quot;control parsing&quot;
</FONT></I><I><FONT COLOR="#B22222">#Add connections here
</FONT></I>conn net-to-net
 authby=secret					<I><FONT COLOR="#B22222"># Key exchange method
</FONT></I> left=$PPPSERVER				<I><FONT COLOR="#B22222"># Public Internet IP address of the
</FONT></I>								<I><FONT COLOR="#B22222"># LEFT VPN device is myself(自サイト)
</FONT></I> <I><FONT COLOR="#B22222">#leftsubnet=192.168.0.0/24		# Subnet protected by the LEFT VPN device
</FONT></I> <I><FONT COLOR="#B22222">#leftnexthop=%defaultroute		# correct in many situations
</FONT></I> <I><FONT COLOR="#B22222">#
</FONT></I> right=$PPPCLIENT				<I><FONT COLOR="#B22222"># Public Internet IP address of the
</FONT></I>								<I><FONT COLOR="#B22222"># RIGHT VPN device is Other party(相手サイト)
</FONT></I> <I><FONT COLOR="#B22222">#rightsubnet=10.0.0.0/24		# Subnet protected by the RIGHT VPN device
</FONT></I> <I><FONT COLOR="#B22222">#rightnexthop=192.168.0.200	# correct in many situations
</FONT></I> auto=start						<I><FONT COLOR="#B22222"># authorizes and starts this connection on booting
</FONT></I><I><FONT COLOR="#B22222">#Disable Opportunistic Encryption
</FONT></I>include /etc/ipsec.d/examples/no_oe.conf
Z

<I><FONT COLOR="#B22222"># ipsecの事前共有鍵を設定します。
</FONT></I>cat&gt;/etc/ipsec.secrets&lt;&lt;Z
<I><FONT COLOR="#B22222">#vpn-ip-address vpn2-ip-address : PSK &quot;key in quotations&quot;
</FONT></I>$PPPSERVER $PPPCLIENT : PSK <B><FONT COLOR="#BC8F8F">&quot;pepopa@pepolinux.com&quot;</FONT></B>
Z


<I><FONT COLOR="#B22222"># iptablesを使ったFirewallを設定します。
</FONT></I>cat&gt;/etc/sysconfig/iptables&lt;&lt;Z
<I><FONT COLOR="#B22222"># Firewall configuration written by system-config-securitylevel
</FONT></I><I><FONT COLOR="#B22222"># Manual customization of this file is not recommended.
</FONT></I>*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
:Pepo-Firewall - [0:0]
-A INPUT -j Pepo-Firewall
-A FORWARD -j Pepo-Firewall
-A OUTPUT -j Pepo-Firewall
-A Pepo-Firewall -p icmp --icmp-<B><FONT COLOR="#A020F0">type</FONT></B> any -j ACCEPT
-A Pepo-Firewall -p 50 -j ACCEPT
-A Pepo-Firewall -p 51 -j ACCEPT
-A Pepo-Firewall -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A Pepo-Firewall -p udp -m udp --dport 631 -j ACCEPT
-A Pepo-Firewall -m state --state ESTABLISHED,RELATED -j ACCEPT
-A Pepo-Firewall -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
-A Pepo-Firewall -m state --state NEW -m tcp -p tcp --sport 20 -j ACCEPT
-A Pepo-Firewall -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A Pepo-Firewall -m state --state NEW -m tcp -p tcp --sport 21 -j ACCEPT
-A Pepo-Firewall -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A Pepo-Firewall -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT
-A Pepo-Firewall -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
-A Pepo-Firewall -p udp --dport 53 -j ACCEPT
-A Pepo-Firewall -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT
-A Pepo-Firewall -m state --state NEW -m tcp -p tcp --dport 143 -j ACCEPT
-A Pepo-Firewall -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A Pepo-Firewall -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A Pepo-Firewall -m state --state NEW -m tcp -p tcp --dport 587 -j ACCEPT
-A Pepo-Firewall -m state --state NEW -m tcp -p tcp --dport 3128 -j ACCEPT
-A Pepo-Firewall -m state --state NEW -m tcp -p tcp --dport 8022 -j ACCEPT
-A Pepo-Firewall -m state --state NEW -m tcp -p tcp --dport 8443 -j ACCEPT
-A Pepo-Firewall -p udp --dport 67 -j ACCEPT
-A Pepo-Firewall -p udp --dport 123 -j ACCEPT
-A Pepo-Firewall -p udp --dport 161 -j ACCEPT
-A Pepo-Firewall -m state --state NEW -m tcp -p tcp --dport 137 -j ACCEPT
-A Pepo-Firewall -p udp --dport 138 -j ACCEPT
-A Pepo-Firewall -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
-A Pepo-Firewall -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
-A Pepo-Firewall -p udp --dport 389 -j ACCEPT
-A Pepo-Firewall -m state --state NEW -m tcp -p tcp --dport 389 -j ACCEPT
-A Pepo-Firewall -m state --state NEW -m tcp -p tcp --dport 1723 -j ACCEPT
-A Pepo-Firewall -p gre -j ACCEPT
-A Pepo-Firewall -i ppp+ -m state --state NEW -m tcp -p tcp -j ACCEPT
-A Pepo-Firewall -i lo -m state --state NEW -m tcp -p tcp -j ACCEPT
-A Pepo-Firewall -j REJECT --reject-with icmp-host-prohibited
COMMIT
Z

<I><FONT COLOR="#B22222"># Firewallを有効にします。
</FONT></I>service iptables start

<I><FONT COLOR="#B22222"># 以下はiptablesを使ったip マスカレードの設定です。
</FONT></I><I><FONT COLOR="#B22222"># PepoLinuxがPPPでダイヤルUPしクライアントがPepoLinuxへデフォルトゲートを
</FONT></I><I><FONT COLOR="#B22222"># 向ければマスカレードルータの出来上がり。
</FONT></I>iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
<I><FONT COLOR="#B22222"># 以下はネットワークカードを２枚挿しでrouterとして動作させた場合のマスカレード
</FONT></I><I><FONT COLOR="#B22222">#iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to $IPADDR
</FONT></I><I><FONT COLOR="#B22222">#iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to $IPADDR1
</FONT></I>

<I><FONT COLOR="#B22222"># もし$NETWORK1から$NETWORKを経由インターネットへ接続する必要がある時は以下の
</FONT></I><I><FONT COLOR="#B22222"># 設定で接続出来ます。（勿論DNS、デフォルトゲート等は手動で設定する必要がありますが）
</FONT></I><I><FONT COLOR="#B22222">#iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to $IPADDR
</FONT></I><I><FONT COLOR="#B22222"># 色々なiptablesの設定をテストした後の設定をセーブする時は以下コマンド実行
</FONT></I><I><FONT COLOR="#B22222">#iptables-save &gt;settei
</FONT></I><I><FONT COLOR="#B22222"># 設定をsetteiに戻す時は以下コマンド実行
</FONT></I><I><FONT COLOR="#B22222">#iptables-restore &lt;settei
</FONT></I>

<I><FONT COLOR="#B22222"># 以下はPPPサーバーとして動作させた場合のマスカレードの設定。クライアントからダイヤル
</FONT></I><I><FONT COLOR="#B22222"># ＵＰすればイントラネット内のアクセスが出来る。
</FONT></I><I><FONT COLOR="#B22222">#iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to $IPADDR
</FONT></I>

<I><FONT COLOR="#B22222"># ブリッジの起動を行います。イーサネットカードを２枚挿入され認識している時の設定です。
</FONT></I><I><FONT COLOR="#B22222">#pepobrct eth1 start
</FONT></I>

<I><FONT COLOR="#B22222"># ブリッジの起動が終わっている場合、brouterの設定を行います。
</FONT></I><I><FONT COLOR="#B22222"># ebtables(Ethernet bridge tables)はMACレイヤで高度なフィルタリングが機能
</FONT></I><I><FONT COLOR="#B22222"># するものです、ここではブルータ機能のみ設定をしています。
</FONT></I>cat&gt;/etc/brouter.sh&lt;&lt;Z
<B><FONT COLOR="#5F9EA0">#!/bin/sh
</FONT></B><I><FONT COLOR="#B22222">#This script making brouter,a precondtion is enabled pepobrctl.
</FONT></I>MAC_OF_ETH0=`ifconfig eth0 2&gt;/dev/null|awk '/HWaddr/ {print $5}'`
MAC_OF_ETH1=`ifconfig eth1 2&gt;/dev/null|awk '/HWaddr/ {print $5}'`
ifconfig br0 0.0.0.0
ifconfig eth0 $IPADDR netmask $NETMASK
ifconfig eth1 $IPADDR1 netmask $NETMASK1
ebtables -t broute -A BROUTING -p ipv4 -i eth0 --ip-dst $IPADDR -j DROP
ebtables -t broute -A BROUTING -p ipv4 -i eth1 --ip-dst $IPADDR1 -j DROP
ebtables -t broute -A BROUTING -p arp -i eth0 -d \$MAC_OF_ETH0 -j DROP
ebtables -t broute -A BROUTING -p arp -i eth1 -d \$MAC_OF_ETH1 -j DROP
Z
chmod 755 /etc/brouter.sh
<I><FONT COLOR="#B22222"># brouterの起動をします。（ブリッジの起動をさせた後に起動させて下さい）
</FONT></I><I><FONT COLOR="#B22222">#/etc/brouter.sh;echo brouter start!
</FONT></I>

<I><FONT COLOR="#B22222"># VTun(Virtual Tunnel over TCP/IP network⇒トンネルデバイス)を設定します。
</FONT></I><I><FONT COLOR="#B22222"># VTunはC/S間で仮想IPネットワークを構築しデータの暗号化と圧縮をするものです。
</FONT></I>
<I><FONT COLOR="#B22222"># 相手Vtunホストのルーティングの設定、ネットワーク単位やデフォルトゲートの設定はしない事。
</FONT></I><I><FONT COLOR="#B22222">#route del default gw $GATEWAY ; route add -host $TUNHOST gw $GATEWAY
</FONT></I>
<I><FONT COLOR="#B22222"># サーバー側のIPアドレスの設定
</FONT></I>sed -e <B><FONT COLOR="#BC8F8F">&quot;s/TUNSERVER/$TUNSERVER/&quot;</FONT></B> -e <B><FONT COLOR="#BC8F8F">&quot;s/TUNCLIENT/$TUNCLIENT/&quot;</FONT></B> /etc/vtund.conf.server &gt;/etc/vtund.conf.new

<I><FONT COLOR="#B22222"># クライアント側のIPアドレスの設定
</FONT></I><I><FONT COLOR="#B22222">#sed -e &quot;s/TUNSERVER/$TUNSERVER/&quot; -e &quot;s/TUNCLIENT/$TUNCLIENT/&quot; /etc/vtund.conf.client &gt;/etc/vtund.conf.new
</FONT></I>
<I><FONT COLOR="#B22222"># 相手VtunのLANネットワークを設定します。(ここは触らない)
</FONT></I>sed <B><FONT COLOR="#BC8F8F">&quot;s/IPADDR/$IPADDR/&quot;</FONT></B> /etc/vtund.conf.new &gt;/etc/vtund.conf.tmp
sed -e <B><FONT COLOR="#BC8F8F">&quot;s/TUNNETWORK/$TUNNETWORK/&quot;</FONT></B> -e <B><FONT COLOR="#BC8F8F">&quot;s/TUNMASK/$TUNMASK/&quot;</FONT></B> /etc/vtund.conf.tmp &gt;/etc/vtund.conf.new

<I><FONT COLOR="#B22222"># サーバー側の起動です。(IPトンネル、ブリッジもサーバー側の起動は変わらない)
</FONT></I><I><FONT COLOR="#B22222">#modprobe tun ; vtund -f /etc/vtund.conf.new -s
</FONT></I>
<I><FONT COLOR="#B22222"># IPのトンネリングを行う。
</FONT></I><I><FONT COLOR="#B22222"># サーバー側のIPアドレスが$TUNHOSTに設定されているものとする。
</FONT></I><I><FONT COLOR="#B22222"># クライアント側の起動です。
</FONT></I><I><FONT COLOR="#B22222">#modprobe tun ; vtund cobra -f /etc/vtund.conf.new $TUNHOST
</FONT></I>
<I><FONT COLOR="#B22222"># イーサーネットトンネリング(リモートブリッジ)の設定。
</FONT></I><I><FONT COLOR="#B22222"># クライアント側の起動です。
</FONT></I><I><FONT COLOR="#B22222">#modprobe tun ; vtund lion -f /etc/vtund.conf.new $TUNHOST
</FONT></I>

<I><FONT COLOR="#B22222"># VLANの設定です。設定例ではeth0に3番のVLANを設定しIPアドレスをTUNSERVER又
</FONT></I><I><FONT COLOR="#B22222"># はTUNCLIENTのアドレスを設定します。
</FONT></I><I><FONT COLOR="#B22222"># サーバー側の起動です。(VLANにクライアント＆サーバーの概念はありません)
</FONT></I><I><FONT COLOR="#B22222">#vconfig add eth0 3 ; ifconfig eth0.3 $TUNSERVER network $TUNNETWORK
</FONT></I>
<I><FONT COLOR="#B22222"># クライン側の起動です。(VLANにクライアント＆サーバーの概念はありません)
</FONT></I><I><FONT COLOR="#B22222">#vconfig add eth0 3 ; ifconfig eth0.3 $TUNCLIENT network $TUNNETWORK
</FONT></I>

<I><FONT COLOR="#B22222"># サブインターフェースの設定、１つのethに１つ以上のIPアドレスを設定しましす。
</FONT></I><I><FONT COLOR="#B22222">#ifconfig eth0:0 192.168.1.1
</FONT></I><I><FONT COLOR="#B22222">#ifconfig eth0:1 192.168.2.1
</FONT></I>

<I><FONT COLOR="#B22222"># etc/inittab の設定です、ここへ登録すると殺(kill)されても不死鳥の如く蘇ります
</FONT></I><I><FONT COLOR="#B22222"># 以下の設定は run レベル 5 で常に dos で言うcom1、com2のダイヤルイン監視してい
</FONT></I><I><FONT COLOR="#B22222"># ます、もしダイヤルアウトする必要がある場合 # でコメントアウトして下さい。
</FONT></I><I><FONT COLOR="#B22222"># 一度ダイヤルイン監視で立ち上げた場合#でコメントアウト後モデムをダイヤルアウト
</FONT></I><I><FONT COLOR="#B22222"># 用に設定変更をして下さい。(epicon でモデムへ at&amp;f コマンドを書く)
</FONT></I><I><FONT COLOR="#B22222"># もし respawming to fast :disable for 5 minutes が煩ければ#でコメントアウトして下
</FONT></I><I><FONT COLOR="#B22222"># さい又モデムが無ければやはり同様のメッセージが出力されます。
</FONT></I><I><FONT COLOR="#B22222"># pcmciaのモデムカードがttyS2で認識される時はc51の#を外してc50を#でコメントアウト
</FONT></I><I><FONT COLOR="#B22222"># 後に再起動して下さい。
</FONT></I><I><FONT COLOR="#B22222"># Winmodemでダイヤルインさせる場合はc53を#でコメントアウトします。(2003.8.10動作せず）
</FONT></I><I><FONT COLOR="#B22222"># USBモデム(SUNTAC・U-Cable・TypeD2-V)を認識している場合c55を#でコメントアウトします。
</FONT></I><I><FONT COLOR="#B22222"># com1にクロスケーブルでコンソールを接続する場合はc54を#でコメントアウトします。
</FONT></I><I><FONT COLOR="#B22222"># Docomo FOMA携帯電話を接続してダイヤルインする場合はc58を有効にします。
</FONT></I>cat&gt;&gt;inittab&lt;&lt;Z
<I><FONT COLOR="#B22222">#c50:5:respawn:/sbin/agetty  -I 'at&amp;fe0q1&amp;d2&amp;c1s0=1\015' 38400 ttyS1
</FONT></I><I><FONT COLOR="#B22222">#c51:5:respawn:/sbin/agetty  -I 'at&amp;fe0q1&amp;d2&amp;c1s0=1\015' 38400 ttyS2
</FONT></I><I><FONT COLOR="#B22222">#c52:5:respawn:/sbin/agetty  -I 'at&amp;fe0q1&amp;d2&amp;c1s0=1\015' 38400 /dev/ttyACM0 
</FONT></I><I><FONT COLOR="#B22222">#c53:5:respawn:/sbin/agetty  -I 'at&amp;fe0q1&amp;d2&amp;c1s0=1\015' 38400 /dev/ttyS15
</FONT></I><I><FONT COLOR="#B22222">#c54:5:respawn:/sbin/agetty  38400 ttyS0
</FONT></I><I><FONT COLOR="#B22222">#c55:5:respawn:/sbin/agetty  -I 'at&amp;fe0q1&amp;d2&amp;c1s0=1\015' 38400 /dev/ttyUSB0
</FONT></I><I><FONT COLOR="#B22222">#c56:5:respawn:/usr/local/bin/peporemote
</FONT></I><I><FONT COLOR="#B22222">#c57:5:respawn:/usr/local/bin/epicon -l /dev/ttyACM0 -c /usr/local/bin/pepop2pchat
</FONT></I><I><FONT COLOR="#B22222">#c58:5:respawn:/usr/bin/svscanboot
</FONT></I>Z


<I><FONT COLOR="#B22222"># レゾルバを設定します dhcp クライアント時の設定はサーバーよりドメインとネーム
</FONT></I><I><FONT COLOR="#B22222"># サーバー情報を取得します、この為#でコメントアウトする必要があります。
</FONT></I><I><FONT COLOR="#B22222"># DNSサーバーで起動する時は二つとも#を削除します。
</FONT></I>cat&gt;resolv.conf&lt;&lt;Z
domain $DOMAIN		<I><FONT COLOR="#B22222"># DNSサーバーで起動する時は#を削除します。
</FONT></I>nameserver $DNS_1	<I><FONT COLOR="#B22222"># DNSサーバーで起動する時は#を削除します。
</FONT></I>Z


<I><FONT COLOR="#B22222"># 以下 DNS サーバーの設定をします、まずはこれで動かして色々設定を試し下さい。
</FONT></I>cat&gt;/var/named/chroot/etc/named.conf&lt;&lt;Z
options {
        directory <B><FONT COLOR="#BC8F8F">&quot;/var/named&quot;</FONT></B>;
        forward only;
        forwarders {
        $DNS_2;
        };
	listen-on port 53 { any; };
};
controls {
	inet 127.0.0.1 port 953 allow { localhost; } keys { rndckey; };
};
zone <B><FONT COLOR="#BC8F8F">&quot;$DOMAIN&quot;</FONT></B> IN {
        <B><FONT COLOR="#A020F0">type</FONT></B> master;
        file <B><FONT COLOR="#BC8F8F">&quot;named.hosts&quot;</FONT></B>;
        allow-update {
            $IPADD;
        };
};
zone <B><FONT COLOR="#BC8F8F">&quot;`echo $IPADDR|awk 'BEGIN{FS=&quot;</FONT></B>.<B><FONT COLOR="#BC8F8F">&quot;};{print $3&quot;</FONT></B>.<B><FONT COLOR="#BC8F8F">&quot;$2&quot;</FONT></B>.<B><FONT COLOR="#BC8F8F">&quot;$1&quot;</FONT></B>.<B><FONT COLOR="#A020F0">in</FONT></B>-addr.arpa<B><FONT COLOR="#BC8F8F">&quot;}'`&quot;</FONT></B> IN {
        <B><FONT COLOR="#A020F0">type</FONT></B> master;
        file <B><FONT COLOR="#BC8F8F">&quot;named.rev&quot;</FONT></B>;
        allow-update {
            $IPADD;
        };
};

zone <B><FONT COLOR="#BC8F8F">&quot;localdomain&quot;</FONT></B> IN {
        <B><FONT COLOR="#A020F0">type</FONT></B> master;
        file <B><FONT COLOR="#BC8F8F">&quot;localdomain.zone&quot;</FONT></B>;
        allow-update { none; };
};

zone <B><FONT COLOR="#BC8F8F">&quot;localhost&quot;</FONT></B> IN {
        <B><FONT COLOR="#A020F0">type</FONT></B> master;
        file <B><FONT COLOR="#BC8F8F">&quot;localhost.zone&quot;</FONT></B>;
        allow-update { none; };
};

zone <B><FONT COLOR="#BC8F8F">&quot;0.0.127.in-addr.arpa&quot;</FONT></B> IN {
        <B><FONT COLOR="#A020F0">type</FONT></B> master;
        file <B><FONT COLOR="#BC8F8F">&quot;127.0.0.rev&quot;</FONT></B>;
        allow-update { none; };
};

<I><FONT COLOR="#B22222">#zone &quot;.&quot; IN {
</FONT></I><I><FONT COLOR="#B22222">#        type hint;
</FONT></I><I><FONT COLOR="#B22222">#        file &quot;named.ca&quot;;
</FONT></I><I><FONT COLOR="#B22222">#};
</FONT></I>
include <B><FONT COLOR="#BC8F8F">&quot;/etc/rndc.key&quot;</FONT></B>;
Z

cat&gt;/var/named/chroot/var/named/named.hosts&lt;&lt;Z
\$TTL	600
@		IN		SOA	$DOMAIN. $HOSTNAME.$DOMAIN. (
		20070101	;Serial
		10800		;Refresh after 3 hours
		3600		;Retry  after 1 hours
		604800		;Expire after 1 week
		86400)		;Minimum TTL of 1 day
		IN		NS	$HOSTNAME.$DOMAIN.
		IN		MX	10	mail.$DOMAIN.
ftp		IN	A	$IPADDR
dns		IN	A	$IPADDR
www		IN	A	$IPADDR
mail	IN	A	$IPADDR

_ldap._tcp.$DOMAIN. 				SRV 0 100 389 $HOSTNAME.$DOMAIN.
_kerberos._tcp.$DOMAIN. 			SRV 0 100 88 $HOSTNAME.$DOMAIN.
_ldap._tcp.dc._msdcs.$DOMAIN. 		SRV 0 100 389 $HOSTNAME.$DOMAIN.
_kerberos._tcp.dc._msdcs.$DOMAIN. 	SRV 0 100 88 $HOSTNAME.$DOMAIN.

`<B><FONT COLOR="#A020F0">echo</FONT></B>	$IPADDR.$HOSTNAME|\
	awk 'BEGIN{FS=<B><FONT COLOR="#BC8F8F">&quot;.&quot;</FONT></B>};\
	{printf (<B><FONT COLOR="#BC8F8F">&quot;%s\tIN\tA\t%d.%d.%d.%d\n&quot;</FONT></B>,$5,$1,$2,$3,$4)}'`
`<B><FONT COLOR="#A020F0">echo</FONT></B>	$IPADDR.$CLIENT.$HOST|\
	awk 'BEGIN{FS=<B><FONT COLOR="#BC8F8F">&quot;.&quot;</FONT></B>};\
	{<B><FONT COLOR="#A020F0">for</FONT></B> (i=1; i&lt;=$5 ;i++) \
	printf (<B><FONT COLOR="#BC8F8F">&quot;%s\tIN\tA\t%d.%d.%d.%d\n&quot;</FONT></B>,$6i,$1,$2,$3,$4+i)}'`
gw		IN	A	$GATEWAY
		HINFO	<B><FONT COLOR="#BC8F8F">&quot;PepoLinux&quot;</FONT></B> <B><FONT COLOR="#BC8F8F">&quot;IZAMUKARERA&quot;</FONT></B>
		TXT		<B><FONT COLOR="#BC8F8F">&quot;Router&quot;</FONT></B>
Z

cat&gt;/var/named/chroot/var/named/named.rev&lt;&lt;Z
\$TTL           86400
@               IN      SOA     $DOMAIN. $HOSTNAME.$DOMAIN. (
                20070101        ;Serial
                10800           ;Refresh after 3 hours
                3600            ;Retry  after 1 hours
                604800          ;Expire after 1 week
                86400)          ;Minimum TTL of 1 day
                IN      NS      $HOSTNAME.$DOMAIN.
`<B><FONT COLOR="#A020F0">echo</FONT></B>   $IPADDR,$HOSTNAME,$DOMAIN|\
        awk 'BEGIN{FS=<B><FONT COLOR="#BC8F8F">&quot;,&quot;</FONT></B>};\
        {split($1,IP,<B><FONT COLOR="#BC8F8F">&quot;.&quot;</FONT></B>);\
        IP4=IP[4];\
        printf (<B><FONT COLOR="#BC8F8F">&quot;%d\tIN\tPTR\t%s.%s.\n&quot;</FONT></B>,IP4,$2,$3)}'`

`<B><FONT COLOR="#A020F0">echo</FONT></B>   $IPADDR,$DOMAIN|\
        awk 'BEGIN{FS=<B><FONT COLOR="#BC8F8F">&quot;,&quot;</FONT></B>};\
        {split($1,IP,<B><FONT COLOR="#BC8F8F">&quot;.&quot;</FONT></B>);\
        IP4=IP[4];\
        printf (<B><FONT COLOR="#BC8F8F">&quot;%d\tIN\tPTR\tmail.%s.\n&quot;</FONT></B>,IP4,$2)}'`
`<B><FONT COLOR="#A020F0">echo</FONT></B>   $IPADDR,$CLIENT,$HOST,$DOMAIN|\
        awk 'BEGIN{FS=<B><FONT COLOR="#BC8F8F">&quot;,&quot;</FONT></B>};\
        {split($1,IP,<B><FONT COLOR="#BC8F8F">&quot;.&quot;</FONT></B>);\
        IP4=IP[4];
        <B><FONT COLOR="#A020F0">for</FONT></B> (i=1; i&lt;=$2 ;i++) \
        printf (<B><FONT COLOR="#BC8F8F">&quot;%d\tIN\tPTR\t%s.%s.\n&quot;</FONT></B>,IP4+i,$3i,$4)}'`
Z

cat&gt;/var/named/chroot/var/named/localdomain.zone&lt;&lt;Z
\$TTL           86400
@               IN      SOA     localhost. root.localhost. (
                20070101        ;Serial
                10800           ;Refresh after 3 hours
                3600            ;Retry  after 1 hours
                604800          ;Expire after 1 week
                86400)          ;Minimum TTL of 1 day
                IN      NS      localhost.
localhost       IN      A       127.0.0.1
Z

cat&gt;/var/named/chroot/var/named/localhost.zone&lt;&lt;Z
\$TTL           86400
@               IN      SOA     localhost. root.localhost. (
                20070101        ;Serial
                10800           ;Refresh after 3 hours
                3600            ;Retry  after 1 hours
                604800          ;Expire after 1 week
                86400)          ;Minimum TTL of 1 day
                IN      NS      localhost.
                IN      A       127.0.0.1
Z

cat&gt;/var/named/chroot/var/named/127.0.0.rev&lt;&lt;Z
\$TTL            86400
@               IN      SOA     localhost. root.localhost. (
                20070101        ; Serial
                28800           ; Refresh
                14400           ; Retry
                3600000         ; Expire
                86400 )         ; Minimum
                IN      NS      localhost.
1               IN      PTR     localhost.
Z

touch /var/named/chroot/var/named/named.root;chmod 644 /var/named/chroot/var/named/named.root
chown named.named /var/named/chroot/var/named/*
<I><FONT COLOR="#B22222"># named コントロール用のkeyを生成します。
</FONT></I><I><FONT COLOR="#B22222">#rndc-confgen -a
</FONT></I>

<I><FONT COLOR="#B22222"># dhcp サーバーの設定を設定します。
</FONT></I><I><FONT COLOR="#B22222"># dhcp
</FONT></I><I><FONT COLOR="#B22222">#/bin/sh
</FONT></I>cat&gt;/etc/dhcpd.conf&lt;&lt;Z
                        ddns-update-style none;
                        server-identifier $HOSTNAME.$DOMAIN;
                        option domain-name <B><FONT COLOR="#BC8F8F">&quot;$DOMAIN&quot;</FONT></B>;
                        option domain-name-servers $DNS_1,$DNS_2;
                        shared-network $HOSTNAME{
                        option subnet-mask $NETMASK;
                        default-lease-time 3600;
                        max-lease-time 7200;
                        subnet $NETWORK netmask $NETMASK {
                        range `<B><FONT COLOR="#A020F0">echo</FONT></B>  $IPADDR.$CLIENT|awk 'BEGIN{FS=<B><FONT COLOR="#BC8F8F">&quot;.&quot;</FONT></B>};
                        {print $1<B><FONT COLOR="#BC8F8F">&quot;.&quot;</FONT></B>$2<B><FONT COLOR="#BC8F8F">&quot;.&quot;</FONT></B>$3<B><FONT COLOR="#BC8F8F">&quot;.&quot;</FONT></B>$4+1<B><FONT COLOR="#BC8F8F">&quot; &quot;</FONT></B>$1<B><FONT COLOR="#BC8F8F">&quot;.&quot;</FONT></B>$2<B><FONT COLOR="#BC8F8F">&quot;.&quot;</FONT></B>$3<B><FONT COLOR="#BC8F8F">&quot;.&quot;</FONT></B>$4+$5<B><FONT COLOR="#BC8F8F">&quot;;&quot;</FONT></B>}'`
                        option routers $GATEWAY;
                        }
}
Z


<I><FONT COLOR="#B22222">#システムの安定を待ちます。
</FONT></I>sync
sleep 5


<I><FONT COLOR="#B22222"># デバイス検出の為にメッセージ・バスデーモンを起動します。
</FONT></I>service messagebus start


<I><FONT COLOR="#B22222"># dns サーバーを起動させます。
</FONT></I>service named start <I><FONT COLOR="#B22222">#echo Starting named
</FONT></I>

<I><FONT COLOR="#B22222"># dhcp サーバーを起動させます。
</FONT></I><I><FONT COLOR="#B22222">#service dhcpd start
</FONT></I>

<I><FONT COLOR="#B22222"># dhcp クライアントを起動させます、他の pc にdhcpサーバーが必要です。
</FONT></I><I><FONT COLOR="#B22222">#dhclient eth0;echo Starting dhcpcd
</FONT></I>

<I><FONT COLOR="#B22222"># routed ルーティングデーモンを起動させます。(RIP-1によるルーティングを行う)
</FONT></I><I><FONT COLOR="#B22222">#routed ;echo Starting routed
</FONT></I>

<I><FONT COLOR="#B22222"># ＭＯＵＳＥのコピー＆ペーストユーティリテを起動させます。
</FONT></I>service gpm start
<I><FONT COLOR="#B22222"># ＵＳＢ ＭＯＵＳＥのコピー＆ペーストユーティリテを起動させます。
</FONT></I><I><FONT COLOR="#B22222">#gpm -m /dev/input/mice -t ps2;echo starting usb_mouse_gpm
</FONT></I>

<I><FONT COLOR="#B22222"># snmp デーモンの起動させます。
</FONT></I>sed -e <B><FONT COLOR="#BC8F8F">&quot;s/_HOSTNAME/$HOSTNAME_TDL/&quot;</FONT></B> -e <B><FONT COLOR="#BC8F8F">&quot;s/_DOMAIN/$DOMAIN/&quot;</FONT></B> /etc/snmp/snmpd.conf.org &gt;/etc/snmp/snmpd.conf
service snmpd start <I><FONT COLOR="#B22222"># echo Starting snmpd
</FONT></I>

<I><FONT COLOR="#B22222"># 「ntp3.jst.mfeed.ad.jp」と時刻を同期させます。
</FONT></I>/usr/sbin/ntpdate ntp3.jst.mfeed.ad.jp


<I><FONT COLOR="#B22222"># ntp サーバーの起動させます。
</FONT></I><I><FONT COLOR="#B22222">#service ntpd start
</FONT></I>

<I><FONT COLOR="#B22222"># portmap サーバーを起動します。（RPCサービスやnfsを使う時に必要です）
</FONT></I><I><FONT COLOR="#B22222">#service portmap start
</FONT></I>

<I><FONT COLOR="#B22222"># nfs サーバーを起動します。（公開するディレクトリは予めメモリディスク以外をマウントしてから /etc/exportfs を編集します）
</FONT></I><I><FONT COLOR="#B22222">#service nfs start
</FONT></I>

<I><FONT COLOR="#B22222"># ssh サーバーの起動させます。
</FONT></I>service sshd start


<I><FONT COLOR="#B22222"># proxy サーバーの起動させます。
</FONT></I>sed -e <B><FONT COLOR="#BC8F8F">&quot;s/IPADDR/$NETWORK\/$MASK/&quot;</FONT></B> /etc/squid/squid.conf.org &gt;/etc/squid/squid.conf
<I><FONT COLOR="#B22222">#mkdir -p /var/log/squid ; chown squid.squid /var/log/squid ; service squid start
</FONT></I>

<I><FONT COLOR="#B22222"># mail デーモンを起動させます。
</FONT></I>sed -e <B><FONT COLOR="#BC8F8F">&quot;s/_HOSTNAME/$HOSTNAME_TDL/&quot;</FONT></B> -e <B><FONT COLOR="#BC8F8F">&quot;s/_DOMAIN/$DOMAIN/&quot;</FONT></B> -e <B><FONT COLOR="#BC8F8F">&quot;s/_RELAYHOST/$RELAYHOST/&quot;</FONT></B>  /etc/postfix/main.cf.org &gt;/etc/postfix/main.cf
sed <B><FONT COLOR="#BC8F8F">&quot;s/localhost.localdomain/$DOMAIN/&quot;</FONT></B> /etc/mail/sendmail.mc &gt;/etc/mail/sendmail.mc.bak;cp /etc/mail/sendmail.mc.bak /etc/mail/sendmail.mc
<B><FONT COLOR="#A020F0">if</FONT></B> [ -n $RELAYHOST ];<B><FONT COLOR="#A020F0">then</FONT></B>
  <B><FONT COLOR="#A020F0">echo</FONT></B> <B><FONT COLOR="#BC8F8F">&quot;define(\`SMART_HOST', \`$RELAYHOST')dnl&quot;</FONT></B> &gt;&gt;/etc/mail/sendmail.mc
<B><FONT COLOR="#A020F0">fi</FONT></B>
<I><FONT COLOR="#B22222">#service sendmail start
</FONT></I>service postfix start


<I><FONT COLOR="#B22222"># pop,imap （dovecot)デーモンを起動します。
</FONT></I><I><FONT COLOR="#B22222">#service dovecot start
</FONT></I>

<I><FONT COLOR="#B22222"># www サーバーの設定です。ホームページデータの転送と、 www (Apache)サーバーを
</FONT></I><I><FONT COLOR="#B22222"># 動作させます、 ssi、cgi 、perlスクリプトもOK。
</FONT></I><I><FONT COLOR="#B22222"># /tftpboot/home/~xxxx/public_html/ に各ユーザーがホームページを作成出来ます。
</FONT></I>sed -e <B><FONT COLOR="#BC8F8F">&quot;s/IPADDR/$NETWORK\/$MASK/&quot;</FONT></B> -e <B><FONT COLOR="#BC8F8F">&quot;s/_HOSTNAME/$HOSTNAME_TDL/&quot;</FONT></B> /etc/httpd/conf/httpd.conf.org &gt;/etc/httpd/conf/httpd.conf
sed -e <B><FONT COLOR="#BC8F8F">&quot;s/_HOSTNAME/$HOSTNAME_TDL/&quot;</FONT></B> -e <B><FONT COLOR="#BC8F8F">&quot;s/_DOMAIN/$DOMAIN/&quot;</FONT></B> -e <B><FONT COLOR="#BC8F8F">&quot;s/Ver0.47/Ver$Ver/&quot;</FONT></B> /var/www/html/index.html.org &gt;/var/www/html/index.html
PE=/dos/peplinux
T=/var/www
<B><FONT COLOR="#A020F0">if</FONT></B> [ -d <B><FONT COLOR="#BC8F8F">&quot;$PE&quot;</FONT></B> ]; <B><FONT COLOR="#A020F0">then</FONT></B>
	<B><FONT COLOR="#A020F0">cd</FONT></B> $PE
	cp -ap *.html *.htm *.shtml *.dat *.php $T/html &gt;/dev/null 2&gt;&amp;1
	cp -ap *.png *.gif *.jpg $T/html/img &gt;/dev/null 2&gt;&amp;1
	<B><FONT COLOR="#A020F0">if</FONT></B> [ -f counter.pl ];<B><FONT COLOR="#A020F0">then</FONT></B>
		lfcut.s counter.pl $T/cgi-bin/counter.pl
	<B><FONT COLOR="#A020F0">fi</FONT></B>
	<B><FONT COLOR="#A020F0">cd</FONT></B> /
<B><FONT COLOR="#A020F0">fi</FONT></B>
chmod 777 $T $T/* $T/cgi-bin/* $T/html/*  $T/html/img/* &gt;/dev/null 2&gt;&amp;1
<I><FONT COLOR="#B22222"># www サーバーの起動です
</FONT></I>service httpd start


<I><FONT COLOR="#B22222"># mrtgとanalogの設定です。ルーターとWWWサーバーの統計データーを定期的に集計しWEBで公開します。
</FONT></I>MEM_T=`free |awk -F<B><FONT COLOR="#BC8F8F">&quot; &quot;</FONT></B> '/Mem/{print $2}'`
COMMUNITY=public
<I><FONT COLOR="#B22222">#MRTG_IP=$IPADDR
</FONT></I>/usr/bin/cfgmaker --global 'WorkDir: /var/www/mrtg' --global 'Language: eucjp' \
--global 'options[_]: growright,bits' --output=/etc/mrtg/mrtg.cfg.old $COMMUNITY@$MRTG_IP

cat&gt;&gt;/etc/mrtg/mrtg.cfg.old&lt;&lt;Z
<I><FONT COLOR="#B22222">#
</FONT></I><I><FONT COLOR="#B22222"># httpdプロセス数の数 # httpdプロセス数
</FONT></I><I><FONT COLOR="#B22222">#
</FONT></I>Target[httpd]: .1.3.6.1.4.1.2021.2.1.5.1&amp;.1.3.6.1.4.1.2021.2.1.4.1:$COMMUNITY@$MRTG_IP
ThreshMaxI[httpd]: 20
SetEnv[httpd]: EMAIL=<B><FONT COLOR="#BC8F8F">&quot;root@$DOMAIN&quot;</FONT></B>
               URL=<B><FONT COLOR="#BC8F8F">&quot;http://$MRTG_IP/mrtg/httpd.html&quot;</FONT></B>
MaxBytes[httpd]: 100
Title[httpd]: Number of httpd
PageTop[httpd]: &lt;H1&gt; Number of httpd on WebServer&lt;/H1&gt;
YLegend[httpd]: Number of httpd
ShortLegend[httpd]: httpd
LegendI[httpd]: 起動中のhttpd
LegendO[httpd]: 起動中のhttpd

<I><FONT COLOR="#B22222">#
</FONT></I><I><FONT COLOR="#B22222"># CPUのロードアベレージ# 1分間平均の％および15分平均の％
</FONT></I><I><FONT COLOR="#B22222">#
</FONT></I>Target[la]: .1.3.6.1.4.1.2021.10.1.5.1&amp;.1.3.6.1.4.1.2021.10.1.5.3:$COMMUNITY@$MRTG_IP
ThreshMaxI[la]: 50
SetEnv[la]: EMAIL=<B><FONT COLOR="#BC8F8F">&quot;root@$DOMAIN&quot;</FONT></B>
            URL=<B><FONT COLOR="#BC8F8F">&quot;http://$MRTG_IP/mrtg/la.html&quot;</FONT></B>
MaxBytes[la]: 100
Title[la]: Load Average
PageTop[la]: &lt;H1&gt; Load Average on WebServer&lt;/H1&gt;
YLegend[la]: Load Average
ShortLegend[la]: %
LegendI[la]: 1分平均
LegendO[la]: 15分平均
<I><FONT COLOR="#B22222">#
</FONT></I><I><FONT COLOR="#B22222"># メモリ使用状況 # MaxByteには非試験機のトータルメモリを指定
</FONT></I><I><FONT COLOR="#B22222">#
</FONT></I>Target[mem]: .1.3.6.1.4.1.2021.4.4.0&amp;.1.3.6.1.4.1.2021.4.6.0:$COMMUNITY@$MRTG_IP
ThreshMaxI[mem]: 80
SetEnv[mem]: EMAIL=<B><FONT COLOR="#BC8F8F">&quot;root@$DOMAIN&quot;</FONT></B>
            URL=<B><FONT COLOR="#BC8F8F">&quot;http://$MRTG_IP/mrtg/mem.html&quot;</FONT></B>
MaxBytes[mem]: $MEM_T
Title[mem]: Memory Usage <B><FONT COLOR="#BC8F8F">&quot;real&quot;</FONT></B> and <B><FONT COLOR="#BC8F8F">&quot;swap&quot;</FONT></B>
PageTop[mem]: &lt;H1&gt;Memory Usage <B><FONT COLOR="#BC8F8F">&quot;real&quot;</FONT></B> and <B><FONT COLOR="#BC8F8F">&quot;swap&quot;</FONT></B> on WebServer&lt;/H1&gt;
YLegend[mem]: Memory Usage
ShortLegend[mem]: kbyte
LegendI[mem]: Swap使用量
LegendO[mem]: 実メモリ使用量
Z

<I><FONT COLOR="#B22222"># mrtgの設定ファイルをeucへ変換します。
</FONT></I>nkf -e /etc/mrtg/mrtg.cfg.old &gt;/etc/mrtg/mrtg.cfg

<I><FONT COLOR="#B22222"># mrtgの各統計用のHTMLファイルを一つのindex.htmlにまとめます。
</FONT></I>/usr/bin/indexmaker /etc/mrtg/mrtg.cfg &gt; /var/www/mrtg/pepolinux.html

<I><FONT COLOR="#B22222">#WEBサーバの解析ソフトwebalizerの設定をしてcronに登録します。
</FONT></I>sed -e <B><FONT COLOR="#BC8F8F">&quot;s/_HOSTNAME/$HOSTNAME_TDL/&quot;</FONT></B>  /etc/webalizer.conf.org &gt;/etc/webalizer.conf

<I><FONT COLOR="#B22222"># 定期的に収集出来るようにと2時間毎に時刻同期をcronに設定します。
</FONT></I>cat&gt;/etc/mrtg.sh&lt;&lt;Z
LANG=C
/usr/bin/mrtg /etc/mrtg/mrtg.cfg
Z
chmod 755 /etc/mrtg.sh

cat&gt;/etc/cronpepo&lt;&lt;Z
0-59/5 * * * *  /etc/mrtg.sh
0-59/5 * * * *  /usr/bin/webalizer -c /etc/webalizer.conf
00 0-23/2 * * * /usr/sbin/ntpdate gpsntp.miz.nao.ac.jp
Z

crontab /etc/cronpepo


<I><FONT COLOR="#B22222"># Disable kernel messages. If you wish to verbose mode please comment out.
</FONT></I><B><FONT COLOR="#A020F0">echo</FONT></B> <B><FONT COLOR="#BC8F8F">&quot;0&quot;</FONT></B> &gt; /proc/sys/kernel/printk


<I><FONT COLOR="#B22222"># インターネット・スーパーデーモン xinetd 様の起動です、これを起動さないとFTP、TELNET等が不可。
</FONT></I>service xinetd start


<I><FONT COLOR="#B22222"># デバイス検出デーモンを起動します。
</FONT></I>service haldaemon start


<I><FONT COLOR="#B22222"># WindowsXPが起動出来なくなった時、DISKをマウントして共有フォルダで公開します。
</FONT></I><I><FONT COLOR="#B22222">#pepomsrescue
</FONT></I>
<I><FONT COLOR="#B22222">#Kernel Debugger（i386系CPUのKernelデバッガ。Pauseキーで起動します。）を無効にします。有効→　echo &quot;1&quot; &gt;/proc/sys/kernel/kdb
</FONT></I><I><FONT COLOR="#B22222">#echo &quot;0&quot; &gt;/proc/sys/kernel/kdb
</FONT></I>

<I><FONT COLOR="#B22222"># 透過プロキシの設定をします。・・この前にsquidの起動がされ、eth1へDHCPサーバーからIPが取得されている事。
</FONT></I><I><FONT COLOR="#B22222"># eth1のdhcpサーバーから取得したIPアドレスをゲットします。
</FONT></I><I><FONT COLOR="#B22222">#DHCPCLIENT_IP=`ifconfig eth1|awk '/inet addr:/{gsub(/addr:/,&quot;&quot;);print $2}'`
</FONT></I><I><FONT COLOR="#B22222"># dhcpサーバーから取得したIPアドレスでeth1を外向きNATを設定します。
</FONT></I><I><FONT COLOR="#B22222">#iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to $DHCPCLIENT_IP
</FONT></I><I><FONT COLOR="#B22222"># 内部の自IPアドレス以外の80番portをsquidのportへリダイレクトの設定をします。
</FONT></I><I><FONT COLOR="#B22222">#iptables -t nat -A PREROUTING -i eth0 -s ! $IPADDR -p tcp --dport 80 -j DNAT --to-destination 127.0.0.1:3128
</FONT></I><I><FONT COLOR="#B22222"># eth0の80番portをsquidのportへリダイレクトの設定をします。
</FONT></I><I><FONT COLOR="#B22222">#iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
</FONT></I>

<I><FONT COLOR="#B22222"># Passwordの再設定をします。
</FONT></I><I><FONT COLOR="#B22222">#echo 'pepolinux' |passwd root --stdin
</FONT></I>

<I><FONT COLOR="#B22222"># SSHのログインオプションの設定をします。
</FONT></I><I><FONT COLOR="#B22222"># FDよりsshdの公開鍵を読み込み、公開鍵のみで認証するようにします。
</FONT></I><I><FONT COLOR="#B22222">#mount /dev/fd0 /mnt/fd
</FONT></I><I><FONT COLOR="#B22222">#cat /mnt/fd/peplinux/*.pub &gt;/root/.ssh/authorized_keys
</FONT></I><I><FONT COLOR="#B22222">#umount /mnt/fd
</FONT></I><I><FONT COLOR="#B22222">#cat /etc/ssh/sshd_config |sed &quot;s/PasswordAuthentication yes/PasswordAuthentication no/&quot; &gt; /etc/ssh/sshd_config
</FONT></I><I><FONT COLOR="#B22222">#service sshd restart
</FONT></I>

<I><FONT COLOR="#B22222"># OpenVPNのServe用の設定をします。
</FONT></I><I><FONT COLOR="#B22222"># server xx.xx.xx.xx ← serverの内部ネットワークを定義
</FONT></I>cat &gt;/etc/openvpn/server.conf&lt;&lt;Z
<I><FONT COLOR="#B22222"># Server port 443,protocol tcp
</FONT></I>port 443
	proto tcp
	dev tun
	ca /etc/openvpn/easy-rsa/keys/ca.crt
	cert /etc/openvpn/easy-rsa/keys/server.crt
	key /etc/openvpn/easy-rsa/keys/server.key
	dh /etc/openvpn/easy-rsa/keys/dh1024.pem
<I><FONT COLOR="#B22222"># OpeVPNで使用するDHCPのアドレスプールを指定します。サーバがx.x.x.1、VPNゲートゲートウェイがx.x.x.2になります。
</FONT></I>	server 192.168.10.0 255.255.255.0
<I><FONT COLOR="#B22222"># OpenVPN側のサーバー側のIPアドレスを固定する場合に指定します。（クライアントのデフォルトゲートウェイになります。）
</FONT></I>	<I><FONT COLOR="#B22222">#ifconfig 192.168.10.199 255.255.255.0
</FONT></I>	ifconfig-pool-persist ipp.txt
<I><FONT COLOR="#B22222"># クライアントへ通知するサーバー側のネットワークアドレスを指定します。（サーバー側では適切なルーティングが必要です。）
</FONT></I>	push <B><FONT COLOR="#BC8F8F">&quot;route 192.168.0.0 255.255.255.0&quot;</FONT></B>
<I><FONT COLOR="#B22222">#	push &quot;route 192.168.1.0 255.255.255.0&quot;
</FONT></I><I><FONT COLOR="#B22222">#	push &quot;route 192.168.2.0 255.255.255.0&quot;
</FONT></I><I><FONT COLOR="#B22222"># DHCPクライアントとして接続してきたとき、DNSサーバのアドレスを通知します。
</FONT></I><I><FONT COLOR="#B22222">#	push &quot;dhcp-option DNS 192.168.0.123&quot;
</FONT></I> 
<I><FONT COLOR="#B22222"># DHCPクライアントとして接続してきたとき、WINSサーバのアドレスを通知します。
</FONT></I><I><FONT COLOR="#B22222">#	push &quot;dhcp-option WINS 192.168.0.124&quot;
</FONT></I>	keepalive 10 120
	comp-lzo
	user nobody
	group nobody
	persist-key
	persist-tun
	status openvpn-status.log
	verb 3
	mute 20
	client-to-client
	up /etc/openvpn/openvpn_up.sh
Z

<I><FONT COLOR="#B22222"># OpenVPNサーバー側で事前に必要なUPスクリプトを設定します。
</FONT></I>cat &gt;/etc/openvpn/openvpn_up.sh&lt;&lt;Z
<B><FONT COLOR="#5F9EA0">#!/bin/sh
</FONT></B><I><FONT COLOR="#B22222"># eth0へもう一つIPアドレスを設定し、OpenVPNクライアントからのソースアドレスをこれに書き換えます。
</FONT></I>ifconfig eth0:1 192.168.0.254
<I><FONT COLOR="#B22222"># OpenVPNの為のNATを設定します。（OpenVPNクライアントがサーバIPのフリをしてサーバネットワークにアクセスします。）
</FONT></I>iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -d 192.168.0.0/24 -j SNAT --to-source 192.168.0.254
<I><FONT COLOR="#B22222"># 接続してくるクライアントのLAN側のルーティングを設定します。（クライアントのネットワーク数必要）
</FONT></I>ip route add 192.168.1.0/24 via 192.168.10.2
Z

chmod +x /etc/openvpn/openvpn_up.sh


<I><FONT COLOR="#B22222"># OpenVPNのClient、WindowsXP用の設定ファイルを作成します。
</FONT></I><I><FONT COLOR="#B22222"># remote xx.xx.xx.xx ← serverのグローバルアドレスを指定
</FONT></I><I><FONT COLOR="#B22222"># serveで作成された各ファイルをコピー client1.crt client1.key ca.crt　と共に　client_xp.ovpnを
</FONT></I><I><FONT COLOR="#B22222"># WindowsXPのClientの　C:\Program Files\OpenVPN\config\　へコピーします。
</FONT></I>cat&gt;/etc/openvpn/client_xp.ovpn&lt;&lt;Z
	client
	port 443
	proto tcp
	dev tun
	ca ca.crt
	cert client1.crt
	key client1.key
	dh dh1024.pem
<I><FONT COLOR="#B22222"># remoteでOpenVPNサーバのグローバルアドレスを指定します。
</FONT></I>	remote 192.168.0.1
	keepalive 10 120
	comp-lzo
	persist-key
	persist-tun
	status openvpn-status.log
	verb 3
	mute 20
<I><FONT COLOR="#B22222"># OpenVPNサーバのIPアドレスがデフォルトゲートウェイになります。
</FONT></I>	redirect-gateway def1
Z

<I><FONT COLOR="#B22222"># OpenVPN起動します。
</FONT></I><I><FONT COLOR="#B22222">#servie openvpn start
</FONT></I>

<I><FONT COLOR="#B22222"># WebShellを起動します。
</FONT></I><I><FONT COLOR="#B22222">#/var/www/html/WebShell-0.9.5/webshell.py &amp;
</FONT></I>
<I><FONT COLOR="#B22222"># PepoLinux world の始まり始まり楽しんでね。
</FONT></I><I><FONT COLOR="#B22222"># Have a fun PepoLinux.
</FONT></I>
</pre></p>]]>
    </content:encoded>
      </item>
        <item rdf:about="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_OpenMicroserver">
    <title>Remote-Hand_OpenMicroserver</title>
    <link>http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_OpenMicroserver</link>
    <dc:identifier>Remote-Hand_OpenMicroserver</dc:identifier>
    <dc:date>2011-11-24T12:04:04+09:00</dc:date>
        <description>
      <![CDATA[{{{ GoogleAdsense
&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client=&quot;pub-8866927345406277&quot;;
google_ad_host=&quot;pub-9941151214016196&quot;;
google_alternate_color=]]>
    </description>
    <content:encoded>
      <![CDATA[<script type="text/javascript"><!--
google_ad_client="pub-8866927345406277";google_ad_host="pub-9941151214016196";google_alternate_color="FFFFFF";google_ad_width=468;google_ad_height=60;google_ad_format="468x60_as";google_ad_type="text_image";google_color_border="003399";google_color_bg="EEEEEE";google_color_link="0000FF";google_color_url="0000FF";google_color_text="000000";google_ad_host = "pub-9941151214016196";
//-->
</script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script><p><br />
</p><h2 id="h2-.E3.81.93.E3.81.AE.E3.83.97.E3.83.AD.E3.82.B8.E3.82.A7.E3.82.AF.E3.83.88.E3.81.AE.E7.9B.AE.E7.9A.84">このプロジェクトの目的</h2><p>このプロジェクトは<a href="http://sourceforge.jp/projects/pepolinux/wiki/OpenMicroServer">OpenMicroServer</a>とFOMAの携帯電話を接続してRemote-Handや他アプリケーションを開発するものです。
</p><p>2011年販売中止になった<a href="http://sourceforge.jp/projects/pepolinux/wiki/OpenMicroserver">OpenMicroserver</a>を何とか有効利用しようとして作成したものです。
</p><p>ネットワーク監視や外部信号の入力監視と連携してメール通知やパトライト点灯など外部信号出力や
</p><p>携帯電話のFOMAをUSB接続すれば遠隔地からのリモートログインの為のダイヤルインサーバーなど
</p><p>不要になった<a href="http://sourceforge.jp/projects/pepolinux/wiki/OpenMicroserver">OpenMicroserver</a>に『 もっと早くもっとクールにリモートで解決！』で活躍出来ようにするパッケージです。
</p><h3 id="h3-Remote-hand.20for.20OpenMicroServer.20.E3.82.A4.E3.83.A1.E3.83.BC.E3.82.B8.EF.BC.8D.EF.BC.91">Remote-hand for <a href="http://sourceforge.jp/projects/pepolinux/wiki/OpenMicroServer">OpenMicroServer</a> イメージ－１</h3><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_OpenMicroserver/attach/omsppt.png" alt="omsppt.png" id="emb-omsppt.png-1" title="omsppt.png" class="embed-image" width="672" height="504" />
</p><h3 id="h3-Remote-hand.20for.20OpenMicroServer.20.E3.82.A4.E3.83.A1.E3.83.BC.E3.82.B8.EF.BC.8D.EF.BC.92">Remote-hand for <a href="http://sourceforge.jp/projects/pepolinux/wiki/OpenMicroServer">OpenMicroServer</a> イメージ－２</h3><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_OpenMicroserver/attach/omsppt%20(1).png" alt="omsppt (1).png" id="emb-omsppt2028129.png-1" title="omsppt (1).png" class="embed-image" width="672" height="504" />
</p><h3 id="h3-OpenMicroServer.20.E3.83.96.E3.83.BC.E3.83.88.E3.82.A4.E3.83.A1.E3.83.BC.E3.82.B8.EF.BC.8D.EF.BC.91"><a href="http://sourceforge.jp/projects/pepolinux/wiki/OpenMicroServer">OpenMicroServer</a> ブートイメージ－１</h3><p>シリアルコンソール（Teratermで115200bps、8bit、NONEパリティ）でケーブルをコンソールポートへ接続します
</p><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_OpenMicroserver/attach/oms.png" alt="oms.png" id="emb-oms.png-1" title="oms.png" class="embed-image" width="667" height="462" />
</p><h3 id="h3-OpenMicroServer.20.E3.83.96.E3.83.BC.E3.83.88.E3.82.A4.E3.83.A1.E3.83.BC.E3.82.B8.EF.BC.8D.EF.BC.92"><a href="http://sourceforge.jp/projects/pepolinux/wiki/OpenMicroServer">OpenMicroServer</a> ブートイメージ－２</h3><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_OpenMicroserver/attach/oms%20(2).png" alt="oms (2).png" id="emb-oms2028229.png-1" title="oms (2).png" class="embed-image" width="665" height="453" />
</p><h3 id="h3-.E2.91.A0OpenMicroServer.20.E3.83.96.E3.83.BC.E3.83.88.E3.82.A4.E3.83.A1.E3.83.BC.E3.82.B8.EF.BC.8D.EF.BC.93">①<a href="http://sourceforge.jp/projects/pepolinux/wiki/OpenMicroServer">OpenMicroServer</a> ブートイメージ－３</h3><p>初期状態では、ユーザー名：root　パスワード：root　でログインしてeth0のIPアドレスを環境に合わせまるか
</p><p>eth0へLANケーブルを接続しWEBブラウザで　<a href="http://192.168.252.254%E3%81%B8%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%81%97%E3%81%BE%E3%81%99" class="external" rel="nofollow">http://192.168.252.254へアクセスします</a>
</p><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_OpenMicroserver/attach/oms%20(3).png" alt="oms (3).png" id="emb-oms2028329.png-1" title="oms (3).png" class="embed-image" width="669" height="458" />
</p><h3 id="h3-.E2.91.A1WEB.E3.83.AD.E3.82.B0.E3.82.A4.E3.83.B3">②WEBログイン</h3><p>初期状態では、ユーザー名：root　パスワード：root　でログイン
</p><p>ここではブート時の初期設定をします、以降の画面で設定した内容はPPPユーザーとWEBユーザーの設定以外はブート時に反映されません
</p><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_OpenMicroserver/attach/oms%20(0).png" alt="oms (0).png" id="emb-oms2028029.png-1" title="oms (0).png" class="embed-image" width="717" height="519" />
</p><h3 id="h3-.E2.91.A2Remote-Hnad.E3.83.AD.E3.82.B0.E3.82.A4.E3.83.B3">③Remote-Hnadログイン</h3><p>初期状態では、ユーザー名：remote　パスワード：hand　でログイン
</p><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_OpenMicroserver/attach/oms%20(5).png" alt="oms (5).png" id="emb-oms2028529.png-1" title="oms (5).png" class="embed-image" width="717" height="519" />
</p><h3 id="h3-.E2.91.A3.E3.83.AD.E3.82.B0.E3.82.A4.E3.83.B3.E5.BE.8C.E3.81.AE.E3.82.A4.E3.83.A1.E3.83.BC.E3.82.B8.EF.BC.86.E3.82.A4.E3.83.BC.E3.82.B5.E3.83.8D.E3.83.83.E3.83.88.E8.A8.AD.E5.AE.9A.E7.94.BB.E9.9D.A2">④ログイン後のイメージ＆イーサネット設定画面</h3><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_OpenMicroserver/attach/oms%20(6).png" alt="oms (6).png" id="emb-oms2028629.png-1" title="oms (6).png" class="embed-image" width="717" height="519" />
</p><h3 id="h3-.E2.91.A4.E3.83.AB.E3.83.BC.E3.83.86.E3.82.A3.E3.83.B3.E3.82.B0.E8.A8.AD.E5.AE.9A.E7.94.BB.E9.9D.A2">⑤ルーティング設定画面</h3><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_OpenMicroserver/attach/oms%20(7).png" alt="oms (7).png" id="emb-oms2028729.png-1" title="oms (7).png" class="embed-image" width="717" height="519" />
</p><h3 id="h3-.E2.91.A5ppp.E3.83.A6.E3.83.BC.E3.82.B6.E3.83.BC.E8.A8.AD.E5.AE.9A.E7.94.BB.E9.9D.A2">⑥pppユーザー設定画面</h3><p>FOMAの動作モード（64kデジタル通信、オンデマンド、PPP常時接続）を選択
</p><p>64kデジタル通信時にPPPクライアントのユーザー名とパスワードを設定、他はダミーで登録が必要
</p><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_OpenMicroserver/attach/oms%20(8).png" alt="oms (8).png" id="emb-oms2028829.png-1" title="oms (8).png" class="embed-image" width="717" height="519" />
</p><h3 id="h3-.E2.91.A6WEB.E3.83.A6.E3.83.BC.E3.82.B6.E3.83.BC.E8.A8.AD.E5.AE.9A.E7.94.BB.E9.9D.A2">⑦WEBユーザー設定画面</h3><p>初期状態はユーザー名：remote　パスワード：hand
</p><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_OpenMicroserver/attach/oms%20(9).png" alt="oms (9).png" id="emb-oms2028929.png-1" title="oms (9).png" class="embed-image" width="717" height="519" />
</p><h3 id="h3-.E2.91.A7DIO.E8.A8.AD.E5.AE.9A.E7.94.BB.E9.9D.A2">⑧DIO設定画面</h3><p>入力端子と出力端子に別名をつけて後の設定に反映します。
</p><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_OpenMicroserver/attach/oms%20(10).png" alt="oms (10).png" id="emb-oms20281029.png-1" title="oms (10).png" class="embed-image" width="717" height="519" />
</p><h3 id="h3-.E2.91.A8PING.E7.9B.A3.E8.A6.96.E3.81.99.E3.82.8BIP.E3.82.A2.E3.83.89.E3.83.AC.E3.82.B9.E3.82.92.E8.A8.AD.E5.AE.9A.E3.81.97.E3.81.BE.E3.81.99.E3.80.82.EF.BC.88.E3.83.87.E3.82.B8.E3.82.BF.E3.83.AB.E3.82.A2.E3.82.A6.E3.83.88.EF.BC.89">⑨PING監視するIPアドレスを設定します。（デジタルアウト）</h3><p>監視する機器がタイムアウトを起こせばデジタル指定の出力端子をＯＮ又はＯＦＦします。
</p><p>削除はIPアドレスを指定して削除を選択します。
</p><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_OpenMicroserver/attach/oms%20(11).png" alt="oms (11).png" id="emb-oms20281129.png-1" title="oms (11).png" class="embed-image" width="717" height="519" />
</p><h3 id="h3-.E2.91.A9PING.E7.9B.A3.E8.A6.96.E3.81.99.E3.82.8BIP.E3.82.A2.E3.83.89.E3.83.AC.E3.82.B9.E3.82.92.E8.A8.AD.E5.AE.9A.E3.81.97.E3.81.BE.E3.81.99.E3.80.82.EF.BC.88.E3.83.A1.E3.83.BC.E3.83.AB.EF.BC.89">⑩PING監視するIPアドレスを設定します。（メール）</h3><p>監視する機器がタイムアウトを起こせば指定されたメールアドレスに時間情報とカウンタを付加してメッセージを送信します。
</p><p>正常にPING応答を返せば時間情報を付加してメッセージを送信します。
</p><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_OpenMicroserver/attach/oms%20(12).png" alt="oms (12).png" id="emb-oms20281229.png-1" title="oms (12).png" class="embed-image" width="717" height="518" />
</p><h3 id="h3-.E2.91.AAPING.E7.9B.A3.E8.A6.96.E3.81.99.E3.82.8BIP.E3.82.A2.E3.83.89.E3.83.AC.E3.82.B9.E3.82.92.E8.A8.AD.E5.AE.9A.E3.81.97.E3.81.BE.E3.81.99.E3.80.82.EF.BC.88.E9.9B.BB.E8.A9.B1.EF.BC.89">⑪PING監視するIPアドレスを設定します。（電話）</h3><p>監視する機器がタイムアウトを起こせば指定された電話番号へダイヤルします・・・ワンギリ
</p><p>正常にPING応答を返せば電話番号へダイヤルします・・・ワンギリ
</p><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_OpenMicroserver/attach/oms%20(13).png" alt="oms (13).png" id="emb-oms20281329.png-1" title="oms (13).png" class="embed-image" width="717" height="519" />
</p><h3 id="h3-.E2.91.AB.E3.83.87.E3.82.B8.E3.82.BF.E3.83.AB.E5.85.A5.E5.8A.9B.E4.BF.A1.E5.8F.B7.E3.81.AE.E5.A4.89.E5.8C.96.E3.81.AB.E5.AF.BE.E3.81.99.E3.82.8B.E3.82.A2.E3.82.AF.E3.82.B7.E3.83.A7.E3.83.B3.E3.82.92.E8.A8.AD.E5.AE.9A.E3.81.97.E3.81.BE.E3.81.99">⑫デジタル入力信号の変化に対するアクションを設定します</h3><p>一つに入力信号に対して二つのアクションを設定出来ます。
</p><p>つまり信号の立ち上がり：LOW→HIGH（０→１）と信号の立下り：HIGH→LOW（１→０）の二つ
</p><p>メール、出力信号HIGH又はLOW、電話
</p><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_OpenMicroserver/attach/oms%20(16).png" alt="oms (16).png" id="emb-oms20281629.png-1" title="oms (16).png" class="embed-image" width="717" height="519" />
</p><h3 id="h3-.E2.91.AC.E3.82.A2.E3.83.A9.E3.83.BC.E3.83.88.E3.83.A1.E3.83.BC.E3.83.AB.E3.81.AE.E8.A8.AD.E5.AE.9A.E3.82.92.E3.81.97.E3.81.BE.E3.81.99">⑬アラートメールの設定をします</h3><p>初期値ではFOMAを使用してダイヤルアップでインターネットへ直接接続してsendmailでメールを送信します。
</p><p>domain内部よりsmtpプロトコルを直接通せない場合はwgetを選択します。
</p><p>wgetはgmailアカントを使用してメッセージを送信する方法でpepogmail_send.cgiが動作するserverが別途
</p><p>必要です。
</p><p>例えばRemote-Hand_DIOが出先で自宅のserverへwgetでメッセージを送信依頼する事想定しています。
</p><p>実際にはRemote-Hand_DIOにpepogmail_send.cgiが動作しているのでIPアドレスなどの情報を自serverの情報へ設定
</p><p>/var/www/cgi-bin/pepogmail_send.cgiをviエディタでgmailのアカウント情報とserverのパスワードを設定、 ここではその内容を設定します。
</p><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_OpenMicroserver/attach/oms%20(17).png" alt="oms (17).png" id="emb-oms20281729.png-1" title="oms (17).png" class="embed-image" width="717" height="519" />
</p><h3 id="h3-.E2.91.AD.E6.8C.87.E5.AE.9A.E3.81.95.E3.82.8C.E3.81.9FURL.E3.81.8B.E3.82.89podcasts.E3.81.AE.E3.83.95.E3.82.A1.E3.82.A4.E3.83.AB.E5.8F.96.E5.BE.97.E3.81.AE.E8.A8.AD.E5.AE.9A.E7.94.BB.E9.9D.A2">⑭指定されたURLからpodcastsのファイル取得の設定画面</h3><p>MP3のpodcastsファイルを指定、定期的に収集しMP3プレイヤーへ転送と世代管理をします。
</p><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_OpenMicroserver/attach/oms%20(18).png" alt="oms (18).png" id="emb-oms20281829.png-1" title="oms (18).png" class="embed-image" width="717" height="519" />
</p><h3 id="h3-.E2.91.AE.E3.82.B5.E3.83.BC.E3.83.90.E3.83.BC.E3.81.AE.E8.A8.AD.E5.AE.9A.EF.BC.86.E3.82.B3.E3.83.B3.E3.83.88.E3.83.AD.E3.83.BC.E3.83.AB.E8.A8.AD.E5.AE.9A.E7.94.BB.E9.9D.A2">⑮サーバーの設定＆コントロール設定画面</h3><p>ブート時の初期情報の設定画面、これ以前の画面は一時設定ですがここでは立ち上げ時のIPアドレスなどの初期情報を設定します。
</p><p><img src="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_OpenMicroserver/attach/oms%20(4).png" alt="oms (4).png" id="emb-oms2028429.png-1" title="oms (4).png" class="embed-image" width="717" height="519" /></p>]]>
    </content:encoded>
      </item>
        <item rdf:about="http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20pepousb-install">
    <title>chobit_prog pepousb-install</title>
    <link>http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20pepousb-install</link>
    <dc:identifier>chobit_prog pepousb-install</dc:identifier>
    <dc:date>2011-11-24T12:01:45+09:00</dc:date>
        <description>
      <![CDATA[{{{ GoogleAdsense
&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client=&quot;pub-8866927345406277&quot;;
google_ad_host=&quot;pub-9941151214016196&quot;;
google_alternate_color=]]>
    </description>
    <content:encoded>
      <![CDATA[<script type="text/javascript"><!--
google_ad_client="pub-8866927345406277";google_ad_host="pub-9941151214016196";google_alternate_color="FFFFFF";google_ad_width=468;google_ad_height=60;google_ad_format="468x60_as";google_ad_type="text_image";google_color_border="003399";google_color_bg="EEEEEE";google_color_link="0000FF";google_color_url="0000FF";google_color_text="000000";google_ad_host = "pub-9941151214016196";
//-->
</script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script><h3 id="h3-pepousb-install.E3.81.A8.E3.81.AF">pepousb-installとは</h3><p>1CDLinuxである<a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a>をUSBメモリやHDDへインストールして起動できるようにしたものです。
</p><p>USBメモリだけでなくFAT32のファイルシステムならdevice指定を変更すればHDDへもインストールできます。
</p><p>簡単なスクリプトなので他へも転用できると思います。
</p><p>2011.11.22 by Yamauchi Isamu
</p><pre>
<B><FONT COLOR="#5F9EA0">#!/bin/sh
</FONT></B><I><FONT COLOR="#B22222"># pepousb-install ; install for PepoLinux form CD to USB devices
</FONT></I><I><FONT COLOR="#B22222"># licence GPLv2 ; this scripts designed by IZAMUKARERA 2007.1.7 update 2011.11.3
</FONT></I>NU=/dev/null
MNT=/var/tmp/pepotmp.$$
<B><FONT COLOR="#A020F0">echo</FONT></B> -n <B><FONT COLOR="#BC8F8F">&quot;input usb device eg:/dev/sdb1--&gt;&quot;</FONT></B>
<B><FONT COLOR="#A020F0">read</FONT></B> G
<B><FONT COLOR="#A020F0">if</FONT></B> [ -z <B><FONT COLOR="#BC8F8F">&quot;$G&quot;</FONT></B> ] ;<B><FONT COLOR="#A020F0">then</FONT></B>
        USBDEV=<B><FONT COLOR="#BC8F8F">&quot;/dev/sdb1&quot;</FONT></B>
<B><FONT COLOR="#A020F0">else</FONT></B>
        USBDEV=<B><FONT COLOR="#BC8F8F">&quot;$G&quot;</FONT></B>
<B><FONT COLOR="#A020F0">fi</FONT></B>
<B><FONT COLOR="#A020F0">if</FONT></B> [ ! -e <B><FONT COLOR="#BC8F8F">&quot;$USBDEV&quot;</FONT></B> ];<B><FONT COLOR="#A020F0">then</FONT></B>
        <B><FONT COLOR="#A020F0">echo</FONT></B> $USBDEV not found!
        <B><FONT COLOR="#A020F0">exit</FONT></B> -1
<B><FONT COLOR="#A020F0">fi</FONT></B>
CDMNT=`cat /etc/mtab|awk '/iso9660/{print $2}'`
<B><FONT COLOR="#A020F0">if</FONT></B> [ -z <B><FONT COLOR="#BC8F8F">&quot;$CDMNT&quot;</FONT></B> ] ;<B><FONT COLOR="#A020F0">then</FONT></B>
        <B><FONT COLOR="#A020F0">echo</FONT></B> <B><FONT COLOR="#BC8F8F">&quot;Please mount PepoLinux-CD and try once!&quot;</FONT></B>
        <B><FONT COLOR="#A020F0">exit</FONT></B>
<B><FONT COLOR="#A020F0">fi</FONT></B>
mkdir -p $MNT
mount -t vfat $USBDEV $MNT 1&gt;$NU 2&gt;$NU
USBMNT=`cat /etc/mtab|awk '/vfat/{print $2}'`
<B><FONT COLOR="#A020F0">if</FONT></B> [ -z <B><FONT COLOR="#BC8F8F">&quot;$USBMNT&quot;</FONT></B> ] ;<B><FONT COLOR="#A020F0">then</FONT></B>
        <B><FONT COLOR="#A020F0">echo</FONT></B> <B><FONT COLOR="#BC8F8F">&quot;Please $USBDEV format vfat or device not found or manually mount o
r etc.--&gt; try once!&quot;</FONT></B>
        <B><FONT COLOR="#A020F0">exit</FONT></B>
<B><FONT COLOR="#A020F0">fi</FONT></B>
umount $USBMNT
<B><FONT COLOR="#A020F0">echo</FONT></B> -n <B><FONT COLOR="#BC8F8F">&quot;next step usb device all files destroy (y/n)--&gt;&quot;</FONT></B>
<B><FONT COLOR="#A020F0">read</FONT></B> G
[ <B><FONT COLOR="#BC8F8F">&quot;Xy&quot;</FONT></B> != <B><FONT COLOR="#BC8F8F">&quot;X$G&quot;</FONT></B> ] &amp;&amp; <B><FONT COLOR="#A020F0">exit</FONT></B>
<I><FONT COLOR="#B22222"># make usb-PepoLinux
</FONT></I>mount -t vfat $USBDEV $MNT 1&gt;$NU 2&gt;$NU
cp -a $CDMNT/* $MNT/ 1&gt;$NU 2&gt;$NU
tUSBDEV=`<B><FONT COLOR="#A020F0">echo</FONT></B> -en $USBDEV | sed s/[0-9]$//`
cat /boot/grub/device.map | grep -v hda | <B><FONT COLOR="#A020F0">echo</FONT></B> <B><FONT COLOR="#BC8F8F">&quot;(hd0) $tUSBDEV&quot;</FONT></B> &gt;$MNT/boot/grub/
device.map
grub-install --no-floppy --root-directory=$MNT $tUSBDEV
sync
umount $MNT
rm -rf $MNT
<B><FONT COLOR="#A020F0">echo</FONT></B> <B><FONT COLOR="#A020F0">done</FONT></B>!
</pre>]]>
    </content:encoded>
      </item>
        <item rdf:about="http://sourceforge.jp/projects/pepolinux/wiki/OpenMicroServer">
    <title>OpenMicroServer</title>
    <link>http://sourceforge.jp/projects/pepolinux/wiki/OpenMicroServer</link>
    <dc:identifier>OpenMicroServer</dc:identifier>
    <dc:date>2011-11-20T19:33:38+09:00</dc:date>
        <description>
      <![CDATA[{{{ GoogleAdsense
&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client=&quot;pub-8866927345406277&quot;;
google_ad_host=&quot;pub-9941151214016196&quot;;
google_alternate_color=]]>
    </description>
    <content:encoded>
      <![CDATA[<script type="text/javascript"><!--
google_ad_client="pub-8866927345406277";google_ad_host="pub-9941151214016196";google_alternate_color="FFFFFF";google_ad_width=468;google_ad_height=60;google_ad_format="468x60_as";google_ad_type="text_image";google_color_border="003399";google_color_bg="EEEEEE";google_color_link="0000FF";google_color_url="0000FF";google_color_text="000000";google_ad_host = "pub-9941151214016196";
//-->
</script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script><h3 id="h3-OpenMicroServer.E3.81.A8.E3.81.AF"><a href="http://sourceforge.jp/projects/pepolinux/wiki/OpenMicroServer">OpenMicroServer</a>とは</h3><p>AMD Alchemy(TM) AU1550(TM) 400MHzプロセッサを搭載した102（W）× 230（D）× 33（H）mmの大きさのLinuxが稼動するマイクロサーバです。 </p>]]>
    </content:encoded>
      </item>
        <item rdf:about="http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20init.d_pepodiod">
    <title>chobit_prog init.d_pepodiod</title>
    <link>http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20init.d_pepodiod</link>
    <dc:identifier>chobit_prog init.d_pepodiod</dc:identifier>
    <dc:date>2011-10-25T12:09:52+09:00</dc:date>
        <description>
      <![CDATA[== init.d_pepodiod
{{{ GoogleAdsense
&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client=&quot;pub-8866927345406277&quot;;
google_ad_host=&quot;pub-9941151214016196&quot;;
goo]]>
    </description>
    <content:encoded>
      <![CDATA[<h2 id="h2-init.d_pepodiod">init.d_pepodiod</h2><script type="text/javascript"><!--
google_ad_client="pub-8866927345406277";google_ad_host="pub-9941151214016196";google_alternate_color="FFFFFF";google_ad_width=468;google_ad_height=60;google_ad_format="468x60_as";google_ad_type="text_image";google_color_border="003399";google_color_bg="EEEEEE";google_color_link="0000FF";google_color_url="0000FF";google_color_text="000000";google_ad_host = "pub-9941151214016196";
//-->
</script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script><h3 id="h3-.E6.9C.80.E5.88.9D.E3.81.AB">最初に</h3><p>init.s_pepodiodlとは<a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a>-0.49に収録されているシリアルDIOボードの各ポートを監視して適当なプログラムを起動するdaemonのpepodiodの起動用のスクリプトです。
/etc/init.d/pepodiodへ登録して、serviceコマンドから起動/停止させるものです
</p><p><a href="http://sourceforge.jp/projects/pepolinux/wiki/root%40~">root@~</a># service pepodiod start
</p><p>Starting pepodiod services:                                [  OK  ]
</p><p><a href="http://sourceforge.jp/projects/pepolinux/wiki/root%40~">root@~</a># service pepodiod stop
</p><p>Stopping :                                                 [  OK  ]
</p><p>2011.10.25 by.Yamauchi Isamu
<pre>
#!/bin/bash
#
# chkconfig: 2345 99 03
# description: pepodiod serial-dio daemon \
# contorl digital-Input to ANDDIO, by.IZAMUKARERA \
# 2011.10.18
# processname: pepodiod
# pidfile: /var/run/pepodiod.pid
# config: /etc/sysconfig/pepodiod

# source function library
. /etc/init.d/functions
PATH=&quot;/usr/local/bin:$PATH&quot;
prog=pepodiod
progexec=diod_exec
killprog=killps
DI_TTY=ttyS1
ALIAS_DI=/var/tmp/.alias_di
[ -e &quot;$ALIAS_DI&quot; ] &amp;&amp; . &quot;$ALIAS_DI&quot;
[ ! -z &quot;$DI_TTY&quot; ] &amp;&amp; DIO_DEV=&quot;/dev/&quot;${DI_TTY}

if
 test -e /etc/sysconfig/$prog ; then
    . /etc/sysconfig/$prog
fi

RETVAL=0

        if [ -e /var/lock/subsys/$prog ];then
                echo
                echo -en Already running
                failure
                echo
                exit 5
        fi
        if [ ! -e $DIO_DEV ];then
          failure
          exit 5
        fi
        $progexec $prog
        RETVAL=0
        success
        [ $RETVAL -eq 0 ] &amp;&amp; touch /var/lock/subsys/$prog || RETVAL=1
        echo
        return $RETVAL
}

stop() {
        echo -n $&quot;Stopping $PROG: &quot;
        killproc $prog
        echo
        [ -e /var/lock/subsys/$prog ] &amp;&amp; rm /var/lock/subsys/$prog
        RETVAL=0
        return $RETVAL
}

case &quot;$1&quot; in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart|reload)
        stop
        start
        ;;
  condrestart)
        if [ -f /var/lock/subsys/$prog ]; then
            stop
            start
        fi
        ;;
  status)
        status $PROG
        RETVAL=$?
        ;;
  *)
        echo $&quot;Usage: $0 {start|stop|restart|condrestart|status}&quot;
        exit 1
esac

exit $RETVAL
</pre></p>]]>
    </content:encoded>
      </item>
        <item rdf:about="http://sourceforge.jp/projects/pepolinux/wiki/kernel%20make">
    <title>kernel make</title>
    <link>http://sourceforge.jp/projects/pepolinux/wiki/kernel%20make</link>
    <dc:identifier>kernel make</dc:identifier>
    <dc:date>2011-06-09T06:14:44+09:00</dc:date>
        <description>
      <![CDATA[= kernel make・・・2011.6.9現在書きかけ

=== これはVmplayerとPepoLinux（1CDLinuxイメージ)使ってKernel makeとUSB Driver開発及びDebugについて書いたものです。

1. WindowsXPへVMplayerをinstall

2. VmplayerにPepoLinuxをinstall

3. PepoLinu]]>
    </description>
    <content:encoded>
      <![CDATA[<h1 id="h1-kernel.20make.E3.83.BB.E3.83.BB.E3.83.BB2011.6.9.E7.8F.BE.E5.9C.A8.E6.9B.B8.E3.81.8D.E3.81.8B.E3.81.91">kernel make・・・2011.6.9現在書きかけ</h1><h3 id="h3-.E3.81.93.E3.82.8C.E3.81.AFVmplayer.E3.81.A8PepoLinux.EF.BC.881CDLinux.E3.82.A4.E3.83.A1.E3.83.BC.E3.82.B8.29.E4.BD.BF.E3.81.A3.E3.81.A6Kernel.20make.E3.81.A8USB.20Driver.E9.96.8B.E7.99.BA.E5.8F.8A.E3.81.B3Debug.E3.81.AB.E3.81.A4.E3.81.84.E3.81.A6.E6.9B.B8.E3.81.84.E3.81.9F.E3.82.82.E3.81.AE.E3.81.A7.E3.81.99.E3.80.82">これはVmplayerと<a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a>（1CDLinuxイメージ)使ってKernel makeとUSB Driver開発及びDebugについて書いたものです。</h3><p>1. WindowsXPへVMplayerをinstall
</p><p>2. Vmplayerに<a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a>をinstall
</p><p>3. <a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a>のKernel-sourceをダウンロード
</p><ul><li>以下は当サイトで用意したKenel-sourceのイメージを使う場合は既に設定済み
</li></ul><ul><li>Kernelのdebugを有効
</li></ul><div class="indent">―＞Symbol: DEBUG_KERNEL [=y]
</div><ul><li>USBのdebugを有効
</li></ul><div class="indent">―＞Symbol: USB_DEBUG [=y]
</div><ul><li>usb moniterを有効
</li></ul><div class="indent">―＞ Symbol: USB_MON [=m]  
</div>]]>
    </content:encoded>
      </item>
        <item rdf:about="http://sourceforge.jp/projects/pepolinux/wiki/FrontPage">
    <title>FrontPage</title>
    <link>http://sourceforge.jp/projects/pepolinux/wiki/FrontPage</link>
    <dc:identifier>FrontPage</dc:identifier>
    <dc:date>2011-06-01T08:13:17+09:00</dc:date>
        <description>
      <![CDATA[{{{ GoogleAdsense
&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client=&quot;pub-8866927345406277&quot;;
google_ad_host=&quot;pub-9941151214016196&quot;;
google_alternate_color=]]>
    </description>
    <content:encoded>
      <![CDATA[<script type="text/javascript"><!--
google_ad_client="pub-8866927345406277";google_ad_host="pub-9941151214016196";google_alternate_color="FFFFFF";google_ad_width=468;google_ad_height=60;google_ad_format="468x60_as";google_ad_type="text_image";google_color_border="003399";google_color_bg="EEEEEE";google_color_link="0000FF";google_color_url="0000FF";google_color_text="000000";google_ad_host = "pub-9941151214016196";
//-->
</script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script><h1 id="h1-.E3.82.88.E3.81.86.E3.81.93.E3.81.9DPepoLinux.E3.81.AE.E3.83.97.E3.83.AD.E3.82.B8.E3.82.A7.E3.82.AF.E3.83.88Wiki.E3.81.B8">ようこそ<a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a>のプロジェクトWikiへ</h1><p>サーバ・ネットワークの実験が超簡単に出来るように1CDLinuxとツール＆ドキュメントを開発しています。
『もっと早くもっと素敵にリモートで解決！』がテーマの<a href="http://sourceforge.jp/projects/pepolinux/wiki/pepolinux">PepoLinux</a>です。<br />
コマンドを入力したらCDドライブの読み込みが終わるまで反応がないようなイライラを出来るだけ減らし、メモリ容量に合わせ起動モードを自動的に選択、256M以上であれば全てオンメモリで動作します。<br />
複雑なLinuxの設定ファイルも日本語解説付きで１つにまとめ、MS Windowsのテキストエディタで簡単に設定できます。
</p><h2 id="h2-PepoLinux.20Login"><a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a> Login</h2><p><img src="http://pepolinux.sourceforge.jp/img/pepolinux_login.png" alt="pepolinux_login.png" id="emb-http:2f2fpepolinux.sourceforge.jp2fimg2fpepolinux_login.png-1" title="pepolinux_login.png" class="embed-image" /></p>]]>
    </content:encoded>
      </item>
        <item rdf:about="http://sourceforge.jp/projects/pepolinux/wiki/acm-FOMA">
    <title>acm-FOMA</title>
    <link>http://sourceforge.jp/projects/pepolinux/wiki/acm-FOMA</link>
    <dc:identifier>acm-FOMA</dc:identifier>
    <dc:date>2011-05-31T06:05:55+09:00</dc:date>
        <description>
      <![CDATA[{{{ GoogleAdsense
&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client=&quot;pub-8866927345406277&quot;;
google_ad_host=&quot;pub-9941151214016196&quot;;
google_alternate_color=]]>
    </description>
    <content:encoded>
      <![CDATA[<script type="text/javascript"><!--
google_ad_client="pub-8866927345406277";google_ad_host="pub-9941151214016196";google_alternate_color="FFFFFF";google_ad_width=468;google_ad_height=60;google_ad_format="468x60_as";google_ad_type="text_image";google_color_border="003399";google_color_bg="EEEEEE";google_color_link="0000FF";google_color_url="0000FF";google_color_text="000000";google_ad_host = "pub-9941151214016196";
//-->
</script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script><h3 id="h3-acm-FOMA.E3.81.A8.E3.81.AF">acm-FOMAとは</h3><p>USB接続が出来るFOMA携帯電話用のLinux Kernel-2.6以降のdriverです。
</p><p>/drivers/usb/class/cdc-acm.cをdocomoのFOMA用のdriverとして改造、2007.3.31に初リリースしました。
</p><p>当初、FOMAの機種毎にコード追加してリリースをしていましたが、余りに早い機種発売ラッシュ、それに対応すべく2007.11.17に機種別コードを不要にしました。
</p><p>従来からMODEMモードのみでしたが、<a href="http://sourceforge.jp/projects/pepolinux/downloads/52114/acm-FOMA.v0.26.10.tar.gz/">2011.5.28 v0.26.10</a>からはOBEXとATcommandモードの３モードをサポート出来る様になりました。
</p><h2 id="h2-.E3.82.A4.E3.83.B3.E3.82.B9.E3.83.BC.E3.83.AB">インスール</h2><pre>1. Install

[root@~]# tar xvfz acm-FOMA.v0.26.10.tar.gz
# cd /usr/src/linux-2.6.38
# patch -p1 &lt;acm-FOMA.v0.26.10.patch
# make menuconfig

CONFIG_USB_ACM_FOMA:                                                                    x
  x                                                                                     x
  x This driver USB Abstract Control Model driver for docomo FOMA Cellular phone.       x
  x (Test Version)                                                                      x
  x                                                                                     x
  x                                                                                     x
  x Symbol: USB_ACM_FOMA [=m]                                                           x
  x Prompt: USB Modem (docomo FOMA) support                                             x
  x   Defined at drivers/usb/class/Kconfig:22                                           x
  x   Depends on: USB                                                                   x
  x   Location:                                                                         x
  x     -&gt; Device Drivers                                                               x
  x       -&gt; USB support                                                                x
  x         -&gt; Support for Host-side USB (USB [=y])                                     x

make modules
make modules_install

OR. An easier installation might be the following method. 

[root@p-4 src]# cd acm-FOMA.v0.26.10
[root@p-4 acm-FOMA.v0.26.10]# make
make -C /lib/modules/2.6.35.13-91.fc14.i686.debug/build M=/usr/src/acm-FOMA.v0.26.10 modules
make[1]: ディレクトリ `/usr/src/kernels/2.6.35.13-91.fc14.i686.debug' に入ります
  CC [M]  /usr/src/acm-FOMA.v0.26.10/acm-FOMA.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /usr/src/acm-FOMA.v0.26.10/acm-FOMA.mod.o
  LD [M]  /usr/src/acm-FOMA.v0.26.10/acm-FOMA.ko
make[1]: ディレクトリ `/usr/src/kernels/2.6.35.13-91.fc14.i686.debug' から出ます
[root@p-4 acm-FOMA.v0.26.10]# make install
install -m 744 -c acm-FOMA.ko /lib/modules/2.6.35.13-91.fc14.i686.debug/kernel/drivers/usb/class
depmod -a
install acm-FOMA.ko completed!
[root@p-4 acm-FOMA.v0.26.10]#
</pre><h2 id="h2-.E3.83.87.E3.83.90.E3.82.A4.E3.82.B9.E3.81.AE.E6.A4.9C.E5.87.BA">デバイスの検出</h2><pre>2. Discovery of device

 When the cable of FOMA Cellular phone is inserted in USB, you confirm the following logs.
[root@~]# tail -n 10 /var/log/messages
[root@~]# tail /var/log/messages
May 28 15:10:28 (none) kernel: usb 1-1: New USB device found, idVendor=04dd, idProduct=9284
May 28 15:10:28 (none) kernel: usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
May 28 15:10:28 (none) kernel: usb 1-1: Product: FOMA SH06A
May 28 15:10:28 (none) kernel: usb 1-1: Manufacturer: SHARP
May 28 15:10:28 (none) kernel: usb 1-1: SerialNumber: 1234567890123456
May 28 15:10:28 (none) kernel: acm_FOMA 1-1:1.0: ttyACM0: USB ACM device
May 28 15:10:29 (none) kernel: acm_FOMA 1-1:1.3: ttyACM1: USB ACM device
May 28 15:10:29 (none) kernel: acm_FOMA 1-1:1.5: Control and data interfaces are not separated!
May 28 15:10:29 (none) kernel: acm_FOMA 1-1:1.5: This needs exactly 3 endpoints
May 28 15:10:29 (none) kernel: acm_FOMA 1-1:1.5: ttyACM2: USB ACM device
</pre><h2 id="h2-.E4.BD.BF.E3.81.84.E3.81.8B.E3.81.9F">使いかた</h2><pre>3. usage

[root@~]# epicon -l /dev/ttyACM0

** Welcome to epicon Version-4.8 Copyright Isamu Yamauchi compiled:Feb 11 2011 **
      exec shell         ~!
      send binary files  ~f
      call rz,sz,sx,rx   ~rz,~sz,~sx,~rx
      call kermit        ~sk,~rk
      external command   ~C
      change speed       ~c
      exit               ~.
      Connected /dev/ttyACM0
at
OK
at&amp;f
OK

Disconnected

[root@~]# epicon -l /dev/ttyACM1

** Welcome to epicon Version-4.8 Copyright Isamu Yamauchi compiled:Feb 11 2011 **
      exec shell         ~!
      send binary files  ~f
      call rz,sz,sx,rx   ~rz,~sz,~sx,~rx
      call kermit        ~sk,~rk
      external command   ~C
      change speed       ~c
      exit               ~.
      Connected /dev/ttyACM1
ERROR
Disconnected
[root@~]#
[root@~]# epicon -l /dev/ttyACM2

** Welcome to epicon Version-4.8 Copyright Isamu Yamauchi compiled:Feb 11 2011 **
      exec shell         ~!
      send binary files  ~f
      call rz,sz,sx,rx   ~rz,~sz,~sx,~rx
      call kermit        ~sk,~rk
      external command   ~C
      change speed       ~c
      exit               ~.
      Connected /dev/ttyACM2
at
OK
atd09012345678;
OK
ath
OK

Disconnected
</pre>]]>
    </content:encoded>
      </item>
        <item rdf:about="http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog">
    <title>chobit_prog</title>
    <link>http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog</link>
    <dc:identifier>chobit_prog</dc:identifier>
    <dc:date>2011-05-25T07:03:31+09:00</dc:date>
        <description>
      <![CDATA[{{{ GoogleAdsense
&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client=&quot;pub-8866927345406277&quot;;
google_ad_host=&quot;pub-9941151214016196&quot;;
google_alternate_color=]]>
    </description>
    <content:encoded>
      <![CDATA[<script type="text/javascript"><!--
google_ad_client="pub-8866927345406277";google_ad_host="pub-9941151214016196";google_alternate_color="FFFFFF";google_ad_width=468;google_ad_height=60;google_ad_format="468x60_as";google_ad_type="text_image";google_color_border="003399";google_color_bg="EEEEEE";google_color_link="0000FF";google_color_url="0000FF";google_color_text="000000";google_ad_host = "pub-9941151214016196";
//-->
</script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script><h1 id="h1-chobit_prog.E3.81.A8.E3.81.AF">chobit_progとは</h1><p>このプロジェクトは、日頃Linuxやパソコンを使って実験をした時のメモ書きやその際に出来た
</p><p>ちょとしたプログラム、スクリプト、Tipsなど
</p><p>名付けて、チョビットプログラム…みたいな物の寄せ集めです。</p>]]>
    </content:encoded>
      </item>
        <item rdf:about="http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20openoffice_calc_paste_picture">
    <title>chobit_prog openoffice_calc_paste_picture</title>
    <link>http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20openoffice_calc_paste_picture</link>
    <dc:identifier>chobit_prog openoffice_calc_paste_picture</dc:identifier>
    <dc:date>2011-05-25T06:49:11+09:00</dc:date>
        <description>
      <![CDATA[{{{ GoogleAdsense
&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client=&quot;pub-8866927345406277&quot;;
google_ad_host=&quot;pub-9941151214016196&quot;;
google_alternate_color=]]>
    </description>
    <content:encoded>
      <![CDATA[<script type="text/javascript"><!--
google_ad_client="pub-8866927345406277";google_ad_host="pub-9941151214016196";google_alternate_color="FFFFFF";google_ad_width=468;google_ad_height=60;google_ad_format="468x60_as";google_ad_type="text_image";google_color_border="003399";google_color_bg="EEEEEE";google_color_link="0000FF";google_color_url="0000FF";google_color_text="000000";google_ad_host = "pub-9941151214016196";
//-->
</script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script><h2 id="h2-OpenOffice.20Calc.E3.81.A7.E7.94.BB.E5.83.8F.E3.81.AE.E8.B2.BC.E3.82.8A.E4.BB.98.E3.81.91.E3.82.92.E9.80.A3.E7.B6.9A.E7.9A.84.E3.81.AB.E8.A1.8C.E3.81.86.E3.83.9E.E3.82.AF.E3.83.AD"><a href="http://sourceforge.jp/projects/pepolinux/wiki/OpenOffice">OpenOffice</a> Calcで画像の貼り付けを連続的に行うマクロ</h2><p>最近、MSofficeがインストールされていない制御用のWindowsXP搭載のPCに遭遇
</p><p>USB起動で画面プリントが連続的に取れるＡＰをと探していたら<a href="http://sourceforge.jp/projects/pepolinux/wiki/OpenOffice">OpenOffice</a> portable へ巡り合った
</p><p>そしてこれのマクロを色々なサイトの情報を頼りに書いてみた
</p><p>ExcelインストールされていないPCで画面キャプチャを取る時に結構使えそうなのでここに掲載する
</p><h3 id="h3-.E4.BD.BF.E3.81.84.E6.96.B9">使い方</h3><p>・Sheet1を作成する
</p><p>・Sheet1へ適当なボタン用に画像を作成
</p><p>・この画像に以下のコードのマクロを登録する
</p><p>・その画像ボタンを押すたび
</p><p>・Sheet1の左端にnewsheet2、newsheet3・・・newsheetNが追加
</p><p>・追加されたnewsheetNへクリップボードからの画像が貼られ
</p><p>・サイズが７５％に縮小され…0.75を書き換えれば任意
</p><p>・最後にSheet1へ戻る
</p><pre>REM  *****  20110524 kujiranodanna wrote  *****
sub Main
  dim oDocument As Object
  dim oSheet As Object
  dim sName As String
  dim document   as object
  dim dispatcher as object
  dim args1(1) as new com.sun.star.beans.PropertyValue
  document = ThisComponent.CurrentController.Frame
  dispatcher = createUnoService(&quot;com.sun.star.frame.DispatchHelper&quot;)
  oDocument = ThisComponent
  sName = &quot;newsheet&quot; &amp; oDocument.Sheets.getCount()+1
  args1(0).Name = &quot;Name&quot;
  args1(0).Value = sName
  args1(1).Name = &quot;Index&quot;
  args1(1).Value = 1
  dispatcher.executeDispatch(document, &quot;.uno:Insert&quot;, &quot;&quot;, 0, args1())
  oSheet = ThisComponent.Sheets.getByName(sName)
  oCell = oSheet.getCellRangeByName(&quot;A1&quot;)
  ThisComponent.CurrentController.ActiveSheet
  dispatcher.executeDispatch(document, &quot;.uno:Paste&quot;, &quot;&quot;, 0, Array())
    
rem ***** resize *****
  dim Sheet as Object
  dim pSheet as Object
  dim picture as Object
  dim pictureResize as new com.sun.star.awt.Size
  Sheet = ThisComponent.CurrentController.ActiveSheet
  pSheet = Sheet.getDrawPage
  picture = pSheet.getByIndex( pSheet.getCount - 1 )
  with pictureResize
    .Width =  picture.Size.Width * 0.75
    .Height =  picture.Size.Height * 0.75
  end with
  picture.setSize(pictureResize)
    
rem ***** return to sheet1 *****
  ThisComponent.CurrentController.ActiveSheet = ThisComponent.Sheets.getByName(&quot;Sheet1&quot;)
  args1(0).Name = &quot;ToPoint&quot;
  args1(0).Value = &quot;$A$1&quot;
  dispatcher.executeDispatch(document, &quot;.uno:GoToCell&quot;, &quot;&quot;, 0, args1())

end sub

</pre>]]>
    </content:encoded>
      </item>
        <item rdf:about="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand2VPN">
    <title>Remote-Hand2VPN</title>
    <link>http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand2VPN</link>
    <dc:identifier>Remote-Hand2VPN</dc:identifier>
    <dc:date>2010-01-16T20:19:56+09:00</dc:date>
        <description>
      <![CDATA[== Remote-Hand2VPN ==
{{{ GoogleAdsense
&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client=&quot;pub-8866927345406277&quot;;
google_ad_host=&quot;pub-9941151214016196&quot;;
]]>
    </description>
    <content:encoded>
      <![CDATA[<h2 id="h2-Remote-Hand2VPN">Remote-Hand2VPN</h2><script type="text/javascript"><!--
google_ad_client="pub-8866927345406277";google_ad_host="pub-9941151214016196";google_alternate_color="FFFFFF";google_ad_width=468;google_ad_height=60;google_ad_format="468x60_as";google_ad_type="text_image";google_color_border="003399";google_color_bg="EEEEEE";google_color_link="0000FF";google_color_url="0000FF";google_color_text="000000";google_ad_host = "pub-9941151214016196";
//-->
</script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script><h4 id="h4-.E6.9C.80.E5.88.9D.E3.81.AB">最初に</h4><p>Remote-Hand2VPNとは、VMware Playerと1CDLinuxをベースにGUIでOpenVPNの設定を手軽に行いVPN越しにRemote-Handを実現させる、VMware Applianceです。
<br />
OpenVPNの情報サイトは数多あるが、ドキュメントを読み進めないと簡単に構築できないのではないでしょうか。ややネットワークの知識がいるがWebUIでサーバ/クライアントの鍵の生成・廃止・ダウンロードなどが５分程度で設定出来るようにしました。
<br />
それとOpenVPNは会社から自宅PCなどへ簡単に接続が出来てしまう優れものである反面、セキュリティ上企業にとって大変危険です、これらをよく理解して正しい目的で使いましょう。
<br />
サーバPC（WindowsXP）とクライアントPCを用意、VMware Playerが事前にインストールされていて、満足に操作が出来ることを前提として、下記にリモートハンドの使用説明をします。
</p><h3 id="h3-"></h3><p><img src="http://pepolinux.sourceforge.jp/img/remote-hand2vpn/remote-hand2vpn_kousei.png" alt="remote-hand2vpn_kousei.png" id="emb-http:2f2fpepolinux.sourceforge.jp2fimg2fremote-hand2vpn2fremote-hand2vpn_kousei.png-1" title="remote-hand2vpn_kousei.png" class="embed-image" />
</p><h3 id="h3-.E3.82.B5.E3.83.BC.E3.83.90.E3.81.AE.E7.94.A8.E6.84.8F.EF.BC.88WindowsXP.EF.BC.89">サーバの用意（WindowsXP）</h3><ol><li>URLから別途、<a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a>-0.34.iso　より大きいバージョンのISOファイルをダウンロードします。
<a href="http://sourceforge.jp/projects/pepolinux/releases/?package_id=3225">http://sourceforge.jp/projects/pepolinux/releases/?package_id=3225</a>
</li><li>展開した　remote-hand　フォルダへダウンロードした <a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a>-XX.iso コピーします。
(Remote-Hand.vmx　をテキストエディタで開き、下記項目をISOイメージ名に合わせ編集します。：2009.4.6現在不要)
ide1:0.fileName = &quot;<a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a>-0.34.iso&quot;
</li><li>VMware Playerで remote-hand →開く→展開したフォルダの Remote-Hand.vmx を選択→開く、起動します。この時、『コピーしました』が選択されている状態で→OK
</li><li>何も操作しない状態で約２分程で立ち上がります。
</li></ol><p><img src="http://pepolinux.sourceforge.jp/img/remote-hand2vpn/remote-hand_1.png" alt="remote-hand_1.png" id="emb-http:2f2fpepolinux.sourceforge.jp2fimg2fremote-hand2vpn2fremote-hand_1.png-1" title="remote-hand_1.png" class="embed-image" />
</p><ol><li>立ち上がったら画面の表示に従い→　login　https：//xxx.xxx.xxx.xxx:8443 へアクセスします。
</li><li>Welcome <a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a>のHP一番下の『GUIでRemote-Handの設定をします。』を選択します。
</li><li>Web認証画面でユーザー名：remote　パスワード：hand　でログオンします。
</li></ol><p><img src="http://pepolinux.sourceforge.jp/img/remote-hand2vpn/remote-hand_5.png" alt="remote-hand_5.png" id="emb-http:2f2fpepolinux.sourceforge.jp2fimg2fremote-hand2vpn2fremote-hand_5.png-1" title="remote-hand_5.png" class="embed-image" />
</p><ol><li>『OenVPN管理者パスワード設定』画面で、ユーザー名：root　パスワード：kujiraでログインします。（必要であればこの画面でパスワードの変更が出来ます。）
</li></ol><p><img src="http://pepolinux.sourceforge.jp/img/remote-hand2vpn/remote-hand_6.png" alt="remote-hand_6.png" id="emb-http:2f2fpepolinux.sourceforge.jp2fimg2fremote-hand2vpn2fremote-hand_6.png-1" title="remote-hand_6.png" class="embed-image" />
</p><ol><li>『Remote-Hand Control Pannel』で『Server Make』タブを選択
</li><li>『OpenVPNサーバの設定をします。』画面で各項目入力し『処理実行』ボタンでサーバの設定をします。
クライアント１～５の設定は、クライアント同士の接続する必要がある時に必要、空欄でも可
『処理実行』ボタン押下後、約３分程必要です。
</li></ol><p><img src="http://pepolinux.sourceforge.jp/img/remote-hand2vpn/remote-hand_8.png" alt="remote-hand_8.png" id="emb-http:2f2fpepolinux.sourceforge.jp2fimg2fremote-hand2vpn2fremote-hand_8.png-1" title="remote-hand_8.png" class="embed-image" />
</p><ol><li>『Client Make』タブを選択し『OpenVPNクライアント』の設定を作成します。
</li><li>『OpenVPNクライアントの設定をします。』画面で各項目入力し『処理実行』ボタンでクライアントの設定します。
ここでは個別情報（ホスト名、メールアドレス）を変えてクライアント数の設定
ここで作成するクライアント名は後程のダウロードに必要です、必ず記録しておく
国名～組織名がサーバの情報と一致しないとここではエラーにならないが、接続出来ない。
</li></ol><p><img src="http://pepolinux.sourceforge.jp/img/remote-hand2vpn/remote-hand_24.png" alt="remote-hand_24.png" id="emb-http:2f2fpepolinux.sourceforge.jp2fimg2fremote-hand2vpn2fremote-hand_24.png-1" title="remote-hand_24.png" class="embed-image" />
</p><ol><li>『Client Download』タブを選択します。
</li><li>サーバで設定した、クライアント名を入力して『処理実行』ボタンでクライアントの設定をダウンロードします。
</li><li>サーバの操作はこれ迄です、『Server Control』タブ選択します。
</li><li>『Server Control』の画面で『VPN Server起動』を選択して『処理実行』ボタンでOpenVPNを起動します。
メッセージに [ OK ] が表示されたら正常です。
</li></ol><p><img src="http://pepolinux.sourceforge.jp/img/remote-hand2vpn/remote-hand_16.png" alt="remote-hand_16.png" id="emb-http:2f2fpepolinux.sourceforge.jp2fimg2fremote-hand2vpn2fremote-hand_16.png-1" title="remote-hand_16.png" class="embed-image" />
</p><div class="indent">クライアントがインターネット経由で接続される時にサーバ側では使用するVPNポート番号をブロードバンドルータ等でOpenVPNサーバへポート・フォワーディングさせる設定が必要です。
VPNポート番号は推奨『443』ですが、これ以外を設定したら別途『Filtering Setup』タブでＩＰフィルタの一時設定を変更します。
</div><h3 id="h3-.E3.82.AF.E3.83.A9.E3.82.A4.E3.82.A2.E3.83.B3.E3.83.88.E3.81.AE.E7.94.A8.E6.84.8F.EF.BC.88WindowsXP.EF.BC.89">クライアントの用意（WindowsXP）</h3><ol><li>Serverの『Client Download』でダウンロードしたファイル、例として『pepo1.zip』ファイルを『OpenVPNクライアント』へアップロードします。
</li><li>サーバと同様にログイン後、『<a href="http://sourceforge.jp/projects/pepolinux/wiki/ClientUpload">ClientUpload</a>』タブを選択
</li><li>『クライアントの設定情報をアップロードします。』画面で『参照』ボタンで『pepo1.zip』を選択して、『処理実行』ボタンでアップロードします。
</li></ol><p><img src="http://pepolinux.sourceforge.jp/img/remote-hand2vpn/remote-hand_10.png" alt="remote-hand_10.png" id="emb-http:2f2fpepolinux.sourceforge.jp2fimg2fremote-hand2vpn2fremote-hand_10.png-1" title="remote-hand_10.png" class="embed-image" />
</p><ol><li>サーバの15,16項と同様にOpenVPNを起動します。
</li><li>『<a href="http://sourceforge.jp/projects/pepolinux/wiki/EthernetSetup">EthernetSetup</a>で』タブでインターフェース『tun0』とサーバで設定した『VPNネットワーク』アドレスが表示されたらVPNサーバへ正常に接続されています。
クライアントPCのWindowsのDOSプロント画面から route add コマンドでサーバLAN側のroute情報を追加
例　route add 192.168.123.0 mask 255.255.255.0 192.168.234.128
サーバのLAN側へPINGを飛ばし確認します。
</li><li>Serverの『Client Download』でダウンロードしたファイル、例『pepo1.zip』はWindows版のOpenVPNのクライアント設定内容も含みます。圧縮とパスワードで暗号化されているのでWindowsXPで所定のフォルダへ移動させて解凍する
パスワードは『ユーザ名：パスワード』ユーザ名とパスワードを：コロンで連結したもので、初期値で『root:kujira』です。
</li><li>正常に稼動するのを確認してログオフして下さい。この時VPNの設定情報のみバックアップします。再起動してもVPNの設定情報は保持するがIP、routeなどは初期値へ
</li></ol><h4 id="h4-.E6.8E.A5.E7.B6.9A.E3.81.95.E3.82.8C.E3.81.AA.E3.81.84.E5.A0.B4.E5.90.88.E3.81.AE.E7.A2.BA.E8.AA.8D">接続されない場合の確認</h4><ul><li>サーバ～クライアント間にIP通信ルートとポートフォワーディングが出来ていること
『Server Control』でping、tcptracerouteテストを行う
tcptracerouteテストは、デバック用にクライアントが接続出来ない時に使うものでiptablesの停止とOpenVPNの再起動が必要
</li></ul><ul><li>アンチウィルスの種類によりファイヤーウォールを無効にする必要がある
</li></ul><ul><li>クライアント・サーバが無線LANの場合、簡易設定で接続出来ない場合がある？
</li></ul><ul><li>『Server Log』でシステムログの確認
</li></ul><ul><li>iptablesを停止してみる
</li></ul><h4 id="h4-.E5.8F.82.E8.80.83">参考</h4><ul><li>サーバに対してクライアント時計が2時間程遅れると接続不可で下記エラーログを表示
</li></ul><div class="indent">Apr  3 11:27:17 (none) openvpn<a href="http://sourceforge.jp/projects/pepolinux/wiki/2791">2791</a>: VERIFY ERROR: depth=1, error=certificate is not yet valid:
</div><ul><li>サーバから接続クライアント単独だけでなくクライント・ネットワーク全体と通信したい場合の操作
<ul><li>クライアント側のネットワークアダプタ３を『ホストオンリー』から『ブリッジ』接続へ変更
</li><li>クライアント側のVPN接続方法を『VPN Client起動』から『VPN Server起動』へ変更して操作する
</li><li>サーバ側の操作は変わりません
</li></ul></li></ul><h4 id="h4-.E3.81.9D.E3.81.AE.E4.BB.96">その他</h4><ul><li>材料）
<ul><li>VMware Player　<a href="http://www.vmware.com/jp/products/player/" class="external" rel="nofollow">http://www.vmware.com/jp/products/player/</a>
</li><li>PHPマニュアル　<a href="http://jp.php.net/manual/ja/index.php" class="external" rel="nofollow">http://jp.php.net/manual/ja/index.php</a>
</li><li>タブでルック&amp;フィールを上げる為　<a href="http://jquery.com/" class="external" rel="nofollow">http://jquery.com/</a>
</li><li><a href="http://sourceforge.jp/projects/pepolinux/wiki/PepLinux">PepLinux</a>（1CDLINUX）Me　<a href="http://sourceforge.jp/projects/pepolinux/">http://sourceforge.jp/projects/pepolinux/</a>
</li></ul></li><li>情報源）
<ul><li><a href="http://freescitech.net/2/ovpn2_howto_ja.html" class="external" rel="nofollow">http://freescitech.net/2/ovpn2_howto_ja.html</a>
</li><li><a href="http://www.stackasterisk.jp/tech/systemConstruction/openVpn01_01.jsp" class="external" rel="nofollow">http://www.stackasterisk.jp/tech/systemConstruction/openVpn01_01.jsp</a>
</li><li><a href="http://openvpn.net/" class="external" rel="nofollow">http://openvpn.net/</a>
</li><li><a href="http://allabout.co.jp/internet/javascript/closeup/CU20071220A/" class="external" rel="nofollow">http://allabout.co.jp/internet/javascript/closeup/CU20071220A/</a>
</li></ul></li><li>Change tracking）
<ul><li>2009.4.7 v0.1;ファーストリリース
</li><li>2009.4.15 v0.2;
</li></ul><ol><li>再起動後も変更したパスワードを保持できるように
</li><li>tcptracerouteテストでiptablesの自動停止/起動を手動へ
</li><li>HPの有効でないメニューを削除
</li><li>入力されたIPなどを簡易チェック追加
</li></ol><ul><li>2009.4.26 v0.3;
</li></ul><ol><li>パスワード変更時パスワード１と２のミスマッチのチェック追加
</li><li>clientのアップスクリプト(nat無効)修正
</li><li>IPチェックミスの修正(0.0.0.0,255.255.255.255をpreg_match()で検出)
</li><li>サーバからクライアントのネットワーク全体と通信するオプションを追加
</li><li>tabの色変更、他クリーンアップ
</li></ol></li></ul><div class="indent">
</div><p>2010.1.16 Copyright by IZAMUKARERA
</p><p><a href="http://sourceforge.jp/projects/pepolinux/">http://sourceforge.jp/projects/pepolinux/</a>
</p>]]>
    </content:encoded>
      </item>
        <item rdf:about="http://sourceforge.jp/projects/pepolinux/wiki/TitleIndex">
    <title>TitleIndex</title>
    <link>http://sourceforge.jp/projects/pepolinux/wiki/TitleIndex</link>
    <dc:identifier>TitleIndex</dc:identifier>
    <dc:date>2009-04-20T10:00:21+09:00</dc:date>
        <description>
      <![CDATA[== TitleIndex ==
[[TitleIndex]]]]>
    </description>
    <content:encoded>
      <![CDATA[<h2 id="h2-TitleIndex"><a href="http://sourceforge.jp/projects/pepolinux/wiki/TitleIndex">TitleIndex</a></h2><ul><li><a href="http://sourceforge.jp/projects/pepolinux/wiki/FrontPage">FrontPage</a>
</li><li><a href="http://sourceforge.jp/projects/pepolinux/wiki/OpenMicroServer">OpenMicroServer</a>
</li><li><a href="http://sourceforge.jp/projects/pepolinux/wiki/PepoLinux">PepoLinux</a>
</li><li><a href="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand2VPN">Remote-Hand2VPN</a>
</li><li><a href="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_DIO">Remote-Hand_DIO</a>
</li><li><a href="http://sourceforge.jp/projects/pepolinux/wiki/Remote-Hand_OpenMicroserver">Remote-Hand_OpenMicroserver</a>
</li><li><a href="http://sourceforge.jp/projects/pepolinux/wiki/TitleIndex">TitleIndex</a>
</li><li><a href="http://sourceforge.jp/projects/pepolinux/wiki/acm-FOMA">acm-FOMA</a>
</li><li><a href="http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog">chobit_prog</a>
</li><li><a href="http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20init.d_pepodiod">chobit_prog init.d_pepodiod</a>
</li><li><a href="http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20openoffice_calc_paste_picture">chobit_prog openoffice_calc_paste_picture</a>
</li><li><a href="http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20pepodioctl">chobit_prog pepodioctl</a>
</li><li><a href="http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20pepodiod">chobit_prog pepodiod</a>
</li><li><a href="http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20pepogmail4dio">chobit_prog pepogmail4dio</a>
</li><li><a href="http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20pepogmail4pic">chobit_prog pepogmail4pic</a>
</li><li><a href="http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20pepogmail_send">chobit_prog pepogmail_send</a>
</li><li><a href="http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20pepopodcastget">chobit_prog pepopodcastget</a>
</li><li><a href="http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20pepousb-install">chobit_prog pepousb-install</a>
</li><li><a href="http://sourceforge.jp/projects/pepolinux/wiki/chobit_prog%20pepowlan">chobit_prog pepowlan</a>
</li><li><a href="http://sourceforge.jp/projects/pepolinux/wiki/epicon">epicon</a>
</li><li><a href="http://sourceforge.jp/projects/pepolinux/wiki/kernel%20make">kernel make</a>
</li></ul>]]>
    </content:encoded>
      </item>
    </rdf:RDF>
