次のページ 前のページ 目次へ

11. カーネルのコンパイル

11.1 プロセッサタイプを選択する

R2000, R3000 ファミリ

これらのプロセッサでは、単に R3000 オプションを選択してください。 このオプションで作成されたカーネルは R2000 と R3000 ファミリのプロセッサ以外では走りません。

R4000, R5000 ファミリ

Nevada ファミリを除いては、これらのプロセッサはカーネルの観点からはすべて互換です。 最良の性能が得られるオプションを選択してください。

R6000

Linux は現在 R6000 をサポートしていないので、以下は完全に理論上のみの話です。 R6000 のキャッシュと MNU アーキテクチャは、変とは言わないまでも独特で、 とても扱いにくいため多量の対処作業が必要になります。 このため R6000 カーネルは他のプロセッサでは動かないでしょうし、 他のプロセッサ用のカーネルも R6000 では動かないでしょう。

Nevada

Nevada の愛称は、QED (現PMC Sierra) 社の RM5230, 5231, R5260, R5261, R5270 ファミリプロセッサに付けられたものです。このオプションでは、 他のプロセッサではサポートされていない追加命令が有効にされるため、 このオプションを選択していいのは、本当にこの一群のプロセッサのどれかを使っているときのみです。 自信がなければ、 R4x00 か R5000 (上記参照) を使ってください。

SB1

Sibyte SB1 プロセッサの時のみこのオプションを選択してください。 このプロセッサ向けに作成されたカーネルは他のプロセッサでは動きませんし、 逆もまた真です。真に最先端の OS である Linux は、このプロセッサのシリコンがまだないのにも関わらず、このプロセッサをサポートしています。

【訳注: SB1 はコア名で、このコアを採用しているのは現時点で Broadcom BCM1250, BCM1125 です。Sibyte は Broadcom に買収されていますが、Sibyte の名称はまだ残しています。】

R10000

R10000, R12000 または R14000 システムで Linux を実行する場合にはこれを選んでください。 このオプションを付けて作られたカーネルは R4000 や R5000 ファミリプロセッサでは動作しません。

MIPS32

MIPS32 ファミリメンバで Linux を走らせる場合、これを指定してください。

【訳注: MIPS64 ファミリは、R4000/5000 で動くはずです。】

11.2 オプションの互換性

カーネル設定手順は、誤った設定が不可能になるような強過ぎる制約を入れてはいません。 例えば SGI Indy ではフレームバッファは使えませんが、有効にすることはできますし、その結果後でコンパイルエラーになります。 この状況は将来 CML2 が標準のカーネル設定言語になれば改善されるでしょうが、2.2 と 2.4 カーネルでは、自分で足下に気を付ける必要があります。

11.3 クロスコンパイル

カーネルは非 MIPS システム上でのクロスコンパイル作成が可能となるように、注意深く開発されています。 一旦クロスコンパイラの設定という崖を登ってしまいさえすれば、クロスコンパイルは容易です。 これを行うためには、二つの選択枝があります。最初のものは、 CROSS_COMPILE=<target>- (最後のダッシュに注意) の後に mips-linux, mipsel-linux, mips64-linux, mips64el-linux のいずれかを続けたものを、make を起動する際の追加引数として渡す方法です。 このうちのどれにするかは、ターゲットマシンが ビッグエンディアンかリトルエンディアンか、32-bit か 64-bit か、 によります。もう一つのやり方は、CONFIG_CROSSCOMPILE 設定オプションを与える方法です。カーネルはそれにより、CROSS_COMPILE に正しい値を自動的に設定しますので、コマンド行が少し簡単になります。

11.4 32-bit vs. 64-bit

標準では Linux/MIPS カーネルソースツリーは 32-bit ターゲットを作成するようになっています。もし、64-bit カーネルをビルドしたい場合は、make が呼び出されるすべての箇所で ARCH=mips64 の追加引数を渡してやる必要があります。


次のページ 前のページ 目次へ