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: Description: <アーキテクチャの説明> このフォーマットに従ってください − 自動化されていますから。翌日には 返事 (reply) を受け取るはずです。 --- 著者:Russell King (27/03/1999) 日本語訳:早川仁 更新:野本浩一 校正:中谷千絵さん 尾崎亮太さん 高橋聡さん 小林雅典さん 中野武雄さん