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

<entry>
    <title>Arduinoで玄柴用のシャットダウン・スイッチを作る(3/5)</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/Kurobox-pro2/2010/03/arduino35.html" />
    <id>tag:www.eleki-jack.com,2010:/Kurobox-pro2//11.4071</id>

    <published>2010-03-16T07:55:57Z</published>
    <updated>2010-03-16T07:48:00Z</updated>

    <summary>■はじめに　今回は Windows, Linux (UNIX) のプログラミング...</summary>
    <author>
        <name>mitsunaga</name>
        
    </author>
    
        <category term="玄柴と電子工作" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="delay関数" label="delay関数" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="digitalread関数" label="digitalRead 関数" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="loop関数" label="loop関数" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="millis関数" label="millis 関数" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="pinmode関数" label="pinMode 関数" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="setup関数" label="setup関数" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="スケッチ" label="スケッチ" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="船田巧" label="船田巧" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/Kurobox-pro2/">
        <![CDATA[<b>■はじめに</b><br />　今回は Windows, Linux (UNIX) のプログラミングした経験がある人に向けて Arduino の動作を解説します。<br />　Arduino ではプログラムのことをスケッチと呼んでいます。イメージをスケッチブックに描くように、気軽にアイデアをコンピュータで実行してみて欲しいという思いが入っているそうです。まずは、CPU の動作をおさらいします。<br /><br /> ]]>
        <![CDATA[<b>■CPU の動作は？ ～Arduino のスケッチを理解する前に～</b><br />　Arduino とパソコン、玄柴、いずれのCPUも動作の基本は同じです。<br />1)命令（機械語）をメモリ（主記憶）から読み出して実行し<br />2)レジスタやメモリ（主記憶）を書き換え<br />3)次の命令に移って1から繰り返す<br />　機械語は、多くの場合、C/C++言語などの高級言語からコンパイラ、アセンブラ、リンカなどを使って生成されます。Microsoft の Visual C++、Arduino IDE など統合開発環境 (IDE) とよばれる開発環境では、個々のコンパイラやリンカをあまり意識せずに機械語が生成できるようになっています。<br /><br />　パソコンや玄柴の場合には、電源が入ると CPU は内蔵のROMからプログラム(BIOS や uBoot)を読み出して実行します。BIOS や uBoot は、さらにファイルを主記憶に読み込み、Windows や Linux といった OS を起動します。OS が起動すると Windows や Linux では、CUI シェル (コマンドプロンプトや bash, tcsh など)から実行ファイル名を指定したり、GUI シェルからアイコンをダブルクリックすると、ファイル・システム上の実行ファイル(*.exeなど)から必要な機械語が主記憶に読み込まれ、実行されるようになっています。 複数の実行ファイルのプログラムを実行でき、一つが終了してもほかのプログラムが動作しています。タスク・マネージャ(Windows) や ps, top (Linux)で動作中のプロセス（プログラム）を見ると多くのプログラムが動作していることがわかると思います。<br /><br />　一方で Arduino の場合には、内蔵のROMからプログラム（スケッチ）を読み込むと、そのプログラムが電源を切るまで動作しています。OS やシェルをもたないため、（自分で仕組みを用意しなければ）実行するプログラムをあとから指定することはできません。またシングル・タスクで、同時に動くプログラムはありません。マイコンを使った小規模なシステムでは、同様の動作をする場合が多いです。<br /><br /><b>■Arduino のスケッチの文法</b><br />　Arduino のスケッチの文法は、ほぼ C++ と同じと、思ってよいようです。C++ との違いは main 関数がなく(正確には隠されている)、代わりに setup 関数と loop 関数があることです。また Linux で使える printf 関数や cout などは、用意されていません。文法や用意されている関数については、<a href="http://arduino.cc/en/Reference/HomePage">リファレンスマニュアル</a>に書かれています。船田巧さんによって、<a href="http://www.musashinodenpa.com/arduino/ref/">日本語訳</a>が公開されています。「ライブラリ」に含まれる関数は、<a href="http://www.musashinodenpa.com/arduino/ref/index.php?f=1&amp;pos=4">ライブラリの使い方</a>にあるようにヘッダをincludeする必要があります。<br /><br /><b>■Arduino のROMに書き込まれるプログラム</b><br />　Arduino に書き込まれるプログラムは大きく三つに分かれます。<br /><ol><li>初期化部分</li><li>ライブラリ（スケッチのsetup関数 loop関数から呼び出す）</li><li>スケッチ</li></ol>スケッチの中には、<br /><ol><li>setup関数</li><li>loop関数</li><li>setup関数または loop 関数から呼び出す関数</li></ol>を用意します。もちろん小さなプログラムであればsetup関数とloop関数以外の関数は、ないかもしれません。<br />　Arduino の電源が入ると、1.初期化部分が実行されます。初期化が終了すると setup 関数が呼び出されます。その次に loop 関数が呼び出されます。loop関数が終了すると、すぐにまた loop 関数が呼び出され、電源を切るまで終了することはありません。<br /><br /><b>■デジタル出力と入力</b><br />　Arduino と周辺の回路とつなぐ基本は、ディジタル出力とディジタル入力です。ディジタル出力は LOW (0[V]) または HIGH (電源電圧の 5[V], 3.3V動作のArduinoの場合は3.3V)をピンに出すことができます。電流は20[mA] (=0.02[A])ぐらいまで出力できます。<br />　ディジタル入力は、ピンの電圧が LOW (閾値以下)か HIGH (閾値以上) かを知ることができます。たとえばスイッチをつなぎます。<br /><br /><b>■ディジタル入出力とピンの番号</b><br />　ピンの番号は、ボードにシルク印刷で書かれています（<b>写真1</b>）。DIGITAL と書かれたピン 0 から 13 (プログラム上でも0から13)と、ANALOG IN と書かれたピン 0 から 5 (プログラム上では14から19) をディジタル入出力に使うことができます。<a href="http://arduino.cc/en/Main/ArduinoBoardDuemilanove">Arduino Duemilanove の説明</a>を一度読んでおくとピンの役割がよくわかるでしょう。<br />　ディジタル出力や入力を使うときには、スケッチの先頭で<br /><blockquote>const int LEDpin = 13;<br />const int SWpin = 2;<br /></blockquote>といったようにピン番号を代入したグローバル変数を用意しておくとプログラムが見やすくなります。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2010/03/06/Arduino%20Duemilanove.html" onclick="window.open('http://www.eleki-jack.com/Kurobox-pro2/2010/03/06/Arduino%20Duemilanove.html','popup','width=800,height=567,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.eleki-jack.com/Kurobox-pro2/2010/03/06/Arduino%20Duemilanove-thumb-400x283.jpg" alt="Arduino Duemilanove.jpg" class="mt-image-center" style="text-align: center; display: block; margin: 0pt auto 20px;" width="400" height="283" /></a></span><br /><div align="center">写真1 Arduino Duemilanove の様子<br /></div><br /><b>■ピンの初期化</b><br />　ピンがディジタル入力か出力かは pinMode 関数で設定します。多くの場合は setup 関数内で pinMode 関数を呼びます。必要なら setup 関数以外で呼ぶこともできます。LEDをつないだピンを出力に、スイッチをつないだピンを入力にするには次のようにします。<br /><br /><blockquote>void setup()<br />{<br />&nbsp; pinMode(LEDpin, OUTPUT);<br />&nbsp; pinMode(SWpin, INPUT);<br />}<br /></blockquote><br /><b>■ディジタル出力</b><br />　ディジタル出力を設定するには、digitalWrite関数を使います。LEDpin のピンを LOW にするには、<br /><blockquote><div align="left">&nbsp; digitalWrite(LEDpin, LOW);<br /></div></blockquote>HIGH にするには、<br /><blockquote>&nbsp; digitalWrite(LEDpin, HIGH);<br /></blockquote>とします。LED を抵抗を通して適切につないであれば、それぞれLEDが消灯、点灯します。出力は次に digitalWrite 関数を呼び出すまで変わりません。<br /><br /><b>■ディジタル入力</b><br />　デイジタル入力は digitalRead 関数で読みます。引数がピンの番号で、戻り値が 0 なら LOW、1ならHIGHです。loop関数に、<br /><blockquote>void loop()<br />{<br />&nbsp; if (digitalRead(SWpin) == 0) {<br />&nbsp;&nbsp;&nbsp; digitalWrite(LEDpin, HIGH);<br />&nbsp; } else {<br />&nbsp;&nbsp;&nbsp; digitalWrite(LEDpin, LOW);<br />&nbsp; }<br />}<br /></blockquote>と書くと、シャットダウン・スイッチ用の回路で、スイッチを押す(ディジタル入力は LOW になる)と LED が点灯し、離すと消灯するスケッチになります。digitalRead 関数は現在の値を返すので、スイッチを以前に押したかどうかはわからないことに注意します。<br /><br /><b>■時間を意識して書く</b><br />　Arduino で LED を点滅させるとき、<br /><blockquote>void loop()<br />{<br />&nbsp; digitalWrite(LEDpin, LOW);<br />&nbsp; digitalWrite(LEDpin, HIGH);<br />}<br /></blockquote>というスケッチを書くと、LEDの点滅が速すぎて、目には点滅が見えなくなってしまいます（ぜひ試してください!!）。そこで、時間待ち関数 delay が用意されています。delay 関数の引数には、待ち時間をミリ秒(1/1000秒)単位で指定します。<br /><blockquote>void loop()<br />{<br />&nbsp; digitalWrite(LEDpin, LOW);<br />&nbsp; delay(500);<br />&nbsp; digitalWrite(LEDpin, HIGH);<br />&nbsp; delay(500);<br />}<br /></blockquote>とすると0.5秒ごとに点灯、消灯するので、1秒に1回LEDが点滅します。<br />　ところで、一つのLEDを点滅させるだけならよいのですが、スイッチを押したことを検出するにはどうしたらよいでしょうか？<br /><br /><b>■LED を点滅させながらスイッチを見張る</b><br />　常に LED を点滅させておき、スイッチを押されたら LED を点灯したままにするスケッチを考えてみます。<br /><blockquote>void loop()<br />{<br />&nbsp; digitalWrite(LEDpin, LOW);<br />&nbsp; delay(500);<br />&nbsp; digitalWrite(LEDpin, HIGH);<br />&nbsp; delay(500);<br /><br />&nbsp; while (digitalRead(SWpin) == 0) {<br />&nbsp;&nbsp;&nbsp; digitalWrite(LEDpin, HIGH);<br />&nbsp; }<br />}<br /></blockquote>とすると、どうなるでしょうか？delay関数が呼ばれている間はスイッチをチェックしていないので、LEDが消えている 0.5秒の間にスイッチを押しても、LED は点灯しません。LEDが点灯しているときにスイッチを押しても、LED は消えてしまうでしょう。<br />　そこで、電源投入時からの時間経過をミリ秒単位で返す millis 関数を使います。<br /><br /><blockquote>const int LEDpin = 13;<br />const int SWpin = 2;<br />unsigned long previousMillis = 0;<br />bool LED = false;<br /><br />void setup()<br />{<br />&nbsp; pinMode(LEDpin, OUTPUT); &nbsp;<br />&nbsp; pinMode(SWpin, INPUT);<br />}<br /><br />void loop()<br />{<br />&nbsp; if (millis() - previousMillis &gt; 500) {<br />&nbsp;&nbsp;&nbsp; previousMillis = millis();<br />&nbsp;&nbsp;&nbsp; if (LED) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; digitalWrite(LEDpin, LOW);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LED = false;<br />&nbsp;&nbsp;&nbsp; } else {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; digitalWrite(LEDpin, HIGH);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LED = true;<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp; }<br />&nbsp; if (digitalRead(SWpin) == 0) {<br />&nbsp;&nbsp;&nbsp; while (digitalRead(SWpin) == 0) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; digitalWrite(LEDpin, HIGH);<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; digitalWrite(LEDpin, LOW);<br />&nbsp;&nbsp;&nbsp; LED = false;<br />&nbsp;&nbsp;&nbsp; previousMillis = millis();<br />&nbsp; }<br />}<br /></blockquote><br />　このようにしておくと、500ms (0.5秒)経過したときだけ、LEDの点滅を反転し、スイッチを押している間は LED が点灯するスケッチになります。<br /><br />　このスケッチでは問題がありませんが、スイッチを押したり離したりした直後は、ディジタル入力が LOW/HIGh を繰り返すことがあります。これによる誤動作を避けるには、前回ディジタル入力を読んだ後20ms以上経過してから読むようにするという方法があるので、覚えておくとよいかもしれません。<br /><br />　次回は、非同期シリアル通信に関する関数の使い方を紹介します。Arduino側のスケッチを理解できるようになるはずです。<br /><div align="right">（光永 法明）<br /></div><br /><div><br /></div>]]>
    </content>
</entry>

<entry>
    <title>Arduinoで玄柴用のシャットダウン・スイッチを作る(2/5)</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/Kurobox-pro2/2010/03/arduino25.html" />
    <id>tag:www.eleki-jack.com,2010:/Kurobox-pro2//11.4070</id>

    <published>2010-03-11T09:46:55Z</published>
    <updated>2010-03-11T07:42:15Z</updated>

    <summary>■シャットダウン・スイッチの仕様を決める　玄柴用のシャットダウン・スイッチを実現...</summary>
    <author>
        <name>mitsunaga</name>
        
    </author>
    
        <category term="玄柴と電子工作" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/Kurobox-pro2/">
        <![CDATA[<b>■シャットダウン・スイッチの仕様を決める</b><br />　玄柴用のシャットダウン・スイッチを実現するに当たって、まず仕様を決めます。動作中はLEDが点滅し、シャットダウン・スイッチを5秒間押し続けるとシャットダウン開始（スイッチを押している間はLEDが点灯）とします。<br /><br /> ]]>
        <![CDATA[<b>■玄柴とArduino間のプロトコルと役割分担を決める</b><br />　つぎに、玄柴とArduinoの間の通信方式を、非同期シリアル通信*1でボーレートが9600bps、パリティなし、フロー制御なしとします。<br />　最後に役割分担を決めます(<b>図1</b>)。まず、Arduinoでスイッチが5秒間押されていることを検出すると、玄柴へ"shutdown\r\n"を送ることにします。つぎに、玄柴上のプログラムが起動中は、1秒に1回1文字 Arduino へ送ることにします。Arduinoのプログラムは1文字受信するたびに、LEDを点滅させます。これで仕様が実現できます。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="fig1.png" src="http://www.eleki-jack.com/Kurobox-pro2/2010/03/06/fig1.png" class="mt-image-center" style="text-align: center; display: block; margin: 0pt auto 20px;" width="400" height="219" /></span><br /><div align="center">図1 通信プロトコル<br /></div><br />*1 以前の記事の中にシリアル・ポートを使った例があります。<br /><a href="http://www.eleki-jack.com/Kurobox-pro2/2008/01/prodebian.html">http://www.eleki-jack.com/Kurobox-pro2/2008/01/prodebian.html</a><br />からリンクを張っています。<br /><br /><b>■Arduino にスイッチをつなぐ</b><br />　<b>図2</b>の回路図のようにArduinoにスイッチ（タクト・スイッチ）と抵抗（1/4Wまたは1/6Wの炭素皮膜抵抗）をつなぎます。ここでの抵抗は、その役割からプルアップ抵抗とよばれます。LEDはArduinoに搭載されているものを使います。<b>写真1</b>のように、ブレッドボード上にスイッチと抵抗を並べ、Arduino からジャンプ・ワイヤをつなぐと実験できます。うまくいったら、はんだ付けしてケースに入れるといいでしょう。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="shutdown.png" src="http://www.eleki-jack.com/Kurobox-pro2/2010/03/06/shutdown.png" class="mt-image-center" style="text-align: center; display: block; margin: 0pt auto 20px;" width="400" height="389" /></span><br /><div align="center">図2 Arduino とスイッチをつなぐ(回路図)<br /></div><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2010/03/06/arduino-sw.html" onclick="window.open('http://www.eleki-jack.com/Kurobox-pro2/2010/03/06/arduino-sw.html','popup','width=800,height=558,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.eleki-jack.com/Kurobox-pro2/2010/03/06/arduino-sw-thumb-400x279.jpg" alt="arduino-sw.jpg" class="mt-image-center" style="text-align: center; display: block; margin: 0pt auto 20px;" width="400" height="279" /></a></span><div align="center">写真1 Arduino とスイッチをつなぐ(写真)<br /></div><br /><b>■Arduino IDE を用意する</b><br />　まず Arduino の開発環境 (Arduino IDE) を準備します。<a href="http://arduino.cc/en/Guide/HomePage">Getting Started</a> のページから、使用しているOSにあわせたページを読み、開発環境をインストールして、サンプルを動かしてみましょう。<br /><br /><b>■シャットダウンするための Arduino のスケッチ（プログラム）</b><br />　<span class="mt-enclosure mt-enclosure-file" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2010/03/06/KURO_SW-100214a.zip">KURO_SW-100214a.zip</a></span>をダウンロードして、適当なフォルダで展開します。Arduino IDE の File メニューから Open を選択して、展開した KURO_SW.pde を開きます<b>(図3)</b>。文字化けが起きたら、Tools メニューの Fix Encoding &amp; Reload をクリックしてみてください。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="arduino1.png" src="http://www.eleki-jack.com/Kurobox-pro2/2010/03/06/arduino1.png" class="mt-image-center" style="text-align: center; display: block; margin: 0pt auto 20px;" width="500" height="600" /></span><br /><div align="center">図3 Arduino IDE でスケッチを開く<br /></div><br /><b>■Arduino IDE で動作を確認する</b><br />　図2の回路を組んだ Arduino をパソコンにつなぎ、Arduino IDE からスケッチを書き込みます。Upload ボタン(<b>図4</b>)をクリックすると、コンパイル、リンク、書き込みが順に実行されます。うまくいかない場合には、シリアル・ポートが正しいか確認してみてください。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="arduino2.png" src="http://www.eleki-jack.com/Kurobox-pro2/2010/03/06/arduino2.png" class="mt-image-center" style="text-align: center; display: block; margin: 0pt auto 20px;" width="276" height="81" /></span><br /><div align="center">図4 Upload ボタン<br /></div><br />　書き込みが終わったら、Arduino は、すぐに動作を始めています。早速動作を確認してみます。Serial Monitor ボタン<b>(図5)</b>をクリックしてシリアル・モニタを開きます(<b>図6</b>)。上のテキスト・エリアに文字(たとえば a)を入れ、Send ボタンをクリックして、Arduino の LED が点滅することを確認します。またスイッチを長押しして、shutdown の文字が表示されるか確認します。shutdown が表示されないときには、スイッチの向きや配線が正しいか確認してみてください。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="arduino3.png" src="http://www.eleki-jack.com/Kurobox-pro2/2010/03/06/arduino3.png" class="mt-image-center" style="text-align: center; display: block; margin: 0pt auto 20px;" width="307" height="71" /></span><br /><div align="center">図5 Serial Monitor ボタン<br /></div><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="arduino4.png" src="http://www.eleki-jack.com/Kurobox-pro2/2010/03/06/arduino4.png" class="mt-image-center" style="text-align: center; display: block; margin: 0pt auto 20px;" width="451" height="356" /></span><br /><div align="center">図6 シリアルモニタのウィンドウ<br /></div><br />　次回は、Arduino のスケッチ（プログラミング）について紹介します。<br /><div align="right">（光永 法明）<br /></div><br />]]>
    </content>
</entry>

<entry>
    <title>Arduinoで玄柴用のシャットダウン・スイッチを作る(1/5)</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/Kurobox-pro2/2010/03/arduino15.html" />
    <id>tag:www.eleki-jack.com,2010:/Kurobox-pro2//11.4069</id>

    <published>2010-03-08T02:41:52Z</published>
    <updated>2010-03-08T02:28:38Z</updated>

    <summary>■シャットダウン・スイッチをつけたい　玄柴には電源スイッチがありません。シャット...</summary>
    <author>
        <name>mitsunaga</name>
        
    </author>
    
        <category term="玄柴と電子工作" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="arduino" label="Arduino" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="シャットダウン・スイッチ" label="シャットダウン・スイッチ" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/Kurobox-pro2/">
        <![CDATA[<b>■シャットダウン・スイッチをつけたい</b><br />　玄柴には電源スイッチがありません。シャットダウンにはログインしてから、コマンドを実行する必要があります。常に電源を入れておくというコンセプトはいっても、シャットダウン・スイッチがあると便利です。ということで、シャットダウン・スイッチを作ってみます。<br /><br /> ]]>
        <![CDATA[<b>■玄柴にスイッチをつけるには</b><br />　玄箱Proのとき[1]もそうでしたが、UNIX (Linux) マシンに手軽に自作のデバイスをつなぐには、シリアル・ポートを利用するのが便利です。最近だと USB シリアルを利用すると電源の心配もなくて便利です。<br />　ところで、USBシリアル(USBパラレル)を使うには、大きく分けて二つの方法が考えられます。一つは、USBシリアル(パラレル)を直接ディジタル入出力に利用し、スイッチを読み込むタイミングなどは玄柴上のプログラムで制御する方法です[2][3]。Gainer mini を使う方法も考え方は、こちらに近い方法です。もう一つの考え方は、USBシリアルにマイコンをつないでおき、玄柴とマイコンの二つのプログラムで役割を分担する方法です。<br />　どちらも、一長一短があるのですが、後者のように役割分担させておくと液晶などを接続するのに便利です。そこで、マイコンにArduinoを利用してシャットダウン・スイッチをつけてみます。<br /><br />参考：<br />[1]<a href="http://www.eleki-jack.com/Kurobox-pro2/2008/01/prodebian.html">「玄箱 PROをDebian化して遊ぶ」これまでのまとめ</a><br />[2]<a href="http://www.eleki-jack.com/Kurobox-pro2/2007/08/post-22.html">シリアル・ポートを使ってディジタル入出力</a><br />[3]<a href="http://www.eleki-jack.com/Kurobox-pro2/2008/02/usb-led.html">USB パラレルと LED</a><br />[4]<a href="http://www.eleki-jack.com/Kurobox-pro2/2009/01/usb-io-gainer-mini.html">USB I/O モジュールとして Gainer mini を利用</a><br />書籍「<a href="http://www.cqpub.co.jp/hanbai/books/46/46071.htm">玄箱Proと電子工作で遊ぼう</a>」に[1]から[3]の内容が含まれています。<br /><br /><b>■Arduino でマイコン・プログラミングをしてみよう</b><br />　Arduino はフィジカル・コンピューティングのために開発されたマイコン・ボードと開発環境(Arduino IDE)の名前です。フィジカル・コンピューティングは、キーボードやマウス、ディスプレイといったコンピュータよりのインターフェースでなく、センサやアクチュエータにより身近な実世界/人と対話する形でのコンピュータの利用と考えてください。アートやデザイン（製品）の幅を広げることが可能になります。<br />　Arduinoは、フィジカル・コンピューティングだけでなく、従来型のマイコンの開発環境としても使うことができ、試作（プロトタイピング）や簡単な工作に便利です。<br /><br /><b>■Arduino の特長は？</b><br />　Arduino の特長は、プログラミングと電子工作の経験が少ない人にも失敗が少ないように工夫されている点にあります。ソフトウェアの開発環境(Arduino IDE)のインストールが簡単で、マイコンと必須の周辺回路が一つのボード(Arduino)に載るようになっています。最初は Arduino と、ブレッドボード、ジャンプ・ワイヤがあれば、はんだ付けなしに取り組めます。また、OS はありませんが、比較的よく使うライブラリが整っているので、初心者でなくてもプロトタイピングに便利です。<br />　次回は、Arduinoを使って USB でつなぐシャットダウン・スイッチを作成します。<br /><br /><blockquote>　Arduino も万能ではなく、マイコン・メーカが提供する開発環境と比較するとデバッグ機能が弱い面があります。Arduino でマイコンの使い方に慣れたら、78K, ARM, AVR, H8, HC08, MSP430, PIC, R8, SH2 などのマイコンを目的に合わせて使ってみるとよいでしょう。それぞれに安価な開発キット（プログラマ）や開発環境が用意されています。<br /></blockquote><div align="right">（光永 法明）<br /></div><br />]]>
    </content>
</entry>

<entry>
    <title>玄柴のuBootをOpenOCDで書き換える</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/Kurobox-pro2/2010/02/ubootopenocd.html" />
    <id>tag:www.eleki-jack.com,2010:/Kurobox-pro2//11.3933</id>

    <published>2010-02-18T06:58:53Z</published>
    <updated>2010-02-18T05:42:29Z</updated>

    <summary>■OpenOCDとは　OpenOCD (http://openocd.berli...</summary>
    <author>
        <name>mitsunaga</name>
        
    </author>
    
        <category term="環境を整える" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/Kurobox-pro2/">
        <![CDATA[<b>■OpenOCDとは</b><br />　OpenOCD (<a href="http://openocd.berlios.de/web/">http://openocd.berlios.de/web/</a>) は Open On-Chip Debugger といって、フリーの JTAG を通したデバッグなどを実現するソフトウェアです。玄柴のuBootの書き換えに失敗したとき（間違ったものを書いた、書き込み中に電源を切った）などに、OpenOCDを使ってフラッシュ・メモリを書き換えることができます。筆者の場合は、uImageの内容をuBootに書いてしまい、慌ててOpenOCDの用意をしました。<br /><br /> ]]>
        <![CDATA[<b>■OpenOCD をコンパイルする</b><br />　まずは Linux マシンを用意します。コンパイラの関係で ARM ベースのマシン（玄箱Proや玄柴）では、うまくOpenOCDのコンパイルができないので注意します。今回はVmware Playerの仮想マシン上にDebianをインストールしました。インストール直後には開発環境が含まれていないので、<br /><blockquote>apt-get install gcc binutils make screen<br />apt-get install libusb-0.1.4 libusb-dev<br /></blockquote>として、インストールしておきます。libusb に依存しているので、libusb-0.1.4, libusb-dev をインストールしています。つぎに libftdi, OpenOCD を順にコンパイルしてインストールします。libftdi は 0.17、OpenOCD は 0.4.0-rc1を利用しました。<br /><br />libftdi （入手元：<a href="http://sourceforge.jp/projects/freshmeat_libftdi/">http://sourceforge.jp/projects/freshmeat_libftdi/</a>）のコンパイル：<br /><blockquote>tar xzvf libftdi-0.17.tar.gz<br />cd libftdi-0.17<br />./configure --prefix=/usr<br />make<br />su<br />make install<br />exit<br />cd ..<br /></blockquote><br /><b>OpenOCD (入手元：<a href="http://developer.berlios.de/projects/openocd">http://developer.berlios.de/projects/openocd</a>)のコンパイル：</b><br /><blockquote>tar xzvf openocd-0.4.0-rc1.tar.gz<br />cd openocd-0.4.0-rc1<br />./configure --prefix=/usr<br />make<br />su<br />make install<br /></blockquote><br /><b>■OpenOCD で uBoot を書き換える</b><br />　OpenOCD の使い方は簡単です。書き込みたい uBoot イメージを uboot.bin という名前で用意し、以下のように実行します。<br /><blockquote>mv u-boot-sheeva.bin uboot.bin<br />openocd -f /usr/local/share/openocd/scripts/board/sheevaplug.cfg -c init -c sheevaplug_reflash_uboot<br /></blockquote>　上の例では、玄柴用に玄人志向が用意している u-boot-sheeva.bin というファイルのファイル名を uboot.bin に変えてから、openocd を実行しています。というのは、-c で指定している　sheevaplug_reflash_uboot コマンドが、カレント・ディレクトリの uboot.bin を書き込むようになっているからです。sheevaplug_reflash_ubootコマンドの内容は /usr/local/share/openocd/scripts/board/sheevaplug.cfg に書かれています。<br /><br />　実行すると下のようになりました。<br /><blockquote>debian:/home/non/work# openocd -f /usr/local/share/openocd/scripts/board/sheevaplug.cfg -c init -c sheevaplug_reflash_uboot<br />Open On-Chip Debugger 0.4.0-rc1 (2010-01-02-23:25)<br />For bug reports, read<br />&nbsp;&nbsp; &nbsp;http://openocd.berlios.de/doc/doxygen/bugs.html<br />2000 kHz<br />trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain<br />jtag_nsrst_delay: 200<br />jtag_ntrst_delay: 200<br />dcc downloads are enabled<br />Warn : use 'feroceon.cpu' as target identifier, not '0'<br />Info : clock speed 2000 kHz<br />Info : JTAG tap: feroceon.cpu tap/device found: 0x20a023d3 (mfg: 0x1e9, part: 0x0a02, ver: 0x2)<br />Info : Embedded ICE version 0<br />Info : feroceon.cpu: hardware has 2 breakpoints or watchpoints<br />target state: halted<br />target halted in ARM state due to debug-request, current mode: Supervisor<br />cpsr: 0x000000d3 pc: 0xffff0000<br />MMU: disabled, D-Cache: disabled, I-Cache: disabled<br />NAND flash device 'NAND 512MiB 3,3V 8-bit' found<br />erased blocks 0 to 5 on NAND flash device #0 'NAND 512MiB 3,3V 8-bit'<br />^C<br />debian:/home/non/work# <br /></blockquote>　最後に Ctrl + C で止めています。いつ書き換えが終わったかよくわからないので注意します。openocd を実行するターミナルのほかに、別のターミナルを開いておいて、<br /><blockquote>screen /dev/ttyUSB0 115200<br /></blockquote>を実行しておくと、書き換えが終了したら、玄柴が起動する様子を見ることができます。uBoot の書き換え後には、uBoot の環境変数なども確認しておきます。<br /><br /><div align="right">（光永 法明）<br /></div><br />]]>
    </content>
</entry>

<entry>
    <title>玄柴の内蔵フラッシュへuImageを書き込む</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/Kurobox-pro2/2010/02/post-36.html" />
    <id>tag:www.eleki-jack.com,2010:/Kurobox-pro2//11.3932</id>

    <published>2010-02-12T03:42:56Z</published>
    <updated>2010-02-14T01:32:19Z</updated>

    <summary>■内蔵フラッシュの uImage を書き換える　USB フラッシュ・メモリなどで...</summary>
    <author>
        <name>mitsunaga</name>
        
    </author>
    
        <category term="環境を整える" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="uboot" label="U-Boot" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="uimage" label="uImage" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/Kurobox-pro2/">
        <![CDATA[<b>■内蔵フラッシュの uImage を書き換える</b><br />　USB フラッシュ・メモリなどで新しくコンパイルしたカーネルの動作を確認したら、内蔵フラッシュに書き込んでおくと便利です。内蔵フラッシュ (NAND) メモリへの書き込みには&nbsp; mtd-tools パッケージが必要です。apt-get でインストールしておきます。<br /><br /><blockquote>apt-get install mtd-tools<br /></blockquote><br /> ]]>
        <![CDATA[<b>■パーティションを調べて書き換える</b><br />　まずuImage が含まれる MTD パーティション番号を調べます。<br /><blockquote>cat /proc/mtd<br /></blockquote>を実行します。カーネルによって番号が変わるので注意してください。<br />-<b>工場出荷時のカーネルの時：</b><br /><blockquote>debian:~# cat /proc/mtd<br />dev:&nbsp;&nbsp;&nbsp; size&nbsp;&nbsp; erasesize&nbsp; name<br />mtd0: 00400000 00020000 "uImage"<br />mtd1: 1fb00000 00020000 "rootfs"<br />debian:~#<br /></blockquote>-<b>SATAをサポートするようにコンパイルした2.6.32.2のカーネルの時：</b><br /><blockquote>debian:~# cat /proc/mtd<br />dev:&nbsp;&nbsp;&nbsp; size&nbsp;&nbsp; erasesize&nbsp; name<br />mtd0: 00100000 00020000 "u-boot"<br />mtd1: 00400000 00020000 "uImage"<br />mtd2: 1fb00000 00020000 "root"<br />debian:~#<br /></blockquote>となりました。前者の場合は mtd0 に、後者の場合は mtd1 に uImage が書かれていることがわかります。NAND Flash を消去してから、uImage ファイルを書きこみます。mtd1 の場合は、次のようにします。<br /><blockquote>flash_eraseall /dev/mtd1<br />nandwrite -p /dev/mtd1 uImage<br /></blockquote>　uImage には適切な uImage ファイルを指定します。書き込みが終了したら、リブートして確認します。必要なら、環境変数を書き換えるのを忘れないようにします。<br /><br />　なお、間違って uBoot を消さないように十分注意してください。uBoot に書き込んだ場合はファイルが大きすぎて、書き込めないといったエラーが出るはずです。エラーが出たら、u-bootを上書きしていないことを確認してください。<br /><br />　uBootを上書きしてしまった場合は、<b>＊リブート前に＊</b>、正しいuBootを書き込みます。忘れたときは次回紹介するOpenOCDで書き換えます。<br /><br /><b>■内蔵フラッシュのファイル・システム</b><br />　内蔵フラッシュのファイル・システムを工場出荷時に戻したいときには次のようにします。<br /><blockquote>flash_eraseall -j /dev/mtd2<br />nandwrite -p /dev/mtd2 ubuntu-9.0.5.Release.jffs2<br /></blockquote>　ubuntu-9.0.5.Release.jffs2 は玄柴に付属のCD-ROM内のSheevaPlug_Filesystem.zipに含まれています。書き込みが終了したら、マウントして確認をします。たとえば、<br /><blockquote>mount -t jffs2 /dev/mtdblock2 /mnt<br /></blockquote>とします。マウントが完了するまでに時間がかかることがあるので、ゆっくり待ちます。<br /><br /><div align="right">（光永 法明）<br /></div><br />]]>
    </content>
</entry>

<entry>
    <title>起動デバイスと U-Boot の設定</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/Kurobox-pro2/2010/02/-uboot.html" />
    <id>tag:www.eleki-jack.com,2010:/Kurobox-pro2//11.3891</id>

    <published>2010-02-08T03:37:50Z</published>
    <updated>2010-02-08T04:06:32Z</updated>

    <summary>■はじめに　玄柴の起動デバイスを変えるには U-Boot の環境変数を書き換える...</summary>
    <author>
        <name>mitsunaga</name>
        
    </author>
    
        <category term="環境を整える" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="uboot" label="U-Boot" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="uimage" label="uImage" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="カーネル" label="カーネル" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="起動デバイス" label="起動デバイス" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/Kurobox-pro2/">
        <![CDATA[<b>■はじめに</b><br />　玄柴の起動デバイスを変えるには U-Boot の環境変数を書き換える必要があります。今回は、環境変数の設定例をまとめて紹介します。<br /><br /> ]]>
        <![CDATA[<b>■環境変数をどう設定するか</b><br />　起動に関係する環境変数の設定項目は大きく分けて三つあります。<br /><ol><li>カーネルの種類</li><li>uImage の読込先</li><li>root ファイルシステムの位置</li></ol>です。まず、カーネルの種類は、<br /><blockquote><div align="left">setenv mainlineLinux no<br /></div></blockquote>と設定する工場出荷時のカーネルの系列と、<br /><blockquote>setenv mainlineLinux yes<br />setenv arcNumber 2097<br /></blockquote>と設定する www.kernel.org で配布されているカーネルをベースにしたもの(前に紹介したものを含む)に分かれます。<br /><br />　uImage の読込先は、NAND フラッシュ・メモリ、USB フラッシュ・メモリ (USB HDD)、eSATAの3通りが選べます(SD Card の利用には U-Boot の入れ替えが必要で、工場出荷状態ではできない)。rootファイルシステムの位置は、NANDフラッシュ・メモリ、USB フラッシュ・メモリ、eSATA、SD Card の4通りが選べます。設定は bootargs, bootcmd で設定します。<br /><br />　環境変数を書き換えたら、<br /><blockquote>boot<br /></blockquote>コマンドで起動を開始します。saveenvを実行しなければ、環境変数は電源を切れば元に戻ります。うまく設定できて記憶させるときに、saveenv を実行します。ただし、書き換えた環境変数の組み合わせによっては、うまく起動できないことがあります。その場合には、<br /><blockquote>saveenv<br />reset<br /></blockquote>を試してみてください。<br /><br /><b>■環境変数設定の例</b><br />　以下に環境変数を設定する具体的な例を示します。コピー・ペーストで起動が可能です。ただ、全部まとめてコピー・ペーストすると、途中までしかペーストされない場合があったので（玄柴側のシリアルのオーバフロー？）注意が必要です。<br /><br /><b>□uImage: NANDフラッシュ・メモリ(工場出荷時のuImage), root: NANDフラッシュ・メモリ</b><br />　工場出荷時の uImage で、工場出荷時の root ファイルシステムで起動する例です。<br /><br />
<pre>setenv mainlineLinux no
setenv bootargs 'console=ttyS0,115200 mtdparts=nand_mtd:0x400000@0x100000(uImage),0x1fb00000@0x500000(rootfs) rw root=/dev/mtdblock1 rw ip=10.4.50.4:10.4.50.5:10.4.50.5:255.255.255.0:DB88FXX81:eth0:none'
setenv bootcmd 'nand read.e 0x800000 0x100000 0x400000; bootm 0x800000'
</pre><br />　カーネルを自分でコンパイルしたものから、工場出荷時のものへ切り替えたときは、そのまま起動せず、以下を実行します。<br /><blockquote>saveenv<br />reset<br /></blockquote><b>□uImage: NANDフラッシュメモリ(工場出荷時のuImage), root: SD card</b><br />　以下で起動できました。rw ip= 以降は不要ではないかと思ったのですが、消すとイーサネットが使えませんでした。<br /><br />
<pre>setenv mainlineLinux no
setenv bootargs console=ttyS0,115200 mtdparts=nand_mtd:0x400000@0x100000(uImage),0x1fb00000@0x500000(rootfs) rw root=/dev/mmcblk0p2 rw ip=10.4.50.4:10.4.50.5:10.4.50.5:255.255.255.0:DB88FXX81:eth0:none
setenv bootcmd 'nand read.e 0x800000 0x100000 0x400000; bootm 0x800000'
</pre>
<b>□uImage: NANDフラッシュメモリ(工場出荷時のuImage), root: /dev/sda2 (USB フラッシュ・メモリ(HDD) または eSATA HDD)</b><br />
　USB フラッシュ・メモリ (HDD)、eSATA HDD の第2パーティション (/dev/sda2) をマウントする例です。いずれも、カーネルから見るとsdデバイスなので、設定は共通です。<br /><br />
<pre>setenv mainlineLinux no
setenv bootargs console=ttyS0,115200 mtdparts=nand_mtd:0x400000@0x100000(uImage),0x1fb00000@0x500000(rootfs) rw root=/dev/sda2 rw rootdelay=10 ip=10.4.50.4:10.4.50.5:10.4.50.5:255.255.255.0:DB88FXX81:eth0:none
setenv bootcmd 'nand read.e 0x800000 0x100000 0x400000; bootm 0x800000'
</pre>
<b>□uImage: USB (/dev/sda1, カーネルは 2.6.32.2 をコンパイル), root: /dev/sda2 (USB フラッシュ・メモリ (HDD) または eSATA HDD)</b><br />
　カーネルを工場出荷時のものから書き換えるときは mainlineLInux を yes にします。arcNumber も設定します。saveenv, reset をしないと起動できないことがありました。また、前の記事のように USB ハブに、筆者の持っている USB シリアルを挿していると起動できませんでした。<br /><br /><br />
<pre>setenv mainlineLinux yes
setenv arcNumber 2097
setenv bootargs console=ttyS0,115200 rw root=/dev/sda2 rw rootdelay=10 ip=10.4.50.4:10.4.50.5:10.4.50.5:255.255.255.0:DB88FXX81:eth0:none
setenv bootcmd 'usb start; ext2load usb 0:1 0x8000000 /sheeva-2.6.32.2-uImage; bootm 0x8000000'
saveenv
reset
</pre>
<b>□uImage: eSATA (/dev/sda1, カーネルは 2.6.32.2 をコンパイル), root: /dev/sda2 (USB フラッシュ・メモリまたは eSATA HDD)</b><br />　カーネルとrootファイルシステムをともに eSATA HDD に置く例です。USB/eSATA両方ついている外付けケースでは、U-Boot から認識されないことがあった(USB/eSATAの自動切り替えがうまく働かないため)ので、ケースにも注意が必要です。<br /><br />
<pre>setenv mainlineLinux yes
setenv arcNumber 2097
setenv bootargs console=ttyS0,115200 rw root=/dev/sda3
setenv bootcmd 'ide reset; ext2load ide 1:1 0x8000000 /sheeva-2.6.32.2-uImage; bootm 0x8000000'
</pre>
<b>■おわりに</b><br />　ほかの組み合わせも、考えられれます。上記の例が参考になれば幸いです。<br /><br /><div align="right">（光永 法明）<br /></div><br />]]>
    </content>
</entry>

<entry>
    <title>カーネルを新しくして、カーネル・モジュールを用意する</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/Kurobox-pro2/2010/01/post-35.html" />
    <id>tag:www.eleki-jack.com,2010:/Kurobox-pro2//11.3851</id>

    <published>2010-01-29T04:50:42Z</published>
    <updated>2010-02-03T01:02:26Z</updated>

    <summary>■カーネルとカーネル・モジュールの更新　玄柴のカーネルには、USBシリアルなどの...</summary>
    <author>
        <name>mitsunaga</name>
        
    </author>
    
        <category term="環境を整える" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="sheeva" label="sheeva" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="玄柴" label="玄柴" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/Kurobox-pro2/">
        <![CDATA[<b>■カーネルとカーネル・モジュールの更新<br /></b>　玄柴のカーネルには、USBシリアルなどのドライバが組み込まれていないのでカーネル・モジュールが必要です。カーネル・モジュールだけ、コンパイルしてもよいのですが、せっかくなので新しいバージョンをコンパイルしてみます。<br /><br /> ]]>
        <![CDATA[<b>■最新カーネルをコンパイル</b>
<br />　<a href="http://sheeva.with-linux.com/sheeva/">http://sheeva.with-linux.com/sheeva/</a>でコンパイル済みのカーネルとモジュールを公開されているcbxbiker61さんの、パッチ・ファイルとコンフィグ・ファイルを元に、SATAが使えるように変更を加えました。cbxbiker61さんのバイナリは、<br /><br />
<blockquote>
<pre>wget http://sheeva.with-linux.com/sheeva/README-2.6.32.2
chmod +x README-2.6.32.2
mount -o remount,rw /boot
./README-2.6.32.2 --rootkerne
</pre></blockquote><br />
を実行するだけで、/boot へ uImage ファイルを書き込んでくれる優れものなのですが、玄柴の SATA をサポートしていません。調べてみると arch/arm/kirkwood/sheevaplug-setup.c に変更が必要でした。そこで、カーネルのファイル linux-2.6.32.2.tar.bz2 と patch-config-2.6.32.2.tar.gz を同じディレクトリにダウンロードし、以下を玄柴で実行します。
<br /><br />
<blockquote>
<pre>tar xjf linux-2.6.32.2.tar.bz2<br />tar xzf patch-config-2.6.32.2.tar.gz<br />cd linux-2.6.32.2<br />patch -p1 &lt; ../UdlFb-0.2.3-2.6.30.2.patch<br />patch -p1 &lt; ../linux-2.6.29-usb-serial-evdo.patch<br />patch -p1 &lt; ../mvsdio-1-2.6.30.patch<br />patch -p1 &lt; ../mvsdio-2.patch<br />patch -p0 &lt; ../sheevaplug-setup.c.diff<br />cp ../sheeva-2.6.32.2.config .config<br />make oldconfig<br />make uImage<br /></pre>
</blockquote>
　これで、arch/arm/boot/uImage に uImage ファイルができます。さらに、<br /><br /><blockquote>cp arch/arm/boot/uImage /boot/uImage<br /></blockquote><br />として、uImage を /boot へコピーします。もし、/boot をリード・オンリでマウントしているなら、<br /><br /><blockquote>mount -o remount,rw /boot<br /></blockquote><br />を cp の前に実行しておきます。最後にカーネル・モジュールをコンパイルしてインストールします。<br /><br /><blockquote>make modules<br />make modules_install<br /></blockquote><br />　コンパイル済みの uImage ファイルと、moduleファイルをおいておきます。それぞれ、uImage-2.62.32.2 と modules-2.6.32.2.tar.gz です。開発環境をインストールしていなければ、<br /><br /><blockquote>apt-get install gcc make libc-dev libc6-dev patch devio libncurses5 libncurses5-dev mtd-tools uboot-mkimage<br /></blockquote><br />を最初に実行します。<br /><br />
<b>■USB フラッシュ・メモリからの起動</b>
<br />　ここでは、USB フラッシュ・メモリの一つめのパーティションに /boot をおいた場合に起動するための方法を紹介します。起動時に U-Boot が Hit any key to stop autoboot: を表示しているときに何か入力して、U-Boot のプロンプトを表示させ、以下を実行します。
<br /><br />
<blockquote>
<pre>setenv mainlineLinux yes<br />setenv arcNumber 2097<br />setenv bootargs console=ttyS0,115200 rw root=/dev/sda2 rw rootdelay=10 ip=10.4.50.4:10.4.50.5:10.4.50.5:255.255.255.0:DB88FXX81:eth0:none<br />setenv bootcmd 'usb start; ext2load usb 0:1 0x8000000 /uImage; bootm 0x8000000'<br />saveenv<br />reset<br /><br /></pre>
</blockquote>
　1行目と2行目は、カーネルの種類とアーキテクチャの番号を環境変数に指定しています。玄柴付属のカーネルを使うときには、mainlineLinux を no にします。3行目が uImage の読み込み先を指定しています。本当はネットワークからの読み込みを記述しなくてもいいと思うのですが、イーサネット・ポートの初期化に失敗するので書いてあります。4行目が、uImage の読み込みの指定です。/boot/uImage とコピーしても、ファイルシステムの先頭から書くので /uImage とだけ書くことに注意します。saveenv で環境変数をフラッシュ・メモリへ書き込み、reset で再起動しています。再起動後、無事に新しいカーネルで起動すれば OK です。失敗したら、ファイル名が正しいか、USB フラッシュ・メモリが認識されているかなどを確認します。<br /><br />　工場出荷時のカーネルで、内蔵のNANDフラッシュ・メモリから起動するには、U-Bootのプロンプトで以下を実行します。<br /><br /><blockquote>
<pre>setenv mainlineLinux no<br />setenv bootargs 'console=ttyS0,115200 mtdparts=nand_mtd:0x400000@0x100000(uImage),0x1fb00000@0x500000(rootfs) rw root=/dev/mtdblock1 rw ip=10.4.50.4:10.4.50.5:10.4.50.5:255.255.255.0:DB88FXX81:eth0:none'<br />setenv bootcmd 'nand read.e 0x800000 0x100000 0x400000; bootm 0x800000'<br />saveenv<br />reset<br /></pre></blockquote>mainlineLinux を no にすることを忘れないようにしてください。<br />


<blockquote><br /><a href="http://www.eleki-jack.com/Kurobox-pro2/2010/01/27/linux-2.6.32.2.tar.bz2">linux-2.6.32.2.tar.bz2</a>　（62MB）

<br /><br />

<a href="http://www.eleki-jack.com/Kurobox-pro2/2010/01/27/patch-config-2.6.32.2.tar.gz">patch-config-2.6.32.2.tar.gz</a>　（25KB）
<br /><br />
<a href="http://www.eleki-jack.com/Kurobox-pro2/2010/01/27/uImage-2.6.32.2">uImage-2.6.32.2</a>　（2.8MB）
<br /><br />
<a href="http://www.eleki-jack.com/Kurobox-pro2/2010/01/27/modules-2.6.32.2.tar.gz">modules-2.6.32.2.tar.gz</a>　（4MB）</blockquote>

<br /><div align="right">（光永 法明）<br /></div><br />]]>
    </content>
</entry>

<entry>
    <title>玄柴に deboostrap で Debian をインストール(2/2)</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/Kurobox-pro2/2010/01/-deboostrap-debian-22.html" />
    <id>tag:www.eleki-jack.com,2010:/Kurobox-pro2//11.3845</id>

    <published>2010-01-27T06:47:24Z</published>
    <updated>2010-02-03T01:06:09Z</updated>

    <summary>■U-Boot での設定　前回はUSBフラッシュ・メモリに Debian をイン...</summary>
    <author>
        <name>mitsunaga</name>
        
    </author>
    
        <category term="環境を整える" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="uboot" label="U-Boot" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="玄柴" label="玄柴" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/Kurobox-pro2/">
        <![CDATA[<b>■U-Boot での設定</b><br />　前回はUSBフラッシュ・メモリに Debian をインストールしました。今回は、まずUSB フラッシュ・メモリにルート・ファイル・システムを読んで起動するように U-Boot を設定します。<br /><br /> ]]>
        <![CDATA[　まず、玄柴を(再)起動したら、U-Boot の Hit any key to stop autoboot で、何かキーを押し起動を止めます。起動を止めると U-Boot のコンソールになります：<br /><br /><blockquote>Streaming disabled<br />Write allocate disabled<br /><br /><br />USB 0: host mode<br />PEX 0: interface detected no Link.<br />Net:&nbsp;&nbsp; egiga0 [PRIME], egiga1<br />Hit any key to stop autoboot:&nbsp; 0<br />Marvell&gt;&gt;<br /></blockquote>　念のため、U-boot の date コマンドで時刻を確認し、必要なら UTC であわせます。時刻の設定は、<br /><blockquote>date MMDDhhmmssYY<br /></blockquote>とします。MMは月、DDは日、hhは時(24時間表記)、mmは分、ssは秒、YYは年です。カーネルは NAND フラッシュ・メモリのまま、USB フラッシュ・メモリをルート・ファイル・システムとするため、次のように環境変数を変更し、リセットします：<br /><blockquote>
<pre>setenv bootargs console=ttyS0,115200 mtdparts=nand_mtd:0x400000@0x100000(uImage),0x1fb00000@0x500000(rootfs) rw root=/dev/sda2 rw rootdelay=10 ip=10.4.50.4:10.4.50.5:10.4.50.5:255.255.255.0:DB88FXX81:eth0:none
saveenv
reset
</pre>
</blockquote>　もしも、SD Card にルート・ファイル・システムをおくなら、<br /><blockquote>
<pre>setenv bootargs console=ttyS0,115200 mtdparts=nand_mtd:0x400000@0x100000(uImage),0x1fb00000@0x500000(rootfs) rw root=/dev/mmcblk0p2 rw ip=10.93.63.50:10.93.63.49:10.93.63.49:255.255.255.0:DB88FXX81:eth0:none
saveenv
reset
</pre>
</blockquote>とします。ルート・ファイル・システムを、内蔵フラッシュ・メモリに戻すには、<br /><blockquote>
<pre>setenv bootargs 'console=ttyS0,115200 mtdparts=nand_mtd:0x400000@0x100000(uImage),0x1fb00000@0x500000(rootfs) rw root=/dev/mtdblock1 rw ip=10.4.50.4:10.4.50.5:10.4.50.5:255.255.255.0:DB88FXX81:eth0:none'
saveenv
reset
</pre>
</blockquote>とします。<br /><br />
<b>■Debian 起動後の設定</b><br />　Debian が起動したら root でログインし、パスワードをつけてユーザを作るとよいでしょう。passwdコマンドや adduser コマンドが使えます。また apt の更新もしておきます：<br /><br /><blockquote>apt-get update<br />apt-get upgrade<br /></blockquote><br />必要なパッケージとしては、sshd, ntpd, ntpdate などを以下のようにインストールしました。<br /><blockquote>apt-get install openssh-server ntp ntpdate<br />apt-get install bzip2 unzip udev<br /></blockquote><br />また開発環境もインストールしました<br /><blockquote>apt-get install gcc make libc-dev libc6-dev patch devio libncurses5 libncurses5-dev mtd-tools uboot-mkimage<br /></blockquote><br />
<b>■ファイル・システム・イメージ</b><br />　deboostrap が面倒と思われる場合は kuro-sheeva-rootfs.tar.gz<b>&nbsp; </b>を利用してください。USB フラッシュ・メモリを適切にフォーマットし、/ パーティションに展開すれば OK です。/etc/network/interfaces, /etc/resolv.conf, /etc/hosts, /etc/hostname, /etc/fstab などは適切に設定してください。U-Boot での設定や、Debian後の設定は、必要に応じてしてください(sshdのインストールもお忘れなく！)。<br /><br />

<blockquote><a href="http://www.eleki-jack.com/Kurobox-pro2/2010/01/27/kuro-sheeva-root.tar.gz">kuro-sheeva-root.tar.gz</a>　（102MB）</blockquote>




<br /><b><br />■玄箱Proの記事</b><br />　玄箱Proでの debootstrap 実行の記事も参考にして、みてください：<br /><ul><li><a href="http://www.eleki-jack.com/Kurobox-pro2/2007/06/hddrootfstargz13.html">インストール用イメージ(hddrootfs.tar.gz)を構築してみる(1/3)</a></li><li><a href="http://www.eleki-jack.com/Kurobox-pro2/2007/06/hddrootfstargz23.html">インストール用イメージ(hddrootfs.tar.gz)を構築してみる(2/3)</a></li><li><a href="http://www.eleki-jack.com/Kurobox-pro2/2007/06/hddrootfstargz33.html">インストール用イメージ(hddrootfs.tar.gz)を構築してみる(3/3)</a></li></ul><br /><br /><div align="right">(光永 法明)<br /></div>]]>
    </content>
</entry>

<entry>
    <title>玄柴に deboostrap で Debian をインストール(1/2)</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/Kurobox-pro2/2010/01/-deboostrap-debian-12.html" />
    <id>tag:www.eleki-jack.com,2010:/Kurobox-pro2//11.3844</id>

    <published>2010-01-25T04:36:22Z</published>
    <updated>2010-02-03T01:14:52Z</updated>

    <summary>■Debian を debootstrap でインストール　これまでに、開発環境...</summary>
    <author>
        <name>mitsunaga</name>
        
    </author>
    
        <category term="環境を整える" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="debian" label="Debian" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="玄柴" label="玄柴" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/Kurobox-pro2/">
        <![CDATA[<b>■Debian を debootstrap でインストール</b><br />　これまでに、開発環境を整えるには、内蔵フラッシュ・メモリでなく、USBフラッシュ・メモリ/SD-Card/eSATA HDDに用意したほうがよいことがわかりました。そこで、玄箱Proと同様に Debain の環境を用意してみました。手順としては、ほぼ Debain 付属のドキュメント <a href="http://www.debian.org/releases/stable/arm/apds03.html.ja">http://www.debian.org/releases/stable/arm/apds03.html.ja</a> のとおりです。以下では USB フラッシュメモリ (SDHC カード + USB カードリーダ) にインストールしています。<br /><br />]]>
        <![CDATA[<b>■まず時刻を合わせる</b><br />　最初にインストールされる Ubuntu では /etc/rc.local で特定の日付にあわせるということをされているので、まず日付をあわせます。<br /><blockquote>date MMDDhhmmYY<br /></blockquote>です。MMは月、DDは日、hhは時(24時間表記)、mmは分、YYは年です。<br /><blockquote>date 0123045610<br /></blockquote>とすると、2010年1月23日4時56分となります。ただし、タイムゾーンを指定していない場合はUTCなので、日本時間から9時間引いておきます。/etc/resolv.conf の内容が、<br /><blockquote>nameserver 127.0.0.1<br /></blockquote>となっているので、適当なサーバのIPアドレスに変更します。家庭のブロードバンド環境だと、ルータのIPアドレスになることが多いようです。エディタには editor や vi が使えます。次のディレクトリがない場合があるので、念のため mkdir します。<br /><blockquote>mkdir -p /var/cache/apt/archives/partial<br /></blockquote>apt を使って、debootstrap に必要な binutils と wget をインストールします。<br /><blockquote>apt-get update<br />apt-get install binutils wget<br /></blockquote>次のようになりました。<br /><br /><blockquote>root@debian:~# apt-get update<br />Get:1 http://ports.ubuntu.com jaunty Release.gpg [189B]<br />Get:2 http://ports.ubuntu.com jaunty Release [74.6kB]<br />Get:3 http://ports.ubuntu.com jaunty/main Packages [1234kB]<br />Get:4 http://ports.ubuntu.com jaunty/restricted Packages [865B]<br />Get:5 http://ports.ubuntu.com jaunty/universe Packages [4442kB]<br />Get:6 http://ports.ubuntu.com jaunty/multiverse Packages [159kB]<br />Fetched 5910kB in 1min1s (95.4kB/s)<br />Reading package lists... Done<br />root@debian:~# apt-get install binutils wget<br />Reading package lists... Done<br />Building dependency tree<br />Reading state information... Done<br />The following packages were automatically installed and are no longer required:<br />&nbsp; libx11-data libxcb1 libxau6 libxdmcp6 libxcb-xlib0 libx11-6<br />Use 'apt-get autoremove' to remove them.<br />Suggested packages:<br />&nbsp; binutils-doc<br />The following NEW packages will be installed:<br />&nbsp; binutils wget<br />0 upgraded, 2 newly installed, 0 to remove and 103 not upgraded.<br />Need to get 1653kB of archives.<br />After this operation, 9834kB of additional disk space will be used.<br />Get:1 http://ports.ubuntu.com jaunty/main wget 1.11.4-2ubuntu1 [244kB]<br />Get:2 http://ports.ubuntu.com jaunty/main binutils 2.19.1-0ubuntu3 [1410kB]<br />Fetched 1653kB in 3s (480kB/s)<br />Selecting previously deselected package wget.<br />(Reading database ... 10231 files and directories currently installed.)<br />Unpacking wget (from .../wget_1.11.4-2ubuntu1_armel.deb) ...<br />Selecting previously deselected package binutils.<br />Unpacking binutils (from .../binutils_2.19.1-0ubuntu3_armel.deb) ...<br />Setting up wget (1.11.4-2ubuntu1) ...<br /><br />Setting up binutils (2.19.1-0ubuntu3) ...<br /><br />Processing triggers for libc6 ...<br />ldconfig deferred processing now taking place<br />root@debian:~#<br /></blockquote><br /><b>■USB フラッシュ・メモリのフォーマット</b><br />　USB フラッシュ・メモリをフォーマットします。まず fdisk コマンドでパーティションを作成します。ここでは boot として一つめの領域(/dev/sda1)に100MBを確保し、二つめの領域(/dev/sda2)を / パーティションとすることにしました。メモリは十分にあると判断して、スワップ・パーティションは確保していません。以下を順に実行します。<br /><blockquote>fdisk /dev/sda<br />mkfs.ext2 /dev/sda1<br />mkfs.ext3 /dev/sda2<br /></blockquote>　fdisk コマンドの使い方については、以前の記事「<a href="http://www.eleki-jack.com/Kurobox-pro2/2008/07/pro.html">玄箱PROのハードディスク交換</a>」を参考にしてください。SD-Card に領域を確保するには、次のようにします。<br /><blockquote>fdisk /dev/mmcblk0<br />mkfs.ext2 /dev/mmcblk0p1<br />mkfs.ext3 /dev/mmcblk0p2<br /></blockquote>　フォーマットができたら、パーティションをマウントします。<br /><blockquote>mount /dev/sda2 /mnt<br /></blockquote>　SD-Card の場合には、<br /><blockquote>mount /dev/mmcblk0p2 /mnt<br /></blockquote>とします。<br /><br /><b>■debootstrap の実行</b><br />　作業用ディレクトリを作成し、移動します：<br /><blockquote>cd /mnt<br />mkdir work<br />cd work<br /></blockquote>wget を実行して必要なファイルを取得して展開し、debootstrap を実行します：<br /><blockquote>wget http://ftp.debian.org/debian/pool/main/d/debootstrap/debootstrap-udeb_1.0.10lenny1_all.udeb<br />ar -x debootstrap-udeb_1.0.10lenny1_all.udeb<br />cd /<br />tar xzf /mnt/work/data.tar.gz<br />/usr/sbin/debootstrap --arch armel lenny /mnt http://ftp.jp.debian.org/debian<br /></blockquote>　上の deboostrap で指定している /mnt が、インストールする / になるので、ほかの場所にマウントしたときは変更します。chroot して、作業をします。mmcblk のデバイス・ファイルが MAKEDEV で作成されないので、mknod で作成しています：<br /><blockquote>LANG=C chroot /mnt /bin/bash<br />mount /proc<br />cd /dev<br />MAKEDEV generic<br />mknod mmcblk0 b 179 0<br />mknod mmcblk0p1 b 179 1<br />mknod mmcblk0p2 b 179 2<br />chmod 660 mmcblk0*<br /></blockquote>　つぎに、/etc/fstab を editor コマンドか vi で編集します。次のようにしておくとよいでしょう：<br /><br /><blockquote>
<pre>/dev/sda2     /               ext3    defaults                 0    1
/dev/sda1     /boot           ext2    ro,nosuid,nodev          0    2
# /dev/mmcblk0p2  /           ext3    defaults                 0    1
# /dev/mmcblk0p1  /boot       ext2    ro,nosuid,nodev          0    2

# /dev/XXX         none       swap    sw                       0    0
proc             /proc        proc    defaults                 0    0
</pre></blockquote>　または、<br /><blockquote>cat &gt; /etc/fstab<br /></blockquote>を実行し、上記をコピーペーストしてもかまいません。つぎにタイムゾーンを指定します：<br /><blockquote>dkpg-reconfigure tzdata<br /></blockquote>を実行し、Asia -&gt; Tokyo を順に選択します。さらに /etc/network/interfaces と /etc/resolv.conf を適切に編集します。たとえば、/etc/network/interfaces は、<br /><blockquote># Used by ifup(8) and ifdown(8). See the interfaces(5) manpage or<br /># /usr/share/doc/ifupdown/examples for more information.<br /><br /># We always want the loopback interface.<br />#<br />auto lo<br />iface lo inet loopback<br /><br /># To use dhcp:<br />#<br />auto eth0<br />iface eth0 inet dhcp<br /><br /># An example static IP setup: (broadcast and gateway are optional)<br />#<br /># auto eth0<br /># iface eth0 inet static<br />#&nbsp;&nbsp;&nbsp;&nbsp; address 192.168.0.42<br />#&nbsp;&nbsp;&nbsp;&nbsp; network 192.168.0.0<br />#&nbsp;&nbsp;&nbsp;&nbsp; netmask 255.255.255.0<br />#&nbsp;&nbsp;&nbsp;&nbsp; broadcast 192.168.0.255<br />#&nbsp;&nbsp;&nbsp;&nbsp; gateway 192.168.0.1<br /></blockquote>とし(DHCPでIPアドレスを取得)、/etc/resolv.conf は、<br /><blockquote>nameserver 192.168.0.1<br /></blockquote>です。そして、ホスト名をつけます。ホスト名が sheeva なら、<br /><blockquote>echo sheeva &gt; /etc/hostname<br /></blockquote>と、すればよいでしょう。/etc/hosts の localhost の行にも記述しておきます。<br /><blockquote><div align="left">127.0.0.1 localhost sheeva<br /></div></blockquote>となるよう、127.0.0.1 の行を変えておきます。/etc/apt/sources.list も変更します。たとえば、<br /><blockquote>deb http://ftp.jp.debian.org/debian lenny main<br /><br />deb http://security.debian.org/ lenny/updates main<br />deb-src http://security.debian.org/ lenny/updates main<br /></blockquote>とします。さらに以下を実行します。<br /><blockquote>aptitude update<br />aptitude install locales<br /></blockquote>　locale を設定します。<br /><blockquote>dpkg-reconfigure locales<br /></blockquote>とします。ここでは、ja_JP.EUC-JP, ja_JP.UTF-8 を追加し、デフォルトは NONE としました。タイムゾーンを設定します：<br /><blockquote>dpkg-reconfigure tzdata<br /></blockquote>　Asia → Tokyo を設定しました。ほかに必要そうなパッケージをインストールします：<br /><blockquote>tasksel install standard<br />aptitude clean<br /></blockquote>　/etc/inittab を編集してシリアルコンソールを有効にします。ttyS0 の行のコメントを次のように外します：<br /><blockquote>T0:23:respawn:/sbin/getty -L ttyS0 115200 vt100<br /></blockquote>　tty1 から tty6 の行はコメントアウトして問題ありません。ここまで終了したら、リブートします。<br /><blockquote><div align="left">reboot<br /></div></blockquote>　次回に、USB フラッシュ・メモリにルート・ファイル・システムをおいて起動するように U-Boot を設定する方法を紹介します。<br /><br /><div align="right">(光永 法明)<br /></div><br />]]>
    </content>
</entry>

<entry>
    <title>ディスクとデバイスのサポートを調べてみる</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/Kurobox-pro2/2010/01/post-34.html" />
    <id>tag:www.eleki-jack.com,2010:/Kurobox-pro2//11.3830</id>

    <published>2010-01-21T03:38:45Z</published>
    <updated>2010-02-03T01:18:34Z</updated>

    <summary><![CDATA[■玄柴のブートの順序　玄柴も玄箱Proと同様に U-Boot&nbsp; がブー...]]></summary>
    <author>
        <name>mitsunaga</name>
        
    </author>
    
        <category term="玄柴と電子工作" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="環境を整える" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="uboot" label="U-Boot" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="玄柴" label="玄柴" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/Kurobox-pro2/">
        <![CDATA[<b>■玄柴のブートの順序</b><br />　玄柴も玄箱Proと同様に<a href="http://www.denx.de/wiki/U-Boot/WebHome"> U-Boot</a>&nbsp; がブートローダとして採用されています。電源が入ってリセットがかかると CPU は、内蔵 ROM のプログラムでフラッシュ・メモリから U-Boot を、メイン・メモリにコピーし、メモリ上の U-Boot に制御を移します。つぎに U-Boot が、uImage 形式のカーネルを読み込み、カーネルを起動します。最後にカーネルが root ファイル・システムをマウントして、起動が完了します。<br /><br /> ]]>
        <![CDATA[<b>■デフォルトの U-Boot が読み込めるデバイス</b><br />　デフォルトの U-Boot は、<br /><ul><li>内蔵 NAND フラッシュ・メモリ（工場出荷時の設定）</li><li>USB ハードディスク (USB フラッシュ・メモリ)</li><li>eSATA HDD, SSD</li><li>ネットワーク</li></ul>から uImage の読み込みをサポートしています。U-Boot を再コンパイルして、書き換えれば SD Card からの起動も可能なようですが、カードとの相性があるようです。<br /><br />
<b>■起動とルート・パーティションについて</b><br />
　ルート・パーティションはカーネルがサポートしているデバイスであれば問題ありません。実際に試してみたところ、次の表のようになりました。<br /><br />
<center>
<table border="1">
<tbody><tr><td>デバイス</td><td>uImageの読み込み</td><td>root パーティションの読み込み</td></tr>
<tr><td>内蔵NANDフラッシュ・メモリ</td><td>○</td><td>○</td></tr>
<tr><td>SD Card</td><td>×*1</td><td>○</td></tr>
<tr><td>USB フラッシュメモリ</td><td>△*2</td><td>○</td></tr>
<tr><td>eSATA</td><td>○*3</td><td>○</td><br />
</tr></tbody></table>
</center>
<br />○：起動可、△：制限あり、×：起動不可
<br /><br />*1 工場出荷時は不可。uBoot を書き換えれば可能。<br />*2 USB hub をつなぎ、USB serial を挿していると起動できなかった。また、再起動すると起動できず、電源を入れ直す必要のある場合があった。<br />*3 ただし、USB/eSATA 自動切り替えのハードディスク・ケースを使うと、u-Boot からディスクが認識できないものがあった。<br /><b><br />■カーネルのデバイス・サポート</b><br />　Linux 起動後に、手元にあったデバイスを挿してみました。結果は、<br /><br /><ul><li>SD-Card (SDHC-Card) : ○ (一つ目のパーティションのデバイス・ファイルは /dev/mmcblk0p1 となる)</li><li>USB audio: ○</li><li>USB カード・リーダ: ○ (/dev/sd? デバイスになる)</li><li>eSATA HDD: ○ (/dev/sd? デバイスになる)</li><li>Arduino (FTDI SIO ドライバ): ×</li><li>USB シリアル (RATOC REX-USB60): ×</li></ul><br />となりました。SD-Card, eSATA HDD は抜き差しを検知するのでソフトウェア的には hot plug, unplug が可能なようです。USB シリアルを使おうとすると、カーネル・モジュールを用意する必要があります。<br /><br /><b>■ディスクの読み込み速度</b><br />　コンパイルなどの開発作業をする上で気になるのが、ディスクの速度です。環境を Debian (Lenny/armel)に変更後に読み込み速度を dd で測定しました。測定回数は1回のみですので目安ですが、おおよそ以下のようになりました。<br /><br /><ol><li>SATA 500GB HDD: 47MB/s</li><li>上記の HDD を USB 接続: 27MB/s</li><li>micro SDHC Card (4GB): 16MB/s</li><li>USB接続の micro SD Card (2GB): 15MB/s</li><li>内蔵 NAND フラッシュ・メモリ: 3.3MB/s</li></ol><br />参考までに、玄箱Proで測ったところ、1, 4 の条件で、約 11MB/s でした。PC には負けますが、玄柴のほうが圧倒的に速いようです(<a href="http://www.eleki-jack.com/Kurobox-pro2/2009/01/pro2sata-hdd.html">以前の記事参照</a>) 。<br /><br /><b>■まとめ</b><br />　調べた結果から、<br /><ul><li>ディスクの速度を追求するなら、SATA 接続であること</li><li>SD-Card や USB フラッシュ・メモリでも、玄箱Pro程度の速度は出ること</li><li>USB シリアルを使うのにカーネル・モジュールのコンパイルが必要なこと</li><li>uImage を内蔵フラッシュ・メモリ以外におくなら、SATA HDD か USB フラッシュ・メモリが必要なこと</li><li>USB フラッシュ・メモリでは起動できない場合があること</li></ul>がわかりました。そこで、micro SDHC カードと USB カードリーダを用意することにしました。uImageのテスト時は USB フラッシュ・メモリとして利用し、問題がなければ内蔵NANDフラッシュ・メモリに書き込み、SD-Card スロットに挿して起動させることにします。こうすれば、USB デバイスを挿してままで起動にも問題がありません。<br /><br /><div align="right">(光永 法明)<br /></div><br /><b>■付録：ディスクの読み込み速度の測定結果</b><br /><b>□玄柴, SATA, 3.5インチ 500GB HDD (Seagae Barracuda 7200.10, ST3500630AS)</b><br /><blockquote>debian:~# dd if=/dev/sda1 of=/dev/null bs=10k count=1000<br />1000+0 records in<br />1000+0 records out<br />10240000 bytes (10 MB) copied, 0.216628 s, 47.3 MB/s<br /></blockquote><br /><b>□玄柴, SATA HDD (上記に同じ) を USB ブリッジ経由で接続</b><br /><blockquote>debian:~# dd if=/dev/sda of=/dev/null bs=10k count=10000<br />10000+0 records in<br />10000+0 records out<br />102400000 bytes (102 MB) copied, 3.78875 s, 27.0 MB/s<br /></blockquote><br /><b>□玄柴, Micro SDHC (4GB)</b><br /><blockquote>debian:~# dd if=/dev/mmcblk0p2 of=/dev/null bs=10k count=1000<br />1000+0 records in<br />1000+0 records out<br />10240000 bytes (10 MB) copied, 0.633203 s, 16.2 MB/s<br /></blockquote><br /><b>□玄柴, Micro SD (2GB) を USB リーダに取り付け</b><br /><blockquote>debian:~# dd if=/dev/sdb1 of=/dev/null bs=10k count=1000<br />1000+0 records in<br />1000+0 records out<br />10240000 bytes (10 MB) copied, 0.675296 s, 15.2 MB/s<br /></blockquote><br /><b>□玄柴, 内蔵 NAND flush</b><br /><blockquote>debian:~# dd if=/dev/mtdblock2 of=/dev/null bs=10k count=100<br />100+0 records in<br />100+0 records out<br />1024000 bytes (1.0 MB) copied, 0.30938 s, 3.3 MB/s<br /></blockquote><br /><b>□玄箱Pro, SATA HDD (玄柴での測定と同じもの)</b><br /><blockquote>kurobox:/home/kurobox/work/linux-2.6.29.3# dd if=/dev/sda1 of=/dev/null bs=10k count=1000<br />1000+0 records in<br />1000+0 records out<br />10240000 bytes (10 MB) copied, 0.906868 s, 11.3 MB/s<br /></blockquote><br /><b>□玄箱Pro, Micro SD (2GB) を USB リーダに取り付け (玄柴での測定と同じもの)</b><br /><blockquote>kurobox:/home/kurobox/work/linux-2.6.29.3# dd if=/dev/sdb1 of=/dev/null bs=10k count=1000<br />1000+0 records in<br />1000+0 records out<br />10240000 bytes (10 MB) copied, 0.937465 s, 10.9 MB/s<br /></blockquote><br />]]>
    </content>
</entry>

<entry>
    <title>玄柴の中を見る</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/Kurobox-pro2/2010/01/post-33.html" />
    <id>tag:www.eleki-jack.com,2010:/Kurobox-pro2//11.3824</id>

    <published>2010-01-19T04:09:29Z</published>
    <updated>2010-02-03T01:20:59Z</updated>

    <summary>■蓋を開けてみよう　玄柴の中身がどうなっているか気になったので蓋を開けてみました...</summary>
    <author>
        <name>mitsunaga</name>
        
    </author>
    
        <category term="玄柴と電子工作" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="環境を整える" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="esataコネクタ" label="eSATAコネクタ" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="玄柴" label="玄柴" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/Kurobox-pro2/">
        <![CDATA[<b>■<font style="font-size: 1.25em;">蓋を開けてみよう</font></b><br />　玄柴の中身がどうなっているか気になったので蓋を開けてみました(<b>写真1</b>)。保証対象外になるかもしれないので、まねをして開けるときには自己責任でお願いします。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2010/01/10/sheeva-2-2.jpg"><img alt="sheeva-2-2.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2010/01/10/sheeva-2-2-thumb-400x348.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="400" height="348" /></a></span><div align="center">写真1 蓋を開けた玄柴<br /></div><br /> <div><br /></div>]]>
        <![CDATA[<b>■<font style="font-size: 1.25em;">蓋を開ける</font></b><br />　玄柴の裏面の4カ所にゴム足がついています。このゴム足を引っ張って外すと、中にねじの頭があるので、プラス・ドライバでねじを緩め、蓋を開けます(<b>写真2</b>)。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="sheeva-2-1.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2010/01/10/sheeva-2-1.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="400" height="343" /></span><div align="center">写真2 ゴム足でねじの頭が隠されている<br /></div><br /><b>■<font style="font-size: 1.25em;">開けると基板と電源に</font></b><br />　蓋を開けるとケースの上面側に基板が入っていて、底側に電源が入っています(<b>写真1</b>)。基板は固定されていませんでした。電源には容量などの記載がありませんが、Reference Design manual によると、メイン・ボードの消費電力は最大 2W と書かれており、5V単一電源で動作しています。ほかに USB Port が一つある (最大 0.5A を玄柴から供給) ので、 5V 1A の電源で動作するはずです。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/sheeva-2-2.html" onclick="window.open('http://www.eleki-jack.com/Kurobox-pro2/sheeva-2-2.html','popup','width=1000,height=871,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.eleki-jack.com/Kurobox-pro2/2010/01/10/sheeva-2-2-thumb-400x348.jpg" alt="sheeva-2-2.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="400" height="348" /></a></span><div align="center">写真1 蓋を開けた玄柴(再掲)<br /></div><br /><b>■<font style="font-size: 1.25em;">基板の様子</font></b><br />　外した基板の写真を撮ってみました（<b>写真3, </b><b>写真</b><b>4</b>）。基板のリビジョンは 1.3 となっています。CD-ROMに入っているマニュアルに掲載がある、リビジョン 1.2 では基板が2枚で JTAG コネクタが大きいのですが、こちらは1枚で構成されています。海外で販売されている Sheeva plug の基板も、リビジョン 1.3 になっているというようですが、eSATAコネクタや周辺回路が実装されているのは、いまのところ玄柴だけのようです。<br /><br />　基板の底側(<b>写真3</b>)にも LED が二つあり、D6 は USB にアクセスすると点滅するようでした。I2Cコネクタも見えます。基板の大きさは、102mm×61mmぐらい高さは23mmぐらいでした。PCのマザーボードと比較すると、かなり小さいです。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2010/01/10/sheeva-2-3.html" onclick="window.open('http://www.eleki-jack.com/Kurobox-pro2/2010/01/10/sheeva-2-3.html','popup','width=1000,height=602,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.eleki-jack.com/Kurobox-pro2/2010/01/10/sheeva-2-3-thumb-400x240.jpg" alt="sheeva-2-3.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="400" height="240" /></a></span><div align="center">写真3 基板の底側にコネクタが並んでいる。こちら側にも D6, D7 の LED がある(左下)。<br /></div><div align="center"><br /></div><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2010/01/10/sheeva-2-4.html" onclick="window.open('http://www.eleki-jack.com/Kurobox-pro2/2010/01/10/sheeva-2-4.html','popup','width=1000,height=619,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.eleki-jack.com/Kurobox-pro2/2010/01/10/sheeva-2-4-thumb-400x247.jpg" alt="sheeva-2-4.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="400" height="247" /></a></span><div align="center">写真4 基板の蓋側はヒートシンクで覆われている。ヒートシンクの下にはメモリ・チップやCPUが隠れている<br /></div><br /><div align="right">（光永 法明）<br /></div>]]>
    </content>
</entry>

<entry>
    <title>玄柴を起動してみる</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/Kurobox-pro2/2010/01/post-32.html" />
    <id>tag:www.eleki-jack.com,2010:/Kurobox-pro2//11.3823</id>

    <published>2010-01-12T02:23:17Z</published>
    <updated>2010-02-03T01:26:52Z</updated>

    <summary>■基本仕様　昨年の年末に、玄人志向から玄柴(KURO-SHEEVA)が登場しまし...</summary>
    <author>
        <name>mitsunaga</name>
        
    </author>
    
        <category term="玄柴と電子工作" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="環境を整える" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="sheevaplug" label="Sheeva Plug" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="玄柴" label="玄柴" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/Kurobox-pro2/">
        <![CDATA[<b>■基本仕様</b><br />　昨年の年末に、玄人志向から<a href="http://kuroutoshikou.com/modules/display/?iid=1440">玄柴(KURO-SHEEVA)</a>が登場しました。<a href="http://www.marvell.com/products/embedded_processors/developer/kirkwood/sheevaplug.jsp">Sheeva Plug</a>をベースとしています。基本スペックは、次のようになっています。<br /><br /><ul><li>CPU ARM 1.2GHz</li><li>メイン・メモリ 512Mbytes</li><li>内蔵フラッシュ・メモリ 512Mbytes</li><li>SD-Card, USB 2.0, eSATA, GbE インターフェース内蔵（各１）</li><li>コンソールと JTAG のインターフェースを内蔵 (USB 接続、コネクタは USB Mini B)</li></ul><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="sheeva-1-1.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2010/01/10/sheeva-1-1.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="400" height="173" /></span><br /> <div align="center">写真１　玄柴 (KURO-SHEEVA)の外観<br /></div>]]>
        <![CDATA[<b>■Sheeva Plug との主な違い</b><br />　Sheeva Plug との主な違いは、<br /><ul><li>Ubuntu がフラッシュ・メモリに書き込まれて出荷されている（Sheeva Plug はフラッシュには何も書かれていない状態で出荷されていた）</li></ul><ul><li>eSATA インターフェースを内蔵</li><li>色が黒</li></ul>ということになるようです。<br /><br /><b>■電源とリセット</b><br />　玄柴には電源スイッチがありません。コンセントに刺すと電源が入ります。電源を切るには、コンソールからシャットダウンする必要があります。ベースの Sheeva Plug が、ACアダプタのように家庭内のコンセントに刺して、ずっと動作するコンピュータという発想だからでしょうか。内蔵のフラッシュ・メモリに書き込まずに動作していれば (read only でファイルシステムをマウントしていれば）よいのですが、購入時には、そうなっていないので注意します。<br /><br />　リセットは、SD-Card スロットの横に開いている小さな穴の中にあるスイッチを、クリップの先などで押すようになっています。玄箱Proのようなソフトウェアで処理しているスイッチではなく、CPUリセットが直接かかるようです。USB 周りなど完全にリセットはされないようなので、電源のオン/オフが必要な場合もあります。スイッチ付きのコンセントを使うと便利です。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="sheeva-1-2.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2010/01/10/sheeva-1-2.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="400" height="268" /></span><br /><div align="center">写真２　SD-Cardスロットの左に見えるのがリセットスイッチの穴<br /></div><br /><b>■シリアルのドライバとターミナル・ソフト</b><br />　付属の CD-ROM にドライバが入っています。SheevaPlug_Host_SWsupportPackageWindowsHost.zipファイルの中に、WindowsTeraTermUSBDriver.zipが入っているので、展開しておきインストールします。FT232Dベースで、コンソール(シリアル)とJTAGのポートを別々に認識するため、Windows 7では3回ドライバのインストールが必要でした。<br /><br />　また、ターミナル・ソフトとして <a href="http://sourceforge.jp/projects/ttssh2/">TeraTerm</a>などをインストールしておきます。<br /><br /><b>■起動してみた</b><br />　コンソールのPCと玄柴を付属の USB ケーブルでつなぎ、起動してみました。初回起動時に、ドライバをインストールすることになるので、残念ながら本当の初回の起動メッセージを見るチャンスはありません。コンソールのボーレートは 115.2kbps です。U-boot が出すメッセージは以下のようになりました。<br /><br /><blockquote>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; __&nbsp; __&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _ _<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; \/&nbsp; | __ _ _ ____&nbsp;&nbsp; _____| | |<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | |\/| |/ _` | '__\ \ / / _ \ | |<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | |&nbsp; | | (_| | |&nbsp;&nbsp; \ V /&nbsp; __/ | |<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |_|&nbsp; |_|\__,_|_|&nbsp;&nbsp;&nbsp; \_/ \___|_|_|<br />&nbsp;_&nbsp;&nbsp; _&nbsp;&nbsp;&nbsp;&nbsp; ____&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _<br />| | | |&nbsp;&nbsp; | __ )&nbsp; ___&nbsp;&nbsp; ___ | |_<br />| | | |___|&nbsp; _ \ / _ \ / _ \| __|<br />| |_| |___| |_) | (_) | (_) | |_<br />&nbsp;\___/&nbsp;&nbsp;&nbsp; |____/ \___/ \___/ \__|<br />&nbsp;** MARVELL BOARD: SHEEVA PLUG LE<br /><br />U-Boot 1.1.4 (Sep&nbsp; 7 2009 - 20:21:09) Marvell version: 3.4.16<br /><br />U-Boot code: 00600000 -&gt; 0067FFF0&nbsp; BSS: -&gt; 006CEE60<br /><br />Soc: 88F6281 A0 (DDR2)<br />CPU running @ 1200Mhz L2 running @ 400Mhz<br />SysClock = 400Mhz , TClock = 200Mhz<br /><br />DRAM CAS Latency = 5 tRP = 5 tRAS = 18 tRCD=6<br />DRAM CS[0] base 0x00000000&nbsp;&nbsp; size 256MB<br />DRAM CS[1] base 0x10000000&nbsp;&nbsp; size 256MB<br />DRAM Total size 512MB&nbsp; 16bit width<br />Flash:&nbsp; 0 kB<br />Addresses 8M - 0M are saved for the U-Boot usage.<br />Mem malloc Initialization (8M - 7M): Done<br />NAND:512 MB<br /><br />CPU : Marvell Feroceon (Rev 1)<br /><br />Streaming disabled<br />Write allocate disabled<br /><br /><br />USB 0: host mode<br />PEX 0: interface detected no Link.<br />Net:&nbsp;&nbsp; egiga0 [PRIME], egiga1<br />Hit any key to stop autoboot:&nbsp; 0<br /></blockquote><br />　起動完了までには結構な時間がかかることがあります。またログイン・プロンプトが出ていないように見えたら、Enter を押してみてください。USB hub と 4GB SDHC カードをつけて起動したときのメッセージを<span class="mt-enclosure mt-enclosure-file" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2010/01/10/boot.txt">boot.txt</a></span> においておきます。フラッシュに書かれている Ubutu の root アカウントの初期パスワードは nosoup4u です。<br />　また、初期の /etc/resolv.conf では、DNS サーバが 127.0.0.1 となっているので、注意します。正しい IP アドレスを設定します。エディタとしては editor, vi などがインストールされています。また時計も date コマンドで確認して設定しておくといいでしょう。また時計も date コマンドで確認して設定しておくといいでしょう。デフォルトは UTC であることに注意します。<br /><br />uname の結果は以下のとおりです。<br /><br /><blockquote>root@debian:~# uname -a<br />Linux debian 2.6.22.18 #1 Fri Apr 3 18:49:38 PDT 2009 armv5tejl GNU/Linux<br /></blockquote><br />　df コマンドで調べると、最初には 150MB ぐらいフラッシュを利用しています。いろいろ調べるのに使っていても、とくにプラスチック筐体の温度は気にならないので、発熱は少ないようです。<br /><br /><blockquote>root@debian:~# df<br />Filesystem&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1K-blocks&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Used Available Use% Mounted on<br />rootfs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 519168&nbsp;&nbsp;&nbsp; 145164&nbsp;&nbsp;&nbsp; 374004&nbsp; 28% /<br />tmpfs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 257864&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; 257864&nbsp;&nbsp; 0% /lib/init/rw<br />varrun&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 257864&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 36&nbsp;&nbsp;&nbsp; 257828&nbsp;&nbsp; 1% /var/run<br />varlock&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 257864&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; 257864&nbsp;&nbsp; 0% /var/lock<br />udev&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 257864&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 20&nbsp;&nbsp;&nbsp; 257844&nbsp;&nbsp; 1% /dev<br />tmpfs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 257864&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; 257864&nbsp;&nbsp; 0% /dev/shm<br />tmpfs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 257864&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; 257864&nbsp;&nbsp; 0% /var/cache/apt<br /></blockquote><br /><div align="right">（光永 法明）<br /></div><br />]]>
    </content>
</entry>

<entry>
    <title>新しいLinux Box　KURO-SHEEVA</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/Kurobox-pro2/2009/12/linux-boxkurosheeva.html" />
    <id>tag:www.eleki-jack.com,2009:/Kurobox-pro2//11.3698</id>

    <published>2009-12-03T02:17:36Z</published>
    <updated>2009-12-03T02:35:21Z</updated>

    <summary>　すでに海外では販売されていたSheevaPlugが玄人志向から発売されました。...</summary>
    <author>
        <name>yoshida</name>
        
    </author>
    
        <category term="お知らせ" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/Kurobox-pro2/">
        <![CDATA[　すでに海外では販売されていたSheevaPlugが玄人志向から発売されました。<br /><br />　　<a href="http://www.marvell.com/products/embedded_processors/developer/kirkwood/sheevaplug.jsp">http://www.marvell.com/products/embedded_processors/developer/kirkwood/sheevaplug.jsp</a><br /><br />　製品の仕様は、下記のページにアップされています。SheevaPlugは直接ACコンセントに挿す形ですが、この新製品は、本体にめがね型のACイントレットのついたACケーブルによる接続です。<br /><br />　　<a href="http://kuroutoshikou.com/modules/display/?iid=1440">http://kuroutoshikou.com/modules/display/?iid=1440</a><br /> ]]>
        <![CDATA[<br><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2009/12/03/KURO-SHEEVA-4.jpg"><img alt="KURO-SHEEVA-4.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2009/12/03/KURO-SHEEVA-4-thumb-400x268.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="400" height="268" /></a></span>
<div><br /></div>


<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/Kurobox-pro2/2009/12/03/KURO-SHEEVA-5.jpg"><img alt="KURO-SHEEVA-5.jpg" src="http://www.eleki-jack.com/Kurobox-pro2/2009/12/03/KURO-SHEEVA-5-thumb-400x269.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="400" height="269" /></a></span>]]>
    </content>
</entry>

<entry>
    <title>あたらしい玄箱？</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/Kurobox-pro2/2009/11/post-31.html" />
    <id>tag:www.eleki-jack.com,2009:/Kurobox-pro2//11.3643</id>

    <published>2009-11-13T06:48:05Z</published>
    <updated>2009-11-13T07:04:26Z</updated>

    <summary>　少し前から玄人志向のこのページに、新製品の告知が出ていて、徐々に情報量が増えて...</summary>
    <author>
        <name>yoshida</name>
        
    </author>
    
        <category term="お知らせ" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/Kurobox-pro2/">
        <![CDATA[　少し前から<a href="http://kuroutoshikou.com/important/091015/">玄人志向のこのページ</a>に、新製品の告知が出ていて、徐々に情報量が増えています。<br /><br />　ファイル・サーバのデバイスを多く手がけているMarvell社の88F6281(1.2GHz)を採用しています。Marvel　Sheevaというのは、欧米では販売されているプラグ・コンピュータSheevaPlugのようですが、eSTATインターフェースはオリジナルにはありません。<br /><br />　楽しみです。]]>
        
    </content>
</entry>

<entry>
    <title>新型　KURO-BOX/T4</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/Kurobox-pro2/2009/08/kuroboxt4.html" />
    <id>tag:www.eleki-jack.com,2009:/Kurobox-pro2//11.3316</id>

    <published>2009-08-21T03:23:19Z</published>
    <updated>2009-08-21T03:28:01Z</updated>

    <summary>　8月20日に、「KURO-BOX/T4」HDD4台搭載可能タワー型LinuxB...</summary>
    <author>
        <name>yoshida</name>
        
    </author>
    
        <category term="お知らせ" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/Kurobox-pro2/">
        <![CDATA[　8月20日に、<a href="http://kuroutoshikou.com/modules/display/?iid=1384" target="_top">「KURO-BOX/T4」</a>HDD4台搭載可能タワー型LinuxBOX自作キット　が正式にアナウンスされました。<br />　8月26日までモニタを募集しています。<br /> ]]>
        
    </content>
</entry>

</feed>
