                           ARM Linux 2.2.3
                           ===============

      * 注記 * メインストリームの Linux カーネルソースにおける ARM
               サポートは最新版ではありません。最新版にするには
          ftp.arm.uk.linux.org:/pub/armlinux をチェックしてください。

カーネルのコンパイル
--------------------

  ARM Linux をコンパイルするためには、GNU extensions を使用して ARM ELF 
  コードを生成できるコンパイラが必要になります。GCC-2.7.2.2 ELF, GCC
  2.8.1, EGCS が適切なコンパイラです。注意、GCC-2.7.2.2 ELF は珍しいも
  のなので、たぶん持っていないでしょう。

  ARM Linux を直接ビルドするには、一番上のディレクトリの Makefile の
  ARCH = 行の変更は必要ありません。しかしながら、デフォルトでインストー
  ルされているはずの ARM Linux ELF tools がない場合、下記で述べるよう
  に CROSS_COMPILE 行を変更する必要があります。

  クロスコンパイルをしたいなら、一番上のディレクトリにある make ファイ
  ルの次の行を変更してください -

    ARCH = <何か> の行を ARCH = arm

    それから

    CROSS_COMPILE= を
            CROSS_COMPILE=<コンパイラへのパス (gccは指定しない)>

    例えば、CROSS_COMPILE=arm-linux-

  カーネル (arch/arm/boot/Image) をビルドするために、'make config',
  'make dep', 'make Image'を実行します。'make Image' のかわりに
  'make zImage' を使用することにより、圧縮されたイメージを作成できます。


バグレポートなど
----------------

  ARM Linux プロジェクトへのパッチ、バグレポート、コードなどは
  linux@arm.linux.org.uk まで送ってください。パッチは私の手元 (または
  関係者) に届かなければカーネルには含まれないでしょう。

  バグレポートを送るときは、関係するすべての情報も一緒に送るようにして
  ください。例えば、問題が発生する前後や発生中のカーネルのメッセージや、
  何をしたらその問題が発生したかなどです。

  パッチの場合、そのパッチが何をして、(もしも関係があるなら) なぜ必要
  かという説明も含めるようにしてください。


モジュール
----------

  モジュール化はサポートされていますが (FP エミュレートに必要)、
  arm2/arm250/arm3 マシン上の各モジュールはページサイズの制限により、
  ロード時に次の 32k 境界からメモリを使用 (確保) します。ですからこれ
  らのマシン上でモジュール化することに本当に意味があるのでしょうか？

  ですが arm6 以降のマシンのモジュールでは 4k 単位で (メモリを) 使用す
  るようにできますので、Acorn RiscPC やこのプロセッサを使用している他
  のアーキテクチャではモジュール化を行うことで (メモリの) 無駄を無くせ
  ます。


ADFS イメージファイル
---------------------

  ADFS パーティション上にあるイメージファイルは、ADFS パーティションを
  マウントして、ループバックデバイスドライバを使用することでアクセスで
  きますが、losetup をインストールしておく必要があります。
    
  PC エミュレータの DOS パーティションではパーティションテーブルが先頭
  にありますので、losetup に "-o offset" オプションを指定する必要があ
  るでしょう。


開発者へのリクエスト
--------------------

  アセンブラだけで書かれたファイルをインクルードするデバイスドライバを
  書く場合、arch/arm/lib ディレクトリにではなく、C のファイルに含める
  ようにしてください。そうすることによって、ドライバをローダブルモジュー
  ルにする際にコードの半分 (訳注：つまりアセンブラや C の部分) だけを
  カーネルのイメージに含んだりしないで済みますから。

  本当に必要な場合を除いて、アセンブラを使用することは避けるようにして
  ください。そのドライバを他のハードウェアにポーティング (移植) するこ
  とが困難になってしまいますから。


ST506 ハードドライブ
--------------------

  ST506 ハードディスクドライブコントローラは、少し遅いようですが、それ
  なりに動いているようです。開発者たちは、A4x0 系のマザーボードで今後
  も開発を進めると思いますが、もしこのマザーボードがなければ、Podule
  を持っている人からゆずり受けて開発を進めるしかないです。それでコント
  ローラの IRQ を変更するためのマスクとコントローラのアドレスをカーネ
  ルソースに記述して開発を進めましょう。

  1996 年 3 月 31 日からドライブ 2 つでも動作するようになりました
  (ADFS *configure harddrive を 2 にセットする必要があるでしょう)。私
  は 20MB の内蔵用と、5.25" の FH 64MB ドライブを入手しました (これ以
  上のものを欲しがる人なんているんでしょうか :-) )。(訳注：FH = フルハ
  イトです。)

  240K/s の速度が出ました (dd コマンド bs=128k で) - これは RiscOS で
  出せる速度の約半分ですが、先週の 50K/s なんていう速度に比べればかな
  りマシです :-)

  既知のバグ - ドライブデータエラーが起きるとハングアップするかもしれ
  ません。例えばコントローラが ECC でエラー訂正を行った場合などです
  (たぶん、そのケースだけだと思いますけど・・・う〜ん)。

1772 フロッピー
---------------

  これも正常に動作しているようです。ですが、現在ではあまり注目されてい
  ません。今のところディスクが交換されたことを検出する為の十分なコード
  がありませんから、何か問題が起きるかも知れません！ 正しい方法・動作
  に関する提案はいつでも歓迎します。

カーネルエントリ (head-armv.S)
------------------------------

  head-armv.S 経由でカーネル内に設定された初期エントリはアーキテクチャ
  非依存のコードを使用しています。アーキテクチャはエントリの 'r1' の値
  によって選択されます。その数値はユニークなはずです。次の詳細を
  rmk@arm.uk.linux.org にメールすることによって、新しいアーキテクチャ
  を登録することができます。メールの subject は 
  'Register new architecture' にするようにしてください。

    Name: <アーキテクチャ名>
    ARCHDIR: <include/asm-arm/arch-* ディレクトリの名前>
    Description:
    <アーキテクチャの説明>

  このフォーマットに従ってください − 自動化されていますから。翌日には
  返事 (reply) を受け取るはずです。

---
    著者：Russell King (27/03/1999)
日本語訳：早川仁 <cz8cb01@linux.or.jp>
    更新：野本浩一 <hng@ps.ksky.ne.jp>
    校正：中谷千絵さん <jeanne@mbox.kyoto-inet.or.jp>
          尾崎亮太さん <ozaki-r@igo.cs.uec.ac.jp>
          高橋聡さん <hisai@din.or.jp> 
          小林雅典さん <zap03216@nifty.ne.jp>
          中野武雄さん <nakano@apm.seikei.ac.jp> 
