<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0"
  xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
<channel>
  <title>ドキュメント - Pylone Bishop</title>
  <link>http://pylone.jp/bishop/docs/</link>
  <description>組込みLinux開発用CPUボードBishopのドキュメント</description>
  <language>ja</language>
  <copyright>Copyright 2008 Pylone, Inc.</copyright>
  <ttl>60</ttl>
  <pubDate>Wed, 09 May 2012 15:51 GMT</pubDate>
  <managingEditor>webmaster@pylone.jp</managingEditor>
  <generator>Pylone HTML Generator $Revision: 08cf94ab2417 $</generator>
  <image>
    <url>http://pylone.jp/i/microbar.png</url>
    <title>ドキュメント - Pylone Bishop</title>
    <link>http://pylone.jp/bishop/docs/</link>
    <description>組込みLinux開発用CPUボードBishopのドキュメント</description>
  </image>
<item>
   <title>Xorg のインストール</title>
   <guid isPermaLink="true">http://pylone.jp/bishop/docs/how_to_install_xorg.html</guid>

   <link>http://pylone.jp/bishop/docs/how_to_install_xorg.html</link>
   <description><![CDATA[

<p>Bishop に Xorg をインストールする手順です。
SD カード、USB ストレージ、NFS などの外部ストレージにインストールされた Debian 環境を前提にしています。
外部ストレージへ Debian 環境を構築する手順については
<a href="ext-root.html">外部ストレージをルートファイルシステムにする手順</a>
を参照してください。</p>
<div class="toc"><div class="head">目次</div><ul><li style="margin-left:1em;" class="depth1">1. <a href="#g1-58.20.E3.82.B5.E3.83.BC.E3.83.90.E9.96.A2.E9.80.A3.E3.83.91.E3.83.83.E3.82.B1.E3.83.BC.E3.82.B8.E3.81.AE.E3.82.A4.E3.83.B3.E3.82.B9.E3.83.88.E3.83.BC.E3.83.AB">X サーバ関連パッケージのインストール</a></li><li style="margin-left:1em;" class="depth1">2. <a href="#g1-E3.82.BF.E3.83.83.E3.83.81.E3.83.91.E3.83.8D.E3.83.AB.E3.83.89.E3.83.A9.E3.82.A4.E3.83.90.E3.81.AE.E3.82.A4.E3.83.B3.E3.82.B9.E3.83.88.E3.83.BC.E3.83.AB">タッチパネルドライバのインストール</a></li><li style="margin-left:1em;" class="depth1">3. <a href="#g1-58.E3.82.B5.E3.83.BC.E3.83.90.E3.81.AE.E8.A8.AD.E5.AE.9A">Xサーバの設定</a></li><li style="margin-left:1em;" class="depth1">4. <a href="#g1-E3.82.A6.E3.82.A3.E3.83.B3.E3.83.89.E3.82.A6.E3.83.9E.E3.83.8D.E3.83.BC.E3.82.B8.E3.83.A3">ウィンドウマネージャ</a></li><li style="margin-left:2em;" class="depth2">4.1. <a href="#g1-4D.61.74.63.68.62.6F.78.20.E3.81.AE.E5.A0.B4.E5.90.88">Matchbox の場合</a></li><li style="margin-left:2em;" class="depth2">4.2. <a href="#g1-49.63.65.57.4D.20.E3.81.AE.E5.A0.B4.E5.90.88">IceWM の場合</a></li><li style="margin-left:1em;" class="depth1">5. <a href="#g1-58.20.E3.81.AE.E8.B5.B7.E5.8B.95">X の起動</a></li><li style="margin-left:1em;" class="depth1">6. <a href="#g1-E3.82.B9.E3.82.AF.E3.83.AA.E3.83.BC.E3.83.B3.E3.82.B7.E3.83.A7.E3.83.83.E3.83.88">スクリーンショット</a></li><li style="margin-left:2em;" class="depth2">6.1. <a href="#g1-4D.61.74.63.68.62.6F.78">Matchbox</a></li><li style="margin-left:2em;" class="depth2">6.2. <a href="#g1-49.63.65.57.4D">IceWM</a></li></ul></div>
<h3 id="g1-58.20.E3.82.B5.E3.83.BC.E3.83.90.E9.96.A2.E9.80.A3.E3.83.91.E3.83.83.E3.82.B1.E3.83.BC.E3.82.B8.E3.81.AE.E3.82.A4.E3.83.B3.E3.82.B9.E3.83.88.E3.83.BC.E3.83.AB">1. X サーバ関連パッケージのインストール</h3>
<p>X サーバ関連パッケージをインストールします。</p>
<pre>bishop:~# aptitude install xserver-xorg</pre>
<p>インストール中に X サーバ の設定画面が表示されますが、この設定画面では Bishop 向けの設定はできません。ダミーの設定 (後で上書きするので何でも構いません) をして次に進んでください。</p>
<h3 id="g1-E3.82.BF.E3.83.83.E3.83.81.E3.83.91.E3.83.8D.E3.83.AB.E3.83.89.E3.83.A9.E3.82.A4.E3.83.90.E3.81.AE.E3.82.A4.E3.83.B3.E3.82.B9.E3.83.88.E3.83.BC.E3.83.AB">2. タッチパネルドライバのインストール</h3>
<p>タッチパネルパネルのドライバモジュールをインストールします。</p>
<p>まず、以下の apt-line を /etc/apt/sources.list に加えます。</p>
<pre>deb http://downloads.pylone.jp/bishop/deb/etch ./</pre>
<p>次に、xserver-xorg-input-evtouch をインストールします。</p>
<pre>bishop:~# aptitude install xserver-xorg-input-evtouch</pre>
<p class="alert">株式会社パイロンが sid の xserver-xorg-input-evtouch パッケージを etch にバックポートした非公式パッケージです。
本パッケージについてDebianプロジェクトへの質問はお控えください。</p>
<h3 id="g1-58.E3.82.B5.E3.83.BC.E3.83.90.E3.81.AE.E8.A8.AD.E5.AE.9A">3. Xサーバの設定</h3>
<p>xorg.confを設定します。</p>
<ul><li>PE-201A 用 - <a href="http://downloads.pylone.jp/bishop/xorg-201a.conf">http://downloads.pylone.jp/bishop/xorg-201a.conf</a></li><li>PE-201B 用 - <a href="http://downloads.pylone.jp/bishop/xorg-201b.conf">http://downloads.pylone.jp/bishop/xorg-201b.conf</a></li></ul>
<p>ダウンロードしてターゲット (Bishop) の /etc/X11/xorg.conf にリネームしてください。</p>
<h3 id="g1-E3.82.A6.E3.82.A3.E3.83.B3.E3.83.89.E3.82.A6.E3.83.9E.E3.83.8D.E3.83.BC.E3.82.B8.E3.83.A3">4. ウィンドウマネージャ</h3>
<p>ウィンドウマネージャをインストールします。</p>
<p>ここでは
Matchbox
<sup><a id="footnote-rev-1" href="#footnote-1" title="Matchbox: フットプリントの小さな組込みデバイス向けウィンドウマネージャです。詳しい情報は Matchbox のサイト (http://matchbox-project.org/) で入手できます。">[1]</a></sup>
と
IceWM
<sup><a id="footnote-rev-2" href="#footnote-2" title="IceWM: http://www.icewm.org/">[2]</a></sup>
を例を示します。</p>
<h4 id="g1-4D.61.74.63.68.62.6F.78.20.E3.81.AE.E5.A0.B4.E5.90.88">4.1. Matchbox の場合</h4>
<pre>bishop~# aptitude install matchbox</pre>
<h4 id="g1-49.63.65.57.4D.20.E3.81.AE.E5.A0.B4.E5.90.88">4.2. IceWM の場合</h4>
<pre>bishop:~# aptitude install icewm</pre>
<h3 id="g1-58.20.E3.81.AE.E8.B5.B7.E5.8B.95">5. X の起動</h3>
<p>X を起動する前に、btpcal
<sup><a id="footnote-rev-3" href="#footnote-3" title="btpcal: ncurses ベースの Bishop 向けタッチパネルキャリブレータのサンプル実装です。Bishop 向けの Debian 基本システムにはプリインストールされています。ソースコードはダウンロードサイト (http://downloads.pylone.jp) から入手できます。">[3]</a></sup>
コマンドでタッチパネルのキャリブレーションを行います。</p>
<pre>bishop:~# btpcal</pre>
<p>startx コマンドで X を起動します。</p>
<pre>bishop:~# startx</pre>
<h3 id="g1-E3.82.B9.E3.82.AF.E3.83.AA.E3.83.BC.E3.83.B3.E3.82.B7.E3.83.A7.E3.83.83.E3.83.88">6. スクリーンショット</h3>
<h4 id="g1-4D.61.74.63.68.62.6F.78">6.1. Matchbox</h4>
<p><img src="/i/ss/matchbox.jpg" alt="スクリーンショット" /></p>
<h4 id="g1-49.63.65.57.4D">6.2. IceWM</h4>
<p><img src="/i/ss/icewm.jpg" alt="スクリーンショット" /></p>
<div class="footnotes"><ol><li id="footnote-1"><a href="#footnote-rev-1">^</a> Matchbox: フットプリントの小さな組込みデバイス向けウィンドウマネージャです。詳しい情報は Matchbox のサイト (http://matchbox-project.org/) で入手できます。</li><li id="footnote-2"><a href="#footnote-rev-2">^</a> IceWM: http://www.icewm.org/</li><li id="footnote-3"><a href="#footnote-rev-3">^</a> btpcal: ncurses ベースの Bishop 向けタッチパネルキャリブレータのサンプル実装です。Bishop 向けの Debian 基本システムにはプリインストールされています。ソースコードはダウンロードサイト (http://downloads.pylone.jp) から入手できます。</li></ol></div>]]></description>
   <category domain="http://pylone.jp/bishop/docs/how_to_install_xorg.html">doc</category>
   <pubDate>Sun, 03 Feb 2008 16:43 GMT</pubDate>
</item>

<item>
   <title>USB ターゲット (USB Gadget) の設定</title>
   <guid isPermaLink="true">http://pylone.jp/bishop/docs/usb_gadget.html</guid>

   <link>http://pylone.jp/bishop/docs/usb_gadget.html</link>
   <description><![CDATA[

<p>このドキュメントでは組込み Linux 開発用 CPU ボード <a href="/bishop/">Bishop</a> を
USB ターゲット (USB Gadget) として使用する手順を紹介します。</p>
<p class="alert">Bishop の USB ターゲットサポートは実験的なものです。正式にはサポートしていません。</p>
<div class="toc"><div class="head">目次</div><ul><li style="margin-left:1em;" class="depth1">1. <a href="#g1-E6.A6.82.E8.A6.81">概要</a></li><li style="margin-left:1em;" class="depth1">2. <a href="#g1-4C.69.6E.75.78.20.E3.82.AB.E3.83.BC.E3.83.8D.E3.83.AB.E3.81.AE.E3.83.93.E3.83.AB.E3.83.89">Linux カーネルのビルド</a></li><li style="margin-left:1em;" class="depth1">3. <a href="#g1-E5.8B.95.E4.BD.9C.E7.A2.BA.E8.AA.8D">動作確認</a></li><li style="margin-left:1em;" class="depth1">4. <a href="#g1-55.53.42.20.E3.83.9B.E3.82.B9.E3.83.88.E5.81.B4.E3.81.AE.E8.A8.AD.E5.AE.9A">USB ホスト側の設定</a></li><li style="margin-left:2em;" class="depth2">4.1. <a href="#g1-55.53.42.20.E3.83.9B.E3.82.B9.E3.83.88.E3.81.8C.20.4C.69.6E.75.78.20.E3.81.AE.E5.A0.B4.E5.90.88">USB ホストが Linux の場合</a></li><li style="margin-left:2em;" class="depth2">4.2. <a href="#g1-55.53.42.20.E3.83.9B.E3.82.B9.E3.83.88.E3.81.8C.20.57.69.6E.64.6F.77.73.20.E3.81.AE.E5.A0.B4.E5.90.88">USB ホストが Windows の場合</a></li><li style="margin-left:1em;" class="depth1">5. <a href="#g1-E9.96.A2.E9.80.A3.E3.83.AA.E3.83.B3.E3.82.AF">関連リンク</a></li></ul></div>
<h3 id="g1-E6.A6.82.E8.A6.81">1. 概要</h3>
<p>Linux カーネルに含まれる USB デバイスドライバは、</p>
<ul><li>USB ホスト</li><li>USB ターゲット (USB Gadget)</li></ul>
<p>の2種類に大別されます。</p>
<p>通常の使用では、Bishop「に」USB 接続されたデバイス (マウスや、USB カメラなど) を動作させる USB ホストドライバしか意識しませんが、
USB ターゲットのドライバを使うことで、
Bishop「を」USB バス上のデバイスとして動作させることができます。</p>
<p>標準 Linux カーネルに含まれる USB ターゲットのドライバには</p>
<ul><li>USB-Ether</li><li>USB-シリアル変換器</li><li>USB マスストレージ</li><li>MIDI</li></ul>
<p>などがあります。</p>
<p>以降では 例として USB-Ether を有効にする手順を説明します。</p>
<h3 id="g1-4C.69.6E.75.78.20.E3.82.AB.E3.83.BC.E3.83.8D.E3.83.AB.E3.81.AE.E3.83.93.E3.83.AB.E3.83.89">2. Linux カーネルのビルド</h3>
<p>USB ターゲットとして Linux カーネルを再構築します。</p>
<pre>
$ <span class="cmdline">cd linux-2.6.26.8-pylone0</span>
$ <span class="cmdline">make ARCH=arm menuconfig</span>
  Device Drivers ->
    [*] USB support->
      &lt;*&gt; USB Gadget Support
        -- USB Gadget Support->
             USB Peripheral Controller->
               ( ) Renesas M66592 USB Peripheral Controller
               (X) S3C2410 USB Device Controller
               ( ) Dummy HCD (DEVELOPMENT)
        &lt;M&gt; USB Gadget Drivers
        &lt;M&gt;   Ethernet Gadget (with CDC Ethernet support)
        [*]     RNDIS support (Bishop を Windows からも認識させるために必要)
$ <span class="cmdline">make ARCH=arm CROSS_COMPILE=arm-linux-gnu- uImage modules</span>
</pre>
<p>ここでは USB-Ether をモジュールとしますので、make のターゲットとして
uImage に加えて modules が必要です。</p>
<p>ビルドが終わったら arch/arm/boot/uImage と drivers/usb/gadget/g_ether.ko
が生成されていることを確認してください。</p>
<h3 id="g1-E5.8B.95.E4.BD.9C.E7.A2.BA.E8.AA.8D">3. 動作確認</h3>
<p>USB ターゲットを有効にしたカーネルで Bishop を起動して、g_ether.ko モジュールの動作確認をします。</p>
<p>Bishop 上で g_ether.ko をロードしてIPアドレスを割り当て:</p>
<pre>
bishop:#~ <span class="cmdline">insmod g_ether.ko</span>
bishop:#~ <span class="cmdline">ifconfig usb0 &lt;IPアドレス&gt; netmask &lt;マスク&gt;</span>
</pre>
<p>この時のアドレスは eth0 などと重複しないネットワークにしてください。</p>
<h3 id="g1-55.53.42.20.E3.83.9B.E3.82.B9.E3.83.88.E5.81.B4.E3.81.AE.E8.A8.AD.E5.AE.9A">4. USB ホスト側の設定</h3>
<p>これまでの手順により g_ether モジュールが組み込まれた Bishop を
USB ホストに接続するとベンダ ID が 0x0525、プロダクト ID が 0xA4A2 の
USB-Ether コンバータとして認識されます。</p>
<p>USB ホスト側のネットワークアダプタ設定をすれば Bishop が USB 接続の LAN インタフェースとして使うことができます。</p>
<p>ping を Bishop → ホスト、 Host ← Bishop で送ったり、Telnet や SSH
でログインしてみると確認できるでしょう。</p>
<p>以降では USB ホスト側の具体的な手順について説明します。</p>
<h4 id="g1-55.53.42.20.E3.83.9B.E3.82.B9.E3.83.88.E3.81.8C.20.4C.69.6E.75.78.20.E3.81.AE.E5.A0.B4.E5.90.88">4.1. USB ホストが Linux の場合</h4>
<p>ほとんどの環境では Bishop を USB ホストに接続すると usbnet ドライバ
がロードされネットワークインタフェース usb0
<sup><a id="footnote-rev-1" href="#footnote-1" title="通常 0 ですが、既に別の USB-Ether が使用されていると変わります。">[1]</a></sup>
として認識される筈です。</p>
<p>もし認識されなければ usbnet モジュールの有無を確認してください。</p>
<pre>
# <span class="cmdline">modprobe usbnet</span>
</pre>
<p>usbnet モジュールが無ければホスト側 Linux を再構築する必要があります。</p>
<pre>Device Drivers-&gt;
  [*] Network device support -&gt;
    USB Network Adapters -&gt;
     &lt;M&gt; Simple USB Network Links (CDC Ethernet subset)
      [*] Embedded ARM Linux links (iPaq, ...)</pre>
<p>認識が成功したら、インタフェースに IP アドレスを振ります。
この時のネットワークアドレスは Bishop 側の設定に合わせておきます。</p>
<pre>
# <span class="cmdline">ifconfig usb0 &lt;IPアドレス&gt; netmask &lt;マスク&gt;</span>
</pre>
<h4 id="g1-55.53.42.20.E3.83.9B.E3.82.B9.E3.83.88.E3.81.8C.20.57.69.6E.64.6F.77.73.20.E3.81.AE.E5.A0.B4.E5.90.88">4.2. USB ホストが Windows の場合</h4>
<p>Linux カーネルのソースコードに含まれる INF ファイル (Documentation/usb/linux.inf) を使って、
Windows に標準で含まれる RNDIS ドライバを使用します。</p>
<p>ホスト側の USB コネクタに Bishop を接続すると、新しいネットワークインターフェースとして認識されドライバが要求されます。
ウィザードに従って linux.inf を直接指定すれば 標準 RNDIS ドライバがインストールされます。</p>
<p>後は Linux の場合と同様に、適宜 IP アドレスとネットワークアドレスを設定すれば Bishop をネットワークアダプタとして使用できます。</p>
<h3 id="g1-E9.96.A2.E9.80.A3.E3.83.AA.E3.83.B3.E3.82.AF">5. 関連リンク</h3>
<ul><li><a href="http://www.linux-usb.org/gadget/">Linux-USB Gadget API Framework</a></li></ul>
<div class="footnotes"><ol><li id="footnote-1"><a href="#footnote-rev-1">^</a> 通常 0 ですが、既に別の USB-Ether が使用されていると変わります。</li></ol></div>]]></description>
   <category domain="http://pylone.jp/bishop/docs/usb_gadget.html">doc</category>
   <pubDate>Fri, 09 Jan 2009 10:48 GMT</pubDate>
</item>

<item>
   <title>TFTPサーバの設定</title>
   <guid isPermaLink="true">http://pylone.jp/bishop/docs/setup_tftp_server.html</guid>

   <link>http://pylone.jp/bishop/docs/setup_tftp_server.html</link>
   <description><![CDATA[

<p>TFTP <sup><a id="footnote-rev-1" href="#footnote-1" title="TFTP(Trivial File Transfer Protocol): UDP を用いたファイル転送プロトコルです。FTP のような認証は無くユーザ名やパスワードは必要ありません。主にディスクレスマシンのブートに利用されます。">[1]</a></sup> サーバの設定方法です。</p>
<div class="toc"><div class="head">目次</div><ul><li style="margin-left:1em;" class="depth1">1. <a href="#g1-44.65.62.69.61.6E.20.47.4E.55.2F.4C.69.6E.75.78.20.E3.81.AE.E5.A0.B4.E5.90.88">Debian GNU/Linux の場合</a></li><li style="margin-left:2em;" class="depth2">1.1. <a href="#g1-install-on-debian">インストール</a></li><li style="margin-left:2em;" class="depth2">1.2. <a href="#g1-config-on-debian">設定</a></li><li style="margin-left:1em;" class="depth1">2. <a href="#g1-46.65.64.6F.72.61.20.31.36.20.E3.81.AE.E5.A0.B4.E5.90.88">Fedora 16 の場合</a></li><li style="margin-left:2em;" class="depth2">2.1. <a href="#g1-install-on-fedora">インストール</a></li><li style="margin-left:2em;" class="depth2">2.2. <a href="#g1-config-on-fedora">TFTP サーバの設定</a></li><li style="margin-left:2em;" class="depth2">2.3. <a href="#g1-firewall-on-fedora">ファイアウォールの設定</a></li><li style="margin-left:1em;" class="depth1">3. <a href="#g1-57.69.6E.64.6F.77.73.20.E3.81.AE.E5.A0.B4.E5.90.88">Windows の場合</a></li><li style="margin-left:2em;" class="depth2">3.1. <a href="#g1-install-on-win">インストール</a></li><li style="margin-left:2em;" class="depth2">3.2. <a href="#g1-config-on-win">設定</a></li></ul></div>
<h3 id="g1-44.65.62.69.61.6E.20.47.4E.55.2F.4C.69.6E.75.78.20.E3.81.AE.E5.A0.B4.E5.90.88">1. Debian GNU/Linux の場合</h3>
<h4 id="g1-install-on-debian">1.1. インストール</h4>
<p>tftpd パッケージをインストールします。</p>
<pre>
# <span class="cmdline">apt-get install tftpd</span>
</pre>
<h4 id="g1-config-on-debian">1.2. 設定</h4>
<p>デフォルトでは、TFTP クライアントがアクセスするディレクトリ (転送するファイルを置くディレクトリ) は /srv/tftp になります。これを変更したい場合は /etc/inetd.conf を編集します。例えば /netboot に変更する場合は以下のようになります。</p>
<p>変更前:</p>
<pre>tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /srv/tftp</pre>
<p>変更後:</p>
<pre>tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /netboot</pre>
<p>inetd に対して設定を反映させます。</p>
<pre>
# <span class="cmdline">/etc/init.d/openbsd-inetd reload</span>
</pre>
<h3 id="g1-46.65.64.6F.72.61.20.31.36.20.E3.81.AE.E5.A0.B4.E5.90.88">2. Fedora 16 の場合</h3>
<h4 id="g1-install-on-fedora">2.1. インストール</h4>
<p>最初に TFTP サーバのインストールを行います。</p>
<ol><li>「アプリケーション」→「システムツール」→「ソフトウェアの追加/削除」を選択し起動します。</li><li>左上の検索ボックスに "tftp" を入力し検索します。</li><li>tftp-server パッケージをチェックしてから適用ボタンを押しインストールを開始します。</li></ol>
<p><img src="/i/ss/fedora16-add_tftp_server.jpg" alt="スクリーンショット" width="640" height="383" /></p>
<h4 id="g1-config-on-fedora">2.2. TFTP サーバの設定</h4>
<p>次に TFTP サーバの設定を行います。</p>
<p>設定ファイルは /etc/xinetd.d/tftp です。disable を yes から no へ変更します。</p>
<div class="highlight"><pre><span class="gd">--- /etc/xinetd.d/tftp.orig</span>
<span class="gi">+++ /etc/xinetd.d/tftp</span>
<span class="gu">@@ -11,7 +11,7 @@</span>
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot
<span class="gd">-       disable                 = yes</span>
<span class="gi">+       disable                 = no</span>
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
</pre></div>

<p>デフォルトでは、TFTP クライアントがアクセスするトップ・ディレクトリは /var/lib/tftpboot/ になります。</p>
<p class="info">もしこれを変更したい場合は /etc/xinetd.d/tftp の server_args に指定するパスを編集します。</p>
<h4 id="g1-firewall-on-fedora">2.3. ファイアウォールの設定</h4>
<p>最後にファイアウォールを有効にしている場合は TFTP サーバの使用するポートを開放する必要があります。</p>
<ol><li>「アプリケーション」→「その他」→「ファイアーウォール」を起動します。</li><li>TFTP サーバの well-knownポートである 69/udp にチェックし、適用ボタンを押します。</li></ol>
<p><img src="/i/ss/fedora16-tftp_firewall.jpg" alt="スクリーンショット" width="480" height="340" /></p>
<h3 id="g1-57.69.6E.64.6F.77.73.20.E3.81.AE.E5.A0.B4.E5.90.88">3. Windows の場合</h3>
<p>Windows で動作する TFTP サーバ TFTPD32 を例に説明します。 </p>
<h4 id="g1-install-on-win">3.1. インストール</h4>
<p><a href="http://tftpd32.jounin.net/tftpd32_download.html">TFTPD32 のサイト</a> の
<a href="http://tftpd32.jounin.net/tftpd32_download.html">ダウンロードページ</a> から拡張子が .exe のインストーラをダウンロードします。</p>
<p class="info">2007/08/16現在の最新バージョンは v3.23 です。</p>
<p>ダウンロードしたインストーラを起動すると、
コンポーネントの選択画面が表示されます。
特に変更する必要はないので Next をクリックして次に進みます。</p>
<p><img src="/i/ss/tftp32_install1.jpg" alt="スクリーンショット" width="426" height="295" /></p>
<p>インストール先を選択します。ここもデフォルトのままとします。</p>
<p><img src="/i/ss/tftp32_install2.jpg" alt="スクリーンショット" width="426" height="295" /></p>
<p>インストールが完了したら Close をクリックしてインストーラを終了してください。</p>
<p><img src="/i/ss/tftp32_install3.jpg" alt="スクリーンショット" width="426" height="295" /></p>
<h4 id="g1-config-on-win">3.2. 設定</h4>
<p>スタートメニューより Tftpd32 を起動します。</p>
<p><img src="/i/ss/tftp32.jpg" alt="スクリーンショット" width="400" height="334" /></p>
<p>デフォルトでは、TFTP クライアントがアクセスするディレクトリ (転送するファイルを置くディレクトリ) は C:\Program Files\Tftpd32 になります。これを変更したい場合、画面下部の Settings をクリックすると表示される画面の Base Directory で設定します。</p>
<p><img src="/i/ss/tftp32_setting.jpg" alt="スクリーンショット" width="363" height="537" /></p>
<p>ターゲットボードへファイルを転送するだけであれば、他の設定を変更する必要は特にありません。OK をクリックして設定を反映させます。</p>
<div class="footnotes"><ol><li id="footnote-1"><a href="#footnote-rev-1">^</a> TFTP(Trivial File Transfer Protocol): UDP を用いたファイル転送プロトコルです。FTP のような認証は無くユーザ名やパスワードは必要ありません。主にディスクレスマシンのブートに利用されます。</li></ol></div>]]></description>
   <category domain="http://pylone.jp/bishop/docs/setup_tftp_server.html">doc</category>
   <pubDate>Thu, 01 Jan 1970 00:00 GMT</pubDate>
</item>

<item>
   <title>アドレスマップ</title>
   <guid isPermaLink="true">http://pylone.jp/bishop/docs/addrmap.html</guid>

   <link>http://pylone.jp/bishop/docs/addrmap.html</link>
   <description><![CDATA[

<div class="toc"><div class="head">目次</div><ul><li style="margin-left:1em;" class="depth1">1. <a href="#g1-E3.83.A1.E3.83.A2.E3.83.AA.E3.83.90.E3.83.B3.E3.82.AF">メモリバンク</a></li><li style="margin-left:1em;" class="depth1">2. <a href="#g1-4E.4F.52.20.28.34.4D.42.29">NOR (4MB)</a></li><li style="margin-left:2em;" class="depth2">2.1. <a href="#g1-E3.83.91.E3.83.BC.E3.83.86.E3.82.A3.E3.82.B7.E3.83.A7.E3.83.B3">パーティション</a></li><li style="margin-left:2em;" class="depth2">2.2. <a href="#g1-E3.82.BB.E3.82.AF.E3.82.BF">セクタ</a></li><li style="margin-left:1em;" class="depth1">3. <a href="#g1-53.44.52.41.4D">SDRAM</a></li><li style="margin-left:2em;" class="depth2">3.1. <a href="#g1-55.2D.42.6F.6F.74.20.E5.AE.9F.E8.A1.8C.E6.99.82">U-Boot 実行時</a></li><li style="margin-left:1em;" class="depth1">4. <a href="#g1-44.4D.39.30.30.30">DM9000</a></li></ul></div>
<h3 id="g1-E3.83.A1.E3.83.A2.E3.83.AA.E3.83.90.E3.83.B3.E3.82.AF">1. メモリバンク</h3>
<table><tr><th style="width:4em;">バンク</th><th style="width:5em;">チップセレクト</th><th>アドレス</th><th>デバイス</th></tr><tr><td>BANK0 (SROM)</td><td>nGCS0</td><td>00000000h - 07FFFFFFh</td><td>NOR 4MB</td></tr><tr><td>BANK1 (SROM)</td><td>nGCS1</td><td>08000000h - 0FFFFFFFh</td><td>外部バス</td></tr><tr><td>BANK2 (SROM)</td><td>nGCS2</td><td>10000000h - 17FFFFFFh</td><td>外部バス</td></tr><tr><td>BANK3 (SROM)</td><td>nGCS3</td><td>18000000h - 1FFFFFFFh</td><td>外部シリアル</td></tr><tr><td>BANK4 (SROM)</td><td>nGCS4</td><td>20000000h - 27FFFFFFh</td><td>DM9000</td></tr><tr><td>BANK5 (SROM)</td><td>nGCS5</td><td>28000000h - 2FFFFFFFh</td><td>未使用</td></tr><tr><td>BANK6 (SDRAM)</td><td>nGCS6</td><td>30000000h - 37FFFFFFh</td><td>SDRAM 128MB</td></tr><tr><td>BANK7 (SDRAM)</td><td>nGCS7</td><td>38000000h - 3FFFFFFFh</td><td>未使用</td></tr></table>
<h3 id="g1-4E.4F.52.20.28.34.4D.42.29">2. NOR (4MB)</h3>
<h4 id="g1-E3.83.91.E3.83.BC.E3.83.86.E3.82.A3.E3.82.B7.E3.83.A7.E3.83.B3">2.1. パーティション</h4>
<table><tr><th style="width:7em;">アドレス</th><th>セクタ</th><th>MTD</th><th>サイズ</th><th></th></tr><tr><td>00000000h - 0003FFFFh</td><td>0-10</td><td>mtd1</td><td style="text-align:right;">256 KB</td><td>U-Boot</td></tr><tr><td>00040000h - 0031FFFFh</td><td>11-56</td><td rowspan="2">mtd2</td><td style="text-align:right;">2944 KB</td><td>Linux カーネル</td></tr><tr><td>00320000h - 0032FFFFh</td><td>57</td><td style="text-align:right;">64 KB</td><td>スプラッシュ画像</td></tr><tr><td>00330000h - 003DFFFFh</td><td>58-69</td><td>mtd3</td><td style="text-align:right;">768 KB</td><td>initrd</td></tr><tr><td>003F0000h - 003FFFFFh</td><td>70</td><td>mtd4</td><td style="text-align:right;">64 KB</td><td>U-Boot 環境変数</td></tr></table>
<h4 id="g1-E3.82.BB.E3.82.AF.E3.82.BF">2.2. セクタ</h4>
<table><tr><th>セクタ</th><th>アドレス</th><th>サイズ</th></tr><tr><td>0</td><td>00000000h - 00001FFFh</td><td>8 KB</td></tr><tr><td>1</td><td>00002000h - 00003FFFh</td><td>8 KB</td></tr><tr><td>2</td><td>00004000h - 00005FFFh</td><td>8 KB</td></tr><tr><td>3</td><td>00006000h - 00007FFFh</td><td>8 KB</td></tr><tr><td>4</td><td>00008000h - 00009FFFh</td><td>8 KB</td></tr><tr><td>5</td><td>0000A000h - 0000BFFFh</td><td>8 KB</td></tr><tr><td>6</td><td>0000C000h - 0000DFFFh</td><td>8 KB</td></tr><tr><td>7</td><td>0000E000h - 0000FFFFh</td><td>8 KB</td></tr><tr><td>8</td><td>00010000h - 0001FFFFh</td><td>64 KB</td></tr><tr><td>9</td><td>00020000h - 0002FFFFh</td><td>64 KB</td></tr><tr><td>10</td><td>00030000h - 0003FFFFh</td><td>64 KB</td></tr><tr><td>11</td><td>00040000h - 0004FFFFh</td><td>64 KB</td></tr><tr><td>12</td><td>00050000h - 0005FFFFh</td><td>64 KB</td></tr><tr><td>13</td><td>00060000h - 0006FFFFh</td><td>64 KB</td></tr><tr><td>14</td><td>00070000h - 0007FFFFh</td><td>64 KB</td></tr><tr><td>15</td><td>00080000h - 0008FFFFh</td><td>64 KB</td></tr><tr><td>16</td><td>00080000h - 0009FFFFh</td><td>64 KB</td></tr><tr><td>17</td><td>000A0000h - 000AFFFFh</td><td>64 KB</td></tr><tr><td>18</td><td>000B0000h - 000BFFFFh</td><td>64 KB</td></tr><tr><td>19</td><td>000C0000h - 000CFFFFh</td><td>64 KB</td></tr><tr><td>20</td><td>000D0000h - 000DFFFFh</td><td>64 KB</td></tr><tr><td>21</td><td>000E0000h - 000EFFFFh</td><td>64 KB</td></tr><tr><td>22</td><td>000F0000h - 000FFFFFh</td><td>64 KB</td></tr><tr><td>23</td><td>00100000h - 0010FFFFh</td><td>64 KB</td></tr><tr><td>24</td><td>00110000h - 0011FFFFh</td><td>64 KB</td></tr><tr><td>25</td><td>00120000h - 0012FFFFh</td><td>64 KB</td></tr><tr><td>26</td><td>00130000h - 0013FFFFh</td><td>64 KB</td></tr><tr><td>27</td><td>00140000h - 0014FFFFh</td><td>64 KB</td></tr><tr><td>28</td><td>00150000h - 0015FFFFh</td><td>64 KB</td></tr><tr><td>29</td><td>00160000h - 0016FFFFh</td><td>64 KB</td></tr><tr><td>30</td><td>00170000h - 0017FFFFh</td><td>64 KB</td></tr><tr><td>31</td><td>00180000h - 0018FFFFh</td><td>64 KB</td></tr><tr><td>32</td><td>00190000h - 0019FFFFh</td><td>64 KB</td></tr><tr><td>33</td><td>001A0000h - 001AFFFFh</td><td>64 KB</td></tr><tr><td>34</td><td>001B0000h - 001BFFFFh</td><td>64 KB</td></tr><tr><td>35</td><td>001C0000h - 001CFFFFh</td><td>64 KB</td></tr><tr><td>36</td><td>001D0000h - 001DFFFFh</td><td>64 KB</td></tr><tr><td>37</td><td>001E0000h - 001EFFFFh</td><td>64 KB</td></tr><tr><td>38</td><td>001F0000h - 001FFFFFh</td><td>64 KB</td></tr><tr><td>39</td><td>00200000h - 0020FFFFh</td><td>64 KB</td></tr><tr><td>40</td><td>00210000h - 0021FFFFh</td><td>64 KB</td></tr><tr><td>41</td><td>00220000h - 0022FFFFh</td><td>64 KB</td></tr><tr><td>42</td><td>00230000h - 0023FFFFh</td><td>64 KB</td></tr><tr><td>43</td><td>00240000h - 0024FFFFh</td><td>64 KB</td></tr><tr><td>44</td><td>00250000h - 0025FFFFh</td><td>64 KB</td></tr><tr><td>45</td><td>00260000h - 0026FFFFh</td><td>64 KB</td></tr><tr><td>46</td><td>00270000h - 0027FFFFh</td><td>64 KB</td></tr><tr><td>47</td><td>00280000h - 0028FFFFh</td><td>64 KB</td></tr><tr><td>48</td><td>00290000h - 0029FFFFh</td><td>64 KB</td></tr><tr><td>49</td><td>002A0000h - 002AFFFFh</td><td>64 KB</td></tr><tr><td>50</td><td>002B0000h - 002BFFFFh</td><td>64 KB</td></tr><tr><td>51</td><td>002C0000h - 002CFFFFh</td><td>64 KB</td></tr><tr><td>52</td><td>002D0000h - 002DFFFFh</td><td>64 KB</td></tr><tr><td>53</td><td>002E0000h - 002EFFFFh</td><td>64 KB</td></tr><tr><td>54</td><td>002F0000h - 002FFFFFh</td><td>64 KB</td></tr><tr><td>55</td><td>00300000h - 0030FFFFh</td><td>64 KB</td></tr><tr><td>56</td><td>00310000h - 0031FFFFh</td><td>64 KB</td></tr><tr><td>57</td><td>00320000h - 0032FFFFh</td><td>64 KB</td></tr><tr><td>58</td><td>00330000h - 0033FFFFh</td><td>64 KB</td></tr><tr><td>59</td><td>00340000h - 0034FFFFh</td><td>64 KB</td></tr><tr><td>60</td><td>00350000h - 0035FFFFh</td><td>64 KB</td></tr><tr><td>61</td><td>00360000h - 0036FFFFh</td><td>64 KB</td></tr><tr><td>62</td><td>00370000h - 0037FFFFh</td><td>64 KB</td></tr><tr><td>63</td><td>00380000h - 0038FFFFh</td><td>64 KB</td></tr><tr><td>64</td><td>00390000h - 0039FFFFh</td><td>64 KB</td></tr><tr><td>65</td><td>003A0000h - 003AFFFFh</td><td>64 KB</td></tr><tr><td>66</td><td>003B0000h - 003BFFFFh</td><td>64 KB</td></tr><tr><td>67</td><td>003C0000h - 003CFFFFh</td><td>64 KB</td></tr><tr><td>68</td><td>003D0000h - 003DFFFFh</td><td>64 KB</td></tr><tr><td>69</td><td>003E0000h - 003EFFFFh</td><td>64 KB</td></tr><tr><td>70</td><td>003F0000h - 003FFFFFh</td><td>64 KB</td></tr></table>
<h3 id="g1-53.44.52.41.4D">3. SDRAM</h3>
<h4 id="g1-55.2D.42.6F.6F.74.20.E5.AE.9F.E8.A1.8C.E6.99.82">3.1. U-Boot 実行時</h4>
<table><tr><th style="width:7em;">アドレス</th><th>サイズ</th><th></th></tr><tr><td>30000000h - 30007FFFh</td><td>32 KB</td><td>例外ベクタ</td></tr><tr><td>30008000h - 307FFFFFh</td><td>8160 KB</td><td>Linux カーネル</td></tr><tr><td>30800000h - 308FFFFFh</td><td>1 MB</td><td>initrd</td></tr><tr><td>30900000h - 37BFFFFFh</td><td>114 MB</td><td>ダウンロードエリア</td></tr><tr><td>37B00000h - 37CFFFFFh</td><td>2 MB</td><td>VIDEO</td></tr><tr><td>37D00000h - 37D3FEE7h</td><td>261864 bytes</td><td>予約</td></tr><tr><td>37D3FEE8h - 37F7FFFFh</td><td>2.25 MB (2359576 bytes)</td><td>スタック と malloc</td></tr><tr><td>37F80000h - 37FFFFFFh</td><td>512 KB</td><td>U-Boot</td></tr></table>
<h3 id="g1-44.4D.39.30.30.30">4. DM9000</h3>
<table><tr><td>21000300h</td><td>IO (アドレス)</td></tr><tr><td>21000304h</td><td>IO (データ)</td></tr></table>
]]></description>
   <category domain="http://pylone.jp/bishop/docs/addrmap.html">doc</category>
   <pubDate>Sun, 03 Feb 2008 16:43 GMT</pubDate>
</item>

<item>
   <title>Bishop エミュレータマニュアル</title>
   <guid isPermaLink="true">http://pylone.jp/bishop/docs/qemu-bishop-manual.html</guid>

   <link>http://pylone.jp/bishop/docs/qemu-bishop-manual.html</link>
   <description><![CDATA[

<p><img src="http://farm4.static.flickr.com/3224/3124050495_0f2b581105_m.jpg" alt="スクリーンショット" width="240" height="197" /></p>
<p>オープンソースのプロセッサエミュレータ <a href="http://www.qemu.org/">QEMU</a> をベースにして株式会社パイロンが開発した
<a href="/bishop/">Bishop</a> エミュレータのマニュアルです。</p>
<div class="toc"><div class="head">目次</div><ul><li style="margin-left:1em;" class="depth1">1. <a href="#g1-E5.AF.BE.E8.B1.A1.20.4F.53">対象 OS</a></li><li style="margin-left:1em;" class="depth1">2. <a href="#g1-E3.82.A4.E3.83.B3.E3.82.B9.E3.83.88.E3.83.BC.E3.83.AB">インストール</a></li><li style="margin-left:2em;" class="depth2">2.1. <a href="#g1-install-on-debian">Debian, Ubuntu</a></li><li style="margin-left:2em;" class="depth2">2.2. <a href="#g1-install-on-fedora">Fedora</a></li><li style="margin-left:2em;" class="depth2">2.3. <a href="#g1-install-on-windows">Windows</a></li><li style="margin-left:1em;" class="depth1">3. <a href="#g1-52.4F.4D.E3.82.A4.E3.83.A1.E3.83.BC.E3.82.B8.E3.81.AE.E3.83.80.E3.82.A6.E3.83.B3.E3.83.AD.E3.83.BC.E3.83.89">ROMイメージのダウンロード</a></li><li style="margin-left:2em;" class="depth2">3.1. <a href="#g1-download-on-linux">Linux</a></li><li style="margin-left:2em;" class="depth2">3.2. <a href="#g1-download-on-windows">Windows</a></li><li style="margin-left:1em;" class="depth1">4. <a href="#g1-E8.B5.B7.E5.8B.95">起動</a></li><li style="margin-left:2em;" class="depth2">4.1. <a href="#g1-run-on-linux">Linux</a></li><li style="margin-left:2em;" class="depth2">4.2. <a href="#g1-run-on-windows">Windows</a></li><li style="margin-left:1em;" class="depth1">5. <a href="#g1-E4.B8.BB.E3.81.AA.E3.82.AA.E3.83.97.E3.82.B7.E3.83.A7.E3.83.B3">主なオプション</a></li><li style="margin-left:1em;" class="depth1">6. <a href="#g1-E3.82.AB.E3.83.BC.E3.83.8D.E3.83.AB.E8.B5.B7.E5.8B.95.E3.83.91.E3.83.A9.E3.83.A1.E3.83.BC.E3.82.BF.E3.81.AE.E5.A4.89.E6.9B.B4">カーネル起動パラメータの変更</a></li><li style="margin-left:1em;" class="depth1">7. <a href="#g1-E3.83.9C.E3.83.BC.E3.83.89.E3.81.AE.E9.81.B8.E6.8A.9E">ボードの選択</a></li><li style="margin-left:1em;" class="depth1">8. <a href="#g1-E5.90.84.E7.A8.AE.E3.83.9A.E3.83.AA.E3.83.95.E3.82.A7.E3.83.A9.E3.83.AB.E3.81.AE.E3.82.A8.E3.83.9F.E3.83.A5.E3.83.AC.E3.83.BC.E3.83.88">各種ペリフェラルのエミュレート</a></li><li style="margin-left:2em;" class="depth2">8.1. <a href="#g1-E3.82.B7.E3.83.AA.E3.82.A2.E3.83.AB">シリアル</a></li><li style="margin-left:2em;" class="depth2">8.2. <a href="#g1-E3.83.8D.E3.83.83.E3.83.88.E3.83.AF.E3.83.BC.E3.82.AF">ネットワーク</a></li><li style="margin-left:2em;" class="depth2">8.3. <a href="#g1-55.53.42.20.E3.82.AD.E3.83.BC.E3.83.9C.E3.83.BC.E3.83.89">USB キーボード</a></li><li style="margin-left:2em;" class="depth2">8.4. <a href="#g1-55.53.42.20.E3.83.A1.E3.83.A2.E3.83.AA">USB メモリ</a></li><li style="margin-left:2em;" class="depth2">8.5. <a href="#g1-53.44.20.E3.82.AB.E3.83.BC.E3.83.89">SD カード</a></li><li style="margin-left:2em;" class="depth2">8.6. <a href="#g1-4E.41.4E.44">NAND</a></li><li style="margin-left:2em;" class="depth2">8.7. <a href="#g1-E3.82.AA.E3.83.BC.E3.83.87.E3.82.A3.E3.82.AA">オーディオ</a></li><li style="margin-left:2em;" class="depth2">8.8. <a href="#g1-4C.45.44">LED</a></li><li style="margin-left:2em;" class="depth2">8.9. <a href="#g1-E3.82.BF.E3.83.83.E3.83.81.E3.82.B9.E3.82.AF.E3.83.AA.E3.83.BC.E3.83.B3">タッチスクリーン</a></li><li style="margin-left:2em;" class="depth2">8.10. <a href="#g1-4E.4F.52.20.46.6C.61.73.68.52.4F.4D">NOR FlashROM</a></li><li style="margin-left:1em;" class="depth1">9. <a href="#g1-67.64.62.20.E3.81.AB.E3.82.88.E3.82.8B.E3.83.87.E3.83.90.E3.83.83.E3.82.B0">gdb によるデバッグ</a></li><li style="margin-left:2em;" class="depth2">9.1. <a href="#g1-4C.69.6E.75.78.20.E3.82.AB.E3.83.BC.E3.83.8D.E3.83.AB">Linux カーネル</a></li><li style="margin-left:2em;" class="depth2">9.2. <a href="#g1-75.2D.62.6F.6F.74">u-boot</a></li></ul></div>
<h3 id="g1-E5.AF.BE.E8.B1.A1.20.4F.53">1. 対象 OS</h3>
<ul><li>Debian GNU/Linux 4.0 etch (x86)</li><li>Debian GNU/Linux sid (x86)</li><li>Ubuntu 8.10 (x86)</li><li>Fedora 7, 8, 9, 10, 12 (x86)</li><li>Windows XP SP2 (x86)</li></ul>
<h3 id="g1-E3.82.A4.E3.83.B3.E3.82.B9.E3.83.88.E3.83.BC.E3.83.AB">2. インストール</h3>
<h4 id="g1-install-on-debian">2.1. Debian, Ubuntu</h4>
<p>/etc/apt/sources.list に以下の apt-line を追加します。</p>
<pre>deb http://downloads.pylone.jp/tools/deb ./</pre>
<p>(まだ行っていなければ) pylone.jp の鍵を導入します。</p>
<pre>
# <span class="cmdline">wget http://pylone.jp/pubkey.asc -O - | apt-key add -</span>
</pre>
<p>パッケージ一覧を更新してから qemu-bishop パッケージをインストールします。</p>
<pre>
# <span class="cmdline">aptitude update</span>
# <span class="cmdline">aptitude install qemu-bishop</span>
</pre>
<h4 id="g1-install-on-fedora">2.2. Fedora</h4>
<p>以下の内容の /etc/yum.repos.d/pylone-jp.repo を作成し、yum レポジトリを追加します。</p>
<pre>[pylone-tools]
name=PyloneTools
baseurl=http://downloads.pylone.jp/tools/rpm/
enabled=1
gpgcheck=0</pre>
<p>リポジトリ情報を更新してから、qemu-bishop パッケージをインストールします。</p>
<pre>
# <span class="cmdline">yum update</span>
# <span class="cmdline">yum install qemu-bishop</span>
</pre>
<h4 id="g1-install-on-windows">2.3. Windows</h4>
<p><a href="http://downloads.pylone.jp/bishop/qemu-bishop-0.9.1-pylone1-setup.exe">インストーラ</a>をダウンロードして実行します。</p>
<h3 id="g1-52.4F.4D.E3.82.A4.E3.83.A1.E3.83.BC.E3.82.B8.E3.81.AE.E3.83.80.E3.82.A6.E3.83.B3.E3.83.AD.E3.83.BC.E3.83.89">3. ROMイメージのダウンロード</h3>
<h4 id="g1-download-on-linux">3.1. Linux</h4>
<p>画像ファイルとROMイメージファイルをダウンロードして任意のディレクトリに置きます。</p>
<pre>
$ <span class="cmdline">mkdir ~/bishop-rom</span>
$ <span class="cmdline">cd ~/bishop-rom/</span>
$ <span class="cmdline">wget http://downloads.pylone.jp/bishop/miscimages-20081215/pe201a.img</span>
$ <span class="cmdline">wget http://downloads.pylone.jp/bishop/miscimages-20081215/pe201b.img</span>
$ <span class="cmdline">wget http://downloads.pylone.jp/bishop/miscimages-20081215/led.img</span>
$ <span class="cmdline">wget http://downloads.pylone.jp/bishop/romimages-20081216/u-boot.bin</span>
$ <span class="cmdline">wget http://downloads.pylone.jp/bishop/romimages-20081216/uImage</span>
$ <span class="cmdline">wget http://downloads.pylone.jp/bishop/romimages-20081216/initrd.uimg</span>
$ <span class="cmdline">wget http://downloads.pylone.jp/bishop/romimages-20081216/splash480.bmp.gz</span>
$ <span class="cmdline">wget http://downloads.pylone.jp/bishop/romimages-20081216/splash640.bmp.gz</span>
$ <span class="cmdline">wget http://downloads.pylone.jp/bishop/romimages-20081216/nand-bishop.img.bz2</span>
$ <span class="cmdline">bunzip2 nand-bishop.img.bz2</span>
</pre>
<h4 id="g1-download-on-windows">3.2. Windows</h4>
<p>Windows の場合はインストーラによってROMイメージファイルが C:\Program File\qemu-bishop にダウンロードされます。</p>
<h3 id="g1-E8.B5.B7.E5.8B.95">4. 起動</h3>
<h4 id="g1-run-on-linux">4.1. Linux</h4>
<p>ROMイメージを置いたディレクトリで qemu-bishop を実行します。
実機の出荷状態と同じ状態で起動するためには、以下のようなオプションをつけてください。</p>
<pre>
$ <span class="cmdline">qemu-bishop -M pe201a -serial stdio -kernel dummy -mtdblock nand-bishop.img -append "root=/dev/mtdblock5 rootfstype=jffs2 console=ttySAC0,115200n8 console=tty0"</span>
</pre>
<h4 id="g1-run-on-windows">4.2. Windows</h4>
<p>スタート &gt; すべてのプログラム &gt; qemu-bishop &gt; qemu-bishop (PE-201A)</p>
<p>で実機の出荷状態と同じ状態で起動します。</p>
<h3 id="g1-E4.B8.BB.E3.81.AA.E3.82.AA.E3.83.97.E3.82.B7.E3.83.A7.E3.83.B3">5. 主なオプション</h3>
<p>主なオプションは以下の通りです。</p>
<table><tr><th>-M</th><td>マシンの指定 (pe201a, pe201b, pe201q)</td></tr><tr><th>-kernel</th><td>元々 kernel を指定するオプションですが、Bishop エミュレータでは NOR からカーネルをロードする動作をエミュレートするため無視されます。</td></tr><tr><th>-serial</th><td>シリアルポートの出力先を指定します。</td></tr><tr><th>-usbdevice</th><td>USB デバイスの指定</td></tr><tr><th>-mtdblock</th><td>NAND イメージファイルの指定</td></tr><tr><th>-sd</th><td>SD カードイメージファイルの指定</td></tr><tr><th>-append</th><td>カーネルパラメータの追加</td></tr></table>
<p>それぞれの使い方は後述します。</p>
<p class="info">Windows でオプションを変更したい時は C:\Program Files\qemu-bishop\qemu-bishop.bat を編集してください。</p>
<h3 id="g1-E3.82.AB.E3.83.BC.E3.83.8D.E3.83.AB.E8.B5.B7.E5.8B.95.E3.83.91.E3.83.A9.E3.83.A1.E3.83.BC.E3.82.BF.E3.81.AE.E5.A4.89.E6.9B.B4">6. カーネル起動パラメータの変更</h3>
<p>-append オプションを使ってカーネル起動パラメータを変更できます。</p>
<p>例えば、qemu-bishop を実行されるホストのNSFサーバによる NFSRoot で起動する場合は以下のようになります。</p>
<pre>
$ <span class="cmdline">qemu-bishop [...] -append 'root=/dev/nfs nfsroot=10.0.2.2:/rootfsのパス ip=10.0.2.15:::255.255.255.0:::'</span>
</pre>
<p>指定できるカーネル起動パラメータは実機と同じです。詳細は Bishop の各種ドキュメントを参照してください。</p>
<p class="info">実機では u-boot のモニタコマンドから bootargs 環境変数によってカーネルパラメータを指定します。
Bishop エミュレータでは NOR を単なる ROM としてエミュレートしているので環境変数が保存できません。</p>
<h3 id="g1-E3.83.9C.E3.83.BC.E3.83.89.E3.81.AE.E9.81.B8.E6.8A.9E">7. ボードの選択</h3>
<p>-M オプションでボードの種類を指定します。</p>
<pre>
$ <span class="cmdline">qemu-bishop [...] -M pe201a</span>
</pre>
<table><tr><th>値</th><th>ボード</th></tr><tr><td>pe201a</td><td>PE-201A</td></tr><tr><td>pe201b</td><td>PE-201A</td></tr><tr><td>pe201q</td><td>PE-201Q</td></tr></table>
<p>PE-201Qは開発環境としての利便性を向上させるための仮想ターゲットです。
実機より大きな画面(640x1024)および豊富なNOR領域(128MBytes)が利用可能となります。</p>
<h3 id="g1-E5.90.84.E7.A8.AE.E3.83.9A.E3.83.AA.E3.83.95.E3.82.A7.E3.83.A9.E3.83.AB.E3.81.AE.E3.82.A8.E3.83.9F.E3.83.A5.E3.83.AC.E3.83.BC.E3.83.88">8. 各種ペリフェラルのエミュレート</h3>
<h4 id="g1-E3.82.B7.E3.83.AA.E3.82.A2.E3.83.AB">8.1. シリアル</h4>
<p>-serial オプションでシリアルポートの出力先を指定します。</p>
<pre>
$ <span class="cmdline">qemu-bishop [...] -serial stdout</span>
</pre>
<p>'stdout' で qemu-bishop を実行したコンソールがシリアルコンソールになります。
'telnet:localhost:1200,server' を指定すると telnet クライアントがシリアルコンソールになります。</p>
<h4 id="g1-E3.83.8D.E3.83.83.E3.83.88.E3.83.AF.E3.83.BC.E3.82.AF">8.2. ネットワーク</h4>
<p>ネットワークコントローラ DM9000 は QEMU が持つ仮想的なネットワーク 10.0.2.0/24
に接続されたデバイスとしてエミュレートされます。
同ネットワーク内においては擬似的なサーバ機能が提供されます。</p>
<table><tr><th>ゲートウェイ</th><td>10.0.2.2</td></tr><tr><th>DNS</th><td>10.0.2.3</td></tr><tr><th>DHCP</th><td>10.0.2.2</td></tr></table>
<p>なお、同ネットワーク内ではゲートウェイの先を含めて 10.0.2.2 以外から ping の応答はありません。</p>
<h4 id="g1-55.53.42.20.E3.82.AD.E3.83.BC.E3.83.9C.E3.83.BC.E3.83.89">8.3. USB キーボード</h4>
<p>ホストのキーボードを USB キーボードとして扱うことができます。　</p>
<pre>
$ <span class="cmdline">qemu-bishop [...] -usbdevice keyboard</span>
</pre>
<p class="info">ホストのキーボードが英語配列でない環境では、一部のキーが正しく解釈されません。</p>
<h4 id="g1-55.53.42.20.E3.83.A1.E3.83.A2.E3.83.AA">8.4. USB メモリ</h4>
<p>ディスクイメージを USB メモリとして扱うことができます。</p>
<pre>
$ <span class="cmdline">qemu-bishop [...] -usbdevice disk:ディスクイメージ</span>
</pre>
<p>ディスクイメージの作成方法についてはブログ記事「<a href="/blog/tips_diskimage_partitioning">ディスクイメージのホスト側での操作方法</a>」を参照してください。</p>
<p class="alert">USB メモリのエミュレーションは高負荷時に不安定になる場合があります。</p>
<h4 id="g1-53.44.20.E3.82.AB.E3.83.BC.E3.83.89">8.5. SD カード</h4>
<p>-sd オプションで指定したディスクイメージを SD カードとして扱うことができます。</p>
<pre>
$ <span class="cmdline">qemu-bishop [...] -sd ディスクイメージ</span>
</pre>
<p>ディスクイメージの作成方法についてブログ記事「<a href="/blog/tips_diskimage_partitioning">ディスクイメージのホスト側での操作方法</a>」を参照してください。</p>
<h4 id="g1-4E.41.4E.44">8.6. NAND</h4>
<p>-mtdblock オプションで指定したイメージファイルが NAND として扱われます。</p>
<pre>
$ <span class="cmdline">qemu-bishop [...] -mtdblock nand-bishop.img</span>
</pre>
<table class="downloads"><tr class="title"><td colspan="4">nand-bishop.img - Bishop 出荷状態と同じ内容の NAND イメージファイル</td></tr><tr class="odd"><td>nand-bishop.img.bz2<br /><span class="desc">bzip2</span></td><td>20081216</td><td class="dl"><a href="http://downloads.pylone.jp/bishop/romimages-20081216/nand-bishop.img.bz2">Download</a></td><td>57.0MB</td></tr><tr class="even"><td>nand-bishop.img.zip<br /><span class="desc">zip</span></td><td>20081216</td><td class="dl"><a href="http://downloads.pylone.jp/bishop/romimages-20081216/nand-bishop.img.zip">Download</a></td><td>58.1MB</td></tr></table>
<table class="downloads"><tr class="title"><td colspan="4">nand-empty.img - 何も書き込まれていない空のイメージファイル</td></tr><tr class="odd"><td>nand-empty.img.bz2<br /><span class="desc">bzip2</span></td><td>20081216</td><td class="dl"><a href="http://downloads.pylone.jp/bishop/romimages-20081216/nand-empty.img.bz2">Download</a></td><td>136Byte</td></tr><tr class="even"><td>nand-empty.img.zip<br /><span class="desc">zip</span></td><td>20081216</td><td class="dl"><a href="http://downloads.pylone.jp/bishop/romimages-20081216/nand-empty.img.zip">Download</a></td><td>131.3KB</td></tr></table>
<h4 id="g1-E3.82.AA.E3.83.BC.E3.83.87.E3.82.A3.E3.82.AA">8.7. オーディオ</h4>
<p>オーディオエミュレーションがサポートしているのは再生のみです。</p>
<p>環境変数 QEMU_AUDIO_DRV でオーディオドライバを指定できます。</p>
<pre>
$ <span class="cmdline">QEMU_AUDIO_DRV=alsa qemu-bishop ...</span>
</pre>
<p>指定できるドライバは以下の通りです。</p>
<table><tr><th>環境変数の値</th><th>ドライバ</th><th>備考</th></tr><tr><th>sdl</th><td>SDL Audio</td><td></td></tr><tr><th>alsa</th><td>Linux ALSA driver</td><td>Linux のみ指定可</td></tr><tr><th>oss</th><td>Linux OSS driver</td><td>Linux のみ指定可</td></tr></table>
<h4 id="g1-4C.45.44">8.8. LED</h4>
<p>Bishop標準のLinuxカーネルで起動した場合、実機と同様にHeartBeatの処理が開始されるとLEDの表示が変化します。</p>
<p>LEDはGPIOポートバンク'B'の 5,6,7,8 ビットに接続されているので、アドレス0x56000014に値を書くと（対応するピンが出力用に設定されていれば）反映されます。
なお、論理は負、0 から数えたビット番号とLEDの対応は下表の通りです。</p>
<table><tr><th>ビット</th><th>LED</th></tr><tr><td>5</td><td>LED5</td></tr><tr><td>6</td><td>LED4</td></tr><tr><td>7</td><td>LED7</td></tr><tr><td>8</td><td>LED6</td></tr></table>
<p>例として、U-Bootのモニタコマンドで4つのLEDすべてを消灯/点灯するには以下のようにします。</p>
<pre>
Bishop # <span class="cmdline">mw.l 56000014 1e0</span>
Bishop # <span class="cmdline">mw.l 56000014 000</span>
</pre>
<p>エミュレータ上では 1e0 に代わりに ffff などの値を書いても同様の結果が得られますが、実機では 0x1E0 以外の値を設定すると他デバイスの動作に干渉してしまいます。</p>
<p>なお、仮想ターゲットPE-201QにはLEDが存在しないため、LED がエミュレートされるのは PE-201A と PE-201Bのみです。</p>
<h4 id="g1-E3.82.BF.E3.83.83.E3.83.81.E3.82.B9.E3.82.AF.E3.83.AA.E3.83.BC.E3.83.B3">8.9. タッチスクリーン</h4>
<p>エミュレータウィンドウ上のポインタ操作を、タッチスクリーンへの入力として変換します。
PE-201A や PE-201B としてエミュレーションを行う場合、タッチスクリーンはキャリブレーション済の状態で起動します。
PE-201Q では変換係数の初期値に意図的にある程度の誤差を残してあります。
キャリブレータの動作確認には PE-201Q を使用してください。</p>
<h4 id="g1-4E.4F.52.20.46.6C.61.73.68.52.4F.4D">8.10. NOR FlashROM</h4>
<p>マスク ROM としてエミュレーションされます。
NOR としてのコマンドには応答しません。</p>
<h3 id="g1-67.64.62.20.E3.81.AB.E3.82.88.E3.82.8B.E3.83.87.E3.83.90.E3.83.83.E3.82.B0">9. gdb によるデバッグ</h3>
<h4 id="g1-4C.69.6E.75.78.20.E3.82.AB.E3.83.BC.E3.83.8D.E3.83.AB">9.1. Linux カーネル</h4>
<p>Linux カーネルをデバッグ情報付きでビルドします。</p>
<pre>
$ <span class="cmdline">wget http://downloads.pylone.jp/src/linux-2.6.26.8-pylone0.tar.gz</span>
$ <span class="cmdline">tar xzvf linux-2.6.26.8-pylone0.tar.gz</span>
$ <span class="cmdline">cd linux-2.6.26.8-pylone0</span>
$ <span class="cmdline">make ARCH=arm menuconfig</span>
  Kernel hacking  --->
    [*] Kernel debugging
    ...
    [*] Compile the kernel with debug info
$ <span class="cmdline">make ARCH=arm CROSS_COMPILE=arm-linux-gnu- uImage</span>
</pre>
<p>ダウンロードした qemu-bishop の ROM イメージファイルの uImage を差し替えます。</p>
<pre>
$ <span class="cmdline">cp arch/arm/boot/uImage ~/bishop-rom/</span>
</pre>
<p>qemu-bishop を -s -S オプションで起動します。</p>
<pre>
$ <span class="cmdline">cd ~/bishop-rom/</span>
$ <span class="cmdline">qemu-bishop [...] -s -S</span>
</pre>
<p>-s -S オプションで起動した qemu-bishop は CPU を止めて、
ポート 1234 (-p オプションで変更可)
で gdb の接続を待っている状態です。</p>
<p>ビルドしたカーネルのソースディレクトリで
gdb<sup><a id="footnote-rev-1" href="#footnote-1" title="クロスの gdb をインストールする手順については「クロス開発ツールのインストール」(/bishop/docs/how_to_install_cross_development_tools_debian.html Debian編, /bishop/docs/how_to_install_cross_development_tools_fedora.html Fedora編) を参照してください。">[1]</a></sup>
を起動し、qemu-bishop に接続します。</p>
<pre>
$ <span class="cmdline">cd linux-2.6.26.8-pylone0</span>
$ <span class="cmdline">arm-linux-gnu-gdb vmlinux</span> (または arm-linux-gnu-gdbtui vmlinux)
GNU gdb 6.6.90.20070912-debian
Copyright (C) 2007 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later &lt;http://gnu.org/licenses/gpl.html&gt;
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "--host=i486-linux-gnu --target=arm-linux-gnu".
(gdb) <span class="cmdline">target remote localhost:1234</span>
Remote debugging using localhost:1234
0x00000000 in ?? ()
</pre>
<p>例として Bishop の初期化関数 bishop_machine_init() にブレークポイントを設定してみます。</p>
<pre>
(gdb) <span class="cmdline">b bishop_machine_init</span>
Breakpoint 1 at 0xc000e0e4: file arch/arm/mach-s3c2440/mach-bishop.c, line 497.
(gdb) <span class="cmdline">c</span>
Continuing.

Breakpoint 1, bishop_machine_init () at arch/arm/mach-s3c2440/mach-bishop.c:497
497             s3c2410_pm_init();
(gdb) <span class="cmdline">list</span>
492
493     static void __init bishop_machine_init(void)
494     {
495             int lcd_set0, lcd_set1;
496
497             s3c2410_pm_init();
498
499             /* SD/MMC */
500             s3c_device_sdi.dev.platform_data = &amp;bishop_mci_cfg;
501
(gdb)
</pre>
<h4 id="g1-75.2D.62.6F.6F.74">9.2. u-boot</h4>
<p>手順は Linux カーネルとほとんど同じです。</p>
<p>u-boot をビルドします。</p>
<pre>
$ <span class="cmdline">wget http://downloads.pylone.jp/src/u-boot-1.2.0-pylone5.tar.gz</span>
$ <span class="cmdline">tar xzvf u-boot-1.2.0-pylone5.tar.gz</span>
$ <span class="cmdline">cd u-boot-1.2.0-pylone5</span>
$ <span class="cmdline">make bishop_config</span>
$ <span class="cmdline">make</span>
</pre>
<p>ダウンロードした qemu-bishop の ROM イメージファイルの u-boot.bin を差し替えます。</p>
<pre>
$ <span class="cmdline">cp u-boot.bin ~/bishop-rom/</span>
</pre>
<p>qemu-bishop を -s -S オプションで起動します。</p>
<pre>
$ <span class="cmdline">cd ~/bishop-rom/</span>
$ <span class="cmdline">qemu-bishop [...] -s -S</span>
</pre>
<p>ビルドしたカーネルのソースディレクトリで gdb を起動し、qemu-bishop に接続します。</p>
<pre>
$ <span class="cmdline">cd u-boot-1.2.0-pylone5</span>
$ <span class="cmdline">arm-linux-gnu-gdb u-boot</span> (または arm-linux-gnu-gdbtui u-boot)
GNU gdb 6.6.90.20070912-debian
Copyright (C) 2007 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later &lt;http://gnu.org/licenses/gpl.html&gt;
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "--host=i486-linux-gnu --target=arm-linux-gnu".
(gdb) <span class="cmdline">target remote localhost:1234</span>
Remote debugging using localhost:1234
0x00000000 in ?? ()
</pre>
<p>例として Bishop の初期化関数 bishop_init() にブレークポイントを設定してみます。</p>
<pre>
(gdb) <span class="cmdline">b bishop_init</span>
reakpoint 1, board_init () at bishop.c:34
(gdb) <span class="cmdline">c</span>
Continuing.

Breakpoint 1, board_init () at bishop.c:34
34      {
(gdb) <span class="cmdline">list</span>
29                      "subs %0, %1, #1\n"
30                      "bne 1b":"=r" (loops):"0" (loops));
31      }
32
33      int board_init (void)
34      {
35              S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER();
36              S3C24X0_GPIO * const gpio = S3C24X0_GetBase_GPIO();
37
38              /* to reduce PLL lock time, adjust the LOCKTIME register */
(gdb)
</pre>
<div class="footnotes"><ol><li id="footnote-1"><a href="#footnote-rev-1">^</a> クロスの gdb をインストールする手順については「クロス開発ツールのインストール」(<a href="/bishop/docs/how_to_install_cross_development_tools_debian.html">Debian編</a>, <a href="/bishop/docs/how_to_install_cross_development_tools_fedora.html">Fedora編</a>) を参照してください。</li></ol></div>]]></description>
   <category domain="http://pylone.jp/bishop/docs/qemu-bishop-manual.html">doc</category>
   <pubDate>Fri, 19 Dec 2008 10:24 GMT</pubDate>
</item>

<item>
   <title>クロス開発ツールのインストール - Fedora編</title>
   <guid isPermaLink="true">http://pylone.jp/bishop/docs/how_to_install_cross_development_tools_fedora.html</guid>

   <link>http://pylone.jp/bishop/docs/how_to_install_cross_development_tools_fedora.html</link>
   <description><![CDATA[

<p>クロス開発ツールをFedoraホストにインストールする手順です。</p>
<div class="toc"><div class="head">目次</div><ul><li style="margin-left:1em;" class="depth1">1. <a href="#g1-E5.AF.BE.E8.B1.A1.4F.53">対象OS</a></li><li style="margin-left:1em;" class="depth1">2. <a href="#g1-E3.82.AF.E3.83.AD.E3.82.B9.E3.83.84.E3.83.BC.E3.83.AB.E3.83.81.E3.82.A7.E3.82.A4.E3.83.B3.E3.81.AE.E3.82.A4.E3.83.B3.E3.82.B9.E3.83.88.E3.83.BC.E3.83.AB">クロスツールチェインのインストール</a></li><li style="margin-left:1em;" class="depth1">3. <a href="#g1-75.2D.62.6F.6F.74.2D.74.6F.6F.6C.73.E3.81.AE.E3.82.A4.E3.83.B3.E3.82.B9.E3.83.88.E3.83.BC.E3.83.AB">u-boot-toolsのインストール</a></li><li style="margin-left:1em;" class="depth1">4. <a href="#g1-6D.74.64.2D.75.74.69.6C.73.E3.81.AE.E3.82.A4.E3.83.B3.E3.82.B9.E3.83.88.E3.83.BC.E3.83.AB">mtd-utilsのインストール</a></li></ul></div>
<h3 id="g1-E5.AF.BE.E8.B1.A1.4F.53">1. 対象OS</h3>
<ul><li>Fedora 7, 8, 9, 10 (x86)</li></ul>
<h3 id="g1-E3.82.AF.E3.83.AD.E3.82.B9.E3.83.84.E3.83.BC.E3.83.AB.E3.83.81.E3.82.A7.E3.82.A4.E3.83.B3.E3.81.AE.E3.82.A4.E3.83.B3.E3.82.B9.E3.83.88.E3.83.BC.E3.83.AB">2. クロスツールチェインのインストール</h3>
<p>クロスのgccやbinutilsをインストールする手順です。</p>
<p>まず、yumレポジトリを追加するため、以下の内容の/etc/yum.repos.d/pylone-jp.repoを作成します。</p>
<pre>[cross-toolchain]
name=Cross Toolchain
baseurl=http://downloads.pylone.jp/cross-toolchain/rpm/
enabled=1
gpgcheck=0</pre>
<p>次に、レポジトリ情報を更新します。</p>
<pre># yum update</pre>
<p>ツールチェイン一式をインストールします。</p>
<pre># yum install gcc-4.1-arm-linux-gnu</pre>
<p>必要であれば C++ コンパイラや gdb もインストールします。</p>
<pre># yum install g++-4.1-arm-linux-gnu
# yum install gdb-arm-linux-gnu</pre>
<p>インストールされるパッケージ一覧です。</p>
<table><tr><th>名前</th><th>バージョン</th></tr><tr><td>binutils-arm-linux-gnu</td><td>2.17-3pylone0</td></tr><tr><td>cpp-4.1-arm-linux-gnu</td><td>4.1.1-21pylone1</td></tr><tr><td>g++-4.1-arm-linux-gnu</td><td>4.1.1-21pylone1</td></tr><tr><td>gcc-4.1-arm-linux-gnu</td><td>4.1.1-21pylone1</td></tr><tr><td>gcc-4.1-arm-linux-gnu-base</td><td>4.1.1-21pylone1</td></tr><tr><td>gdb-arm-linux-gnu</td><td>6.6.dfsg.90.20070912-1</td></tr><tr><td>libc6-arm-cross</td><td>2.3.6.ds1-13etch2</td></tr><tr><td>libc6-dev-arm-cross</td><td>2.3.6.ds1-13etch2</td></tr><tr><td>libgcc1-arm-cross</td><td>1:4.1.1-21pylone1</td></tr><tr><td>libstdc++6-4.1-dev-arm-cross</td><td>4.1.1-21pylone1</td></tr><tr><td>libstdc++6-arm-cross</td><td>4.1.1-21pylone1</td></tr><tr><td>linux-kernel-headers-arm-cross</td><td>2.6.18-7</td></tr></table>
<h3 id="g1-75.2D.62.6F.6F.74.2D.74.6F.6F.6C.73.E3.81.AE.E3.82.A4.E3.83.B3.E3.82.B9.E3.83.88.E3.83.BC.E3.83.AB">3. u-boot-toolsのインストール</h3>
<p>u-boot-toolsパッケージをインストールする手順です。</p>
<p class="info">u-boot-toolsにはLinuxカーネルやinitrdを -Boot 形式に変換するmkimageコマンドなどが含まれます。Linuxカーネルをソースからビルドする場合や、initrdイメージを作る場合は u-boot-toolsをインストールしてください。</p>
<p>yumレポジトリを追加するため、/etc/yum.repos.d/pylone-jp.repoに以下を追加してください。</p>
<pre>[pylone-tools]
name=PyloneTools
baseurl=http://downloads.pylone.jp/tools/rpm/
enabled=1
gpgcheck=0</pre>
<p>リポジトリ情報を更新します。</p>
<pre># yum update</pre>
<p>u-boot-tools をインストールします。</p>
<pre># yum install u-boot-tools</pre>
<h3 id="g1-6D.74.64.2D.75.74.69.6C.73.E3.81.AE.E3.82.A4.E3.83.B3.E3.82.B9.E3.83.88.E3.83.BC.E3.83.AB">4. mtd-utilsのインストール</h3>
<p>mtd-utilsをインストールする手順です。</p>
<p class="info">NANDに置くルートファイルシステムのjffs2イメージをホストで作成する場合はmtd-utilsをインストールしてください。</p>
<pre># yum install mtd-utils</pre>
]]></description>
   <category domain="http://pylone.jp/bishop/docs/how_to_install_cross_development_tools_fedora.html">doc</category>
   <pubDate>Sun, 03 Feb 2008 16:43 GMT</pubDate>
</item>

<item>
   <title>Linux カーネルプロファイリング</title>
   <guid isPermaLink="true">http://pylone.jp/bishop/docs/kernel_profiling.html</guid>

   <link>http://pylone.jp/bishop/docs/kernel_profiling.html</link>
   <description><![CDATA[

<p>このドキュメントでは組込み Linux 開発用 CPU ボード <a href="/bishop/">Bishop</a> でカーネルレベルのプロファイリングを行う手順として、
最もシンプルな readprofile と今後 Linux カーネルの標準的なプロファイラとなると思われる <a href="http://oprofile.sourceforge.net/news/">OProfile</a> の
簡単な使用方法を紹介します。</p>
<div class="toc"><div class="head">目次</div><ul><li style="margin-left:1em;" class="depth1">1. <a href="#g1-72.65.61.64.70.72.6F.66.69.6C.65">readprofile</a></li><li style="margin-left:2em;" class="depth2">1.1. <a href="#g1-readprofile-abstraction">概要</a></li><li style="margin-left:2em;" class="depth2">1.2. <a href="#g1-readprofile-usage">使用方法</a></li><li style="margin-left:3em;" class="depth3">1.2.1. <a href="#g1-readprofile-install">readprofile のインストール</a></li><li style="margin-left:3em;" class="depth3">1.2.2. <a href="#g1-readprofile-linux-build">Linux カーネルのビルド</a></li><li style="margin-left:3em;" class="depth3">1.2.3. <a href="#g1-readprofile-linux-boot">Linux カーネルを起動</a></li><li style="margin-left:3em;" class="depth3">1.2.4. <a href="#g1-72.65.61.64.70.72.6F.66.69.6C.65.20.E3.81.AE.E5.9F.BA.E6.9C.AC.E7.9A.84.E3.81.AA.E4.BD.BF.E3.81.84.E6.96.B9">readprofile の基本的な使い方</a></li><li style="margin-left:2em;" class="depth2">1.3. <a href="#g1-E3.83.97.E3.83.AD.E3.83.95.E3.82.A1.E3.82.A4.E3.83.AA.E3.83.B3.E3.82.B0.E3.83.90.E3.83.83.E3.83.95.E3.82.A1.E3.81.AE.E3.82.B5.E3.82.A4.E3.82.BA.E3.81.AB.E3.81.A4.E3.81.84.E3.81.A6">プロファイリングバッファのサイズについて</a></li><li style="margin-left:1em;" class="depth1">2. <a href="#g1-4F.50.72.6F.66.69.6C.65">OProfile</a></li><li style="margin-left:2em;" class="depth2">2.1. <a href="#g1-oprofile-abstraction">概要</a></li><li style="margin-left:2em;" class="depth2">2.2. <a href="#g1-oprofile-usage">使用方法</a></li><li style="margin-left:3em;" class="depth3">2.2.1. <a href="#g1-oprofile-linux-build">Linux カーネルのビルド</a></li><li style="margin-left:3em;" class="depth3">2.2.2. <a href="#g1-oprofile-linux-boot">Linux カーネルを起動</a></li><li style="margin-left:3em;" class="depth3">2.2.3. <a href="#g1-4F.50.72.6F.66.69.6C.65.20.E3.81.AE.E3.82.A4.E3.83.B3.E3.82.B9.E3.83.88.E3.83.BC.E3.83.AB">OProfile のインストール</a></li><li style="margin-left:3em;" class="depth3">2.2.4. <a href="#g1-4F.50.72.6F.66.69.6C.65.20.E3.81.AE.E5.9F.BA.E6.9C.AC.E7.9A.84.E3.81.AA.E4.BD.BF.E3.81.84.E6.96.B9">OProfile の基本的な使い方</a></li><li style="margin-left:1em;" class="depth1">3. <a href="#g1-E9.96.A2.E9.80.A3.E3.83.AA.E3.83.B3.E3.82.AF">関連リンク</a></li></ul></div>
<h3 id="g1-72.65.61.64.70.72.6F.66.69.6C.65">1. readprofile</h3>
<h4 id="g1-readprofile-abstraction">1.1. 概要</h4>
<p>Linuxカーネルに標準で含まれるシンプルなプロファイラ (kernel/profile.c) は tick 毎に実行アドレスを
カーネル内部のプロファイリングバッファに保持します。
このバッファは仮想ファイル /proc/profile を通じてユーザ空間からアクセスできますが、
/proc/profile はバイナリファイルであるためそのままでは読めません。
readprofile は /proc/profile を可読化するために使用されるツールです。</p>
<h4 id="g1-readprofile-usage">1.2. 使用方法</h4>
<h5 id="g1-readprofile-install">1.2.1. readprofile のインストール</h5>
<p>readprofile コマンドをインストールしてください。
Debian の場合、readprofile は util-linux パッケージに含まれます。</p>
<pre>
# <span class="cmdline">aptitude install util-linux</span>
</pre>
<p>開発ホストとターゲットの両方にインストールしておくと便利です。</p>
<h5 id="g1-readprofile-linux-build">1.2.2. Linux カーネルのビルド</h5>
<p>CONFIG_PROFILING を有効にしてカーネルをビルドします。</p>
<pre>
$ <span class="cmdline">cd linux-2.6.26.8-pylone0</span>
$ <span class="cmdline">make ARCH=arm menuconfig</span>
  General setup  --->
   [*] Profiling support (EXPERIMENTAL)
$ <span class="cmdline">make ARCH=arm CROSS_COMPILE=arm-linux-gnu- uImage</span>
</pre>
<p>uImage と同時に作られる System.map も後で使用します。</p>
<h5 id="g1-readprofile-linux-boot">1.2.3. Linux カーネルを起動</h5>
<p>プロファイラを有効にするカーネル起動パラメータ profile を追加して前節でビルドしたカーネルを起動します。</p>
<p>U-Boot のモニタコマンドでカーネルパラメータを追加する例:</p>
<pre>
Bishop # <span class="cmdline">setenv bootargs console=....  <span class="example">profile=2</span></span>
</pre>
<p>profile= に渡される数値が大きい程プロファイラのバッファが小さくなります。</p>
<p>起動後に /proc/profile が存在すれば、カーネルのプロファイラが有効になっています。</p>
<h5 id="g1-72.65.61.64.70.72.6F.66.69.6C.65.20.E3.81.AE.E5.9F.BA.E6.9C.AC.E7.9A.84.E3.81.AA.E4.BD.BF.E3.81.84.E6.96.B9">1.2.4. readprofile の基本的な使い方</h5>
<p>-m オプションで System.map を指定します。</p>
<pre>
bishop:~# <span class="cmdline">readprofile -m /PATH/TO/System.map</span>
</pre>
<p>/proc/profile を可読化したものが出力されます。</p>
<pre>
bishop:~# <span class="cmdline">readprofile</span>
     3 start_kernel                               0.0045
     1 tcp_init                                   0.0014
    18 calibrate_delay                            0.0464
    19 do_DataAbort                               0.1187
     7 __dabt_svc                                 0.0729
       [...]
     1 down_write                                 0.0500
     1 down_read                                  0.0500
     4 __down_write_nested                        0.0182
     1 __down_write                               0.0417
     0 *unknown*
 15409 total                                      0.0047
</pre>
<p>1番目のカラムが tick 毎にサンプリングされた tick 回数で、
2番目のカラムが関数名です。
3番目のカラムは正規化された負荷で、サンプリングされた tick 回数と関数の長さの比率です。<sup><a id="footnote-rev-1" href="#footnote-1" title="the normalized `load' of the procedure, calculated as a ratio between the number of ticks and the length of the procedure">[1]</a></sup></p>
<p>-p オプションで /proc/profile を変更できますので、
ターゲット側のプロファイリングをホスト側で見たい場合は</p>
<p>ターゲット</p>
<pre>
bishop:~# <span class="cmdline">cat /proc/profile > profile-shapshot</span>
</pre>
<p>ホスト:</p>
<pre>
# <span class="cmdline">readprofile -p profile-snapshot -m /PATH/TO/System.map</span>
</pre>
<p>のようにすればよいでしょう。</p>
<p>また、-r オプションでプロファイラのバッファをリセットできるので、
特定のプログラム (your_program) 実行中のプロファイリングしたい場合は</p>
<pre>
bishop:~# <span class="cmdline">readprofile -r</span>
bishop:~# <span class="cmdline">your_program</span>
bishop:~# <span class="cmdline">readprofile -m /PATH/TO/System.map</span>
</pre>
<p>とすることもできます。</p>
<p>さらに詳しい使い方については
 <a href="http://linuxjm.sourceforge.jp/html/util-linux/man1/readprofile.1.html">readprofile(1)</a> を参照してください。</p>
<h4 id="g1-E3.83.97.E3.83.AD.E3.83.95.E3.82.A1.E3.82.A4.E3.83.AA.E3.83.B3.E3.82.B0.E3.83.90.E3.83.83.E3.83.95.E3.82.A1.E3.81.AE.E3.82.B5.E3.82.A4.E3.82.BA.E3.81.AB.E3.81.A4.E3.81.84.E3.81.A6">1.3. プロファイリングバッファのサイズについて</h4>
<p>プロファイラのバッファは kernel/profile.c の profile_init() で確保されます。</p>
<div class="highlight"><pre><span class="kt">void</span> <span class="n">__init</span> <span class="nf">profile_init</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span>
<span class="p">{</span>
	<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">prof_on</span><span class="p">)</span>
		<span class="k">return</span><span class="p">;</span>

	<span class="cm">/* only text is profiled */</span>
	<span class="n">prof_len</span> <span class="o">=</span> <span class="p">(</span><span class="n">_etext</span> <span class="o">-</span> <span class="n">_stext</span><span class="p">)</span> <span class="o">&gt;&gt;</span> <span class="n">prof_shift</span><span class="p">;</span>
	<span class="n">prof_buffer</span> <span class="o">=</span> <span class="n">alloc_bootmem</span><span class="p">(</span><span class="n">prof_len</span><span class="o">*</span><span class="k">sizeof</span><span class="p">(</span><span class="n">atomic_t</span><span class="p">));</span>
<span class="p">}</span>
</pre></div>

<p>prof_shift は profile= パラメータで渡された数値です。</p>
<p>_etext と _stext は以下のようにすれば知ることができます。</p>
<pre>
$ <span class="cmdline">arm-linux-gnu-objdump -t vmlinux | grep _[es]text</span>
c0376000 g       *ABS*  00000000 _etext
c0008000 g       .text.head     00000000 _stext
</pre>
<p>Linux/ARM の場合、上記の _etext, _stext で profile=2 とするとバッファサイズは</p>
<pre>バッファサイズ = ((_etext - _stext) &gt;&gt; prof_shift) * sizeof(struct atomic_t)
               = ((0xc0376000 - 0xc0008000) &gt;&gt; 2) * 4
               = 0x36e000
                 (約3.5MB)</pre>
<p>となります。</p>
<p>/proc/profile のファイルサイズはこれと同じになっている筈です。</p>
<h3 id="g1-4F.50.72.6F.66.69.6C.65">2. OProfile</h3>
<h4 id="g1-oprofile-abstraction">2.1. 概要</h4>
<p><a href="http://oprofile.sourceforge.net/news/">OProfile</a> は Linux カーネルに標準で含まれるオーバーヘッドが少ないシステムワイドなプロファイラです。
gprof などのユーザ空間プロファイラと違い、カーネル空間も含めたプロファイリングが可能です。</p>
<h4 id="g1-oprofile-usage">2.2. 使用方法</h4>
<h5 id="g1-oprofile-linux-build">2.2.1. Linux カーネルのビルド</h5>
<p>CONFIG_PROFILING と CONFIG_OPROFILE を有効にしてカーネルをビルドします。</p>
<pre>
$ <span class="cmdline">cd linux-2.6.26.8-pylone0</span>
$ <span class="cmdline">make ARCH=arm menuconfig</span>
  General setup  --->
   [*] Profiling support (EXPERIMENTAL)
   [ ] Activate markers
   &lt;*&gt; OProfile system profiling (EXPERIMENTAL)
$ <span class="cmdline">make ARCH=arm CROSS_COMPILE=arm-linux-gnu- uImage</span>
</pre>
<p>カーネル空間のプロファイリングを行うのであれば、
uImage だけでなく vmlinux も後で使用します。</p>
<h5 id="g1-oprofile-linux-boot">2.2.2. Linux カーネルを起動</h5>
<p>CONFIG_OPROFILE を有効にしたカーネルで起動します。
OProfile だけを使うのであれば起動パラメータを追加する必要はありません。</p>
<h5 id="g1-4F.50.72.6F.66.69.6C.65.20.E3.81.AE.E3.82.A4.E3.83.B3.E3.82.B9.E3.83.88.E3.83.BC.E3.83.AB">2.2.3. OProfile のインストール</h5>
<p>ターゲットの /etc/apt/sources.list に以下の apt-line を追加します。</p>
<pre>deb http://downloads.pylone.jp/bishop/deb/etch ./</pre>
<p>oprofile-common パッケージ をインストールします。</p>
<pre>
bishop:~# <span class="cmdline">aptitude update</span>
bishop:~# <span class="cmdline">aptitude install oprofile-common</span>
</pre>
<p>株式会社パイロンが etch の oprofile パッケージを ARM 用にリビルドした非公式パッケージです。
このパッケージに関する質問を Debian プロジェクトにすることはご遠慮ください。</p>
<h5 id="g1-4F.50.72.6F.66.69.6C.65.20.E3.81.AE.E5.9F.BA.E6.9C.AC.E7.9A.84.E3.81.AA.E4.BD.BF.E3.81.84.E6.96.B9">2.2.4. OProfile の基本的な使い方</h5>
<p>a.out 実行中のプロファイリングを行うには opcontrol コマンドを以下のように実行します。</p>
<pre>
bishop:~# <span class="cmdline">opcontrol --vmlinux=/PATH/TO/vmlinux</span>
bishop:~# <span class="cmdline">opcontrol --reset</span>
bishop:~# <span class="cmdline">opcontrol --start ; a.out ; opcontrol --stop</span>
</pre>
<p>カーネル空間のプロファイリングが不要であれば --vmlinux= の代わりに --no-vmlinux を指定します。</p>
<pre>
bishop:~# <span class="cmdline">opcontrol --no-vmlinux</span>
</pre>
<p>プロファイルの結果を見るためには opreport コマンドを使用します。</p>
<pre>
bishop:~# <span class="cmdline">opreport</span>
CPU: CPU with timer interrupt, speed 0 MHz (estimated)
Profiling through timer interrupt
          TIMER:0|
  samples|      %|
------------------
     3475 89.1940 a.out
      356  9.1376 vmlinux
       34  0.8727 bash
       17  0.4363 libc-2.3.6.so
       12  0.3080 ld-2.3.6.so
        1  0.0257 mktemp
        1  0.0257 oprofiled
</pre>
<p>上記の通りオプション無しで opreport を実行すると
各プロセス毎のサンプリング数で表示されます。
Bishop の S3C2440 を含めハードウェアパフォーマンスモニタをサポートしていない CPU の場合は
タイマ割込みによるサンプリングとなり、
粒度は CONFIG_HZ によって変わります。</p>
<p>-l オプションをつけて opreport を実行すればプロセス毎ではなくシンボル名毎の
表示になります。</p>
<pre>
bishop:~# <span class="cmdline">opreport -l</span>
CPU: CPU with timer interrupt, speed 0 MHz (estimated)
Profiling through timer interrupt
samples  %        app name                 symbol name
3473     89.1427  a.out                    function_heavy
185       4.7485  vmlinux                  default_idle
34        0.8727  bash                     (no symbols)
17        0.4363  libc-2.3.6.so            (no symbols)
16        0.4107  vmlinux                  $a
16        0.4107  vmlinux                  update_mmu_cache
[...]
1         0.0257  vmlinux                  write_cache_pages
1         0.0257  vmlinux                  xprt_release_rqst_cong
1         0.0257  vmlinux                  xprt_reserve_xprt_cong
</pre>
<p>上記の libc-2.3.6.so のように実行ファイルにシンボルが含まれていない場合は (no symbols) と表示されます。</p>
<p>実行ファイルを指定することで特定のプログラムのみを表示させることもできます。</p>
<pre>
bishop:~# <span class="cmdline">opreport -l a.out</span>
CPU: CPU with timer interrupt, speed 0 MHz (estimated)
Profiling through timer interrupt
samples  %        symbol name
3473     99.9424  function_heavy
1         0.0288  function_light
1         0.0288  function_nop
</pre>
<p>シンボル情報付きの実行ファイルとソースコードがあれば、opannotate コマンドでプロファイリング結果とソースを関連付けて表示することもできます。</p>
<p>Cのソースと関連付けて表示:</p>
<pre>
bishop:~# <span class="cmdline">opannotate -s a.out</span>
</pre>
<p>アセンブリと関連付けて表示:</p>
<pre>
bishop:~# <span class="cmdline">opannotate -a a.out</span>
</pre>
<p>Cとアセンブリの表示をミックス:</p>
<pre>
bishop:~# <span class="cmdline">opannotate -sa a.out</span>
</pre>
<p>さらに詳しい使い方については <a href="http://oprofile.sourceforge.net/doc/index.html">OProfile のマニュアル</a>を参照してください。</p>
<h3 id="g1-E9.96.A2.E9.80.A3.E3.83.AA.E3.83.B3.E3.82.AF">3. 関連リンク</h3>
<ul><li><a href="http://oprofile.sourceforge.net/">OProfile 公式サイト</a></li><li><a href="http://linuxjf.sourceforge.jp/JFdocs/kernel-docs-2.6/basic_profiling.txt.html">JF: Linux Kernel 2.6 Documentation: basic_profiling.txt</a></li></ul>
<div class="footnotes"><ol><li id="footnote-1"><a href="#footnote-rev-1">^</a> the normalized `load' of the procedure, calculated as a ratio between the number of ticks and the length of the procedure</li></ol></div>]]></description>
   <category domain="http://pylone.jp/bishop/docs/kernel_profiling.html">doc</category>
   <pubDate>Fri, 09 Jan 2009 08:57 GMT</pubDate>
</item>

<item>
   <title>サンプルコード</title>
   <guid isPermaLink="true">http://pylone.jp/bishop/docs/demo-programs.html</guid>

   <link>http://pylone.jp/bishop/docs/demo-programs.html</link>
   <description><![CDATA[

<p><a href="http://code.pylone.jp/hg/demo-programs/">サンプルコード</a> に関する説明です。</p>
<div class="toc"><div class="head">目次</div><ul><li style="margin-left:1em;" class="depth1">1. <a href="#g1-E3.82.AF.E3.83.AD.E3.82.B9.E9.96.8B.E7.99.BA.E3.83.84.E3.83.BC.E3.83.AB.E3.81.AE.E3.82.A4.E3.83.B3.E3.82.B9.E3.83.88.E3.83.BC.E3.83.AB">クロス開発ツールのインストール</a></li><li style="margin-left:1em;" class="depth1">2. <a href="#g1-E3.82.AF.E3.83.AD.E3.82.B9.E9.96.8B.E7.99.BA.E7.92.B0.E5.A2.83.E7.94.A8.E3.83.A9.E3.82.A4.E3.83.96.E3.83.A9.E3.83.AA.E3.81.AE.E3.82.A4.E3.83.B3.E3.82.B9.E3.83.88.E3.83.BC.E3.83.AB">クロス開発環境用ライブラリのインストール</a></li><li style="margin-left:1em;" class="depth1">3. <a href="#g1-E3.82.B5.E3.83.B3.E3.83.97.E3.83.AB.E3.82.B3.E3.83.BC.E3.83.89.E3.81.AE.E3.82.B3.E3.83.B3.E3.83.91.E3.82.A4.E3.83.AB">サンプルコードのコンパイル</a></li><li style="margin-left:1em;" class="depth1">4. <a href="#g1-E5.AE.9F.E8.A1.8C">実行</a></li><li style="margin-left:2em;" class="depth2">4.1. <a href="#g1-74.6F.75.63.68.73.63.72.65.65.6E">touchscreen</a></li><li style="margin-left:2em;" class="depth2">4.2. <a href="#g1-66.72.65.65.74.79.70.65">freetype</a></li></ul></div>
<h3 id="g1-E3.82.AF.E3.83.AD.E3.82.B9.E9.96.8B.E7.99.BA.E3.83.84.E3.83.BC.E3.83.AB.E3.81.AE.E3.82.A4.E3.83.B3.E3.82.B9.E3.83.88.E3.83.BC.E3.83.AB">1. クロス開発ツールのインストール</h3>
<p>クロス開発ツールのインストール
(<a href="how_to_install_cross_development_tools_debian.html">Debian編</a>,
<a href="how_to_install_cross_development_tools_fedora.html">Fedora編</a>)
を参照してください。</p>
<h3 id="g1-E3.82.AF.E3.83.AD.E3.82.B9.E9.96.8B.E7.99.BA.E7.92.B0.E5.A2.83.E7.94.A8.E3.83.A9.E3.82.A4.E3.83.96.E3.83.A9.E3.83.AA.E3.81.AE.E3.82.A4.E3.83.B3.E3.82.B9.E3.83.88.E3.83.BC.E3.83.AB">2. クロス開発環境用ライブラリのインストール</h3>
<p><a href="http://packages.debian.org/ja/etch/arm/libfreetype6/download">libfreetype6</a>、
<a href="http://packages.debian.org/ja/etch/arm/libfreetype6-dev/download">libfreetype6-dev</a>、
<a href="http://packages.debian.org/ja/etch/arm/zlib1g/download">libzlib</a>、
<a href="http://packages.debian.org/ja/etch/arm/zlib1g-dev/download">libzlib</a>
をダウンロードします。</p>
<p>dpkg-cross でクロス開発環境用のパッケージに変換します。</p>
<pre>$ dpkg-cross -a arm -b zlib1g_1.2.3-13_arm.deb
Building zlib1g-arm-cross_1.2.3-13_all.deb
$ dpkg-cross -a arm -b zlib1g-dev_1.2.3-13_arm.deb
Building zlib1g-dev-arm-cross_1.2.3-13_all.deb
$ dpkg-cross -a arm -b libfreetype6_2.2.1-5+etch2_arm.deb
Building libfreetype6-arm-cross_2.2.1-5+etch2_all.deb
$ dpkg-cross -a arm -b libfreetype6-dev_2.2.1-5+etch2_arm.deb
Building libfreetype6-dev-arm-cross_2.2.1-5+etch2_all.deb</pre>
<p>変換したパッケージをインストールします。</p>
<pre># dpkg -i zlib1g-arm-cross_1.2.3-13_all.deb
# dpkg -i zlib1g-dev-arm-cross_1.2.3-13_all.deb
# dpkg -i libfreetype6-arm-cross_2.2.1-5+etch2_all.deb
# dpkg -i libfreetype6-dev-arm-cross_2.2.1-5+etch2_all.deb</pre>
<h3 id="g1-E3.82.B5.E3.83.B3.E3.83.97.E3.83.AB.E3.82.B3.E3.83.BC.E3.83.89.E3.81.AE.E3.82.B3.E3.83.B3.E3.83.91.E3.82.A4.E3.83.AB">3. サンプルコードのコンパイル</h3>
<ol><li>ソースコード <a href="http://downloads.pylone.jp/src/demo-programs-20080624.tar.bz2">demo-programs-20080624.tar.bz2</a> をダウンロード</li><li>適当な作業ディレクトリに展開</li><li>make を実行</li></ol>
<pre>$ tar xvjf demo-programs-20080624.tar.bz2
$ cd demo-programs-20080624
$ make</pre>
<h3 id="g1-E5.AE.9F.E8.A1.8C">4. 実行</h3>
<h4 id="g1-74.6F.75.63.68.73.63.72.65.65.6E">4.1. touchscreen</h4>
<pre>$ ./touchscreen</pre>
<p>
<object type="application/x-shockwave-flash" data="http://www.youtube.com/v/_B2OE7fsrGw" width="425" height="345">
  <param name="movie" value="http://www.youtube.com/v/_B2OE7fsrGw" />
  <param name="wmode" value="transparent" />
</object>
</p>
<h4 id="g1-66.72.65.65.74.79.70.65">4.2. freetype</h4>
<p>表示したい文字列、サイズ (ピクセル)、TrueType フォントを引数に指定して起動します。</p>
<pre>$ ./freetype 'Hello World!' 62 YourFavoriteFont.ttf</pre>
<p><img src="/i/bishop/freetype.jpg" alt="freetype スクリーンショット" width="488" height="297" /></p>
]]></description>
   <category domain="http://pylone.jp/bishop/docs/demo-programs.html">doc</category>
   <pubDate>Wed, 04 Jun 2008 12:24 GMT</pubDate>
</item>

<item>
   <title>バージョンアップ手順</title>
   <guid isPermaLink="true">http://pylone.jp/bishop/docs/update_to_rev2.html</guid>

   <link>http://pylone.jp/bishop/docs/update_to_rev2.html</link>
   <description><![CDATA[

<p>このドキュメントは組込み Linux 開発用 CPU ボード <a href="/bishop/">Bishop</a>
を2008年12月迄にご購入いただいたお客様向けのソフトウェアアップデート手順です。</p>
<div class="toc"><div class="head">目次</div><ul><li style="margin-left:1em;" class="depth1">1. <a href="#g1-55.2D.42.6F.6F.74">U-Boot</a></li><li style="margin-left:1em;" class="depth1">2. <a href="#g1-4C.69.6E.75.78.20.E3.82.AB.E3.83.BC.E3.83.8D.E3.83.AB">Linux カーネル</a></li><li style="margin-left:2em;" class="depth2">2.1. <a href="#g1-E5.87.BA.E8.8D.B7.E7.8A.B6.E6.85.8B.E3.81.8B.E3.82.89.E3.82.AB.E3.83.BC.E3.83.8D.E3.83.AB.E3.82.92.E5.A4.89.E6.9B.B4.E3.81.97.E3.81.A6.E3.81.84.E3.81.AA.E3.81.84.E5.A0.B4.E5.90.88">出荷状態からカーネルを変更していない場合</a></li><li style="margin-left:2em;" class="depth2">2.2. <a href="#g1-E5.86.8D.E6.A7.8B.E7.AF.89.E3.81.97.E3.81.9F.E3.82.AB.E3.83.BC.E3.83.8D.E3.83.AB.E3.82.92.E4.BD.BF.E7.94.A8.E3.81.97.E3.81.A6.E3.81.84.E3.82.8B.E5.A0.B4.E5.90.88">再構築したカーネルを使用している場合</a></li><li style="margin-left:1em;" class="depth1">3. <a href="#g1-E3.83.AB.E3.83.BC.E3.83.88.E3.83.95.E3.82.A1.E3.82.A4.E3.83.AB.E3.82.B7.E3.82.B9.E3.83.86.E3.83.A0">ルートファイルシステム</a></li></ul></div>
<h3 id="g1-55.2D.42.6F.6F.74">1. U-Boot</h3>
<p>アップデートの必要はありません。</p>
<h3 id="g1-4C.69.6E.75.78.20.E3.82.AB.E3.83.BC.E3.83.8D.E3.83.AB">2. Linux カーネル</h3>
<h4 id="g1-E5.87.BA.E8.8D.B7.E7.8A.B6.E6.85.8B.E3.81.8B.E3.82.89.E3.82.AB.E3.83.BC.E3.83.8D.E3.83.AB.E3.82.92.E5.A4.89.E6.9B.B4.E3.81.97.E3.81.A6.E3.81.84.E3.81.AA.E3.81.84.E5.A0.B4.E5.90.88">2.1. 出荷状態からカーネルを変更していない場合</h4>
<p><a href="/bishop/downloads.html">ダウンロード</a>ページから
最新の uImage を ダウンロードして NOR の uImage を上書きしてください。</p>
<p>上書きする手順については
<a href="/bishop/docs/flash-writing.html">フラッシュへの書き込み</a>
を参照してください。</p>
<h4 id="g1-E5.86.8D.E6.A7.8B.E7.AF.89.E3.81.97.E3.81.9F.E3.82.AB.E3.83.BC.E3.83.8D.E3.83.AB.E3.82.92.E4.BD.BF.E7.94.A8.E3.81.97.E3.81.A6.E3.81.84.E3.82.8B.E5.A0.B4.E5.90.88">2.2. 再構築したカーネルを使用している場合</h4>
<p>古い .config をベースにカーネルを再構築するのをおすすめします。
手順は以下の通りです。</p>
<pre>$ cp linux-2.6.22.1-pylone0/.config linux-2.6.26.8-pylone0/
$ cd linux-2.6.26.8
$ make ARCH=arm oldconfig
(2.6.22.1にはなかった CONFIG_* を対話形式で選択)
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnu- uImage</pre>
<p>出来上がった uImage で NOR の uImage を上書きしてください。</p>
<p>上書きする手順については
<a href="/bishop/docs/flash-writing.html">フラッシュへの書き込み</a>
を参照してください。</p>
<h3 id="g1-E3.83.AB.E3.83.BC.E3.83.88.E3.83.95.E3.82.A1.E3.82.A4.E3.83.AB.E3.82.B7.E3.82.B9.E3.83.86.E3.83.A0">3. ルートファイルシステム</h3>
<p>aptitude で update すれば etch 最新の状態に更新できます。</p>
<pre>bishop:~# aptitude update
bishop:~# aptitude upgrade</pre>
]]></description>
   <category domain="http://pylone.jp/bishop/docs/update_to_rev2.html">doc</category>
   <pubDate>Sat, 10 Jan 2009 07:10 GMT</pubDate>
</item>

<item>
   <title>Linux カーネルのビルド</title>
   <guid isPermaLink="true">http://pylone.jp/bishop/docs/how_to_build_linux.html</guid>

   <link>http://pylone.jp/bishop/docs/how_to_build_linux.html</link>
   <description><![CDATA[

<p>Bishop向けにLinuxカーネルをビルドする手順です。</p>
<h3 id="g1-E3.82.AF.E3.83.AD.E3.82.B9.E9.96.8B.E7.99.BA.E3.83.84.E3.83.BC.E3.83.AB.E3.81.AE.E3.82.A4.E3.83.B3.E3.82.B9.E3.83.88.E3.83.BC.E3.83.AB">1. クロス開発ツールのインストール</h3>
<p>クロス開発ツールのインストール
(<a href="how_to_install_cross_development_tools_debian.html">Debian編</a>,
<a href="how_to_install_cross_development_tools_fedora.html">Fedora編</a>)
を参照してください。</p>
<h3 id="g1-E3.82.BD.E3.83.BC.E3.82.B9.E3.82.B3.E3.83.BC.E3.83.89.E3.81.AE.E5.85.A5.E6.89.8B">2. ソースコードの入手</h3>
<p>ソースコード
<a href="http://downloads.pylone.jp/src/linux-2.6.26.8-pylone0.tar.gz">Linux-2.6.26.8-pylone0.tar.gz</a>
をダウンロードします。</p>
<h3 id="g1-E3.82.BD.E3.83.BC.E3.82.B9.E3.82.B3.E3.83.BC.E3.83.89.E3.81.AE.E5.B1.95.E9.96.8B">3. ソースコードの展開</h3>
<p>ソースコードを適当な作業ディレクトリに展開します。</p>
<pre>$ tar xzvf linux-2.6.26.8-pylone0.tar.gz</pre>
<p>展開したディレクトリに移動します。</p>
<pre>$ cd linux-2.6.26.8-pylone0</pre>
<h3 id="g1-E3.82.AB.E3.83.BC.E3.83.8D.E3.83.AB.E3.81.AE.E8.A8.AD.E5.AE.9A">4. カーネルの設定</h3>
<p>まず、Bishop 用デフォルト設定 arch/arm/configs/bishop_defconfig を .config にコピーします。</p>
<pre>$ cp arch/arm/configs/bishop_defconfig .config</pre>
<p>デフォルト設定のままでよければビルドに進んでください。
設定を変更する場合は menuconfig で変更してください。</p>
<pre>$ make ARCH=arm menuconfig</pre>
<p class="info">ARCHはアーキテクチャの指定です。</p>
<p><img src="/i/ss/menuconfig.jpg" alt="スクリーンショット" /></p>
<p>変更した設定は .config に保存されます。</p>
<p class="info">ここでは menuconfig を使いましたが、他にも対話型の config、Qt の xconfig (Qt)、Gtk+ の gconfig があります。</p>
<h3 id="g1-E3.83.93.E3.83.AB.E3.83.89">5. ビルド</h3>
<p>ターゲットを指定してビルドします。
U-Boot が認識できるように U-Boot 形式のイメージファイルをビルドする場合のターゲットは uImage です。</p>
<pre>$ CROSS_COMPILE=arm-linux-gnu- ARCH=arm make uImage</pre>
<p>ビルドが正常に終了すれば arch/arm/boot/uImage が出来ます。</p>
]]></description>
   <category domain="http://pylone.jp/bishop/docs/how_to_build_linux.html">doc</category>
   <pubDate>Sun, 03 Feb 2008 16:43 GMT</pubDate>
</item>

<item>
   <title>DR-01用S3C2440Aペリフェラル定義ファイル</title>
   <guid isPermaLink="true">http://pylone.jp/bishop/docs/dr01_s3c2440a_pri.html</guid>

   <link>http://pylone.jp/bishop/docs/dr01_s3c2440a_pri.html</link>
   <description><![CDATA[

<p><a href="http://www.bitran.co.jp/ice/dr01.html">ビットラン DR-01</a> の
デバッガソフト用S3C2440Aペリフェラル定義ファイルの使用方法です。</p>
<h3 id="g1-43.6F.64.65.20.53.74.61.67.65.20.E3.81.AE.E5.A0.B4.E5.90.88">1. Code Stage の場合</h3>
<p><img src="http://farm4.static.flickr.com/3265/3117956236_4fc02ea499.jpg" alt="codestage-s3c2440" width="500" height="382" /></p>
<ol><li>ペリフェラル定義ファイル <a href="http://downloads.pylone.jp/bishop/s3c2440a-20081218.peri">s3c2440a-20081218.peri</a> をダウンロード</li><li>ダウンロードしたs3c2440a-20081218.peri を arm920t.peri にリネームして Code Stage インストール先の data フォルダ (通常は C:\Program Files\BITRAN\CodeStage\data) にコピー</li><li>Code Stage を起動</li><li>「ウィンドウ」→「ペリフェラル」</li></ol>
<h3 id="g1-42.49.54.58.2D.4E.65.6F.20.E3.81.AE.E5.A0.B4.E5.90.88">2. BITX-Neo の場合</h3>
<p><img src="http://farm4.static.flickr.com/3001/2550285207_b001017028.jpg" alt="bitxneo-s3c2440" width="500" height="351" /></p>
<ol><li>ペリフェラル定義ファイル <a href="http://downloads.pylone.jp/bishop/s3c2440a-20081218.pri">s3c2440a-20081218.pri</a> をダウンロード</li><li>ダウンロードしたs3c2440a-20081218.pri を arm920t.pri にリネームして BITX-Neo インストール先の data フォルダ (通常は C:\BITX-Neo\data) にコピー</li><li>BITX-Neo を起動</li><li>「ウィンドウ」→「ペリフェラル」</li></ol>
<p class="alert">この定義ファイルは
株式会社パイロンが独自に作成・配布しているものです。
この定義ファイルについてビットラン株式会社様に質問しないでください。</p>
]]></description>
   <category domain="http://pylone.jp/bishop/docs/dr01_s3c2440a_pri.html">doc</category>
   <pubDate>Sat, 07 Jun 2008 10:29 GMT</pubDate>
</item>

<item>
   <title>distcc による分散クロスコンパイル</title>
   <guid isPermaLink="true">http://pylone.jp/bishop/docs/how_to_use_distcc.html</guid>

   <link>http://pylone.jp/bishop/docs/how_to_use_distcc.html</link>
   <description><![CDATA[

<p><a href="/bishop/">Bishop</a>
の U-Boot や Linuxカーネルを
<a href="http://distcc.org/">distcc</a> でビルドする手順です。</p>
<div class="toc"><div class="head">目次</div><ul><li style="margin-left:1em;" class="depth1">1. <a href="#g1-64.69.73.74.63.63.20.E7.92.B0.E5.A2.83.E3.81.AE.E6.A7.8B.E7.AF.89">distcc 環境の構築</a></li><li style="margin-left:2em;" class="depth2">1.1. <a href="#g1-44.65.62.69.61.6E">Debian</a></li><li style="margin-left:2em;" class="depth2">1.2. <a href="#g1-46.65.64.6F.72.61">Fedora</a></li><li style="margin-left:1em;" class="depth1">2. <a href="#g1-64.69.73.74.63.63.20.E3.81.AB.E3.82.88.E3.82.8B.E3.82.AF.E3.83.AD.E3.82.B9.E3.82.B3.E3.83.B3.E3.83.91.E3.82.A4.E3.83.AB">distcc によるクロスコンパイル</a></li><li style="margin-left:2em;" class="depth2">2.1. <a href="#g1-4C.69.6E.75.78.20.E3.82.AB.E3.83.BC.E3.83.8D.E3.83.AB">Linux カーネル</a></li><li style="margin-left:2em;" class="depth2">2.2. <a href="#g1-55.2D.42.6F.6F.74">U-Boot</a></li><li style="margin-left:1em;" class="depth1">3. <a href="#g1-E3.83.AA.E3.83.B3.E3.82.AF">リンク</a></li></ul></div>
<h3 id="g1-64.69.73.74.63.63.20.E7.92.B0.E5.A2.83.E3.81.AE.E6.A7.8B.E7.AF.89">1. distcc 環境の構築</h3>
<p>例として以下の環境を想定しています。</p>
<ul><li>host-a, host-b, host-c の3台で環境を構築するとします。</li><li>各ホストのプロセッサ・コアの数はそれぞれひとつだけとします。</li><li>各ホストのアーキテクチャは x86 (IA-32) とします。</li><li>あらかじめ各ホストに同じバージョンのクロス開発環境が用意されているものとします。</li></ul>
<h4 id="g1-44.65.62.69.61.6E">1.1. Debian</h4>
<pre># aptitude install distcc</pre>
<p>/etc/default/distcc の設定例:</p>
<div class="highlight"><pre><span class="c"># デーモンとして起動</span>
<span class="nv">STARTDISTCC</span><span class="o">=</span><span class="s2">&quot;true&quot;</span>
<span class="c"># local と 192.168.0.0/24 からの要求を許可する</span>
<span class="nv">ALLOWEDNETS</span><span class="o">=</span><span class="s2">&quot;127.0.0.1 192.168.0.0/24&quot;</span>
<span class="c"># listner は限定しない</span>
<span class="nv">LISTENER</span><span class="o">=</span><span class="s2">&quot;&quot;</span>
<span class="c"># NICE 値はデフォルト</span>
<span class="nv">NICE</span><span class="o">=</span><span class="s2">&quot;10&quot;</span>
<span class="c"># zeroconfサポートを有効 (etch の distcc では zeroconf はサポートされていません)</span>
<span class="nv">ZEROCONF</span><span class="o">=</span><span class="s2">&quot;true&quot;</span>
</pre></div>

<h4 id="g1-46.65.64.6F.72.61">1.2. Fedora</h4>
<p>...</p>
<h3 id="g1-64.69.73.74.63.63.20.E3.81.AB.E3.82.88.E3.82.8B.E3.82.AF.E3.83.AD.E3.82.B9.E3.82.B3.E3.83.B3.E3.83.91.E3.82.A4.E3.83.AB">2. distcc によるクロスコンパイル</h3>
<h4 id="g1-4C.69.6E.75.78.20.E3.82.AB.E3.83.BC.E3.83.8D.E3.83.AB">2.1. Linux カーネル</h4>
<p>host-a が localhost とすると以下のようになります。</p>
<pre>$ export DISTCC_HOSTS="localhost host-b host-c"
$ make -j6 ARCH=arm CROSS_COMPILE=arm-linux-gnu- CC="distcc arm-linux-gnu-gcc-4.1" uImage</pre>
<ul><li>環境変数 DISTCC_HOSTS でホストを指定します。</li><li>-j オプションでジョブの数を指定します。<a href="http://distcc.samba.org/faq.html">FAQ</a> によるとCPU数の2倍程度が目安のようです。</li></ul>
<h4 id="g1-55.2D.42.6F.6F.74">2.2. U-Boot</h4>
<p>...</p>
<h3 id="g1-E3.83.AA.E3.83.B3.E3.82.AF">3. リンク</h3>
<ul><li><a href="http://distcc.org/">distcc: a fast, free distributed C/C++ compiler</a></li><li><a href="/blog/cross-distcc-linux">distcc による Linux カーネルのクロスコンパイル</a></li></ul>
]]></description>
   <category domain="http://pylone.jp/bishop/docs/how_to_use_distcc.html">doc</category>
   <pubDate>Sun, 22 Jun 2008 12:09 GMT</pubDate>
</item>

<item>
   <title>スプラッシュ画像の変更</title>
   <guid isPermaLink="true">http://pylone.jp/bishop/docs/splashimage.html</guid>

   <link>http://pylone.jp/bishop/docs/splashimage.html</link>
   <description><![CDATA[

<p>U-Bootのスプラッシュ画像を変更する方法です。</p>
<h3 id="g1-E7.94.BB.E5.83.8F.E3.81.AE.E4.BD.9C.E6.88.90">1. 画像の作成</h3>
<p>LCDのサイズに合わせたBMP画像を用意します。</p>
<h3 id="g1-E5.9C.A7.E7.B8.AE">2. 圧縮</h3>
<p>gzipで圧縮します。</p>
<pre>$ gzip &lt;BMP画像ファイル&gt;</pre>
<p class="alert">この段階で 64KBを越えてしまう場合は、色数を減らしてサイズを抑えてください。</p>
<h3 id="g1-4E.4F.52.E3.81.B8.E6.9B.B8.E3.81.8D.E8.BE.BC.E3.82.80">3. NORへ書き込む</h3>
<p>U-BootのTFTPで、圧縮したBMP画像ファイルを
Bishopへ転送します。</p>
<pre>Bishop # setenv ipaddr &lt;IP アドレス&gt;
Bishop # setenv serverip &lt;TFTP サーバの IP アドレス&gt;
Bishop # tftpboot 30900000 &lt;圧縮した画像ファイル&gt;</pre>
<p>NORのスプラッシュ画像領域に書き込みます。</p>
<pre>Bishop # erase 1:57
Bishop # cp.b 30900000 320000 10000</pre>
<p>環境変数splashimageを設定して保存します。</p>
<pre>Bishop # setenv splashimage 320000
Bishop # saveenv</pre>
<p>再起動すれば、新しいスプラッシュ画像になっている筈です。</p>
]]></description>
   <category domain="http://pylone.jp/bishop/docs/splashimage.html">doc</category>
   <pubDate>Sun, 03 Feb 2008 16:43 GMT</pubDate>
</item>

<item>
   <title>NFSサーバの設定</title>
   <guid isPermaLink="true">http://pylone.jp/bishop/docs/setup_nfs_server.html</guid>

   <link>http://pylone.jp/bishop/docs/setup_nfs_server.html</link>
   <description><![CDATA[

<p>NFS サーバの設定方法です。ターゲットから NFS でルートファイルシステムをマウント (NFSRoot) する場合を前提にしています。</p>
<div class="toc"><div class="head">目次</div><ul><li style="margin-left:1em;" class="depth1">1. <a href="#g1-44.65.62.69.61.6E.20.47.4E.55.2F.4C.69.6E.75.78.20.34.2E.30.20.65.74.63.68.20.E3.81.AE.E5.A0.B4.E5.90.88">Debian GNU/Linux 4.0 etch の場合</a></li><li style="margin-left:2em;" class="depth2">1.1. <a href="#g1-install-on-debian">インストール</a></li><li style="margin-left:2em;" class="depth2">1.2. <a href="#g1-config-on-debian">設定</a></li><li style="margin-left:2em;" class="depth2">1.3. <a href="#g1-export-on-debian">反映</a></li><li style="margin-left:1em;" class="depth1">2. <a href="#g1-46.65.64.6F.72.61.20.31.36.E3.81.AE.E5.A0.B4.E5.90.88">Fedora 16の場合</a></li><li style="margin-left:2em;" class="depth2">2.1. <a href="#g1-install-on-fedora">インストール</a></li><li style="margin-left:2em;" class="depth2">2.2. <a href="#g1-config-on-fedora">設定</a></li><li style="margin-left:2em;" class="depth2">2.3. <a href="#g1-run-on-fedora">起動</a></li><li style="margin-left:1em;" class="depth1">3. <a href="#g1-E3.83.AA.E3.83.B3.E3.82.AF">リンク</a></li></ul></div>
<h3 id="g1-44.65.62.69.61.6E.20.47.4E.55.2F.4C.69.6E.75.78.20.34.2E.30.20.65.74.63.68.20.E3.81.AE.E5.A0.B4.E5.90.88">1. Debian GNU/Linux 4.0 etch の場合</h3>
<h4 id="g1-install-on-debian">1.1. インストール</h4>
<p>nfs-kernel-server パッケージをインストールします。</p>
<pre>
# <span class="cmdline">aptitude install nfs-kernel-server</span>
</pre>
<h4 id="g1-config-on-debian">1.2. 設定</h4>
<p>/etc/exports にエクスポートするディレクトリを指定します。</p>
<p>例えば、サーバの /opt/nfsroot を NFSRoot としてターゲットからマウントする場合は以下のようになります。</p>
<pre>/opt/nfsroot/ 192.168.1.0/255.255.255.0(rw,no_root_squash,no_subtree_check,sync)</pre>
<p class="info">192.168.1.0/255.255.255.0 は要求を許可するネットワークです。指定できる書式は他にもありますが、ここでは触れません。詳細は exports の man page を参照してください。</p>
<p class="info">(rw,no_root_squash,no_subtree_check,sync) は NFS のオプションです。rw は読み込みと書き込みの両方を許可するオプションです。他のオプションについての詳細は exports の man page を参照してください。</p>
<h4 id="g1-export-on-debian">1.3. 反映</h4>
<p>/etc/exports を変更したら、NFS サーバに反映させます。</p>
<pre>
# <span class="cmdline">exportfs -ra</span>
</pre>
<h3 id="g1-46.65.64.6F.72.61.20.31.36.E3.81.AE.E5.A0.B4.E5.90.88">2. Fedora 16の場合</h3>
<h4 id="g1-install-on-fedora">2.1. インストール</h4>
<ol><li>「アプリケーション」→「システムツール」→「ソフトウェアの追加/削除」を選択し起動します。</li><li>左上の検索ボックスに "nfs-utils" を入力し検索します。</li><li>nfs-utils パッケージをチェックしてから適用ボタンを押しインストールを開始します。</li></ol>
<p><img src="/i/ss/fedora16-add_nfs_utils.jpg" alt="スクリーンショット" width="640" height="383" /></p>
<h4 id="g1-config-on-fedora">2.2. 設定</h4>
<p>/etc/exports にエクスポートするディレクトリを指定します。
設定方法は <a href="#config-on-debian">Debian の場合</a> と同じになります。</p>
<p>次にファイアウォールを有効にしている場合は NFS サーバ関連で使用するポートを開放する必要があります。</p>
<ol><li>「アプリケーション」→「その他」→「ファイアーウォール」を起動します。</li><li>「その他のポート」から以下の5つのポートを加え適用ボタンを押します。</li></ol>
<ul><li>sunrpc : 111/tcp, 111/udp</li><li>mountd : 20048/tcp, 20048/udp</li><li>nfs : 2049/udp</li></ul>
<p><img src="/i/ss/fedora16-nfs_firewall.jpg" alt="スクリーンショット" width="480" height="340" /></p>
<h4 id="g1-run-on-fedora">2.3. 起動</h4>
<p>NFS サーバを起動します。</p>
<pre>
# <span class="cmdline">systemctl start nfs-server.service</span>
</pre>
<h3 id="g1-E3.83.AA.E3.83.B3.E3.82.AF">3. リンク</h3>
<ul><li><a href="http://linuxjm.sourceforge.jp/html/nfs-utils/man5/exports.5.html">exports(5)</a> - <a href="http://linuxjm.sourceforge.jp/">JM Project</a> による exoprts(5) の日本語訳です。</li><li><a href="http://linuxjf.sourceforge.jp/JFdocs/NFS-HOWTO/">Linux NFS-HOWTO</a></li></ul>
]]></description>
   <category domain="http://pylone.jp/bishop/docs/setup_nfs_server.html">doc</category>
   <pubDate>Thu, 01 Jan 1970 00:00 GMT</pubDate>
</item>

<item>
   <title>最新版パッチ</title>
   <guid isPermaLink="true">http://pylone.jp/bishop/docs/the_current_patches.html</guid>

   <link>http://pylone.jp/bishop/docs/the_current_patches.html</link>
   <description><![CDATA[

<p>開発中の最新版パッチをLinuxカーネルやU-Bootに適用する手順です。</p>
<div class="toc"><div class="head">目次</div><ul><li style="margin-left:1em;" class="depth1">1. <a href="#g1-55.2D.42.6F.6F.74">U-Boot</a></li><li style="margin-left:1em;" class="depth1">2. <a href="#g1-4C.69.6E.75.78">Linux</a></li></ul></div>
<h3 id="g1-55.2D.42.6F.6F.74">1. U-Boot</h3>
<p>最新版パッチの公開準備中</p>
<h3 id="g1-4C.69.6E.75.78">2. Linux</h3>
<p>LinuxカーネルにBishop向けのパッチを当ててビルドする手順です。
例としてLinuxカーネルはlinusのgitリポジトリとします。</p>
<pre>$ git-clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
$ cd linux-2.6
$ wget http://code.pylone.jp/hg/linux-2.6-bishop/raw-file/tip/bishop
$ patch -p1 &lt; bishop
$ cp arch/arm/configs/defconfig_bishop .config
$ make ARCH=arm oldconfig
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnu- uImage</pre>
]]></description>
   <category domain="http://pylone.jp/bishop/docs/the_current_patches.html">doc</category>
   <pubDate>Tue, 03 Jun 2008 18:25 GMT</pubDate>
</item>

<item>
   <title>buildroot による initrd</title>
   <guid isPermaLink="true">http://pylone.jp/bishop/docs/buildroot-initrd.html</guid>

   <link>http://pylone.jp/bishop/docs/buildroot-initrd.html</link>
   <description><![CDATA[

<p>uClibcとbusyboxによるBishop用initrdをbuildrootを使って作る手順です。</p>
<div class="toc"><div class="head">目次</div><ul><li style="margin-left:1em;" class="depth1">1. <a href="#g1-62.75.69.6C.64.72.6F.6F.74.E3.81.AE.E3.83.80.E3.82.A6.E3.83.B3.E3.83.AD.E3.83.BC.E3.83.89">buildrootのダウンロード</a></li><li style="margin-left:1em;" class="depth1">2. <a href="#g1-62.75.69.6C.64.72.6F.6F.74.20.E3.81.AE.E5.B1.95.E9.96.8B">buildroot の展開</a></li><li style="margin-left:1em;" class="depth1">3. <a href="#g1-62.75.69.6C.64.72.6F.6F.74.20.E3.81.AE.E4.BF.AE.E6.AD.A3">buildroot の修正</a></li><li style="margin-left:1em;" class="depth1">4. <a href="#g1-E8.A8.AD.E5.AE.9A">設定</a></li><li style="margin-left:1em;" class="depth1">5. <a href="#g1-E3.83.93.E3.83.AB.E3.83.89">ビルド</a></li><li style="margin-left:1em;" class="depth1">6. <a href="#g1-42.69.73.68.6F.70.E7.94.A8.E3.81.AE.E5.A4.89.E6.9B.B4">Bishop用の変更</a></li></ul></div>
<h3 id="g1-62.75.69.6C.64.72.6F.6F.74.E3.81.AE.E3.83.80.E3.82.A6.E3.83.B3.E3.83.AD.E3.83.BC.E3.83.89">1. buildrootのダウンロード</h3>
<p><a href="http://downloads.pylone.jp/src/buildroot-svn20070629.tar.bz2">Bishop用buildroot</a>
をダウンロードします。</p>
<h3 id="g1-62.75.69.6C.64.72.6F.6F.74.20.E3.81.AE.E5.B1.95.E9.96.8B">2. buildroot の展開</h3>
<pre># tar xjvf buildroot-svn20070629.tar.bz2
# cd buildroot-svn20070629</pre>
<h3 id="g1-62.75.69.6C.64.72.6F.6F.74.20.E3.81.AE.E4.BF.AE.E6.AD.A3">3. buildroot の修正</h3>
<p>以下の修正をします。</p>
<div class="highlight"><pre><span class="gh">Index: Makefile</span>
<span class="gh">===================================================================</span>
<span class="gd">--- Makefile	(revision 18968)</span>
<span class="gi">+++ Makefile	(working copy)</span>
<span class="gu">@@ -167,7 +167,7 @@</span>
 all:   world
 
 # In this section, we need .config
<span class="gd">-include .config.cmd</span>
<span class="gi">+include .config</span>
 
 # We also need the various per-package makefiles, which also add
 # each selected package to TARGETS if that package was selected
</pre></div>

<h3 id="g1-E8.A8.AD.E5.AE.9A">4. 設定</h3>
<p><a href="http://downloads.pylone.jp/src/buildroot-config-initrd">buildroot-config-initrd</a>をダウンロードして .config にリネームします。</p>
<pre>$ curl http://downloads.pylone.jp/src/buildroot-config-initrd &gt; .config</pre>
<h3 id="g1-E3.83.93.E3.83.AB.E3.83.89">5. ビルド</h3>
<p>ビルドします。</p>
<pre>$ make oldconfig
$ make</pre>
<p>makeの最中にいくつか質問されます。
CPUはarm920tを選択します。その他はデフォルトでいいでしょう。</p>
<p>makeが終わるとrootfs.arm.cramfs が出来上がります。</p>
<p class="info">ソースコードのダウンロードの失敗によりmakeが中断した場合は
<a href="http://downloads.pylone.jp/src/buildroot-dl/">http://downloads.pylone.jp/src/buildroot-dl/</a>からdl
ディレクトリに手動でダウンロードしてみてください。</p>
<p class="info">ビルドに必要とされるヘッダファイルがないため、make
が中断することがあります。その場合は必要なヘッダを含むパッケージをインストールするなどして、再度makeを実行してください。</p>
<h3 id="g1-42.69.73.68.6F.70.E7.94.A8.E3.81.AE.E5.A4.89.E6.9B.B4">6. Bishop用の変更</h3>
<p>busyboxへのシンボリックリンクであるbuild_arm/root/linuxrcを
<a href="http://downloads.pylone.jp/src/buildroot-linuxrc">Bishop用スクリプト</a>
に置き換えます。</p>
<pre>$ rm build_arm/root/linuxrc
$ curl http://downloads.pylone.jp/src/buildroot-linuxrc &gt; build_arm/root/linuxrc</pre>
<p>rootfs.arm.cramfsを作り直します。</p>
<pre>$ make cramfsroot</pre>
<p>U-Boot形式initrd.uimgに変換します。</p>
<pre># mkimage -n 'Ramdisk Image' -A arm -O linux -T ramdisk -d
# rootfs.arm.cramfs initrd.uimg</pre>
]]></description>
   <category domain="http://pylone.jp/bishop/docs/buildroot-initrd.html">doc</category>
   <pubDate>Sun, 03 Feb 2008 16:43 GMT</pubDate>
</item>

<item>
   <title>クイックスタート</title>
   <guid isPermaLink="true">http://pylone.jp/bishop/docs/quick_start.html</guid>

   <link>http://pylone.jp/bishop/docs/quick_start.html</link>
   <description><![CDATA[

<p>このドキュメントでは、組込み Linux 開発用 CPU ボード <a href="http://pylone.jp/bishop/">Bishop</a> を起動してからシリアルコンソール経由でログインするまでの簡単な手順を紹介します。</p>
<div class="toc"><div class="head">目次</div><ul><li style="margin-left:1em;" class="depth1">1. <a href="#g1-E3.82.B7.E3.83.AA.E3.82.A2.E3.83.AB.E3.82.B3.E3.83.B3.E3.82.BD.E3.83.BC.E3.83.AB">シリアルコンソール</a></li><li style="margin-left:2em;" class="depth2">1.1. <a href="#g1-6D.69.6E.69.63.6F.6D.20.E3.81.AE.E5.A0.B4.E5.90.88">minicom の場合</a></li><li style="margin-left:2em;" class="depth2">1.2. <a href="#g1-54.65.72.61.54.65.72.6D.20.E3.81.AE.E5.A0.B4.E5.90.88">TeraTerm の場合</a></li><li style="margin-left:1em;" class="depth1">2. <a href="#g1-E9.9B.BB.E6.BA.90.E3.82.92.E5.85.A5.E3.82.8C.E3.82.8B">電源を入れる</a></li><li style="margin-left:1em;" class="depth1">3. <a href="#g1-E3.83.AD.E3.82.B0.E3.82.A4.E3.83.B3">ログイン</a></li></ul></div>
<h3 id="g1-E3.82.B7.E3.83.AA.E3.82.A2.E3.83.AB.E3.82.B3.E3.83.B3.E3.82.BD.E3.83.BC.E3.83.AB">1. シリアルコンソール</h3>
<p>シリアルコンソールとして使うシリアル端末エミュレータの準備を行います。 出荷状態の Bishop の場合、ポート設定は以下のようになります。</p>
<table><tr><th>ハードウェアフロー制御</th><td style="width:50%;text-align:center;">Off</td></tr><tr><th>ソフトウェアフロー制御</th><td style="text-align:center;">Off</td></tr><tr><th>ボーレート</th><td style="text-align: center;">115200</td></tr><tr><th>データビット</th><td style="text-align: center;">8</td></tr><tr><th>パリティ</th><td style="text-align: center;">なし</td></tr><tr><th>ストップビット</th><td style="text-align: center;">1</td></tr></table>
<p>以降では、minicom と Tera Term を例に説明します。</p>
<h4 id="g1-6D.69.6E.69.63.6F.6D.20.E3.81.AE.E5.A0.B4.E5.90.88">1.1. minicom の場合</h4>
<p>まず、設定モードで minicom を起動します。</p>
<pre># minicom -o -s</pre>
<p>起動するとメニュー画面が表示されます。</p>
<pre>+--------[設定]----------+
| ファイル名とパス名     |
| ファイル転送プロトコル |
| シリアルポート         |
| モデムとダイヤル       |
| 画面とキーボード       |
| "dfl" に設定を保存     |
| 新規に設定を保存       |
| 終了                   |
| Minicom を終了         |
+------------------------+</pre>
<p><strong>シリアルポート</strong>を設定します。ハードウェア流れ制御が"いいえ"である点に注意してください。</p>
<pre>A -    シリアルデバイス   : /dev/ttyUSB0
B - ロックファイルの位置  : /var/lock
C -   Callin Program      :
D -  Callout Program      :
E - 速度/パリティ/ビット  : 115200 8N1
F - ハードウェア流れ制御  : いいえ
G - ソフトウェア流れ制御  : いいえ</pre>
<p class="info">/dev/ttyUSB0 は実際のデバイスファイル名に置き換えてください。</p>
<p><strong>"dfl" に設定を保存</strong> か <strong>新規に設定を保存</strong> で設定を保存します。
<strong>新規に設定を保存</strong> であれば名前をつけて保存できます。</p>
<p>設定を保存したら minicom を終了して、再度起動します。</p>
<p>"dfl" に設定を保存した場合:</p>
<pre>$ minicom -o</pre>
<p>新規に設定を保存した場合:</p>
<pre>$ minicom -o 設定名</pre>
<p class="info">-o はモデムの初期化をしないためのオプションです。シリアルコンソールの場合はモデムを初期化する必要はありません。</p>
<h4 id="g1-54.65.72.61.54.65.72.6D.20.E3.81.AE.E5.A0.B4.E5.90.88">1.2. TeraTerm の場合</h4>
<p>New connection では Serial を選択して、Port を設定します。</p>
<p><img src="/i/ss/teraterm1.jpg" alt="New Connection ダイアログ" width="440" height="232" /></p>
<p>Serial port setup でポートを設定します。 Flow control が none である点に注意してください。</p>
<p><img src="/i/ss/teraterm2.jpg" alt="Serial port setup ダイアログ" width="386" height="354" /></p>
<p>Terminal setup で端末を設定します。</p>
<p><img src="/i/ss/teraterm3.jpg" alt="Terminal setup ダイアログ" width="440" height="315" /></p>
<h3 id="g1-E9.9B.BB.E6.BA.90.E3.82.92.E5.85.A5.E3.82.8C.E3.82.8B">2. 電源を入れる</h3>
<p><img src="/i/bishop/off-on.jpg" alt="写真:電源スイッチ" width="440" height="165" /></p>
<ol><li>電源スイッチが OFF であることを確認</li><li>付属シリアルケーブルで PC と Bishop を接続</li><li>Bishop に AC アダプタ を接続</li><li>Bishop の電源スイッチを ON</li></ol>
<p>電源を入れた直後、LCD にはスプラッシュ画像が表示されます。</p>
<p><img src="/i/bishop/splash_image.jpg" alt="写真:スプラッシュ画像" width="440" height="330" /></p>
<p>正常に起動すれば LCD に Linux カーネルの<a href="dmesg.html">起動メッセージ</a>が表示されます。</p>
<p><img src="/i/bishop/booting.jpg" alt="写真:起動メッセージ" width="440" height="330" /></p>
<p>起動が完了すれば、シリアルコンソールにログインプロンプトが表示されます。</p>
<pre>Debian GNU/Linux 4.0 bishop ttySAC0
bishop login:</pre>
<h3 id="g1-E3.83.AD.E3.82.B0.E3.82.A4.E3.83.B3">3. ログイン</h3>
<p>シリアルコンソールから root でログインします。 出荷状態では root のパスワードは必要ありません。</p>
<p>ログインするとシェルプロンプトが表示されます。</p>
<pre>bishop login: root
Last login: Mon Jul 30 11:34:30 2007 on ttySAC0
Linux bishop 2.6.22.1-pylone0 #101 Wed Aug 1 19:03:52 JST 2007 armv4tl
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
bishop:~#</pre>
]]></description>
   <category domain="http://pylone.jp/bishop/docs/quick_start.html">doc</category>
   <pubDate>Fri, 01 Feb 2008 21:01 GMT</pubDate>
</item>

<item>
   <title>ポートマップ</title>
   <guid isPermaLink="true">http://pylone.jp/bishop/docs/portmap.html</guid>

   <link>http://pylone.jp/bishop/docs/portmap.html</link>
   <description><![CDATA[

<div class="toc"><div class="head">目次</div><ul><li style="margin-left:1em;" class="depth1">1. <a href="#g1-47.50.41">GPA</a></li><li style="margin-left:1em;" class="depth1">2. <a href="#g1-47.50.42">GPB</a></li><li style="margin-left:1em;" class="depth1">3. <a href="#g1-47.50.43">GPC</a></li><li style="margin-left:1em;" class="depth1">4. <a href="#g1-47.50.44">GPD</a></li><li style="margin-left:1em;" class="depth1">5. <a href="#g1-47.50.45">GPE</a></li><li style="margin-left:1em;" class="depth1">6. <a href="#g1-47.50.46">GPF</a></li><li style="margin-left:1em;" class="depth1">7. <a href="#g1-47.50.47">GPG</a></li><li style="margin-left:1em;" class="depth1">8. <a href="#g1-47.50.48">GPH</a></li><li style="margin-left:1em;" class="depth1">9. <a href="#g1-47.50.4A">GPJ</a></li></ul></div>
<h3 id="g1-47.50.41">1. GPA</h3>
<table><tr><th>Port</th><th>Function</th><th>Remark</th></tr><tr><td>GPA0</td><td>ADDR0</td><td></td></tr><tr><td>GPA1</td><td>ADDR16</td><td></td></tr><tr><td>GPA2</td><td>ADDR17</td><td></td></tr><tr><td>GPA3</td><td>ADDR18</td><td></td></tr><tr><td>GPA4</td><td>ADDR19</td><td></td></tr><tr><td>GPA5</td><td>ADDR20</td><td></td></tr><tr><td>GPA6</td><td>ADDR21</td><td></td></tr><tr><td>GPA7</td><td>ADDR22</td><td></td></tr><tr><td>GPA8</td><td>ADDR23</td><td></td></tr><tr><td>GPA9</td><td>ADDR24</td><td></td></tr><tr><td>GPA10</td><td>ADDR25</td><td></td></tr><tr><td>GPA11</td><td>ADDR26</td><td></td></tr><tr><td>GPA12</td><td>nGCS1</td><td></td></tr><tr><td>GPA13</td><td>nGCS2</td><td></td></tr><tr><td>GPA14</td><td>nGCS3</td><td></td></tr><tr><td>GPA15</td><td>nGCS4</td><td></td></tr><tr><td>GPA16</td><td>nGCS5</td><td></td></tr><tr><td>GPA17</td><td>CLE</td><td></td></tr><tr><td>GPA18</td><td>ALE</td><td></td></tr><tr><td>GPA19</td><td>nFWE</td><td></td></tr><tr><td>GPA20</td><td>nFRE</td><td></td></tr><tr><td>GPA21</td><td>nRSTOUT</td><td></td></tr><tr><td>GPA22</td><td>nFCE</td><td></td></tr></table>
<h3 id="g1-47.50.42">2. GPB</h3>
<table><tr><th style="width:4em;">Port</th><th style="width:9em;">Function</th><th>Remark</th></tr><tr><td>GPB0</td><td>Output</td><td>キーパッド</td></tr><tr><td>GPB1</td><td>Output</td><td>キーパッド</td></tr><tr><td>GPB2</td><td>Output</td><td>キーパッド</td></tr><tr><td>GPB3</td><td>Output</td><td>キーパッド</td></tr><tr><td>GPB4</td><td>Output</td><td>キーパッド</td></tr><tr><td>GPB5</td><td>Output</td><td>LED5 (Active Low)</td></tr><tr><td>GPB6</td><td>Output</td><td>LED4 (Active Low)</td></tr><tr><td>GPB7</td><td>Output</td><td>LED7 (Active Low)</td></tr><tr><td>GPB8</td><td>Output</td><td>LED6 (Active Low)</td></tr><tr><td>GPB9</td><td>Output</td><td>バックライト制御 (BL_Ctrl1)</td></tr><tr><td>GPB10</td><td>Output</td><td>バックライト制御 (BL_Ctrl0)</td></tr></table>
<h3 id="g1-47.50.43">3. GPC</h3>
<table><tr><th style="width:4em;">Port</th><th style="width:9em;">Function</th><th>Remark</th></tr><tr><td>GPC0</td><td>LEND</td><td></td></tr><tr><td>GPC1</td><td>VCLK</td><td></td></tr><tr><td>GPC2</td><td>VLINE</td><td></td></tr><tr><td>GPC3</td><td>VFRAME</td><td></td></tr><tr><td>GPC4</td><td>VM</td><td></td></tr><tr><td>GPC5</td><td>Input</td><td>LCD 基板検出 (nLCD_SET0)</td></tr><tr><td>GPC6</td><td>Input</td><td>LCD 基板検出 (nLCD_SET1)</td></tr><tr><td>GPC7</td><td>Input</td><td>USB デバイス (USBD_Detect)</td></tr><tr><td>GPC8</td><td>VD[0]</td><td></td></tr><tr><td>GPC9</td><td>VD[1]</td><td></td></tr><tr><td>GPC10</td><td>VD[2]</td><td></td></tr><tr><td>GPC11</td><td>VD[3]</td><td></td></tr><tr><td>GPC12</td><td>VD[4]</td><td></td></tr><tr><td>GPC13</td><td>VD[5]</td><td></td></tr><tr><td>GPC14</td><td>VD[6]</td><td></td></tr><tr><td>GPC15</td><td>VD[7]</td><td></td></tr></table>
<h3 id="g1-47.50.44">4. GPD</h3>
<table><tr><th style="width:4em;">Port</th><th style="width:9em;">Function</th><th>Remark</th></tr><tr><td>GPD0</td><td>VD[8]</td><td></td></tr><tr><td>GPD1</td><td>VD[9]</td><td></td></tr><tr><td>GPD2</td><td>VD[10]</td><td></td></tr><tr><td>GPD3</td><td>VD[11]</td><td></td></tr><tr><td>GPD4</td><td>VD[12]</td><td></td></tr><tr><td>GPD5</td><td>VD[13]</td><td></td></tr><tr><td>GPD6</td><td>VD[14]</td><td></td></tr><tr><td>GPD7</td><td>VD[15]</td><td></td></tr><tr><td>GPD8</td><td>VD[16]</td><td></td></tr><tr><td>GPD9</td><td>VD[17]</td><td></td></tr><tr><td>GPD10</td><td>VD[18]</td><td></td></tr><tr><td>GPD11</td><td>VD[19]</td><td></td></tr><tr><td>GPD12</td><td>VD[20]</td><td></td></tr><tr><td>GPD13</td><td>VD[21]</td><td></td></tr><tr><td>GPD14</td><td>VD[22]</td><td></td></tr><tr><td>GPD15</td><td>VD[23]</td><td></td></tr></table>
<h3 id="g1-47.50.45">5. GPE</h3>
<table><tr><th style="width:4em;">Port</th><th style="width:9em;">Function</th><th>Remark</th></tr><tr><td>GPE0</td><td>I2SLRCK</td><td></td></tr><tr><td>GPE1</td><td>I2SSCLK</td><td></td></tr><tr><td>GPE2</td><td>CDCLK</td><td></td></tr><tr><td>GPE3</td><td>I2SDI</td><td></td></tr><tr><td>GPE4</td><td>I2SDO</td><td></td></tr><tr><td>GPE5</td><td>SDCLK</td><td></td></tr><tr><td>GPE6</td><td>SDCMD</td><td></td></tr><tr><td>GPE7</td><td>SDDAT0</td><td></td></tr><tr><td>GPE8</td><td>SDDAT1</td><td></td></tr><tr><td>GPE9</td><td>SDDAT2</td><td></td></tr><tr><td>GPE10</td><td>SDDAT3</td><td></td></tr><tr><td>GPE11</td><td>SPIMISO0</td><td>拡張 SPI</td></tr><tr><td>GPE12</td><td>SPIMOSI0</td><td>拡張 SPI</td></tr><tr><td>GPE13</td><td>SPICLK0</td><td>拡張 SPI</td></tr><tr><td>GPE14</td><td>IICSCL</td><td></td></tr><tr><td>GPE15</td><td>IICSDA</td><td></td></tr></table>
<h3 id="g1-47.50.46">6. GPF</h3>
<table><tr><th style="width:4em;">Port</th><th style="width:9em;">Function</th><th>Remark</th></tr><tr><td>GPF0</td><td>EINT[0]</td><td>SD/MMC カード検出</td></tr><tr><td>GPF1</td><td>EINT[1]</td><td>キーパッド割り込み</td></tr><tr><td>GPF2</td><td>EINT[2]</td><td>DM9000 割り込み</td></tr><tr><td>GPF3</td><td>EINT[3]</td><td>キーパッド割り込み</td></tr><tr><td>GPF4</td><td>EINT[4]</td><td>キーパッド割り込み</td></tr><tr><td>GPF5</td><td>EINT[5]</td><td>キーパッド割り込み (UP)</td></tr><tr><td>GPF6</td><td>EINT[6]</td><td>キーパッド割り込み (DOWN)</td></tr><tr><td>GPF7</td><td>EINT[7]</td><td>拡張 UART 割り込み</td></tr></table>
<h3 id="g1-47.50.47">7. GPG</h3>
<table><tr><th style="width:4em;">Port</th><th style="width:9em;">Function</th><th>Remark</th></tr><tr><td>GPG0</td><td>EINT[8]</td><td>拡張 UART 割り込み</td></tr><tr><td>GPG1</td><td>EINT[9]</td><td>拡張 UART 割り込み</td></tr><tr><td>GPG2</td><td>nSS0</td><td>拡張 SPI</td></tr><tr><td>GPG3</td><td>Output</td><td>拡張 ポート (OUT1)</td></tr><tr><td>GPG4</td><td>Output</td><td>バックライト制御 (LCD_PWREN)</td></tr><tr><td rowspan="2">GPG5</td><td>Input</td><td>拡張 ポート (IN0)</td></tr><tr><td>Output</td><td>L3 MODE</td></tr><tr><td rowspan="2">GPG6</td><td>Input</td><td>拡張 ポート (IN1)</td></tr><tr><td>Output</td><td>L3 (CLK)</td></tr><tr><td>GPG7</td><td>Output</td><td>拡張 ポート (OUT0)</td></tr><tr><td>GPG8</td><td>EINT[16]</td><td>拡張 UART 割り込み</td></tr><tr><td>GPG9</td><td>EINT[17]</td><td>キーパッド割り込み (RIGHT)</td></tr><tr><td>GPG10</td><td>EINT[18]</td><td>キーパッド割り込み (LEFT)</td></tr><tr><td>GPG11</td><td>Output</td><td>バックライト制御 (BL_nON_OFF)</td></tr><tr><td>GPG12</td><td>Out/In</td><td>L3 (DATA)</td></tr><tr><td>GPG13</td><td>Input</td><td>固定 (H)</td></tr><tr><td>GPG14</td><td>Input</td><td>固定 (L)</td></tr><tr><td>GPG15</td><td>Input</td><td>固定 (L)</td></tr></table>
<h3 id="g1-47.50.48">8. GPH</h3>
<table><tr><th style="width:4em;">Port</th><th style="width:9em;">Function</th><th>Remark</th></tr><tr><td>GPH0</td><td>nCTS0</td><td></td></tr><tr><td>GPH1</td><td>nRTS0</td><td></td></tr><tr><td>GPH2</td><td>TXD[0]</td><td></td></tr><tr><td>GPH3</td><td>RXD[0]</td><td></td></tr><tr><td>GPH4</td><td>TXD[1]</td><td></td></tr><tr><td>GPH5</td><td>RXD[1]</td><td></td></tr><tr><td>GPH6</td><td>TXD[2]</td><td></td></tr><tr><td>GPH7</td><td>RXD[2]</td><td></td></tr><tr><td>GPH8</td><td>Input</td><td>SD/MMC Write Protect</td></tr><tr><td>GPH9</td><td>Output</td><td>キーパッド</td></tr><tr><td>GPH10</td><td>Output</td><td>USB Status</td></tr></table>
<h3 id="g1-47.50.4A">9. GPJ</h3>
<table><tr><th style="width:4em;">Port</th><th style="width:9em;">Function</th><th>Remark</th></tr><tr><td>GPJ0</td><td>CAMDATA[0]</td><td></td></tr><tr><td>GPJ1</td><td>CAMDATA[1]</td><td></td></tr><tr><td>GPJ2</td><td>CAMDATA[2]</td><td></td></tr><tr><td>GPJ3</td><td>CAMDATA[3]</td><td></td></tr><tr><td>GPJ4</td><td>CAMDATA[4]</td><td></td></tr><tr><td>GPJ5</td><td>CAMDATA[5]</td><td></td></tr><tr><td>GPJ6</td><td>CAMDATA[6]</td><td></td></tr><tr><td>GPJ7</td><td>CAMDATA[7]</td><td></td></tr><tr><td>GPJ8</td><td>CAMPCLK</td><td></td></tr><tr><td>GPJ9</td><td>CAMVSYNC</td><td></td></tr><tr><td>GPJ10</td><td>CAMHREF</td><td></td></tr><tr><td>GPJ11</td><td>CAMCLKOUT</td><td></td></tr><tr><td>GPJ12</td><td>CAMRESET</td><td></td></tr></table>
]]></description>
   <category domain="http://pylone.jp/bishop/docs/portmap.html">doc</category>
   <pubDate>Sun, 03 Feb 2008 16:43 GMT</pubDate>
</item>

<item>
   <title>TOPPERS/JSP カーネル for Bishop マニュアル</title>
   <guid isPermaLink="true">http://pylone.jp/bishop/docs/toppers-jsp-manual.html</guid>

   <link>http://pylone.jp/bishop/docs/toppers-jsp-manual.html</link>
   <description><![CDATA[

<p><a href="/bishop/">Bishop</a>向けTOPPERS/JSPカーネルを使用するための手順です。</p>
<p>TOPPERS/JSPカーネルとは、μITRON4.0仕様に準拠したリアルタイムカーネルで、TOPPERSプロジェクトの開発成果です。
TOPPERS/JSPカーネルの詳細については<a href="http://www.toppers.jp/">TOPPERSプロジェクト</a>を参照してください。</p>
<p class="alert">株式会社パイロンが独自に配布する非公式なバージョンです。本ソフトウェアについてTOPPERSプロジェクトへの質問はお控えください。</p>
<p class="alert">TOPPRES/JSPカーネルのサポートは実験的なものです。実用レベルに達していないことを予めご了承ください。</p>
<div class="toc"><div class="head">目次</div><ul><li style="margin-left:1em;" class="depth1">1. <a href="#g1-52.4F.4D.E3.82.A4.E3.83.A1.E3.83.BC.E3.82.B8">ROMイメージ</a></li><li style="margin-left:1em;" class="depth1">2. <a href="#g1-42.69.73.68.6F.70.E3.83.9C.E3.83.BC.E3.83.89.E3.81.A7.E3.81.AE.E4.BD.BF.E7.94.A8.E6.96.B9.E6.B3.95">Bishopボードでの使用方法</a></li><li style="margin-left:1em;" class="depth1">3. <a href="#g1-42.69.73.68.6F.70.E3.82.A8.E3.83.9F.E3.83.A5.E3.83.AC.E3.83.BC.E3.82.BF.E3.81.A7.E3.81.AE.E4.BD.BF.E7.94.A8.E6.96.B9.E6.B3.95">Bishopエミュレータでの使用方法</a></li><li style="margin-left:2em;" class="depth2">3.1. <a href="#g1-4C.69.6E.75.78">Linux</a></li><li style="margin-left:2em;" class="depth2">3.2. <a href="#g1-57.69.6E.64.6F.77.73">Windows</a></li><li style="margin-left:2em;" class="depth2">3.3. <a href="#g1-E3.82.AA.E3.83.97.E3.82.B7.E3.83.A7.E3.83.B3">オプション</a></li><li style="margin-left:1em;" class="depth1">4. <a href="#g1-E3.83.93.E3.83.AB.E3.83.89.E6.96.B9.E6.B3.95">ビルド方法</a></li><li style="margin-left:2em;" class="depth2">4.1. <a href="#g1-E3.82.AF.E3.83.AD.E3.82.B9.E9.96.8B.E7.99.BA.E3.83.84.E3.83.BC.E3.83.AB.E3.81.AE.E3.82.A4.E3.83.B3.E3.82.B9.E3.83.88.E3.83.BC.E3.83.AB">クロス開発ツールのインストール</a></li><li style="margin-left:2em;" class="depth2">4.2. <a href="#g1-E3.82.BD.E3.83.BC.E3.82.B9.E3.82.B3.E3.83.BC.E3.83.89.E3.81.AE.E5.85.A5.E6.89.8B">ソースコードの入手</a></li><li style="margin-left:2em;" class="depth2">4.3. <a href="#g1-E3.82.BD.E3.83.BC.E3.82.B9.E3.82.B3.E3.83.BC.E3.83.89.E3.81.AE.E5.B1.95.E9.96.8B">ソースコードの展開</a></li><li style="margin-left:2em;" class="depth2">4.4. <a href="#g1-E3.83.93.E3.83.AB.E3.83.89">ビルド</a></li><li style="margin-left:1em;" class="depth1">5. <a href="#g1-71.65.6D.75.2D.62.69.73.68.6F.70.E3.81.A8.67.64.62.E3.81.AB.E3.82.88.E3.82.8B.E3.83.87.E3.83.90.E3.83.83.E3.82.B0">qemu-bishopとgdbによるデバッグ</a></li></ul></div>
<h3 id="g1-52.4F.4D.E3.82.A4.E3.83.A1.E3.83.BC.E3.82.B8">1. ROMイメージ</h3>
<p>Bishop向けTOPPERS/JSPカーネルのROMイメージファイルを下記の場所からダウンロードします。</p>
<table class="downloads"><tr class="title"><td colspan="4">TOPPERS/JSP カーネル for Bishop</td></tr><tr class="odd"><td>toppers-jsp-bishop-1.4.3-pylone0.bin<br /><span class="desc">ROMバイナリ</span></td><td>1.4.3-pylone0</td><td class="dl"><a href="http://downloads.pylone.jp/bishop/toppers/toppers-jsp-bishop-1.4.3-pylone0.bin">Download</a></td><td>28.0KB</td></tr></table>
<h3 id="g1-42.69.73.68.6F.70.E3.83.9C.E3.83.BC.E3.83.89.E3.81.A7.E3.81.AE.E4.BD.BF.E7.94.A8.E6.96.B9.E6.B3.95">2. Bishopボードでの使用方法</h3>
<p><a href="/bishop/docs/">Bishop ドキュメント</a>の、</p>
<ul><li><a href="/bishop/docs/flash-writing.html#g1-1-3">JTAG-ICE (デバッガ) によるNORの書き込み</a></li><li><a href="/bishop/docs/flash-writing.html#g1-1-4">ダウンロードケーブルによるNORの書き込み</a></li></ul>
<p>を参考に、ダウンロードしたROMイメージファイルをNOR上の開始アドレス0番地に書き込みます。</p>
<p class="info">本手順によって、元のROMイメージの内容は書き換えられてしまう点にご注意ください。</p>
<p>書き込みが終了したらBishop本体とHostPCをシリアルケーブル(クロス)で接続し、Bishop本体の電源を入れます。TOPPERS/JSPカーネルのシリアルポートの設定は以下の通りです。</p>
<table><tr><th>ハードウェアフロー制御</th><td>Off</td></tr><tr><th>ソフトウェアフロー制御</th><td>Off</td></tr><tr><th>ボーレート</th><td>115200</td></tr><tr><th>データビット</th><td>8</td></tr><tr><th>パリティ</th><td>なし</td></tr><tr><th>ストップビット</th><td>1</td></tr></table>
<p>HostPC側のシリアルコンソールへの設定方法等は<a href="/bishop/docs/quick_start.html#g1-1-2">Bishopドキュメント:クイックスタート</a>を参照してください。</p>
<h3 id="g1-42.69.73.68.6F.70.E3.82.A8.E3.83.9F.E3.83.A5.E3.83.AC.E3.83.BC.E3.82.BF.E3.81.A7.E3.81.AE.E4.BD.BF.E7.94.A8.E6.96.B9.E6.B3.95">3. Bishopエミュレータでの使用方法</h3>
<p><a href="/bishop/docs/qemu-bishop-manual.html">Bishopエミュレータ</a>がインストールされている環境を前提とします。</p>
<h4 id="g1-4C.69.6E.75.78">3.1. Linux</h4>
<p>qemu-bishopでは起動したディレクトリにあるu-boot.binというファイルをエミュレーションするアドレス空間の0番地に読み込み、起動します。Bishop向けTOPPERS/JSPカーネルは開始アドレス0番地に設置する必要があるため、ROMイメージファイルを任意のディレクトリにダウンロードした後、下記の様にしてファイルをリネームします。(x.x.xはダウンロードしたファイル名に合わせてください) </p>
<pre>
$ <span class="cmdline">mv toppers-jsp-bishop-x.x.x.bin u-boot.bin</span>
</pre>
<p class="info">既に本来のu-boot.binが存在する場合は消去されてしまいますので必要に応じてバックアップしてください。</p>
<p>ダウンロードした任意のディレクトリにて、以下のコマンドでqemu-bishopを実行します。</p>
<pre>
$ <span class="cmdline">qemu-bishop -M pe201a -serial stdio -kernel dummy -mtdblock /dev/null -nographic</span>
</pre>
<p>この時、</p>
<pre>failed to open: led.img
failed to open: led.img
failed to open: led.img
failed to open: led.img
failed to open: pe201a.img
bishop_reset: splash image splash480.bmp.gz was not found
bishop_reset: failed to load a kernel image file</pre>
<p>とqemu-bishopがメッセージを出力する事がありますが、TOPPERS/JSPカーネルの動作に影響はありません。</p>
<h4 id="g1-57.69.6E.64.6F.77.73">3.2. Windows</h4>
<p>C:/Program Files/qemu-bishop/にROMイメージファイルをu-boot.binという名称でダウンロードし、スタート &gt; すべてのプログラム &gt; qemu-bishop &gt; qemu-bishop (PE-201A) から実行します。</p>
<p class="info">必要に応じて元のu-boot.binをバックアップしてください。</p>
<h4 id="g1-E3.82.AA.E3.83.97.E3.82.B7.E3.83.A7.E3.83.B3">3.3. オプション</h4>
<p>Linux環境においてqemu-bishopに指定したオプションを以下に解説します。下記以外のオプションに関しては<a href="/bishop/docs/qemu-bishop-manual.html#g1-5">Bishop エミュレータマニュアル:主なオプション</a>を参照してください。</p>
<dl>
<dt>-nographic</dt>
<dd>グラフィカルディスプレイ出力エミュレーションを無効にし、コマンドラインアプリケーションとしてQEMUを起動します。</dd>
</dl>
<h3 id="g1-E3.83.93.E3.83.AB.E3.83.89.E6.96.B9.E6.B3.95">4. ビルド方法</h3>
<h4 id="g1-E3.82.AF.E3.83.AD.E3.82.B9.E9.96.8B.E7.99.BA.E3.83.84.E3.83.BC.E3.83.AB.E3.81.AE.E3.82.A4.E3.83.B3.E3.82.B9.E3.83.88.E3.83.BC.E3.83.AB">4.1. クロス開発ツールのインストール</h4>
<p>クロス開発ツールのインストール (<a href="/bishop/docs/how_to_install_cross_development_tools_debian.html">Debian編</a>, <a href="/bishop/docs/how_to_install_cross_development_tools_fedora.html">Fedora編</a>) を参照してください。</p>
<h4 id="g1-E3.82.BD.E3.83.BC.E3.82.B9.E3.82.B3.E3.83.BC.E3.83.89.E3.81.AE.E5.85.A5.E6.89.8B">4.2. ソースコードの入手</h4>
<p>Bishop向けTOPPERS/JSPカーネルのソースコードを下記の場所からダウンロードします。</p>
<table class="downloads"><tr class="title"><td colspan="4">TOPPERS/JSP カーネル for Bishop</td></tr><tr class="odd"><td>toppers-jsp-bishop-1.4.3-pylone0.tar.bz2<br /><span class="desc">ソースコード</span></td><td>1.4.3-pylone0</td><td class="dl"><a href="http://downloads.pylone.jp/src/toppers/toppers-jsp-bishop-1.4.3-pylone0.tar.bz2">Download</a></td><td>996.4KB</td></tr></table>
<h4 id="g1-E3.82.BD.E3.83.BC.E3.82.B9.E3.82.B3.E3.83.BC.E3.83.89.E3.81.AE.E5.B1.95.E9.96.8B">4.3. ソースコードの展開</h4>
<p>ソースコードを適当な作業ディレクトリに展開します。</p>
<pre>
$ <span class="cmdline">tar xjvf toppers-jsp-bishop-0.0.1.tar.bz2</span>
</pre>
<p>展開したディレクトリに移動します。</p>
<pre>
$ <span class="cmdline">cd toppers-jsp-bishop-0.0.1</span>
</pre>
<h4 id="g1-E3.83.93.E3.83.AB.E3.83.89">4.4. ビルド</h4>
<p>Bishop用にビルドします。</p>
<pre>
$ <span class="cmdline">cd cfg</span>
$ <span class="cmdline">make depend</span>
$ <span class="cmdline">make CC=g++-4.2</span>
$ <span class="cmdline">cd -</span>
$ <span class="cmdline">perl ./configure -C armv4 -S bishop</span>
$ <span class="cmdline">make depend TARGET_PREFIX=arm-linux-gnu-</span>
$ <span class="cmdline">make TARGET_PREFIX=arm-linux-gnu-</span>
</pre>
<p class="info">現時点(2009/02/24)では、カーネルコンフィギュレータ(cfg)はgcc-4.3系ではコンパイルできません。</p>
<p>ビルド完了後、jspというファイル名でELFバイナリが生成されるので、必要に応じて、</p>
<pre>
$ <span class="cmdline">arm-linux-gnu-objcopy -O binary jsp toppers-jsp-bishop.bin</span>
</pre>
<p>としてRAWバイナリへと変換します。</p>
<h3 id="g1-71.65.6D.75.2D.62.69.73.68.6F.70.E3.81.A8.67.64.62.E3.81.AB.E3.82.88.E3.82.8B.E3.83.87.E3.83.90.E3.83.83.E3.82.B0">5. qemu-bishopとgdbによるデバッグ</h3>
<p>gdbからqemu-bishop上のTOPPERS/JSPカーネルをデバッグする方法に関して記載します。
手順としては、<a href="/bishop/docs/qemu-bishop-manual.html#g1-9">Bishop エミュレータマニュアル:gdbによるデバッグ</a>とほぼ同一です。</p>
<p>ここでは、Bishop向けTOPPERS/JSPカーネルのソースコードディレクトリパスを~/toppers-jsp-bishop、qemu-bishop起動ディレクトリを~/bishop-romとします。</p>
<p>まず、デバッグ対象バージョンのソースコードを前述のビルド手順にてビルドしELFバイナリを生成します。
(デバッグ情報を付加するコンパイルオプションは予めMakefileにて設定しています)</p>
<p>次に、生成されたELFバイナリからRAWバイナリをqemu-bishop起動ディレクトリに取得します。</p>
<pre>
$ <span class="cmdline">cd ~/toppers-jsp-bishop</span>
$ <span class="cmdline">arm-linux-gnu-objcopy -O binary jsp ~/bishop-rom/u-boot.bin</span>
</pre>
<p>-s,-Sオプション付きでqemu-bishopを起動します。</p>
<pre>
$ <span class="cmdline">cd ~/bishop-rom</span>
$ <span class="cmdline">qemu-bishop -M pe201a -serial stdio -kernel dummy -mtdblock /dev/null -nographic -s -S</span>
</pre>
<p>最後に、ビルドしたTOPPERS/JSPカーネルのソースディレクトリでgdbを起動し、qemu-bishopに接続します。</p>
<pre>
$ <span class="cmdline">cd ~/toppers-jsp-bishop</span>
$ <span class="cmdline">arm-linux-gnu-gdb jsp</span>
GNU gdb 6.6.90.20070912-debian
Copyright (C) 2007 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later &lt;http://gnu.org/licenses/gpl.html&gt;
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "--host=i486-linux-gnu --target=arm-linux-gnu"...
No symbol table is loaded.  Use the "file" command.
(gdb) <span class="cmdline">target remote localhost:1234</span>
Remote debugging using localhost:1234
0x00000000 in vector_table ()
</pre>
<p>例として システム依存初期化関数である_kernel_sys_initialize()にブレークポイントを設定し、実行してみます。</p>
<pre>
(gdb) <span class="cmdline">break _kernel_sys_initialize</span>
Breakpoint 1 at 0x2bac: file ./config/armv4/bishop/sys_config.c, line 130.
(gdb) <span class="cmdline">continue</span>
Continuing.

Breakpoint 1, _kernel_sys_initialize () at ./config/armv4/bishop/sys_config.c:130
130 {
(gdb) <span class="cmdline">list</span>
125 /*
126  *  ターゲットシステム依存の初期化
127  */
128 void
129 sys_initialize(void)
130 {
131     init_clock();
132
133     init_ports();
134
(gdb)
</pre>
<p class="info">ブレークしているsys_initialize()の本名は_kernel_sys_initialize()です。jsp_rename.hにてシンボル名を置き換えています。</p>
]]></description>
   <category domain="http://pylone.jp/bishop/docs/toppers-jsp-manual.html">doc</category>
   <pubDate>Wed, 25 Feb 2009 08:02 GMT</pubDate>
</item>

<item>
   <title>クロス開発ツールのインストール - Debian編</title>
   <guid isPermaLink="true">http://pylone.jp/bishop/docs/how_to_install_cross_development_tools_debian.html</guid>

   <link>http://pylone.jp/bishop/docs/how_to_install_cross_development_tools_debian.html</link>
   <description><![CDATA[

<p>クロス開発ツールをDebianホストにインストールする手順です。</p>
<div class="toc"><div class="head">目次</div><ul><li style="margin-left:1em;" class="depth1">1. <a href="#g1-E5.AF.BE.E8.B1.A1.4F.53">対象OS</a></li><li style="margin-left:1em;" class="depth1">2. <a href="#g1-E3.82.AF.E3.83.AD.E3.82.B9.E3.83.84.E3.83.BC.E3.83.AB.E3.83.81.E3.82.A7.E3.82.A4.E3.83.B3.E3.81.AE.E3.82.A4.E3.83.B3.E3.82.B9.E3.83.88.E3.83.BC.E3.83.AB">クロスツールチェインのインストール</a></li><li style="margin-left:1em;" class="depth1">3. <a href="#g1-75.2D.62.6F.6F.74.2D.74.6F.6F.6C.73">u-boot-tools</a></li><li style="margin-left:1em;" class="depth1">4. <a href="#g1-6D.74.64.2D.74.6F.6F.6C.73">mtd-tools</a></li><li style="margin-left:1em;" class="depth1">5. <a href="#g1-64.70.6B.67.2D.63.72.6F.73.73">dpkg-cross</a></li><li style="margin-left:2em;" class="depth2">5.1. <a href="#g1-64.70.6B.67.2D.63.72.6F.73.73.20.E3.81.AE.E3.82.A4.E3.83.B3.E3.82.B9.E3.83.88.E3.83.BC.E3.83.AB">dpkg-cross のインストール</a></li><li style="margin-left:2em;" class="depth2">5.2. <a href="#g1-64.70.6B.67.2D.63.72.6F.73.73.20.E3.81.AE.E4.BD.BF.E3.81.84.E6.96.B9">dpkg-cross の使い方</a></li><li style="margin-left:1em;" class="depth1">6. <a href="#g1-61.70.74.2D.63.72.6F.73.73">apt-cross</a></li><li style="margin-left:2em;" class="depth2">6.1. <a href="#g1-61.70.74.2D.63.72.6F.73.73.20.E3.81.AE.E3.82.A4.E3.83.B3.E3.82.B9.E3.83.88.E3.83.BC.E3.83.AB">apt-cross のインストール</a></li><li style="margin-left:2em;" class="depth2">6.2. <a href="#g1-61.70.74.2D.63.72.6F.73.73.20.E3.81.AE.E4.BD.BF.E3.81.84.E6.96.B9">apt-cross の使い方</a></li></ul></div>
<h3 id="g1-E5.AF.BE.E8.B1.A1.4F.53">1. 対象OS</h3>
<ul><li>Debian GNU/Linux 4.0 etch (x86)</li><li>Debian GNU/Linux sid (x86)</li></ul>
<h3 id="g1-E3.82.AF.E3.83.AD.E3.82.B9.E3.83.84.E3.83.BC.E3.83.AB.E3.83.81.E3.82.A7.E3.82.A4.E3.83.B3.E3.81.AE.E3.82.A4.E3.83.B3.E3.82.B9.E3.83.88.E3.83.BC.E3.83.AB">2. クロスツールチェインのインストール</h3>
<p>クロスのgccやbinutilsをインストールする手順です。</p>
<p class="alert">株式会社パイロンが独自に配布する非公式なDebianパッケージです。これらのパッケージについてDebianプロジェクトへの質問はお控えください。</p>
<p>/etc/apt/sources.listに以下のapt-lineを追加します。</p>
<pre>deb http://downloads.pylone.jp/cross-toolchain/deb ./</pre>
<p>(まだ行っていなければ) pylone.jp の鍵を導入します。</p>
<pre># wget http://pylone.jp/pubkey.asc -O - | apt-key add -</pre>
<p>パッケージ一覧を更新してから、ツールチェイン一式をインストールします。</p>
<pre># aptitude update
# aptitude install gcc-4.1-arm-linux-gnu</pre>
<p>必要であれば C++ コンパイラや gdb もインストールします。</p>
<pre># aptitude install g++-4.1-arm-linux-gnu
# aptitude install gdb-arm-linux-gnu</pre>
<p>インストールされるパッケージ一覧です。</p>
<table><tr><th>名前</th><th>バージョン</th></tr><tr><td>binutils-arm-linux-gnu</td><td>2.17-3pylone0</td></tr><tr><td>cpp-4.1-arm-linux-gnu</td><td>4.1.1-21pylone1</td></tr><tr><td>g++-4.1-arm-linux-gnu</td><td>4.1.1-21pylone1</td></tr><tr><td>gcc-4.1-arm-linux-gnu</td><td>4.1.1-21pylone1</td></tr><tr><td>gcc-4.1-arm-linux-gnu-base</td><td>4.1.1-21pylone1</td></tr><tr><td>gdb-arm-linux-gnu</td><td>6.6.dfsg.90.20070912-1</td></tr><tr><td>libc6-arm-cross</td><td>2.3.6.ds1-13etch2</td></tr><tr><td>libc6-dev-arm-cross</td><td>2.3.6.ds1-13etch2</td></tr><tr><td>libgcc1-arm-cross</td><td>1:4.1.1-21pylone1</td></tr><tr><td>libstdc++6-4.1-dev-arm-cross</td><td>4.1.1-21pylone1</td></tr><tr><td>libstdc++6-arm-cross</td><td>4.1.1-21pylone1</td></tr><tr><td>linux-kernel-headers-arm-cross</td><td>2.6.18-7</td></tr></table>
<h3 id="g1-75.2D.62.6F.6F.74.2D.74.6F.6F.6C.73">3. u-boot-tools</h3>
<p>u-boot-toolsパッケージをインストールする手順です。</p>
<p>u-boot-toolsにはLinuxカーネルやinitrdをU-Boot形式に変換するmkimageコマンドなどが含まれます。Linuxカーネルをソースからビルドする場合や、initrdイメージを作る場合は u-boot-toolsをインストールしてください。</p>
<p>Debian sid では mkimage コマンドが
<a href="http://packages.debian.org/uboot-mkimage">uboot-mkimage</a>
パッケージによって提供されています。
u-boot-tools パッケージをインストールする必要はありません。</p>
<p>/etc/apt/sources.list に以下を加えます。</p>
<pre>deb http://downloads.pylone.jp/tools/deb ./
deb-src http://downloads.pylone.jp/tools/deb ./</pre>
<p>(まだ行っていなければ)アーカイブの鍵を導入します。</p>
<pre># wget http://pylone.jp/pubkey.asc -O - | apt-key add -</pre>
<p>入手可能なパッケージの一覧を更新します。</p>
<pre># aptitude update</pre>
<p>u-boot-tools をインストールします。</p>
<pre># aptitude install u-boot-tools</pre>
<h3 id="g1-6D.74.64.2D.74.6F.6F.6C.73">4. mtd-tools</h3>
<p>mtd-toolsをインストールする手順です。</p>
<p>NANDに置くルートファイルシステムのjffs2イメージをホスト上で作成する場合に必要になります。</p>
<p>入手可能なパッケージの一覧を更新します。</p>
<pre># aptitude update</pre>
<p>mtd-tools をインストールします。</p>
<pre># aptitude install mtd-tools</pre>
<h3 id="g1-64.70.6B.67.2D.63.72.6F.73.73">5. dpkg-cross</h3>
<p>dpkg-crossはターゲットアーキテクチャ用のパッケージをホストにインストールするためのツールです。</p>
<p>dpkg-crossを使えば、クロスコンパイルに必要なライブラリとヘッダファイルを比較的簡単に用意することができます。</p>
<p>以降では dpkg-crossのインストールと簡単な使い方を説明します。</p>
<h4 id="g1-64.70.6B.67.2D.63.72.6F.73.73.20.E3.81.AE.E3.82.A4.E3.83.B3.E3.82.B9.E3.83.88.E3.83.BC.E3.83.AB">5.1. dpkg-cross のインストール</h4>
<pre># aptitude install dpkg-cross</pre>
<h4 id="g1-64.70.6B.67.2D.63.72.6F.73.73.20.E3.81.AE.E4.BD.BF.E3.81.84.E6.96.B9">5.2. dpkg-cross の使い方</h4>
<p>armのlibcurses5をホストにインストールする場合を例に説明します。</p>
<p>まず、armのlibcurses5をダウンロードします。</p>
<pre>$ wget http://ftp.jp.debian.org/debian/pool/main/n/ncurses/libncurses5_5.5-5_arm.deb</pre>
<p>次に dpkg-crossで変換します。-aオプションでアーキテクチャを指定し、-bオプションでパッケージの変換を行います。</p>
<pre>$ dpkg-cross -a arm -b libncurses5_5.5-5_arm.deb</pre>
<p>変換されたパッケージ libncurses5-arm-cross_5.5-5_all.debが出来上がります。</p>
<p class="info">変換後のパッケージ名には "-arm-cross" が追加されます。</p>
<p>最後に、変換されたパッケージをdpkgでインストールします。</p>
<pre># dpkg -i libncurses5-arm-cross_5.5-5_all.deb</pre>
<p>dpkg-crossの-iオプションで変換とインストールを同時に行うこともできます。</p>
<pre># dpkg-cross -a arm -i libncurses5_5.5-5_arm.deb</pre>
<p>アンインストールは-arm-crossを追加したパッケージ名を指定します。</p>
<pre># dpkg --remove libncurses5-arm-cross</pre>
<p>同じ要領でlibncurses5-devもインストールすれば libncurses5を使ったアプリケーションをクロスコンパイルできます。</p>
<p class="info">/etc/dpkg-cross/cross-compileのdefault_arch
でアーキテクチャを指定すれば、dpkg-crossの-aオプションが省略できます。</p>
<h3 id="g1-61.70.74.2D.63.72.6F.73.73">6. apt-cross</h3>
<p>apt-crossはdpkg-crossのAPT フロントエンドです。
dpkg-crossではパッケージの取得を手動で行う必要がありますが、
apt-crossはダウンロードからインストールまでを一度に行うことができます。</p>
<h4 id="g1-61.70.74.2D.63.72.6F.73.73.20.E3.81.AE.E3.82.A4.E3.83.B3.E3.82.B9.E3.83.88.E3.83.BC.E3.83.AB">6.1. apt-cross のインストール</h4>
<p>apt-crossのインストールは以下の通りです。</p>
<pre># aptitude install apt-cross</pre>
<h4 id="g1-61.70.74.2D.63.72.6F.73.73.20.E3.81.AE.E4.BD.BF.E3.81.84.E6.96.B9">6.2. apt-cross の使い方</h4>
<p>dpkg-crossと同じくlibncurses5を例にapt-crossの使い方を説明します。</p>
<p>まず、取得可能なパッケージの一覧を更新します。</p>
<pre>$ apt-cross -a arm -S stable -m http://ftp.jp.debian.org/debian/ --update</pre>
<p>-aオプションはアーキテクチャの指定です。
-SはSuiteです。
Bishopであればetchが対象なので-S stable
となります。
-mはレポジトリのミラーです。</p>
<p>ダウンロードからインストールまでを一度に行うのであれば、以下のようにします。</p>
<pre># apt-cross -a arm -S stable -m http://ftp.jp.debian.org/debian/ --install libncurses5</pre>
<p>ダウンロードのみの場合です。</p>
<pre># apt-cross -a arm -S stable -m http://ftp.jp.debian.org/debian/ -get libncurses5</pre>
<p>削除の場合です。</p>
<pre># apt-cross -a arm --remove libncurses5</pre>
<p class="info">apt-crossはdpkg-crossのAPTフロントエンドですが、パッケージ間の依存関係を
扱うことはできせん。現在、作者のNeil Williams氏が依存関係解決の改良
を含めて apt-crossを書き直しているようです。</p>
]]></description>
   <category domain="http://pylone.jp/bishop/docs/how_to_install_cross_development_tools_debian.html">doc</category>
   <pubDate>Sun, 03 Feb 2008 16:43 GMT</pubDate>
</item>

<item>
   <title>U-Boot のビルド</title>
   <guid isPermaLink="true">http://pylone.jp/bishop/docs/how_to_build_u-boot.html</guid>

   <link>http://pylone.jp/bishop/docs/how_to_build_u-boot.html</link>
   <description><![CDATA[

<p>Bishop 向けに U-Boot をビルドする手順です。</p>
<p class="alert">U-Bootをフラッシュメモリへ書き込む際に失敗した場合や正常に動作しないU-Bootを書き込んでしまった場合は起動できなくなります。
U-Bootを上書きした事による起動の不具合についてはサポート対象外とさせていただきます。</p>
<h3 id="g1-E3.82.AF.E3.83.AD.E3.82.B9.E9.96.8B.E7.99.BA.E3.83.84.E3.83.BC.E3.83.AB.E3.81.AE.E3.82.A4.E3.83.B3.E3.82.B9.E3.83.88.E3.83.BC.E3.83.AB">1. クロス開発ツールのインストール</h3>
<p>クロス開発ツールのインストール
(<a href="how_to_install_cross_development_tools_debian.html">Debian編</a>,
<a href="how_to_install_cross_development_tools_fedora.html">Fedora編</a>)
を参照してください。</p>
<h3 id="g1-E3.82.BD.E3.83.BC.E3.82.B9.E3.82.B3.E3.83.BC.E3.83.89.E3.81.AE.E5.85.A5.E6.89.8B">2. ソースコードの入手</h3>
<p>ソースコード <a href="http://downloads.pylone.jp/src/u-boot-1.2.0-pylone5.tar.gz">u-boot-1.2.0-pylone5.tar.gz</a>
をダウンロードします。</p>
<h3 id="g1-E3.82.BD.E3.83.BC.E3.82.B9.E3.82.B3.E3.83.BC.E3.83.89.E3.81.AE.E5.B1.95.E9.96.8B">3. ソースコードの展開</h3>
<p>ソースコードを適当な作業ディレクトリに展開します。</p>
<pre>$ tar xzvf u-boot-1.2.0-pylone5.tar.gz</pre>
<p>展開したディレクトリに移動します。</p>
<pre>$ cd u-boot-1.2.0-pylone5</pre>
<h3 id="g1-E3.83.93.E3.83.AB.E3.83.89">4. ビルド</h3>
<p>Bishop 用にビルドの設定をします。</p>
<pre>$ make bishop_config</pre>
<p>ビルドします。</p>
<pre>$ CROSS_COMPILE=arm-linux-gnu- make</pre>
<p>u-boot.binが出来ます。</p>
]]></description>
   <category domain="http://pylone.jp/bishop/docs/how_to_build_u-boot.html">doc</category>
   <pubDate>Sun, 03 Feb 2008 16:43 GMT</pubDate>
</item>

<item>
   <title>U-Bootリファレンスマニュアル</title>
   <guid isPermaLink="true">http://pylone.jp/bishop/docs/u-boot-refman.html</guid>

   <link>http://pylone.jp/bishop/docs/u-boot-refman.html</link>
   <description><![CDATA[

<p>ブートローダU-Bootのリファレンスマニュアルです。</p>
<p class="alert">このドキュメントが対象とするのは、
Bishopに移植されたU-Bootのみです。U-Bootがサポートする他のターゲットについては扱いません。</p>
<div class="toc"><div class="head">目次</div><ul><li style="margin-left:1em;" class="depth1">1. <a href="#g1-E3.82.B7.E3.83.AA.E3.82.A2.E3.83.AB.E3.82.B3.E3.83.B3.E3.82.BD.E3.83.BC.E3.83.AB">シリアルコンソール</a></li><li style="margin-left:1em;" class="depth1">2. <a href="#g1-E8.B5.B7.E5.8B.95">起動</a></li><li style="margin-left:1em;" class="depth1">3. <a href="#g1-E3.82.B3.E3.83.9E.E3.83.B3.E3.83.89.E3.83.9E.E3.83.8B.E3.83.A5.E3.82.A2.E3.83.AB">コマンドマニュアル</a></li><li style="margin-left:2em;" class="depth2">3.1. <a href="#g1-68.65.6C.70">help</a></li><li style="margin-left:2em;" class="depth2">3.2. <a href="#g1-3F">?</a></li><li style="margin-left:2em;" class="depth2">3.3. <a href="#g1-61.75.74.73.63.72">autscr</a></li><li style="margin-left:2em;" class="depth2">3.4. <a href="#g1-62.61.73.65">base</a></li><li style="margin-left:2em;" class="depth2">3.5. <a href="#g1-62.64.69.6E.66.6F">bdinfo</a></li><li style="margin-left:2em;" class="depth2">3.6. <a href="#g1-62.6F.6F.74">boot</a></li><li style="margin-left:2em;" class="depth2">3.7. <a href="#g1-62.6F.6F.74.64">bootd</a></li><li style="margin-left:2em;" class="depth2">3.8. <a href="#g1-62.6F.6F.74.65.6C.66">bootelf</a></li><li style="margin-left:2em;" class="depth2">3.9. <a href="#g1-62.6F.6F.74.6D">bootm</a></li><li style="margin-left:2em;" class="depth2">3.10. <a href="#g1-62.6F.6F.74.70">bootp</a></li><li style="margin-left:2em;" class="depth2">3.11. <a href="#g1-62.6F.6F.74.76.78">bootvx</a></li><li style="margin-left:2em;" class="depth2">3.12. <a href="#g1-63.6D.70">cmp</a></li><li style="margin-left:2em;" class="depth2">3.13. <a href="#g1-63.6F.6E.69.6E.66.6F">coninfo</a></li><li style="margin-left:2em;" class="depth2">3.14. <a href="#g1-63.70">cp</a></li><li style="margin-left:2em;" class="depth2">3.15. <a href="#g1-63.72.63.33.32">crc32</a></li><li style="margin-left:2em;" class="depth2">3.16. <a href="#g1-64.61.74.65">date</a></li><li style="margin-left:2em;" class="depth2">3.17. <a href="#g1-64.63.61.63.68.65">dcache</a></li><li style="margin-left:2em;" class="depth2">3.18. <a href="#g1-64.68.63.70">dhcp</a></li><li style="margin-left:2em;" class="depth2">3.19. <a href="#g1-65.63.68.6F">echo</a></li><li style="margin-left:2em;" class="depth2">3.20. <a href="#g1-65.72.61.73.65">erase</a></li><li style="margin-left:2em;" class="depth2">3.21. <a href="#g1-66.6C.69.6E.66.6F">flinfo</a></li><li style="margin-left:2em;" class="depth2">3.22. <a href="#g1-67.6F">go</a></li><li style="margin-left:2em;" class="depth2">3.23. <a href="#g1-69.63.61.63.68.65">icache</a></li><li style="margin-left:2em;" class="depth2">3.24. <a href="#g1-69.6D.69.6E.66.6F">iminfo</a></li><li style="margin-left:2em;" class="depth2">3.25. <a href="#g1-69.6D.6C.73">imls</a></li><li style="margin-left:2em;" class="depth2">3.26. <a href="#g1-69.6E">in</a></li><li style="margin-left:2em;" class="depth2">3.27. <a href="#g1-69.74.65.73.74">itest</a></li><li style="margin-left:2em;" class="depth2">3.28. <a href="#g1-6C.6F.61.64.62">loadb</a></li><li style="margin-left:2em;" class="depth2">3.29. <a href="#g1-6C.6F.61.64.73">loads</a></li><li style="margin-left:2em;" class="depth2">3.30. <a href="#g1-6C.6F.61.64.79">loady</a></li><li style="margin-left:2em;" class="depth2">3.31. <a href="#g1-6C.6F.6F.70">loop</a></li><li style="margin-left:2em;" class="depth2">3.32. <a href="#g1-6D.64">md</a></li><li style="margin-left:2em;" class="depth2">3.33. <a href="#g1-6D.6D">mm</a></li><li style="margin-left:2em;" class="depth2">3.34. <a href="#g1-6D.74.65.73.74">mtest</a></li><li style="margin-left:2em;" class="depth2">3.35. <a href="#g1-6D.77">mw</a></li><li style="margin-left:2em;" class="depth2">3.36. <a href="#g1-6E.61.6E.64">nand</a></li><li style="margin-left:3em;" class="depth3">3.36.1. <a href="#g1-6E.61.6E.64.20.69.6E.66.6F">nand info</a></li><li style="margin-left:3em;" class="depth3">3.36.2. <a href="#g1-6E.61.6E.64.20.64.65.76.69.63.65">nand device</a></li><li style="margin-left:3em;" class="depth3">3.36.3. <a href="#g1-6E.61.6E.64.20.72.65.61.64">nand read</a></li><li style="margin-left:3em;" class="depth3">3.36.4. <a href="#g1-6E.61.6E.64.20.77.72.69.74.65">nand write</a></li><li style="margin-left:3em;" class="depth3">3.36.5. <a href="#g1-6E.61.6E.64.20.65.72.61.73.65">nand erase</a></li><li style="margin-left:3em;" class="depth3">3.36.6. <a href="#g1-6E.61.6E.64.20.62.61.64">nand bad</a></li><li style="margin-left:3em;" class="depth3">3.36.7. <a href="#g1-6E.61.6E.64.20.64.75.6D.70">nand dump</a></li><li style="margin-left:3em;" class="depth3">3.36.8. <a href="#g1-6E.61.6E.64.20.73.63.72.75.62">nand scrub</a></li><li style="margin-left:3em;" class="depth3">3.36.9. <a href="#g1-6E.61.6E.64.20.6D.61.72.6B.62.61.64">nand markbad</a></li><li style="margin-left:3em;" class="depth3">3.36.10. <a href="#g1-6E.61.6E.64.20.62.69.74.65.72.72">nand biterr</a></li><li style="margin-left:3em;" class="depth3">3.36.11. <a href="#g1-6E.61.6E.64.20.6C.6F.63.6B">nand lock</a></li><li style="margin-left:3em;" class="depth3">3.36.12. <a href="#g1-6E.61.6E.64.20.75.6E.6C.6F.63.6B">nand unlock</a></li><li style="margin-left:2em;" class="depth2">3.37. <a href="#g1-6E.62.6F.6F.74">nboot</a></li><li style="margin-left:2em;" class="depth2">3.38. <a href="#g1-6E.66.73">nfs</a></li><li style="margin-left:2em;" class="depth2">3.39. <a href="#g1-6E.6D">nm</a></li><li style="margin-left:2em;" class="depth2">3.40. <a href="#g1-6F.75.74">out</a></li><li style="margin-left:2em;" class="depth2">3.41. <a href="#g1-70.69.6E.67">ping</a></li><li style="margin-left:2em;" class="depth2">3.42. <a href="#g1-70.72.69.6E.74.65.6E.76">printenv</a></li><li style="margin-left:2em;" class="depth2">3.43. <a href="#g1-70.72.6F.74.65.63.74">protect</a></li><li style="margin-left:2em;" class="depth2">3.44. <a href="#g1-72.61.72.70.62.6F.6F.74">rarpboot</a></li><li style="margin-left:2em;" class="depth2">3.45. <a href="#g1-72.65.73.65.74">reset</a></li><li style="margin-left:2em;" class="depth2">3.46. <a href="#g1-72.75.6E">run</a></li><li style="margin-left:2em;" class="depth2">3.47. <a href="#g1-73.61.76.65.65.6E.76">saveenv</a></li><li style="margin-left:2em;" class="depth2">3.48. <a href="#g1-73.65.74.65.6E.76">setenv</a></li><li style="margin-left:2em;" class="depth2">3.49. <a href="#g1-73.6C.65.65.70">sleep</a></li><li style="margin-left:2em;" class="depth2">3.50. <a href="#g1-74.66.74.70.62.6F.6F.74">tftpboot</a></li><li style="margin-left:2em;" class="depth2">3.51. <a href="#g1-76.65.72.73.69.6F.6E">version</a></li><li style="margin-left:1em;" class="depth1">4. <a href="#g1-E7.92.B0.E5.A2.83.E5.A4.89.E6.95.B0">環境変数</a></li><li style="margin-left:2em;" class="depth2">4.1. <a href="#g1-61.75.74.6F.73.74.61.72.74">autostart</a></li><li style="margin-left:2em;" class="depth2">4.2. <a href="#g1-62.6F.6F.74.61.64.64.72">bootaddr</a></li><li style="margin-left:2em;" class="depth2">4.3. <a href="#g1-62.6F.6F.74.61.72.67.73">bootargs</a></li><li style="margin-left:2em;" class="depth2">4.4. <a href="#g1-62.6F.6F.74.63.6D.64">bootcmd</a></li><li style="margin-left:2em;" class="depth2">4.5. <a href="#g1-62.6F.6F.74.64.65.6C.61.79">bootdelay</a></li><li style="margin-left:2em;" class="depth2">4.6. <a href="#g1-62.6F.6F.74.64.65.76.69.63.65">bootdevice</a></li><li style="margin-left:2em;" class="depth2">4.7. <a href="#g1-62.6F.6F.74.66.69.6C.65">bootfile</a></li><li style="margin-left:2em;" class="depth2">4.8. <a href="#g1-64.6E.73.69.70">dnsip</a></li><li style="margin-left:2em;" class="depth2">4.9. <a href="#g1-64.6E.73.69.70.32">dnsip2</a></li><li style="margin-left:2em;" class="depth2">4.10. <a href="#g1-64.6F.6D.61.69.6E">domain</a></li><li style="margin-left:2em;" class="depth2">4.11. <a href="#g1-66.69.6C.65.73.69.7A.65">filesize</a></li><li style="margin-left:2em;" class="depth2">4.12. <a href="#g1-67.61.74.65.77.61.79.69.70">gatewayip</a></li><li style="margin-left:2em;" class="depth2">4.13. <a href="#g1-69.70.61.64.64.72">ipaddr</a></li><li style="margin-left:2em;" class="depth2">4.14. <a href="#g1-6C.6F.61.64.61.64.64.72">loadaddr</a></li><li style="margin-left:2em;" class="depth2">4.15. <a href="#g1-6C.6F.61.64.73.5F.65.63.68.6F">loads_echo</a></li><li style="margin-left:2em;" class="depth2">4.16. <a href="#g1-6E.65.74.6D.61.73.6B">netmask</a></li><li style="margin-left:2em;" class="depth2">4.17. <a href="#g1-6E.76.6C.61.6E">nvlan</a></li><li style="margin-left:2em;" class="depth2">4.18. <a href="#g1-71.75.69.65.74">quiet</a></li><li style="margin-left:2em;" class="depth2">4.19. <a href="#g1-72.6F.6F.74.70.61.74.68">rootpath</a></li><li style="margin-left:2em;" class="depth2">4.20. <a href="#g1-73.65.72.76.65.72.69.70">serverip</a></li><li style="margin-left:2em;" class="depth2">4.21. <a href="#g1-73.70.6C.61.73.68.69.6D.61.67.65">splashimage</a></li><li style="margin-left:2em;" class="depth2">4.22. <a href="#g1-73.74.64.65.72.72">stderr</a></li><li style="margin-left:2em;" class="depth2">4.23. <a href="#g1-73.74.64.69.6E">stdin</a></li><li style="margin-left:2em;" class="depth2">4.24. <a href="#g1-73.74.64.6F.75.74">stdout</a></li><li style="margin-left:2em;" class="depth2">4.25. <a href="#g1-76.65.72">ver</a></li><li style="margin-left:2em;" class="depth2">4.26. <a href="#g1-76.65.72.69.66.79">verify</a></li><li style="margin-left:2em;" class="depth2">4.27. <a href="#g1-76.6C.61.6E">vlan</a></li><li style="margin-left:1em;" class="depth1">5. <a href="#g1-E5.87.BA.E8.8D.B7.E6.99.82.E3.81.AE.E7.92.B0.E5.A2.83.E5.A4.89.E6.95.B0">出荷時の環境変数</a></li><li style="margin-left:1em;" class="depth1">6. <a href="#g1-E3.83.AA.E3.83.B3.E3.82.AF">リンク</a></li></ul></div>
<h3 id="g1-E3.82.B7.E3.83.AA.E3.82.A2.E3.83.AB.E3.82.B3.E3.83.B3.E3.82.BD.E3.83.BC.E3.83.AB">1. シリアルコンソール</h3>
<p>minicom などのシリアルコンソールを用意します。</p>
<p class="info">シリアルコンソールの設定については <a href="quick_start.html">クイックスタート</a>
を参照してください。</p>
<h3 id="g1-E8.B5.B7.E5.8B.95">2. 起動</h3>
<p>ボードの電源を入れるとU-Bootが起動します。
シリアル端末の表示は以下のようになります。</p>
<pre>U-Boot 1.2.0-pylone2 (Aug  1 2007 - 18:57:27)

DRAM:  128 MB
Flash:  4 MB
NAND:  128 MiB
In:    serial
Out:   serial
Err:   serial
Hit any key to stop autoboot:  3</pre>
<p>そのままにしておくと、3秒後に起動します。
3秒以内に任意のキーを押すとコマンドプロンプトが表示され、モニタコマンドの入力ができる状態になります。</p>
<pre>Bishop #</pre>
<p class="info">任意のキー入力を待つ時間である3秒は、環境変数 bootdelay
によって変更することができます。環境変数を変更する方法については後述します。</p>
<p>モニタコマンドの例として、helpコマンドを紹介します。コマンドプロンプトが表示されたら "help"と入力してenterキーを押してください。コマンドの一覧が表示される筈です。</p>
<pre>Bishop # help
?       - alias for 'help'
autoscr - run script from memory
base    - print or set address offset
bdinfo  - print Board Info structure
boot    - boot default, i.e., run 'bootcmd'
bootd   - boot default, i.e., run 'bootcmd'
bootelf - Boot from an ELF image in memory
bootm   - boot application image from memory
bootp   - boot image via network using BootP/TFTP protocol
bootvx  - Boot vxWorks from an ELF image
cmp     - memory compare
coninfo - print console devices and information
cp      - memory copy
crc32   - checksum calculation
date    - get/set/reset date &amp; time
dcache  - enable or disable data cache
dhcp    - invoke DHCP client to obtain IP/boot params
echo    - echo args to console
erase   - erase FLASH memory
flinfo  - print FLASH memory information
go      - start application at address 'addr'
help    - print online help
icache  - enable or disable instruction cache
iminfo  - print header information for application image
imls    - list all images found in flash
in      - read data from an IO port
itest   - return true/false on integer compare
loadb   - load binary file over serial line (kermit mode)
loads   - load S-Record file over serial line
loady   - load binary file over serial line (ymodem mode)
loop    - infinite loop on address range
md      - memory display
mm      - memory modify (auto-incrementing)
mtest   - simple RAM test
mw      - memory write (fill)
nand    - NAND sub-system
nboot   - boot from NAND device
nfs     - boot image via network using NFS protocol
nm      - memory modify (constant address)
out     - write datum to IO port
ping    - send ICMP ECHO_REQUEST to network host
printenv- print environment variables
protect - enable or disable FLASH write protection
rarpboot- boot image via network using RARP/TFTP protocol
reset   - Perform RESET of the CPU
run     - run commands in an environment variable
saveenv - save environment variables to persistent storage
setenv  - set environment variables
sleep   - delay execution for some time
tftpboot- boot image via network using TFTP protocol
version - print monitor version</pre>
<h3 id="g1-E3.82.B3.E3.83.9E.E3.83.B3.E3.83.89.E3.83.9E.E3.83.8B.E3.83.A5.E3.82.A2.E3.83.AB">3. コマンドマニュアル</h3>
<h4 id="g1-68.65.6C.70">3.1. help</h4>
<p>コマンドの一覧を表示:</p>
<pre>Bishop # help</pre>
<p>コマンドの説明を表示:</p>
<pre>Bishop # help &lt;コマンド名 ...&gt;</pre>
<p>例: sleepコマンドの説明を表示:</p>
<pre>Bishop # help sleep
sleep N
    - delay execution for N seconds (N is _decimal_ !!!)</pre>
<h4 id="g1-3F">3.2. ?</h4>
<p>help コマンドのエイリアス (別名) です。</p>
<h4 id="g1-61.75.74.73.63.72">3.3. autscr</h4>
<p>スクリプトを実行します。</p>
<h4 id="g1-62.61.73.65">3.4. base</h4>
<p>メモリ系コマンド (cmd, cp, crc32, md, mm. mw, nm) のオフセットを設定します。</p>
<p>オフセットを 30000000h に設定:</p>
<pre>Bishop # base 30000000
Base Address: 0x30000000</pre>
<p>現在のオフセットを表示:</p>
<pre>Bishop # base
Base Address: 0x00000000</pre>
<h4 id="g1-62.64.69.6E.66.6F">3.5. bdinfo</h4>
<p>ボード情報構造体の内容を表示します。</p>
<pre>arch_number = 0x00000597
env_t       = 0x00000000
boot_params = 0x30000100
DRAM bank   = 0x00000000
-&gt; start    = 0x30000000
-&gt; size     = 0x08000000
ethaddr     = 00:1D:2D:00:00:0B
ip_addr     = 192.168.1.200
baudrate    = 115200 bps</pre>
<p class="alert">Bishop は環境変数 ethaddr を参照しません。
ethaddr の値と実際の MAC アドレスは異なります。</p>
<h4 id="g1-62.6F.6F.74">3.6. boot</h4>
<p>環境変数bootcmdの内容を実行します。</p>
<h4 id="g1-62.6F.6F.74.64">3.7. bootd</h4>
<p>bootコマンドの古い名前です。後方互換性のために残されています。</p>
<h4 id="g1-62.6F.6F.74.65.6C.66">3.8. bootelf</h4>
<p>ELFイメージをブートします。</p>
<h4 id="g1-62.6F.6F.74.6D">3.9. bootm</h4>
<p>U-Boot形式のイメージをブートします。</p>
<h4 id="g1-62.6F.6F.74.70">3.10. bootp</h4>
<p>...</p>
<h4 id="g1-62.6F.6F.74.76.78">3.11. bootvx</h4>
<p>VxWorksをブートします。</p>
<p class="alert">bootvx コマンドはサポート対象外です。</p>
<h4 id="g1-63.6D.70">3.12. cmp</h4>
<p>メモリを比較します。</p>
<p>30900000h と 00040000h を 64KB (0x10000)比較:</p>
<pre>Bishop # cmp.b 30900000 40000 10000</pre>
<p class="info">.b はバイトアクセスを意味します。.w で ワードアクセス、.l でダブルワードアクセスになります。</p>
<h4 id="g1-63.6F.6E.69.6E.66.6F">3.13. coninfo</h4>
<p>コンソールデバイスの一覧を表示します。</p>
<pre>Bishop # coninfo
List of available devices:
vga      80000002 S.O
serial   80000003 SIO stdin stdout stderr
nulldev  80000003 SIO</pre>
<h4 id="g1-63.70">3.14. cp</h4>
<p>...</p>
<h4 id="g1-63.72.63.33.32">3.15. crc32</h4>
<p>CRC32 多項式計算を行います。</p>
<p>00040000h から 000400ff の CRC32 を計算:</p>
<pre>Bishop # crc32 40000 100
CRC32 for 00040000 ... 000400ff ==&gt; 55fdac87</pre>
<p>00040000h 〜 000400ffh の CRC32 を計算して結果を 30900000h に保存:</p>
<pre>Bishop # crc32 40000 100 30900000
CRC32 for 00040000 ... 000400ff ==&gt; 55fdac87
Bishop # md 30900000 1
30900000: 55fdac87    ...U</pre>
<h4 id="g1-64.61.74.65">3.16. date</h4>
<p>RTC の日時を設定します。</p>
<p>RTC の日時を表示:</p>
<pre>Bishop # date</pre>
<p>RTC を 2007年08月11日 16時14分 に設定:</p>
<pre>Bishop # date 0811161407</pre>
<p>RTC を 2007年08月11日 16時14分30秒 に設定:</p>
<pre>Bishop # date 0811161407.30</pre>
<p class="info">BishopにプリインストールされるDebianはRTCがUTCであることを期待する設定になっています。U-Bootから日時を設定する場合は時差を考慮して設定してください。例えば、JSTで2007-08-12 01:16を設定したい場合、UTCの2007-08-11 16:16を設定します。</p>
<h4 id="g1-64.63.61.63.68.65">3.17. dcache</h4>
<p>D-cacheの有効/無効を設定します。</p>
<h4 id="g1-64.68.63.70">3.18. dhcp</h4>
<p>...</p>
<h4 id="g1-65.63.68.6F">3.19. echo</h4>
<p>テキストを表示します。</p>
<pre>Bishop # echo Hello World!
Hello World!</pre>
<h4 id="g1-65.72.61.73.65">3.20. erase</h4>
<p>NORフラッシュメモリを消去します。</p>
<p>NORのセクタ58から69を消去</p>
<pre>Bishop # erase 1:58-69
Erase Flash Sectors 58-69 in Bank # 1
............ done</pre>
<p class="info">"1:58-69" は「1番目の NOR フラッシュメモリのセクタ58から69」を表します。
Bishop の場合、NOR はひとつだけなので常に "1:" を指定します。</p>
<h4 id="g1-66.6C.69.6E.66.6F">3.21. flinfo</h4>
<p>NOR フラッシュメモリの情報を表示します。</p>
<pre>Bishop # flinfo

Bank # 1: CFI conformant FLASH (16 x 16)  Size: 4 MB in 71 Sectors
  AMD Standard command set, Manufacturer ID: 0xC2, Device ID: 0xA8
  Erase timeout: 16384 ms, write timeout: 1 ms

  Sector Start Addresses:
  00000000   RO   00002000   RO   00004000   RO   00006000   RO   00008000   RO
  0000A000   RO   0000C000   RO   0000E000   RO   00010000   RO   00020000   RO
  00030000        00040000        00050000        00060000        00070000
  00080000        00090000        000A0000        000B0000        000C0000
  000D0000        000E0000        000F0000        00100000        00110000
  00120000        00130000        00140000        00150000        00160000
  00170000        00180000        00190000        001A0000        001B0000
  001C0000        001D0000        001E0000        001F0000        00200000
  00210000        00220000        00230000        00240000        00250000
  00260000        00270000        00280000        00290000        002A0000
  002B0000        002C0000        002D0000        002E0000        002F0000
  00300000        00310000        00320000        00330000        00340000
  00350000        00360000        00370000        00380000        00390000
  003A0000        003B0000        003C0000        003D0000        003E0000
  003F0000   RO</pre>
<h4 id="g1-67.6F">3.22. go</h4>
<p>指定したアドレスのアプリケーションを開始します。</p>
<h4 id="g1-69.63.61.63.68.65">3.23. icache</h4>
<p>I-cache の有効/無効を設定します。</p>
<p>I-cache を有効:</p>
<pre>Bishop # icache on
Instruction Cache is ON</pre>
<p>I-cache を無効:</p>
<pre>Bishop # icache off
Instruction Cache is OFF</pre>
<p>現在の状態を表示:</p>
<pre>Bishop # icache
Instruction Cache is ON</pre>
<h4 id="g1-69.6D.69.6E.66.6F">3.24. iminfo</h4>
<p>U-Boot形式イメージのヘッダ情報を表示します。</p>
<p>00040000hにあるイメージのヘッダ情報を表示:</p>
<pre>Bishop # iminfo 40000

   Image Name:   Linux-2.6.22.1-pylone0
   Created:      2007-08-01  17:22:53 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1787036 Bytes =  1.7 MB
   Load Address: 30008000
   Entry Point:  30008000
   Verifying Checksum ... OK</pre>
<h4 id="g1-69.6D.6C.73">3.25. imls</h4>
<p>U-Boot形式イメージの一覧を表示します。</p>
<pre>Bishop # imls
Image at 00040000:
   Image Name:   Linux-2.6.22.1-pylone0
   Created:      2007-08-01  17:22:53 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1787036 Bytes =  1.7 MB
   Load Address: 30008000
   Entry Point:  30008000
   Verifying Checksum ... OK
Image at 00330000:
   Image Name:   Ramdisk Image
   Created:      2007-07-29  18:21:03 UTC
   Image Type:   ARM Linux RAMDisk Image (gzip compressed)
   Data Size:    638976 Bytes = 624 kB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK</pre>
<p class="info">NORのイメージ一覧が表示されます。SDRAMにあるイメージは表示されません。</p>
<h4 id="g1-69.6E">3.26. in</h4>
<p>IO ポートから入力します。</p>
<h4 id="g1-69.74.65.73.74">3.27. itest</h4>
<p>...</p>
<h4 id="g1-6C.6F.61.64.62">3.28. loadb</h4>
<p>シリアル経由で バイナリファイルをロードします(kermit モード)。</p>
<h4 id="g1-6C.6F.61.64.73">3.29. loads</h4>
<p>シリアル経由で S-Record 形式のファイルをロードします。</p>
<h4 id="g1-6C.6F.61.64.79">3.30. loady</h4>
<p>シリアル経由で バイナリファイルをロードします(ymodem モード)。</p>
<h4 id="g1-6C.6F.6F.70">3.31. loop</h4>
<p>...</p>
<h4 id="g1-6D.64">3.32. md</h4>
<p>メモリ (SDRAM, NOR) の内容を表示します。</p>
<p>30000000h - 300000FFh を表示:</p>
<pre>Bishop # md.b 30000000 100</pre>
<p class="info">.b はバイトアクセスを意味します。.w で ワードアクセス、.l でダブルワードアクセスになります。</p>
<h4 id="g1-6D.6D">3.33. mm</h4>
<p>アドレスをインクリメントしながら対話形式でメモリを変更します。</p>
<pre>Bishop # mm.l 30900000
30900000: 00000000 ? deadbeaf
30900004: 00000000 ? deadbeaf
30900008: 00000000 ? deadbeaf
3090000c: 00000000 ? deadbeaf
30900010: 00000000 ? x     ← 終了</pre>
<p class="info">0123456789abcdef以外の文字で終了できます。</p>
<p class="info">値ではなく"-"(マイナス)を入力することによってアドレスをデクリメントすることもできます。</p>
<p class="info">.b はバイトアクセスを意味します。.w で ワードアクセス、.l でダブルワードアクセスになります。</p>
<h4 id="g1-6D.74.65.73.74">3.34. mtest</h4>
<p>メモリのテストを行います。</p>
<pre>Bishop # mtest</pre>
<p>{i} Ctrl + C で中断できます。</p>
<h4 id="g1-6D.77">3.35. mw</h4>
<p>メモリに書き込みます。</p>
<p>30900000h〜30901000h に 0xEE を 0x100 バイト書き込む:</p>
<pre>Bishop # mw.b 30900000 ee 100</pre>
<p class="info">.b はバイトアクセスを意味します。.w で ワードアクセス、.l でダブルワードアクセスになります。</p>
<h4 id="g1-6E.61.6E.64">3.36. nand</h4>
<p>NAND のコマンドを実行します。</p>
<h5 id="g1-6E.61.6E.64.20.69.6E.66.6F">3.36.1. nand info</h5>
<p>NAND の情報を表示します。</p>
<pre>Bishop # nand info

Device 0: NAND 128MiB 3,3V 8-bit, sector size 128 KiB</pre>
<h5 id="g1-6E.61.6E.64.20.64.65.76.69.63.65">3.36.2. nand device</h5>
<p>NAND デバイスを変更します。</p>
<p class="info">BishopのNANDデバイスはひとつだけなので、このコマンドは使いません。</p>
<h5 id="g1-6E.61.6E.64.20.72.65.61.64">3.36.3. nand read</h5>
<p>NAND を読み込みます。</p>
<h5 id="g1-6E.61.6E.64.20.77.72.69.74.65">3.36.4. nand write</h5>
<p>NAND に書き込みます。</p>
<h5 id="g1-6E.61.6E.64.20.65.72.61.73.65">3.36.5. nand erase</h5>
<p>NAND を消去します。</p>
<h5 id="g1-6E.61.6E.64.20.62.61.64">3.36.6. nand bad</h5>
<h5 id="g1-6E.61.6E.64.20.64.75.6D.70">3.36.7. nand dump</h5>
<h5 id="g1-6E.61.6E.64.20.73.63.72.75.62">3.36.8. nand scrub</h5>
<h5 id="g1-6E.61.6E.64.20.6D.61.72.6B.62.61.64">3.36.9. nand markbad</h5>
<h5 id="g1-6E.61.6E.64.20.62.69.74.65.72.72">3.36.10. nand biterr</h5>
<h5 id="g1-6E.61.6E.64.20.6C.6F.63.6B">3.36.11. nand lock</h5>
<h5 id="g1-6E.61.6E.64.20.75.6E.6C.6F.63.6B">3.36.12. nand unlock</h5>
<h4 id="g1-6E.62.6F.6F.74">3.37. nboot</h4>
<p>NAND 上のイメージをブートします。</p>
<p class="alert">nboot コマンドはサポート対象外です。</p>
<h4 id="g1-6E.66.73">3.38. nfs</h4>
<p>...</p>
<h4 id="g1-6E.6D">3.39. nm</h4>
<p>アドレスを固定して対話形式でメモリを変更します。</p>
<h4 id="g1-6F.75.74">3.40. out</h4>
<p>IO ポートに出力します。</p>
<h4 id="g1-70.69.6E.67">3.41. ping</h4>
<p>ネットワーク上のホストに ICMP ECHO_REQUEST を送ります。</p>
<p>192.168.1.1 に ping:</p>
<pre>Bishop # ping 192.168.1.1
dm9000 i/o: 0x20000300, id: 0x90000a46
MAC: 00:1d:2d:00:00:0b</pre>
<p class="info">環境変数gatewayipにゲートウェイのIPアドレスを設定すれば、ローカルネットワークの外にも送ることができます。</p>
<h4 id="g1-70.72.69.6E.74.65.6E.76">3.42. printenv</h4>
<p>設定されている環境変数の一覧を表示します。</p>
<pre>Bishop # printenv</pre>
<h4 id="g1-70.72.6F.74.65.63.74">3.43. protect</h4>
<p>フラッシュのプロテクトを解除します。</p>
<h4 id="g1-72.61.72.70.62.6F.6F.74">3.44. rarpboot</h4>
<p>...</p>
<h4 id="g1-72.65.73.65.74">3.45. reset</h4>
<p>ボードをリセットします。</p>
<h4 id="g1-72.75.6E">3.46. run</h4>
<p>任意の環境変数に設定されたコマンドを実行します。</p>
<h4 id="g1-73.61.76.65.65.6E.76">3.47. saveenv</h4>
<p>現在の環境変数を保存します。</p>
<pre>Bishop # saveenv</pre>
<p class="info">Bishopの場合、NORの003F0000h〜に保存されます。<a href="addrmap.html">アドレスマップ</a>も参照してください。</p>
<h4 id="g1-73.65.74.65.6E.76">3.48. setenv</h4>
<p>環境変数を設定します。</p>
<p>環境変数 ipaddr に 192.168.1.5 を設定:</p>
<pre>Bishop # setenv ipaddr 192.168.1.5</pre>
<h4 id="g1-73.6C.65.65.70">3.49. sleep</h4>
<p>スリープします。</p>
<p>5秒スリープ:</p>
<pre>Bishop # sleep 5</pre>
<h4 id="g1-74.66.74.70.62.6F.6F.74">3.50. tftpboot</h4>
<p>TFTPによるネットワーク起動を行います。</p>
<p>TFTPサーバからU-Boot形式のLinuxカーネル (uImage) を転送して起動:</p>
<pre>Bishop # setenv ipaddr &lt;IP アドレス&gt;
Bishop # setenv netmask &lt;ネットマスク&gt;
Bishop # setenv serverip &lt;TFTP サーバの IP アドレス&gt;
Bishop # setenv autostart yes
Bishop # tftpboot 30900000 uImage</pre>
<p class="info">30900000h は転送先アドレスです。Bishopの場合、30900000h 以降がダウンロード用領域に割り当てられています。詳細は<a href="addrmap.html">アドレスマップ</a> を参照してください。</p>
<p>tftpbootコマンドの引数がない場合、転送先アドレスとファイル名は、
環境変数loadaddrとbootfileの値になります。</p>
<pre>Bishop # setenv ipaddr &lt;IP アドレス&gt;
Bishop # setenv netmask &lt;ネットマスク&gt;
Bishop # setenv serverip &lt;TFTP サーバの IP アドレス&gt;
Bishop # setenv autostart yes
Bishop # setenv loadaddr 30900000
Bishop # setenv bootfile uImage
Bishop # tftpboot</pre>
<p>環境変数autostartをyes以外の値に設定することで、起動をしないで転送のみを行うこともできます。フラッシュメモリに書き込むイメージを転送する場合はautostartの値を確認してください。</p>
<pre>Bishop # setenv ipaddr &lt;IP アドレス&gt;
Bishop # setenv netmask &lt;ネットマスク&gt;
Bishop # setenv serverip &lt;TFTP サーバの IP アドレス&gt;
Bishop # setenv autostart
Bishop # tftpboot 30900000 uImage</pre>
<p class="info">出荷状態のBishopではloadaddr=30900000、bootfile=uImageになっています。</p>
<h4 id="g1-76.65.72.73.69.6F.6E">3.51. version</h4>
<p>U-Boot のバージョンを表示します。</p>
<pre>Bishop # version
U-Boot 1.2.0-pylone4 (Aug 12 2007 - 23:45:13)</pre>
<h3 id="g1-E7.92.B0.E5.A2.83.E5.A4.89.E6.95.B0">4. 環境変数</h3>
<h4 id="g1-61.75.74.6F.73.74.61.72.74">4.1. autostart</h4>
<p>bootmコマンドの挙動を指定する。</p>
<p>"yes"に設定するとbootp, rarpboot, tftpboot, diskbootの何れかでイメージが
ダウンロードされた後、自動的にbootmコマンドが実行される。</p>
<p>"no"に設定すると引数またはloadaddr環境変数で指定されたアドレスにイメージを
コピーするだけでbootmコマンドは実行されない。</p>
<h4 id="g1-62.6F.6F.74.61.64.64.72">4.2. bootaddr</h4>
<h4 id="g1-62.6F.6F.74.61.72.67.73">4.3. bootargs</h4>
<p>OSに渡される引数 (Linuxであればカーネルパラメータ)</p>
<h4 id="g1-62.6F.6F.74.63.6D.64">4.4. bootcmd</h4>
<p>bootコマンドまたはbootdelayで指定された遅延時間後に実行されるコマンド</p>
<h4 id="g1-62.6F.6F.74.64.65.6C.61.79">4.5. bootdelay</h4>
<p>autoboot(自動的に起動)するまでの遅延時間(秒)。-1でautobootを無効化。</p>
<h4 id="g1-62.6F.6F.74.64.65.76.69.63.65">4.6. bootdevice</h4>
<h4 id="g1-62.6F.6F.74.66.69.6C.65">4.7. bootfile</h4>
<p>TFTPでダウンロードするファイル名</p>
<h4 id="g1-64.6E.73.69.70">4.8. dnsip</h4>
<h4 id="g1-64.6E.73.69.70.32">4.9. dnsip2</h4>
<h4 id="g1-64.6F.6D.61.69.6E">4.10. domain</h4>
<h4 id="g1-66.69.6C.65.73.69.7A.65">4.11. filesize</h4>
<h4 id="g1-67.61.74.65.77.61.79.69.70">4.12. gatewayip</h4>
<h4 id="g1-69.70.61.64.64.72">4.13. ipaddr</h4>
<h4 id="g1-6C.6F.61.64.61.64.64.72">4.14. loadaddr</h4>
<h4 id="g1-6C.6F.61.64.73.5F.65.63.68.6F">4.15. loads_echo</h4>
<h4 id="g1-6E.65.74.6D.61.73.6B">4.16. netmask</h4>
<h4 id="g1-6E.76.6C.61.6E">4.17. nvlan</h4>
<h4 id="g1-71.75.69.65.74">4.18. quiet</h4>
<h4 id="g1-72.6F.6F.74.70.61.74.68">4.19. rootpath</h4>
<h4 id="g1-73.65.72.76.65.72.69.70">4.20. serverip</h4>
<h4 id="g1-73.70.6C.61.73.68.69.6D.61.67.65">4.21. splashimage</h4>
<h4 id="g1-73.74.64.65.72.72">4.22. stderr</h4>
<h4 id="g1-73.74.64.69.6E">4.23. stdin</h4>
<h4 id="g1-73.74.64.6F.75.74">4.24. stdout</h4>
<h4 id="g1-76.65.72">4.25. ver</h4>
<p>versionコマンドで表示されるバージョン文字列です。この環境変数はリードオンリーです。</p>
<h4 id="g1-76.65.72.69.66.79">4.26. verify</h4>
<p>nにすると、bootmやautoscriptコマンド実行時にU-Boot形式のチェックサムを確認しません。</p>
<h4 id="g1-76.6C.61.6E">4.27. vlan</h4>
<h3 id="g1-E5.87.BA.E8.8D.B7.E6.99.82.E3.81.AE.E7.92.B0.E5.A2.83.E5.A4.89.E6.95.B0">5. 出荷時の環境変数</h3>
<table><tr><th>変数名</th><th>値</th></tr><tr><td>bootdelay</td><td>3</td></tr><tr><td>bootargs</td><td>root=/dev/mtdblock5 rootfstype=jffs2</td></tr><tr><td>netmask</td><td>255.255.255.0</td></tr><tr><td>ipaddr</td><td>192.168.0.100</td></tr><tr><td>serverip</td><td>192.168.0.1</td></tr><tr><td>bootfile</td><td>uImage</td></tr><tr><td>bootcmd</td><td>bootm 40000</td></tr><tr><td>splashimage</td><td>320000</td></tr></table>
<h3 id="g1-E3.83.AA.E3.83.B3.E3.82.AF">6. リンク</h3>
<ul><li><a href="http://www.denx.de/wiki/UBoot">Das U-Boot -- the Universal Boot Loader</a></li><li><a href="http://pylone.jp/blog/tags/u-boot">ブログのU-Boot関連記事</a></li></ul>
<p> </p>
]]></description>
   <category domain="http://pylone.jp/bishop/docs/u-boot-refman.html">doc</category>
   <pubDate>Sun, 03 Feb 2008 16:43 GMT</pubDate>
</item>

<item>
   <title>起動メッセージ</title>
   <guid isPermaLink="true">http://pylone.jp/bishop/docs/dmesg.html</guid>

   <link>http://pylone.jp/bishop/docs/dmesg.html</link>
   <description><![CDATA[

<pre>U-Boot 1.2.0-pylone5 (Oct 10 2007 - 22:41:30)

DRAM:  128 MB
Flash:  4 MB
NAND:  128 MiB
In:    serial
Out:   serial
Err:   serial
Hit any key to stop autoboot:  0
   Image Name:   Linux-2.6.26.8-pylone0
   Created:      2008-12-19   9:23:07 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1834472 Bytes =  1.7 MB
   Load Address: 30008000
   Entry Point:  30008000
   Verifying Checksum ... OK
OK

Starting kernel ...

Uncompressing Linux..................................................................................................................... done, booting the kernel.
s3c2440_timers_write: Bad register 0x40 value d8d208
Linux version 2.6.26.8-pylone0 (seiichi@se) (gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21pylone1)) #1 Fri Dec 19 18:23:04 JST 2008
CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=00007177
Machine: Pylone Bishop
Memory policy: ECC disabled, Data cache writeback
CPU S3C2440A (id 0x32440001)
S3C244X: core 399.651 MHz, memory 133.217 MHz, peripheral 66.608 MHz
S3C24XX Clocks, (c) 2004 Simtec Electronics
CLOCK: Slow mode (2.116 MHz), fast, MPLL on, UPLL on
CPU0: D VIVT write-back cache
CPU0: I cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets
CPU0: D cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 32512
Kernel command line: console=ttySAC0,115200 console=tty0 preinit=/pylone root=/dev/mtdblock5 rootfstype=jffs2 console=ttySAC0,115200n8
irq: clearing subpending status 00000002
PID hash table entries: 512 (order: 9, 2048 bytes)
timer tcon=00500000, tcnt d8d2, tcfg 00000200,00000000, usec 0000170f
Console: colour dummy device 80x30
console [tty0] enabled
console [ttySAC0] enabled
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 128MB = 128MB total
Memory: 126080KB available (3396K code, 255K data, 116K init)
SLUB: Genslabs=12, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
net_namespace: 324 bytes
NET: Registered protocol family 16
S3C2410 Power Management, (c) 2004 Simtec Electronics
Pylone Bishop board PE-201A
wake enabled for irq 48
S3C2440: Initialising architecture
S3C2440: IRQ Support
S3C24XX DMA Driver, (c) 2003-2004,2006 Simtec Electronics
DMA channel 0 at c8800000, irq 33
DMA channel 1 at c8800040, irq 34
DMA channel 2 at c8800080, irq 35
DMA channel 3 at c88000c0, irq 36
S3C244X: Clock Support, DVS off
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 4096 (order: 3, 32768 bytes)
TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
TCP reno registered
NET: Registered protocol family 1
NetWinder Floating Point Emulator V0.97 (double precision)
JFFS2 version 2.2. (NAND) &amp;copy; 2001-2006 Red Hat, Inc.
msgmni has been set to 246
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
s3c2410 Backlight Driver Initialized.
Console: switching to colour frame buffer device 60x34
fb0: s3c2410fb frame buffer device
S3C2410/S3C2440 L3-interface successfully loaded.
s3c2440-uart.0: ttySAC0 at MMIO 0x50000000 (irq = 70) is a S3C2440
s3c2440-uart.1: ttySAC1 at MMIO 0x50004000 (irq = 73) is a S3C2440
s3c2440-uart.2: ttySAC2 at MMIO 0x50008000 (irq = 76) is a S3C2440
brd: module loaded
loop: module loaded
dm9000 Ethernet Driver, V1.30
eth0: dm9000 at c885e300,c8860304 IRQ 18 MAC: 00:1d:2d:ff:ff:ff (eeprom)
Driver 'sd' needs updating - please use bus_type methods
Pylone Bishop NOR flash device: 0x1000000 at 0x0
Creating 4 MTD partitions on "Bishop NOR flash":
0x00000000-0x00040000 : "U-Boot"
0x00040000-0x00330000 : "Kernel"
0x00330000-0x003f0000 : "initrd"
0x003f0000-0x00400000 : "U-Boot environment variables"
S3C24XX NAND Driver, (c) 2004 Simtec Electronics
s3c2440-nand s3c2440-nand: Tacls=1, 7ns Twrph0=4 30ns, Twrph1=1 7ns
NAND device: Manufacturer ID: 0xec, Chip ID: 0xf1 (Samsung NAND 128MiB 3,3V 8-bit)
s3c2410_nand_update_chip: chip c7fcc2bc: 11
Scanning device for bad blocks
Creating 1 MTD partitions on "NAND 128MiB 3,3V 8-bit":
0x00000000-0x08000000 : "Root filesystem"
s3c2410-spi s3c2410-spi.0: No platform data supplied
s3c2410-spi: probe of s3c2410-spi.0 failed with error -2
s3c2410-ohci s3c2410-ohci: S3C24XX OHCI
s3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 1
s3c2410-ohci s3c2410-ohci: irq 42, io mem 0x49000000
s3c2410-ohci s3c2410-ohci: init err (00000000 0000)
ohci_hcd: can't start s3c24xx
s3c2410-ohci s3c2410-ohci: startup error -75
s3c2410-ohci s3c2410-ohci: USB bus 1 deregistered
s3c2410-ohci: probe of s3c2410-ohci failed with error -75
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
mice: PS/2 mouse device common for all mice
input: gpio-keys as /class/input/input0
bishop-keypad: bishop keypad driver version 0.1
input: bishop Keypad as /class/input/input1
s3c2410 TouchScreen successfully loaded
input: s3c2410 TouchScreen as /class/input/input2
bishop-beeper: bishop beeper driver version 0.1
input: bishop beeper as /class/input/input3
S3C24XX RTC, (c) 2004,2006 Simtec Electronics
s3c2410-rtc s3c2410-rtc: rtc disabled, re-enabling
s3c2410-rtc s3c2410-rtc: rtc core: registered s3c as rtc0
S3C2410 Watchdog Timer, (c) 2004 Simtec Electronics
s3c2410-wdt s3c2410-wdt: watchdog inactive, reset disabled, irq enabled
mapped channel 0 to 0
s3c2440-sdi s3c2440-sdi: powered down.
s3c2440-sdi s3c2440-sdi: initialisation done.
s3c2440-sdi s3c2440-sdi: running at 0kHz (requested: 0kHz).
s3c2440-sdi s3c2440-sdi: running at 261kHz (requested: 260kHz).
s3c2440-sdi s3c2440-sdi: running at 261kHz (requested: 260kHz).
s3c2440-sdi s3c2440-sdi: running at 261kHz (requested: 260kHz).
s3c2440-sdi s3c2440-sdi: powered down.
Registered led device: led4
Registered led device: led5
Registered led device: led6
Registered led device: led7
usbcore: registered new interface driver usbhid
usbhid: v2.6:USB HID core driver
Advanced Linux Sound Architecture Driver Version 1.0.16.
ASoC version 0.13.2
uda1341: Audio Codec 0.1
asoc: UDA1341 &lt;-&gt; s3c24xx-i2s mapping ok
ALSA device list:
  #0: Bishop (UDA1341TS)
TCP cubic registered
NET: Registered protocol family 10
IPv6 over IPv4 tunneling driver
NET: Registered protocol family 17
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
ieee80211: 802.11 data/management/control stack, git-1.1.13
ieee80211: Copyright (C) 2004-2005 Intel Corporation &lt;jketreno@linux.intel.com&gt;
s3c2410-rtc s3c2410-rtc: setting system clock to 2008-12-21 10:02:49 UTC (1229853769)
Empty flash at 0x03af6064 ends at 0x03af6800
VFS: Mounted root (jffs2 filesystem).
Freeing init memory: 116K
INIT: version 2.86 booting
Starting the hotplug events dispatcher: udevd.
Synthesizing the initial hotplug events...done.
Waiting for /dev to be fully populated...done.
Activating swap...done.
Setting the system clock..
Cleaning up ifupdown....
Loading kernel modules...FATAL: Could not load /lib/modules/2.6.26.8-pylone0/modules.dep: No such file or directory
Loading device-mapper support.
Checking file systems...fsck 1.40-WIP (14-Nov-2006)
done.
Setting kernel variables...done.
Mounting local filesystems...done.
Activating swapfile swap...done.
Setting up networking....
Configuring network interfaces...Internet Systems Consortium DHCP Client V3.0.4
Copyright 2004-2006 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/

eth0: link up, 10Mbps, half-duplex, lpa 0x0400
Listening on LPF/eth0/00:1d:2d:ff:ff:ff
Sending on   LPF/eth0/00:1d:2d:ff:ff:ff
Sending on   Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 7
DHCPOFFER from 10.0.2.2
DHCPREQUEST on eth0 to 255.255.255.255 port 67
DHCPACK from 10.0.2.2
bound to 10.0.2.15 -- renewal in 33674 seconds.
done.
Setting console screen modes and fonts.
INIT: Entering runlevel: 2
Starting system log daemon: syslogd.
Starting kernel log daemon: klogd.
* Not starting internet superserver: no services enabled.
Starting periodic command scheduler: crond.

Debian GNU/Linux 4.0 bishop ttySAC0

bishop login:</pre>
]]></description>
   <category domain="http://pylone.jp/bishop/docs/dmesg.html">doc</category>
   <pubDate>Thu, 07 Feb 2008 08:07 GMT</pubDate>
</item>

<item>
   <title>外部ストレージをルートファイルシステムにする手順</title>
   <guid isPermaLink="true">http://pylone.jp/bishop/docs/ext-root.html</guid>

   <link>http://pylone.jp/bishop/docs/ext-root.html</link>
   <description><![CDATA[

<div class="toc"><div class="head">目次</div><ul><li style="margin-left:1em;" class="depth1">1. <a href="#g1-E6.A6.82.E8.A6.81">概要</a></li><li style="margin-left:1em;" class="depth1">2. <a href="#g1-44.65.62.69.61.6E.20.E5.9F.BA.E6.9C.AC.E3.82.B7.E3.82.B9.E3.83.86.E3.83.A0.E3.81.AE.E5.85.A5.E6.89.8B">Debian 基本システムの入手</a></li><li style="margin-left:1em;" class="depth1">3. <a href="#g1-E3.82.B9.E3.83.88.E3.83.AC.E3.83.BC.E3.82.B8.E3.81.AE.E5.88.9D.E6.9C.9F.E5.8C.96">ストレージの初期化</a></li><li style="margin-left:2em;" class="depth2">3.1. <a href="#g1-init-usb-storage">USB ストレージの場合</a></li><li style="margin-left:2em;" class="depth2">3.2. <a href="#g1-init-sd-card">SD カードの場合</a></li><li style="margin-left:2em;" class="depth2">3.3. <a href="#g1-init-nfs-root">NFS-Root の場合</a></li><li style="margin-left:1em;" class="depth1">4. <a href="#g1-44.65.62.69.61.6E.20.E5.9F.BA.E6.9C.AC.E3.82.B7.E3.82.B9.E3.83.86.E3.83.A0.E3.81.AE.E5.B1.95.E9.96.8B">Debian 基本システムの展開</a></li><li style="margin-left:1em;" class="depth1">5. <a href="#g1-E3.83.9E.E3.82.A6.E3.83.B3.E3.83.88.E5.89.8D.E3.81.AE.E8.A8.AD.E5.AE.9A">マウント前の設定</a></li><li style="margin-left:2em;" class="depth2">5.1. <a href="#g1-2F.52.4F.4F.54.46.53.2F.65.74.63.2F.66.73.74.61.62">/ROOTFS/etc/fstab</a></li><li style="margin-left:3em;" class="depth3">5.1.1. <a href="#g1-fstab-usb-storage">USB ストレージの場合</a></li><li style="margin-left:3em;" class="depth3">5.1.2. <a href="#g1-fstab-sd-card">SD カードの場合</a></li><li style="margin-left:3em;" class="depth3">5.1.3. <a href="#g1-fstab-nfs-root">NFS-Root の場合</a></li><li style="margin-left:2em;" class="depth2">5.2. <a href="#g1-2F.52.4F.4F.54.46.53.2F.65.74.63.2F.6E.65.74.77.6F.72.6B.2F.69.6E.74.65.72.66.61.63.65.73">/ROOTFS/etc/network/interfaces</a></li><li style="margin-left:2em;" class="depth2">5.3. <a href="#g1-2F.52.4F.4F.54.46.53.2F.65.74.63.2F.72.65.73.6F.6C.76.2E.63.6F.6E.66">/ROOTFS/etc/resolv.conf</a></li><li style="margin-left:1em;" class="depth1">6. <a href="#g1-E3.82.AB.E3.83.BC.E3.83.8D.E3.83.AB.E8.B5.B7.E5.8B.95.E3.83.91.E3.83.A9.E3.83.A1.E3.83.BC.E3.82.BF.E3.81.AE.E5.A4.89.E6.9B.B4">カーネル起動パラメータの変更</a></li><li style="margin-left:2em;" class="depth2">6.1. <a href="#g1-param-usb-storage">USB ストレージの場合</a></li><li style="margin-left:2em;" class="depth2">6.2. <a href="#g1-param-sd-card">SD カードの場合</a></li><li style="margin-left:2em;" class="depth2">6.3. <a href="#g1-param-nfs-root">NFS-Root の場合</a></li><li style="margin-left:1em;" class="depth1">7. <a href="#g1-E8.B5.B7.E5.8B.95">起動</a></li><li style="margin-left:2em;" class="depth2">7.1. <a href="#g1-55.53.42.20.E3.82.B9.E3.83.88.E3.83.AC.E3.83.BC.E3.82.B8.2C.20.53.44.20.E3.82.AB.E3.83.BC.E3.83.89.E3.81.AE.E5.A0.B4.E5.90.88">USB ストレージ, SD カードの場合</a></li><li style="margin-left:2em;" class="depth2">7.2. <a href="#g1-4E.46.53.2D.52.6F.6F.74.20.E3.81.AE.E5.A0.B4.E5.90.88">NFS-Root の場合</a></li><li style="margin-left:1em;" class="depth1">8. <a href="#g1-E3.83.AD.E3.82.B0.E3.82.A4.E3.83.B3">ログイン</a></li><li style="margin-left:1em;" class="depth1">9. <a href="#g1-E8.B5.B7.E5.8B.95.E5.BE.8C.E3.81.AE.E8.A8.AD.E5.AE.9A">起動後の設定</a></li><li style="margin-left:2em;" class="depth2">9.1. <a href="#g1-72.6F.6F.74.20.E3.81.AE.E3.83.91.E3.82.B9.E3.83.AF.E3.83.BC.E3.83.89">root のパスワード</a></li><li style="margin-left:2em;" class="depth2">9.2. <a href="#g1-41.50.54.20.E3.81.AE.E8.A8.AD.E5.AE.9A">APT の設定</a></li><li style="margin-left:2em;" class="depth2">9.3. <a href="#g1-E3.82.BF.E3.82.A4.E3.83.A0.E3.82.BE.E3.83.BC.E3.83.B3.E3.81.AE.E8.A8.AD.E5.AE.9A">タイムゾーンの設定</a></li><li style="margin-left:2em;" class="depth2">9.4. <a href="#g1-E3.82.AD.E3.83.BC.E3.83.9C.E3.83.BC.E3.83.89.E3.81.AE.E9.85.8D.E5.88.97">キーボードの配列</a></li><li style="margin-left:2em;" class="depth2">9.5. <a href="#g1-6D.74.64.2D.74.6F.6F.6C.73">mtd-tools</a></li><li style="margin-left:2em;" class="depth2">9.6. <a href="#g1-75.64.65.76">udev</a></li><li style="margin-left:1em;" class="depth1">10. <a href="#g1-54.69.70.73">Tips</a></li><li style="margin-left:2em;" class="depth2">10.1. <a href="#g1-E8.B5.B7.E5.8B.95.E3.81.AE.E8.87.AA.E5.8B.95.E5.8C.96">起動の自動化</a></li></ul></div>
<h3 id="g1-E6.A6.82.E8.A6.81">1. 概要</h3>
<p>このドキュメントでは、ルートファイルシステムを外部のストレージに
置く手順について説明します。</p>
<p class="info">Bishop のルートファイルシステム (Debian GNU/Linux 4.0 etch)
がプリインストールされる NAND は書き込み速度が遅く、サイズも 128MB
であるため、開発時のルートファイルシステムには不向きです。開発中のルートファイルシステムは外部ストレージに置くことをお勧めします。</p>
<p>以下の外部ストレージを対象とします。</p>
<ul><li>USB ストレージ (USB メモリ、USB HDD)</li><li>SD カード</li><li>NFS マウントしたディレクトリ (NFS-Root)</li></ul>
<p>以降では、作業を行うマシンを「ホスト」、Bishop を「ターゲット」と呼びます。</p>
<p>ホストの環境は Debian GNU/Linux を想定しますが、一般的な Linux
ディストリビュージョンであれば手順に大きな違いはありません。</p>
<p>インストールするのは Debian GNU/Linux ベースのルートファイルシステムです。</p>
<h3 id="g1-44.65.62.69.61.6E.20.E5.9F.BA.E6.9C.AC.E3.82.B7.E3.82.B9.E3.83.86.E3.83.A0.E3.81.AE.E5.85.A5.E6.89.8B">2. Debian 基本システムの入手</h3>
<p><a href="http://downloads.pylone.jp/bishop/etch_arm_bishop-20081215.tar.bz2">Debian基本システム</a>をダウンロードします。</p>
<p class="alert">debootstrap コマンドで作った Debian 基本システムに株式会社パイロンが Bishop 向けに独自の修正を加えたものです。 この Debian 基本システムに関する質問を Debian プロジェクトにすることはご遠慮ください。</p>
<h3 id="g1-E3.82.B9.E3.83.88.E3.83.AC.E3.83.BC.E3.82.B8.E3.81.AE.E5.88.9D.E6.9C.9F.E5.8C.96">3. ストレージの初期化</h3>
<h4 id="g1-init-usb-storage">3.1. USB ストレージの場合</h4>
<p>ホストに USB ストレージを接続します。</p>
<p>GNOME や KDE などのデスクトップ環境の場合、フォーマット済の USB ストレージが
自動的にマウントされることがあります。
自動的にマウントされた場合はアンマウントしてください。</p>
<pre># umount /dev/sda1</pre>
<p class="info">USB ストレージのデバイスファイルを /dev/sda
とします。それ以外の場合は、適時読み替えてください。</p>
<p>パーティションは以下の構成とします。</p>
<table><tr><td class="head">sda1</td><td>ルートファイルシステム</td></tr><tr><td class="head">sda2</td><td>swap</td></tr></table>
<p>パーティションを作成するツールは色々ありますが、ここでは fdisk コマンドを
使った簡単な例を紹介します。</p>
<p class="alert">Bishop とは直接関係のない fdisk コマンドの詳細な解説はしません。</p>
<pre># fdisk /dev/sda

Command (m for help):</pre>
<p>fdisk は対話形式です。m コマンドを入力するとヘルプが
表示されます。</p>
<pre>Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)</pre>
<p>ストレージ購入直後の既存パーティションを消して、新たにルートファイルシステムと swap のパーティションを作るのであれば以下のようになります。</p>
<p>既存のパーテションを削除:</p>
<pre>Command (m for help): d
Selected partition 1</pre>
<p>ルートファイルシステムのパーティションを作成:</p>
<pre>Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1011, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-1011, default 1011): 995</pre>
<p>swap パーティションを作成:</p>
<pre>Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (996-1011, default 996):
Using default value 996
Last cylinder or +size or +sizeM or +sizeK (996-1011, default 1011):
Using default value 1011</pre>
<p>swap パーティションのタイプをセット:</p>
<pre>Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): 83</pre>
<p>変更を反映:</p>
<pre>Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks</pre>
<p>最後に、ルートファイルシステムのパーティションをフォーマットします。ここでは Bishop のカーネルがデフォルトで対応している ext3 ファイルシステムでフォーマットします。</p>
<pre># mkfs.ext3 /dev/sda1</pre>
<p>ここでは fdisk を紹介しましたが、libpartd の GUI フロントエンドである
gpartd (GNOME/Gtk+) や qtpartd (Qt) を試してみることをお勧めします。</p>
<p>gparted:</p>
<p><img src="/i/ss/gparted.jpg" alt="スクリーンショット" /></p>
<h4 id="g1-init-sd-card">3.2. SD カードの場合</h4>
<p>SD カードの場合、USB 変換アダプタを介してホストに
接続することがほとんどであると思われます。
その場合、ホストからは USB ストレージと同様に
SCSI ディスクとして見えます。
手順についても USB ストレージの場合と変わりません。</p>
<h4 id="g1-init-nfs-root">3.3. NFS-Root の場合</h4>
<p>NFS ルートの場合、NFS サーバで
対象ディレクトリを export します。NFS サーバの設定については
<a href="setup_nfs_server.html">NFS サーバの設定</a>
を参照してください。</p>
<h3 id="g1-44.65.62.69.61.6E.20.E5.9F.BA.E6.9C.AC.E3.82.B7.E3.82.B9.E3.83.86.E3.83.A0.E3.81.AE.E5.B1.95.E9.96.8B">4. Debian 基本システムの展開</h3>
<p>USB ストレージや SD カードの場合、ルートファイルシステムを任意のディレクトリにマウントします。</p>
<pre># mount /dev/sda1 /ROOTFS</pre>
<p>以降では、USB ストレージや SD カードをマウントしたディレクトリや NFS でエクスポートしたディレクトリを /ROOTFS とします。</p>
<p>ダウンロードした Debian 基本システムを /ROOTFS へ展開します。</p>
<pre># tar xjvf etch_arm_bishop-20081215.tar.bz2 -C /ROOTFS</pre>
<p>展開した中身をひとつ上の階層に移します。</p>
<pre># mv /ROOTFS/etch_arm_bishop-20081215/* /ROOTFS/</pre>
<p>空になったディレクトリ etch_arm_bishop-20081215 を削除します。</p>
<pre># rmdir /ROOTFS/etch_arm_bishop-20081215</pre>
<h3 id="g1-E3.83.9E.E3.82.A6.E3.83.B3.E3.83.88.E5.89.8D.E3.81.AE.E8.A8.AD.E5.AE.9A">5. マウント前の設定</h3>
<p>各設定ファイルを編集します。</p>
<h4 id="g1-2F.52.4F.4F.54.46.53.2F.65.74.63.2F.66.73.74.61.62">5.1. /ROOTFS/etc/fstab</h4>
<h5 id="g1-fstab-usb-storage">5.1.1. USB ストレージの場合</h5>
<pre># &lt;file system&gt; &lt;mount point&gt;  &lt;type&gt; &lt;options&gt;                 &lt;dump&gt;  &lt;pass&gt;
proc            /proc          proc   defaults                    0       0
/dev/sda1       /              ext3   defaults,errors=remount-ro  0       0
/dev/sda2       none           swap   sw                          0       0</pre>
<p class="alert">/dev/sda1, /dev/sda2 はターゲットのデバイスファイル名です。ホストのデバイスファイル名ではない点に注意してください。ターゲットに接続する USB ストレージがひとつだけであれば sda になります。</p>
<h5 id="g1-fstab-sd-card">5.1.2. SD カードの場合</h5>
<pre># &lt;file system&gt; &lt;mount point&gt;  &lt;type&gt; &lt;options&gt;                 &lt;dump&gt;  &lt;pass&gt;
proc            /proc          proc   defaults                    0       0
/dev/mmcblk0p1  /              ext3   defaults,errors=remount-ro  0       0
/dev/mmcblk0p2  none           swap   sw                          0       0</pre>
<h5 id="g1-fstab-nfs-root">5.1.3. NFS-Root の場合</h5>
<pre># &lt;file system&gt; &lt;mount point&gt;  &lt;type&gt; &lt;options&gt;                 &lt;dump&gt;  &lt;pass&gt;
proc            /proc          proc   defaults                    0       0</pre>
<h4 id="g1-2F.52.4F.4F.54.46.53.2F.65.74.63.2F.6E.65.74.77.6F.72.6B.2F.69.6E.74.65.72.66.61.63.65.73">5.2. /ROOTFS/etc/network/interfaces</h4>
<pre>auto lo
iface lo inet loopback

# eth0 に DHCP で IP アドレスを割り当てる場合は
# 下の2行のコメントを外してください。
# auto eth0
# iface eth0 inet dhcp

# eth0 に静的 IP アドレスを割り当てる場合は
# 下の7行のコメントを外して、IP アドレス等を
# 設定してください。
# auto eth0
# iface eth0 inet static
#     address &lt;IP アドレス&gt;
#     network &lt;ネットワークアドレス&gt;
#     netmask &lt;ネットマスク&gt;
#     broadcast &lt;ブロードキャスト&gt;
#     gateway &lt;ゲートウェイ&gt;</pre>
<p class="alert">NFS-Rootの場合、カーネル起動時にIPアドレスが割り当てられます。 /etc/network/interfacesで割り当てないようにしてください</p>
<h4 id="g1-2F.52.4F.4F.54.46.53.2F.65.74.63.2F.72.65.73.6F.6C.76.2E.63.6F.6E.66">5.3. /ROOTFS/etc/resolv.conf</h4>
<pre>search
nameserver &lt;ネームサーバの IP アドレス&gt;</pre>
<p class="alert">DHCPサーバからネームサーバの IPアドレスを取得する場合、nameserver
の行は要りません。</p>
<p>設定ファイルの編集が終わったらアンマウントします。</p>
<pre># umount /dev/sda1</pre>
<h3 id="g1-E3.82.AB.E3.83.BC.E3.83.8D.E3.83.AB.E8.B5.B7.E5.8B.95.E3.83.91.E3.83.A9.E3.83.A1.E3.83.BC.E3.82.BF.E3.81.AE.E5.A4.89.E6.9B.B4">6. カーネル起動パラメータの変更</h3>
<p>ターゲットとホストをシリアルクロスケーブルで接続して、シリアルコンソールから U-Boot でカーネル起動パラメータを変更します。</p>
<p class="info">シリアルコンソールの設定手順については
<a href="quick_start.html">クイックスタート</a>
を参照してください。
U-Boot については
<a href="u-boot-refman.html">U-Boot リファレンスマニュアル</a> を参照してください。</p>
<p>カーネルの起動パラメータ U-Boot の環境変数 bootargs で設定します。</p>
<h4 id="g1-param-usb-storage">6.1. USB ストレージの場合</h4>
<pre>Bishop # setenv bootargs root=8:1</pre>
<p class="alert">root=/dev/sda1 のようにデバイスファイル名で指定することが出来ません。 デバイスのメジャー/マイナー番号で指定してください。理由については
<a href="about-root-param.html">起動パラメータrootについて</a>を参照してください。</p>
<h4 id="g1-param-sd-card">6.2. SD カードの場合</h4>
<pre>Bishop # setenv bootargs root=179:1</pre>
<p class="alert">USB ストレージと同様、root=/dev/mmcblk0p1
のようにデバイスファイル名で指定することが出来ません。
デバイスのメジャー/マイナー番号で指定してください。理由については
<a href="about-root-param.html">起動パラメータrootについて</a>を参照してください。</p>
<h4 id="g1-param-nfs-root">6.3. NFS-Root の場合</h4>
<pre>Bishop # setenv bootargs root=/dev/nfs nfsroot=&lt;NFS サーバ IP&gt;:/ROOTFS/ ip=&lt;IP アドレス&gt;:&lt;サーバのIP&gt;&lt;ゲートウェイのIP&gt;:&lt;ネットマスク&gt;:&lt;ホストネーム&gt;:&lt;デバイス&gt;:&lt;autoconf&gt;</pre>
<p>ip オプションでネットワーク設定のパラメータを ":" で区切って列挙します。
最低限必要なのは IP アドレスです。</p>
<p>IP アドレス: 192.168.1.100/24 の場合:</p>
<pre>ip=192.168.1.100:::255.255.255.0:::</pre>
<p class="info">ここでは 静的 IP アドレスを割り当てる方法を紹介しましたが、
ip オプションでは、DHCP、BOOTP、RARP などで動的に割り当てることもできます。
詳細はカーネル付属文書 Documentation/nfsroot.txt を参照してください。</p>
<h3 id="g1-E8.B5.B7.E5.8B.95">7. 起動</h3>
<h4 id="g1-55.53.42.20.E3.82.B9.E3.83.88.E3.83.AC.E3.83.BC.E3.82.B8.2C.20.53.44.20.E3.82.AB.E3.83.BC.E3.83.89.E3.81.AE.E5.A0.B4.E5.90.88">7.1. USB ストレージ, SD カードの場合</h4>
<p>USB ストレージや SD カードのルートファイルシステムをマウントするために
initrd が必要になります。
出荷状態の Bishop では、NOR の 00330000h に U-Boot 形式の initrd イメージが
置かれています。
まずはこの initrd イメージを SDRAM の 30800000h にコピーにします。</p>
<pre>Bishop # cp 330000 30800000 30000</pre>
<p>次に、bootm コマンドで initrd を指定して Linux を起動します。</p>
<pre>Bishop # bootm 40000 30800000</pre>
<p class="info">各アドレスについては<a href="addrmap.html">アドレスマップ</a> を
参照してください。</p>
<h4 id="g1-4E.46.53.2D.52.6F.6F.74.20.E3.81.AE.E5.A0.B4.E5.90.88">7.2. NFS-Root の場合</h4>
<p>NFS-Root の場合は initrd は必要ありません。
NOR 上のカーネルを起動するだけです。</p>
<pre>Bishop # bootm 40000</pre>
<h3 id="g1-E3.83.AD.E3.82.B0.E3.82.A4.E3.83.B3">8. ログイン</h3>
<p>起動後にログインできるユーザは root です。
初期状態ではパスワードは必要ありません。</p>
<p>シリアルコンソール (ttySAC0) と
本体のコンソール (ttyS) からログインできます。</p>
<h3 id="g1-E8.B5.B7.E5.8B.95.E5.BE.8C.E3.81.AE.E8.A8.AD.E5.AE.9A">9. 起動後の設定</h3>
<h4 id="g1-72.6F.6F.74.20.E3.81.AE.E3.83.91.E3.82.B9.E3.83.AF.E3.83.BC.E3.83.89">9.1. root のパスワード</h4>
<pre>bishop:~# passwd
Enter new UNIX password: ←パスワードを入力
Retype new UNIX password: ←もう一度パスワードを入力
passwd: password updated successfully</pre>
<h4 id="g1-41.50.54.20.E3.81.AE.E8.A8.AD.E5.AE.9A">9.2. APT の設定</h4>
<p>必要であれば、/etc/apt/sources.list を編集します。</p>
<p>デフォルトの sources.list:</p>
<pre>deb http://ftp.jp.debian.org/debian etch main</pre>
<p>取得可能なパッケージの一覧を更新します。</p>
<pre>aptitude update</pre>
<h4 id="g1-E3.82.BF.E3.82.A4.E3.83.A0.E3.82.BE.E3.83.BC.E3.83.B3.E3.81.AE.E8.A8.AD.E5.AE.9A">9.3. タイムゾーンの設定</h4>
<p>タイムゾーンの設定をします。</p>
<p>以下は Asia/Tokyo の場合です。</p>
<pre>bishop:~# tzconfig
Your current time zone is set to Unknown
Do you want to change that? [n]: y

Please enter the number of the geographic area in which you live:


        1) Africa                       7) Australia

        2) America                      8) Europe

        3) US time zones                9) Indian Ocean

        4) Canada time zones            10) Pacific Ocean

        5) Asia                         11) Use System V style time zones

        6) Atlantic Ocean               12) None of the above


Then you will be shown a list of cities which represent the time zone
in which they are located. You should choose a city in your time zone.

Number: 5  ← Asia の 5

Aden Almaty Amman Anadyr Aqtau Aqtobe Ashgabat Ashkhabad Baghdad Bahrain
Baku Bangkok Beirut Bishkek Brunei Calcutta Choibalsan Chongqing Chungking
Colombo Dacca Damascus Dhaka Dili Dubai Dushanbe Gaza Harbin Hong_Kong
Hovd Irkutsk Istanbul Jakarta Jayapura Jerusalem Kabul Kamchatka Karachi
Kashgar Katmandu Krasnoyarsk Kuala_Lumpur Kuching Kuwait Macao Macau
Magadan Makassar Manila Muscat Nicosia Novosibirsk Omsk Oral Phnom_Penh
Pontianak Pyongyang Qatar Qyzylorda Rangoon Riyadh Riyadh87 Riyadh88
Riyadh89 Saigon Sakhalin Samarkand Seoul Shanghai Singapore Taipei
Tashkent Tbilisi Tehran Tel_Aviv Thimbu Thimphu Tokyo Ujung_Pandang
Ulaanbaatar Ulan_Bator Urumqi Vientiane Vladivostok Yakutsk Yekaterinburg
Yerevan

Please enter the name of one of these cities or zones
You just need to type enough letters to resolve ambiguities
Press Enter to view all of them again
Name: [] Tokyo
Your default time zone is set to 'Asia/Tokyo'.
Local time is now:      Thu Aug 16 23:00:18 JST 2007.
Universal Time is now:  Thu Aug 16 14:00:18 UTC 2007.</pre>
<h4 id="g1-E3.82.AD.E3.83.BC.E3.83.9C.E3.83.BC.E3.83.89.E3.81.AE.E9.85.8D.E5.88.97">9.4. キーボードの配列</h4>
<p>キーボードの配列 (keymap) を設定します。</p>
<pre>bishop:~# aptitude install console-common console-data</pre>
<p>インストール中に表示されるパッケージ設定画面から
キーボードの配列を設定できます。
日本語の USB キーボードを使う場合は以下の順で選択
すればいいでしょう。</p>
<ul><li>"Select keymap from arch list"</li><li>qwerty</li><li>Japanese</li><li>Standard</li></ul>
<h4 id="g1-6D.74.64.2D.74.6F.6F.6C.73">9.5. mtd-tools</h4>
<p>Bishop 上で NOR や NAND の消去・書き込みを行う場合、
mtd-tools をインストールします。</p>
<pre>bishop:~# aptitude install mtd-tools</pre>
<h4 id="g1-75.64.65.76">9.6. udev</h4>
<p>udev をインストールします。</p>
<pre>bishop:~# aptitude install udev</pre>
<p>udev の RTC は /dev/rtc0 ですが、hwclock コマンドは
/dev/rtc を開こうとするため、RTC にアクセスできません。
これを回避するためには /etc/udev/links.conf に以下の行を追加してください。</p>
<pre>L rtc /dev/rtc0</pre>
<h3 id="g1-54.69.70.73">10. Tips</h3>
<h4 id="g1-E8.B5.B7.E5.8B.95.E3.81.AE.E8.87.AA.E5.8B.95.E5.8C.96">10.1. 起動の自動化</h4>
<p>U-Boot のコマンドを環境変数 bootcmd に保存すれば起動を自動化できます。</p>
<p>USB ストレージの場合:</p>
<pre>Bishop # setenv bootargs root=8:1
Bishop # setenv bootcmd cp 330000 30800000 30000 \; bootm 40000 30800000
Bishop # saveenv</pre>
<p>bootcmd に複数のコマンドを設定する場合、コマンドの区切り文字は "\;" になります。
";" はコマンドの終端で、"\" はエスケープ文字です。</p>
]]></description>
   <category domain="http://pylone.jp/bishop/docs/ext-root.html">doc</category>
   <pubDate>Sun, 03 Feb 2008 16:43 GMT</pubDate>
</item>

<item>
   <title>フラッシュへの書き込み</title>
   <guid isPermaLink="true">http://pylone.jp/bishop/docs/flash-writing.html</guid>

   <link>http://pylone.jp/bishop/docs/flash-writing.html</link>
   <description><![CDATA[

<p>BishopのNORフラッシュメモリやNANDフラッシュメモリへ書き込む手順です。</p>
<div class="toc"><div class="head">目次</div><ul><li style="margin-left:1em;" class="depth1">1. <a href="#g1-4E.4F.52">NOR</a></li><li style="margin-left:2em;" class="depth2">1.1. <a href="#g1-55.2D.42.6F.6F.74.E3.81.AB.E3.82.88.E3.82.8B.4E.4F.52.E3.81.AE.E6.9B.B8.E3.81.8D.E8.BE.BC.E3.81.BF">U-BootによるNORの書き込み</a></li><li style="margin-left:2em;" class="depth2">1.2. <a href="#g1-4C.69.6E.75.78.E3.81.AB.E3.82.88.E3.82.8B.4E.4F.52.E3.81.AE.E6.9B.B8.E3.81.8D.E8.BE.BC.E3.81.BF">LinuxによるNORの書き込み</a></li><li style="margin-left:2em;" class="depth2">1.3. <a href="#g1-4A.54.41.47.2D.49.43.45.20.28.E3.83.87.E3.83.90.E3.83.83.E3.82.AC.29.20.E3.81.AB.E3.82.88.E3.82.8B.4E.4F.52.E3.81.AE.E6.9B.B8.E3.81.8D.E8.BE.BC.E3.81.BF">JTAG-ICE (デバッガ) によるNORの書き込み</a></li><li style="margin-left:2em;" class="depth2">1.4. <a href="#g1-E3.83.80.E3.82.A6.E3.83.B3.E3.83.AD.E3.83.BC.E3.83.89.E3.82.B1.E3.83.BC.E3.83.96.E3.83.AB.E3.81.AB.E3.82.88.E3.82.8B.4E.4F.52.E3.81.AE.E6.9B.B8.E3.81.8D.E8.BE.BC.E3.81.BF">ダウンロードケーブルによるNORの書き込み</a></li><li style="margin-left:3em;" class="depth3">1.4.1. <a href="#g1-E5.BF.85.E8.A6.81.E3.81.AA.E3.82.82.E3.81.AE">必要なもの</a></li><li style="margin-left:3em;" class="depth3">1.4.2. <a href="#g1-E3.83.A9.E3.82.A4.E3.82.BF.E3.83.BC.E3.83.97.E3.83.AD.E3.82.B0.E3.83.A9.E3.83.A0.E3.81.AE.E3.82.B3.E3.83.B3.E3.83.91.E3.82.A4.E3.83.AB">ライタープログラムのコンパイル</a></li><li style="margin-left:3em;" class="depth3">1.4.3. <a href="#g1-E6.8E.A5.E7.B6.9A">接続</a></li><li style="margin-left:3em;" class="depth3">1.4.4. <a href="#g1-E3.83.A9.E3.82.A4.E3.82.BF.E3.83.BC.E3.83.97.E3.83.AD.E3.82.B0.E3.83.A9.E3.83.A0.E3.81.AE.E5.AE.9F.E8.A1.8C">ライタープログラムの実行</a></li><li style="margin-left:3em;" class="depth3">1.4.5. <a href="#g1-E5.8F.82.E8.80.83">参考</a></li><li style="margin-left:1em;" class="depth1">2. <a href="#g1-4E.41.4E.44">NAND</a></li><li style="margin-left:2em;" class="depth2">2.1. <a href="#g1-55.2D.42.6F.6F.74.E3.81.AB.E3.82.88.E3.82.8B.4E.41.4E.44.E3.81.AE.E6.9B.B8.E3.81.8D.E8.BE.BC.E3.81.BF">U-BootによるNANDの書き込み</a></li><li style="margin-left:2em;" class="depth2">2.2. <a href="#g1-4C.69.6E.75.78.E3.81.AB.E3.82.88.E3.82.8B.4E.41.4E.44.E3.81.AE.E6.9B.B8.E3.81.8D.E8.BE.BC.E3.81.BF">LinuxによるNANDの書き込み</a></li></ul></div>
<h3 id="g1-4E.4F.52">1. NOR</h3>
<h4 id="g1-55.2D.42.6F.6F.74.E3.81.AB.E3.82.88.E3.82.8B.4E.4F.52.E3.81.AE.E6.9B.B8.E3.81.8D.E8.BE.BC.E3.81.BF">1.1. U-BootによるNORの書き込み</h4>
<p>U-BootによるNORへの書き込みをLinuxカーネルを例に説明します。</p>
<p>まず、TFTPでU-Boot形式のLinuxカーネルイメージを転送します。</p>
<pre>Bishop # tftpboot 30900000 uImage
dm9000 i/o: 0x20000300, id: 0x90000a46
MAC: 00:1d:2d:00:00:0b
could not establish link
TFTP from server &lt;TFTP サーバの IP&gt;; our IP address is &lt;IP アドレス&gt;
Filename 'uImage'.
Load address: 0x30900000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #########################
done
Bytes transferred = 1787100 (1b44dc hex) ←転送されたサイズ</pre>
<p>次に、NORを消去します。ここでは<a href="/bishop/docs/addrmap.html#addrmap.ja-2-1">Linuxカーネルの領域であるセクタ11から56</a>を消去します。</p>
<pre>Bishop # erase 1:11-56</pre>
<p>最後に、転送したイメージを書き込みます。この時、最後の引数には TFTPで転送したサイズを指定します。</p>
<pre>Bishop # cp.b 30900000 40000 1b44dc</pre>
<p class="info">TFTPによるファイル転送の詳細については
<a href="u-boot-refman.html">U-Bootリファレンスマニュアル</a>
を参照してください。</p>
<p class="info">30900000〜 はダウンロード用に割り当てられた SDRAM上の領域です。詳細は
<a href="addrmap.html">アドレスマップ</a> を参照してください。</p>
<p class="alert">U-BootによってU-Boot自体を書き換える事も可能ですが、書き込みに失敗した場合は起動できなくなります。
お客様がU-Bootを上書きした事による起動の不具合についてはサポート対象外とさせていただきます。</p>
<h4 id="g1-4C.69.6E.75.78.E3.81.AB.E3.82.88.E3.82.8B.4E.4F.52.E3.81.AE.E6.9B.B8.E3.81.8D.E8.BE.BC.E3.81.BF">1.2. LinuxによるNORの書き込み</h4>
<p>Bishopで動作するLinuxからNORへの書き込む手順をinitrdを例に説明します。</p>
<p>Linuxによる書き込みではMTD
<sup><a id="footnote-rev-1" href="#footnote-1" title="MTD (Memory Technology Devices): メモリデバイスを扱うためのサブシステムです。MTDに関する情報は http://www.linux-mtd.infradead.org/ で得ることができます。">[1]</a></sup>
ドライバが必要になります。まずはMTDドライバの有無を確認してください。</p>
<pre># cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00400000 00010000 "Bishop NOR flash"
mtd1: 00040000 00010000 "U-Boot"
mtd2: 002f0000 00010000 "Kernel"
mtd3: 000c0000 00010000 "initrd"
mtd4: 00010000 00010000 "U-Boot environment variables"
mtd5: 08000000 00020000 "Root filesystem"</pre>
<p>Bishopの標準カーネルではmtd0がNOR、mtd5がNANDになっています。mtd1からmtd4はNORの疑似パーティションです。今回はinitrdを書き込むため、mtd3が対象になります。initrd以外を書き込む場合は、
適時読み替えてください。</p>
<p>書き込む領域を消去します。</p>
<pre># flash_eraseall /dev/mtd3</pre>
<p>U-Boot形式のinitrdイメージ (initrd.uimg) を
mtd3に書き込みます。</p>
<pre># dd if=initrd.uimg of=/dev/mtd3</pre>
<p class="info">mtd のパーティションについては
<a href="addrmap.html">アドレスマップ</a>も参照してください。</p>
<p class="alert">Bishop標準カーネルではmtd1 (U-Boot) とmtd5 (U-Boot環境変数の保存領域) はリードオンリーになっています。</p>
<p class="alert">mtd0を消去するとU-Bootを含むNOR全体が消去され起動できなくなります。mtd0を消去しないようにご注意ください。</p>
<h4 id="g1-4A.54.41.47.2D.49.43.45.20.28.E3.83.87.E3.83.90.E3.83.83.E3.82.AC.29.20.E3.81.AB.E3.82.88.E3.82.8B.4E.4F.52.E3.81.AE.E6.9B.B8.E3.81.8D.E8.BE.BC.E3.81.BF">1.3. JTAG-ICE (デバッガ) によるNORの書き込み</h4>
<p><a href="http://www.bitran.co.jp/">ビットラン</a>の
<a href="http://www.bitran.co.jp/ice/dr01.html">DR-01シリーズ</a>の場合を例に説明します。</p>
<ol><li>「ファイル」→「ファイルの読み込み」</li><li>「追加」ボタンをクリック</li><li>フラッシュの一覧からMacronix MX29LV320AB 32MBit (4Mx8bit/2Mx16bit) を選択</li><li>フラッシュの設定して「OK」をクリック (アクセスサイズ: 16bit アクセス, 個数: 1, スタートアドレス: 0, ターゲットバス幅: 16bit)</li><li>Load Formatを選択 (Bishopの場合、通常はバイナリを選択)</li><li>ファイルイメージを選択して「開く」をクリック</li><li>「バイナリファイルの書き込み開始アドレス」ダイアログでアドレスに0を指定して「OK」をクリック</li></ol>
<h4 id="g1-E3.83.80.E3.82.A6.E3.83.B3.E3.83.AD.E3.83.BC.E3.83.89.E3.82.B1.E3.83.BC.E3.83.96.E3.83.AB.E3.81.AB.E3.82.88.E3.82.8B.4E.4F.52.E3.81.AE.E6.9B.B8.E3.81.8D.E8.BE.BC.E3.81.BF">1.4. ダウンロードケーブルによるNORの書き込み</h4>
<h5 id="g1-E5.BF.85.E8.A6.81.E3.81.AA.E3.82.82.E3.81.AE">1.4.1. 必要なもの</h5>
<p>ダウンロードケーブルによる NORの書き込みには以下のものが必要になります。</p>
<ul><li><a href="/bishop/options.html">ダウンロードケーブル XC3</a></li><li>Linuxがインストールされたパラレルポート付きPC</li><li>ライタープログラム</li></ul>
<h5 id="g1-E3.83.A9.E3.82.A4.E3.82.BF.E3.83.BC.E3.83.97.E3.83.AD.E3.82.B0.E3.83.A9.E3.83.A0.E3.81.AE.E3.82.B3.E3.83.B3.E3.83.91.E3.82.A4.E3.83.AB">1.4.2. ライタープログラムのコンパイル</h5>
<p>ライタープログラムのコンパイル手順です。</p>
<p>ソースコード
<a href="http://downloads.pylone.jp/src/pljflash-0.9.2.tar.gz">pljflash-0.9.2.tar.gz</a>
をダウンロードして、適当な場所に展開します。</p>
<pre>$ tar xzvf pljflash-0.9.2.tar.gz</pre>
<p>展開したソースコードのディレクトリに移動します。</p>
<pre>$ cd pljflash-0.9.2</pre>
<p>make します。</p>
<pre>$ make</pre>
<p>正常にコンパイルされれば、実行ファイルpljが出来ます。</p>
<h5 id="g1-E6.8E.A5.E7.B6.9A">1.4.3. 接続</h5>
<p>ダウンロードケーブルでPCとBishopを接続します。PC側はパラレルポートに、Bishop側はJTAGのコネクタに接続します。JTAGのコネクタはダウンロードケーブル付属のバラ線を使います。</p>
<p><img src="/i/bishop/jtag-connector.jpg" alt="JTAGコネクタ" width="440" height="330" /></p>
<p><img src="/i/bishop/jtag-schematic.jpg" alt="回路図" width="440" height="343" /></p>
<h5 id="g1-E3.83.A9.E3.82.A4.E3.82.BF.E3.83.BC.E3.83.97.E3.83.AD.E3.82.B0.E3.83.A9.E3.83.A0.E3.81.AE.E5.AE.9F.E8.A1.8C">1.4.4. ライタープログラムの実行</h5>
<p>U-Bootを書き込む場合を例に説明します。</p>
<p>書き込むイメージファイルを引数にpljをroot権限で実行します。</p>
<pre># plj u-boot.bin</pre>
<h5 id="g1-E5.8F.82.E8.80.83">1.4.5. 参考</h5>
<p>弊社ブログ記事 - <a href="/blog/bishop_info_06">CPUボードBishop (6) 『フラッシュメモリの書き込み』</a></p>
<h3 id="g1-4E.41.4E.44">2. NAND</h3>
<h4 id="g1-55.2D.42.6F.6F.74.E3.81.AB.E3.82.88.E3.82.8B.4E.41.4E.44.E3.81.AE.E6.9B.B8.E3.81.8D.E8.BE.BC.E3.81.BF">2.1. U-BootによるNANDの書き込み</h4>
<p class="alert">U-BootによるNANDの書き込みはサポート対象外とさせていただきます。</p>
<h4 id="g1-4C.69.6E.75.78.E3.81.AB.E3.82.88.E3.82.8B.4E.41.4E.44.E3.81.AE.E6.9B.B8.E3.81.8D.E8.BE.BC.E3.81.BF">2.2. LinuxによるNANDの書き込み</h4>
<p>jffs2ファイルシステム (rootfs.jffs2) の書き込みを例に説明します。</p>
<p>Linuxによる書き込みではMTDドライバが必要になります。あらかじめMTDドライバの有無を確認してください。</p>
<p>まず、NANDを消去します。Bishopの標準カーネルではNANDのMTDデバイスはmtd5になります。</p>
<pre>$ flash_eraseall /dev/mtd5</pre>
<p>nandwrite<sup><a id="footnote-rev-2" href="#footnote-2" title="mtd-toolsに含まれるNANDに書き込むコマンドです。">[2]</a></sup>
コマンドで書き込みます。</p>
<pre>$ nandwrite /dev/mtd5 rootfs.jffs2</pre>
<div class="footnotes"><ol><li id="footnote-1"><a href="#footnote-rev-1">^</a> MTD (Memory Technology Devices): メモリデバイスを扱うためのサブシステムです。MTDに関する情報は <a href="http://www.linux-mtd.infradead.org/">http://www.linux-mtd.infradead.org/</a> で得ることができます。</li><li id="footnote-2"><a href="#footnote-rev-2">^</a> mtd-toolsに含まれるNANDに書き込むコマンドです。</li></ol></div>]]></description>
   <category domain="http://pylone.jp/bishop/docs/flash-writing.html">doc</category>
   <pubDate>Sun, 03 Feb 2008 16:43 GMT</pubDate>
</item>

<item>
   <title>ベンチマーク</title>
   <guid isPermaLink="true">http://pylone.jp/bishop/docs/benchmarks.html</guid>

   <link>http://pylone.jp/bishop/docs/benchmarks.html</link>
   <description><![CDATA[

<div class="toc"><div class="head">目次</div><ul><li style="margin-left:1em;" class="depth1">1. <a href="#g1-44.68.72.79.73.74.6F.6E.65">Dhrystone</a></li><li style="margin-left:1em;" class="depth1">2. <a href="#g1-62.6F.6E.6E.69.65.2B.2B">bonnie++</a></li><li style="margin-left:2em;" class="depth2">2.1. <a href="#g1-53.44.20.E3.82.AB.E3.83.BC.E3.83.89">SD カード</a></li><li style="margin-left:2em;" class="depth2">2.2. <a href="#g1-55.53.42.20.E3.83.A1.E3.83.A2.E3.83.AA">USB メモリ</a></li><li style="margin-left:2em;" class="depth2">2.3. <a href="#g1-4E.41.4E.44.20.28.76.69.61.20.4D.54.44.29">NAND (via MTD)</a></li></ul></div>
<h3 id="g1-44.68.72.79.73.74.6F.6E.65">1. Dhrystone</h3>
<p><a href="http://garbo.uwasa.fi/pub/pub/pc/source/dhrys.zip">http://garbo.uwasa.fi/pub/pub/pc/source/dhrys.zip</a> を使用
(参考: <a href="http://thinkit.co.jp/cert/article/0609/10/1/2.htm">http://thinkit.co.jp/cert/article/0609/10/1/2.htm</a>)</p>
<pre>Running dhrystone (Level 1 optimization, without registers)
./dhrystone
Dhrystone(1.1) time for 50000 passes = 0
This machine benchmarks at 89285 dhrystones/second
./dhrystone
Dhrystone(1.1) time for 50000 passes = 0
This machine benchmarks at 89285 dhrystones/second
./dhrystone
Dhrystone(1.1) time for 50000 passes = 0
This machine benchmarks at 87719 dhrystones/second


Running dhrystone (Level 1 optimization, with registers)
./dhrystoneR
Dhrystone(1.1) time for 50000 passes = 0
This machine benchmarks at 96153 dhrystones/second
./dhrystoneR
Dhrystone(1.1) time for 50000 passes = 0
This machine benchmarks at 96153 dhrystones/second
./dhrystoneR
Dhrystone(1.1) time for 50000 passes = 0
This machine benchmarks at 98039 dhrystones/second


Running dhrystone (Level 2 optimization, without registers)
./dhrystoneO
Dhrystone(1.1) time for 50000 passes = 0
This machine benchmarks at 161290 dhrystones/second
./dhrystoneO
Dhrystone(1.1) time for 50000 passes = 0
This machine benchmarks at 161290 dhrystones/second
./dhrystoneO
Dhrystone(1.1) time for 50000 passes = 0
This machine benchmarks at 161290 dhrystones/second


Running dhrystone (Level 2 optimization, with registers)
./dhrystoneRO
Dhrystone(1.1) time for 50000 passes = 0
This machine benchmarks at 161290 dhrystones/second
./dhrystoneRO
Dhrystone(1.1) time for 50000 passes = 0
This machine benchmarks at 161290 dhrystones/second
./dhrystoneRO
Dhrystone(1.1) time for 50000 passes = 0
This machine benchmarks at 161290 dhrystones/second</pre>
<h3 id="g1-62.6F.6E.6E.69.65.2B.2B">2. bonnie++</h3>
<h4 id="g1-53.44.20.E3.82.AB.E3.83.BC.E3.83.89">2.1. SD カード</h4>
<ul><li>カーネル: Linux 2.6.22.1-pylone0</li><li>ホストコントローラ: S3C2440A MMC/SD/SDIO Controller</li><li>ファイルシステム: ext3</li><li>メディア: SanDisk SDSDB-2048-J60</li></ul>
<pre>bonnie++ -u root -d /mnt/mmc
Using uid:0, gid:0.
Writing with putc()...done
Writing intelligently...done
Rewriting...done
Reading with getc()...done
Reading intelligently...done
start 'em...done...done...done...
Create files in sequential order...done.
Stat files in sequential order...done.
Delete files in sequential order...done.
Create files in random order...done.
Stat files in random order...done.
Delete files in random order...done.
Version  1.03       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
bishop         300M   683  93  2499  71  2048  60   806  99  5563  90  64.4   7
                    ------Sequential Create------ --------Random Create--------
                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16   896  93 19925 100  1381  90   823  85 +++++ +++  1277  84
bishop,300M,683,93,2499,71,2048,60,806,99,5563,90,64.4,7,16,896,93,19925,100,1381,90,823,85,+++++,+++,1277,84</pre>
<h4 id="g1-55.53.42.20.E3.83.A1.E3.83.A2.E3.83.AA">2.2. USB メモリ</h4>
<ul><li>カーネル: Linux 2.6.22.1-pylone0</li><li>ホストコントローラ: S3C2440A USB Host Controller</li><li>ファイルシステム: ext3</li><li>メディア: ELECOM MF-AU201GSV</li></ul>
<pre>bishop:~# bonnie++ -u root -d /media/usb
Using uid:0, gid:0.
Writing with putc()...done
Writing intelligently...done
Rewriting...done
Reading with getc()...done
Reading intelligently...done
start 'em...done...done...done...
Create files in sequential order...done.
Stat files in sequential order...done.
Delete files in sequential order...done.
Create files in random order...done.
Stat files in random order...done.
Delete files in random order...done.
Version  1.03       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
bishop         300M   741  95   841  18   419   7   815  93   959   5  17.5   2
                    ------Sequential Create------ --------Random Create--------
                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16   744  77 19914 100   641  42   586  60 +++++ +++   607  39
bishop,300M,741,95,841,18,419,7,815,93,959,5,17.5,2,16,744,77,19914,100,641,42,586,60,+++++,+++,607,39</pre>
<h4 id="g1-4E.41.4E.44.20.28.76.69.61.20.4D.54.44.29">2.3. NAND (via MTD)</h4>
<ul><li>カーネル: Linux 2.6.22.1-pylone0</li><li>ホストコントローラ: S3C2440A NAND Controller</li><li>ファイルシステム: jffs2</li><li>メディア: Samsung K9K1G08U0A</li></ul>
<pre>bishop:~# bonnie++ -u root -s 50 -r 24 -d /tmp
Using uid:0, gid:0.
Writing with putc()...done
Writing intelligently...done
Rewriting...done
Reading with getc()...done
Reading intelligently...done
start 'em...done...done...done...
Create files in sequential order...done.
Stat files in sequential order...done.
Delete files in sequential order...done.
Create files in random order...done.
Stat files in random order...done.
Delete files in random order...done.
Version  1.03       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
bishop          50M   691  94  2547  71  3181  71   901  98 29691  99  2627  99
                    ------Sequential Create------ --------Random Create--------
                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16   898  93 19879 100  1390  91   908  93 +++++ +++  1320  87
bishop,50M,691,94,2547,71,3181,71,901,98,29691,99,2626.7,99,16,898,93,19879,100,1390,91,908,93,+++++,+++,1320,87</pre>
]]></description>
   <category domain="http://pylone.jp/bishop/docs/benchmarks.html">doc</category>
   <pubDate>Sun, 03 Feb 2008 16:43 GMT</pubDate>
</item>

<item>
   <title>起動パラメータrootについて</title>
   <guid isPermaLink="true">http://pylone.jp/bishop/docs/about-root-param.html</guid>

   <link>http://pylone.jp/bishop/docs/about-root-param.html</link>
   <description><![CDATA[

<p>Bishop で USB ストレージや SD カードをルートファイルシステムにする際、起動パラメータ root を root=8:1 のようにメジャー番号とマイナー番号で指定します。</p>
<p>このドキュメントでは、なぜ /dev/sda1 のようなデバイスファイル名ではなくメジャー番号とマイナー番号で指定しなくてはならないかを説明します。</p>
<p>/dev/sda1 のようなデバイスファイル名は人間にとっての識別子です。
カーネルはデバイスをメジャー番号とマイナー番号で管理します。
root パラメータにデバイスファイル名が与えられた場合、
カーネルはこれをメジャー番号とマイナー番号へ変換します。</p>
<p>Linux-2.4 では以下のような変換用のテーブルを持っていたので、デバイスやドライバの有無に関わらず変換できました。</p>
<div class="highlight"><pre><span class="k">static</span> <span class="k">struct</span> <span class="n">dev_name_struct</span> <span class="p">{</span>
	<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">;</span>
	<span class="k">const</span> <span class="kt">int</span> <span class="n">num</span><span class="p">;</span>
<span class="p">}</span> <span class="n">root_dev_names</span><span class="p">[]</span> <span class="n">__initdata</span> <span class="o">=</span> <span class="p">{</span>
	<span class="p">{</span> <span class="s">&quot;nfs&quot;</span><span class="p">,</span>     <span class="n">MKDEV</span><span class="p">(</span><span class="n">NFS_MAJOR</span><span class="p">,</span> <span class="n">NFS_MINOR</span><span class="p">)</span> <span class="p">},</span>
	<span class="p">{</span> <span class="s">&quot;hda&quot;</span><span class="p">,</span>     <span class="mh">0x0300</span> <span class="p">},</span>
		<span class="o">:</span>
		<span class="o">:</span>
	<span class="p">{</span> <span class="s">&quot;ftld&quot;</span><span class="p">,</span> <span class="mh">0x2c18</span> <span class="p">},</span>
	<span class="p">{</span> <span class="s">&quot;mtdblock&quot;</span><span class="p">,</span> <span class="mh">0x1f00</span> <span class="p">},</span>
	<span class="p">{</span> <span class="s">&quot;nb&quot;</span><span class="p">,</span> <span class="mh">0x2b00</span> <span class="p">},</span>
	<span class="p">{</span> <span class="nb">NULL</span><span class="p">,</span> <span class="mi">0</span> <span class="p">}</span>
</pre></div>

<p>一方、Linux-2.6 ではこの仕組みはなくなり、sysfs を使った変換になりました。</p>
<p>name_to_dev_t():</p>
<div class="highlight"><pre><span class="cm">/* 変換のため、sysfs を一時的にマウント */</span>
<span class="kt">int</span> <span class="n">mkdir_err</span> <span class="o">=</span> <span class="n">sys_mkdir</span><span class="p">(</span><span class="s">&quot;/sys&quot;</span><span class="p">,</span> <span class="mo">0700</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="n">sys_mount</span><span class="p">(</span><span class="s">&quot;sysfs&quot;</span><span class="p">,</span> <span class="s">&quot;/sys&quot;</span><span class="p">,</span> <span class="s">&quot;sysfs&quot;</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="nb">NULL</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mi">0</span><span class="p">)</span>
	<span class="k">goto</span> <span class="n">out</span><span class="p">;</span>
</pre></div>

<p>try_name():</p>
<div class="highlight"><pre><span class="cm">/* デバイスドライバが sysfs に登録したメジャー/マイナー番号を読む */</span>
<span class="n">sprintf</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="s">&quot;/sys/block/%s/dev&quot;</span><span class="p">,</span> <span class="n">name</span><span class="p">);</span>
<span class="n">fd</span> <span class="o">=</span> <span class="n">sys_open</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="n">fd</span> <span class="o">&lt;</span> <span class="mi">0</span><span class="p">)</span>
	<span class="k">goto</span> <span class="n">fail</span><span class="p">;</span>
<span class="n">len</span> <span class="o">=</span> <span class="n">sys_read</span><span class="p">(</span><span class="n">fd</span><span class="p">,</span> <span class="n">buf</span><span class="p">,</span> <span class="mi">32</span><span class="p">);</span>
<span class="n">sys_close</span><span class="p">(</span><span class="n">fd</span><span class="p">);</span>
</pre></div>

<p>USB ストレージや SD カードの場合、変換が行われるタイミングではデバイスが検出されていないため、メジャー番号とマイナー番号が sysfs に登録されていません。
結果として変換に失敗し、カーネルはルートファイルシステムをマウントできません。</p>
<p>USB ストレージや SD カードの場合にメジャー番号とマイナー番号を直接指定するのは、この問題を回避するためです。</p>
]]></description>
   <category domain="http://pylone.jp/bishop/docs/about-root-param.html">doc</category>
   <pubDate>Sun, 03 Feb 2008 16:43 GMT</pubDate>
</item>

</channel></rss>
