多くのマシンがあり、また一部のマシンは幾つかの異なったプロセッサオプションを持っていますが、 その全部がサポートされているわけではありません。 プロセッサタイプ の項を参照してあなたの プロセッサがサポートされているか確認してください。下記は Linux/MIPS が走っているマシン、Linux/MIPS が移植できそうなシステム、そして Linux/MIPS を走らせることに興味を持っている人たちのいるシステムの一覧です。 また、このリストはもう網羅的なものではありません。 それは、サードパーティベンダが Linux/MIPS ベースのハードウェアやソフトウェアの出荷を始めているからです。
Acer PICA は Mips Magnum 4000 の設計を引き継いでいます。 これは 133MHz 動作の R4400PC CPU か、機種によっては 150MHz 動作で 512KB (オプションで 2MB のものもあります) の二次キャッシュ付きの R4400PC CPU が搭載されており、昔の Magnum の G364 gfx カードの代わりに S3 968 チップを使ったカードが使われています。 このシステムは X サーバ以外はサポートされています。
Baget シリーズは R3000 プロセッサを使った次の 3 機種からなります: Baget 23, Baget 63, and Baget 83 です。Baget 23 と 63 は 25MHz の R3500A (基本的には R3000A チップです 【訳注: IDT 社。R3000A と浮動小数点コプロセッサ R3010A を集積したもの】) を使った BT23-201 か 50MHz の R3081E を使った BT23-202 マザーボードを使っています。BT23-202 は VME バスと VIC068 システムコントローラチップを使っています。BT23-202 ボードは内部バスに PCI を使い、内部に VME バスを持っています。 BT23-201 ボードのサポートは Gleb Raiko (rajko@mech.math.msu.su) さんと、 Vladimir Roganov (vroganov@msiu.ru) さんによって行われました。また Serguei Zimin (zimin@msiu.ru) さんの助力がありました。 BT23-202、および 3 枚の BT23-201 ボードを共有 VME バスで接続した Baget 23B のサポートは開発中です。
Baget 83 はリストを完全にするためだけの目的でふれています。これは 2MB の RAM しか積んでおらず、Linux を走らせるにはこれでは小さすぎます。 Baget/MIPS のコードは DECstation 移植向けのコードにマージされています。 両方に向けたソースコードは http://decstation.unix-ag.org/ から入手できます。
Cobalt 社の Cobalt Qube 製品シリーズは、QED 社 (現 PMC Sierra 社) RM5230 を使ったディスプレイレスのローコストサーバシステムです。 Cobalt 社は、可能な限り Qube の固有の目的にあうようにした Linux/MIPS の特別な版を自社で開発しています。基本的には、Qube 用のカーネルは Linux/MIPS の 2.1.56 を元にして、安定性のために 2.0.30 にバックポートし、最適化したものです。Cobalt 社のカーネルは公式の Linux/MIPS 2.1.x カーネルに統合されたことはありません。
【訳注:Qube 1,2 は MIPS, Qube 3 は MIPS ではなく i386 サーバです。QED 社は PMC Sierra 社に買収され、すでに QED という名称を使っていません。】
NEC のシングルプロセッサの機種は Acer PICA システムの OEM ですので、該当の項を参照ください。マルチプロセッサシステムは別物です。 Linux/MIPS の開発者達は OS を開発するに必要な技術情報を持っていません。 進展が無い限り、この点が NEC のマルチプロセッサシステム への移植を阻む主要因であり続けるでしょう。
Linux VR プロジェクトでは NEC 社 VR41xx マイクロプロセッサを使った機器への Linux の移植を行っています。これらの機種の多くはもともと Windows CE を動かすためのものです。現在基本的なドライバを備えた動作するカーネルが Vadem 社の Clio、Casio 社の E-105、Everex 社の Freestyle 他の機種向けに 同プロジェクトで作成されています。更に詳しい情報は http://linux-vr.org/ を参照ください。
VR41xx と同様、これらのプロセッサを使った機器はもともと Windows CE を動かすためのものです。但し、Sharp Mobilon と Compaq C-Series には基本的ドライバを含んだ、動作するカーネルがあります。 その他の機種については開発中です。コードは Linux VR プロジェクトの一部で、 このためより詳しい情報は http://linux-vr.org/ にあります。
Netpower 100 は明らかに Acer PICA の外側のみ変えたものです。 従ってサポートされているはずですが、テストはされていません。 もし問題があるとするなら、マシン判定の関連でしょう。
Nintendo 64 は 4MB の RAM を持つ R4300 ベースのゲーム機です。 グラフィックチップは任天堂向けに Silicon Graphic 社で開発されました。 このマシンへのポートは現在「できたらいいな」程度の状態であり、 任天堂が必要な技術情報の公開を決定するまではその状態のままでしょう。 もっともこの機種に Linux/MIPS のコードを移植するのが良い考えなのかどうかも問題ではありますが。
このマシンは Indy によく似ています。 違いはこのマシンにはキーボードとグラフィックカードがないこと、その代わりに WD33C95 チップを使った SCSI アダプタが追加されていることです。 この WD33C95 アダプタは現時点ではサポートされていません。
このマシンをここで言及しているのは、Indy や Indigo 2 と良く混同されるためです。 Indigo は R3000 を使った別のアーキテクチャの機種で、まだサポートされていません。
このマシンは Indigo の後継機種で、Indy ととてもよく似ています。 この機種は現在サポートされていますが、かなりの機能が欠けています。 また、シリアルコンソールを使わなければいけません。Indigo2 を持っていて、現在の状態でも良いので Linux を動かしてみたいということならば、 Florian Lohoff (flo@rfc822.org) さんか Klaus Naumann (spock@mgnet.de) さん に連絡を取ってください。
Indy は現時点では唯一の、ほとんどサポートされていると言って良い Silicon Graphics 社の機種です。唯一のサポートされているグラフィックカードは Newport カード、別名 ``XL'' グラフィックスカード、です。Indy には周波数が様々の多数の CPU オプションがあり、全部サポートされています。 また、 Guido Guenther (guido.guenther@gmx.net) さんの書いた X サーバも用意されました。もしあなたの Indy で Newport コンソールが使えるなら、この X サーバも同様に使えるはずです。このサーバは XFree86 4.0 ベースで、カタツムリ並の速度しかでませんが、 とてもよく動作します。試してみたい方は http://honk.physik.uni-konstanz.de/~agx/mipslinux/x/ をご覧ください。
ブート時に Indy のカーネルは有効なメモリ量を次のようなメッセージで表示します。
Memory: 27976k/163372k available (1220k kernel code, 2324k data)最初の 2 つの数字が大きく違うのは、Indy のメモリアドレス空間内には先頭の 128MB がイメージとして現れるためです。この 2 つの数字の違いはこのため 大体 128MB ぐらいで、何かの問題を示しているわけではありません。 カーネル 2.3.23 からはこの 128MB の差は数えられないようになっています。
一部の人たちが、マシンを保守パーツ等でアップグレードした後にこの問題を報告しています。 Indy にはいくつかの PROM の版があります。古い PROM 版のマシンで新しい種類の CPU にアップグレードした場合、例えば R4600SC を R5000SC モジュールにするなどした場合、次のようなメッセージを出してセルフテストがクラッシュします。
Exception: <vector=Normal> Status register: 0x30004803<CU1,CU0,IM7,IM4,IPL=???,MODE=KERNEL,EXL,IE> Cause register: 0x4000<CE=0,IP7,EXC=INT> Exception PC: 0xbfc0b598 Interrupt exception CPU Parity Error Interrupt Local I/O interrupt register 1: 0x80 <VR/GIO2> CPU parity error register: 0x80b<B0,B1,B3,SYSAD_PAR> CPU parity error: address: 0x1fc0b598 NESTED EXCEPTION #1 at EPC: 9fc3df00; first exception at PC: bfc0b598この場合、マシンの PROM を新しい版にアップグレードするか、古い CPU に戻す必要があります (通常 R4000SC と R4400SC モジュールは動くはずです)。はっきり言って、この問題は Linux とは無関係です。 ここでこれを取り上げているのは幾人かの Linux ユーザがこれについて質問を出していたからです。
ブート時に Indy の `Memory: ...' メッセージは 128 MB のメモリがシステムで使われていると答えます。これは正常です。 PC アーキテクチャで 640KB から 1024KB までにギャップが開いているのと同様、 Indy のメモリアドレス空間内に最初の 128MB がイメージとして現れる部分があるためです。Linux はそのことを知っていて、そのメモリを単に無視するため、このようなメッセージがでるのです。
Ralf Bächle (ralf@gnu.org) さんと SGI 社員のチームが Origin 200 への移植に取り組んでいます。 これは現在まだ初期の段階ですが、単一プロセッサでもマルチプロセッサでも走り、 内蔵の IOC3 Ethernet と SCSI ホストアダプタのドライバがあります。 コードは Linux/MIPS の CVS ツリーから得られます。
Onyx 2 は、基本的には Origin 2000 に追加のグラフィックハードウェアがついたものです。 現時点でこの追加グラフィックハードウェアの Linux サポートはできあがっていません。 それ以外の点では、通常のディスプレイなしの Origin 2000 構成と同程度に Linux が走るはずです。
これはとても古い R3000 対称マルチプロセッサ機です。 これらの機種のハードウェアのドキュメントはありませんし、マシン自体既にあまり残っていませんし、ハードウェアには妙な癖があります。 簡単にいって、Linux がこれらのマシンで走る可能性はほとんどゼロです。 もっとも、挑戦者の意気を挫こうというわけではありませんが…。
使っているカーネルに、シリアルインターフェースとシリアルコンソールのための適切なドライバが組み込まれるようにしてください。 Indy と Challenge S では ARC 環境変数 console を d1 か d2 のどちらか (コンソールとして使おうとしているシリアルインターフェース側) に設定してください。
ブート時に、全てのカーネルメッセージがシリアルコンソールに現れ、 init が動き出した時点から何も出なくなるという問題に出くわしたのなら、 多分あなたの /dev/console の設定が間違っているのでしょう。 カーネルソースをインストールしているなら Linux カーネルソースの /usr/src/linux/Documentation/serial-console.txt に詳しい情報がみつかります。
現時点でその他の Silicon Graphics 社のマシンはサポートされていません。 これらサポートされていない機種には、モトローラの 68k を使ったとても 古い マシンも含まれます。
Sony のプレイステーションは R3000 派生の機種を使っており、Sony の自社開発のグラフィックチップセットを使っています。このマシンは理論的には Linux を走らせることができるはずですが、Sony が必要な技術情報を現時点で提供していないので移植は困難です。 端的に言って、多数の人がこのシステムで Linux を走らせることに興味を表明した時点から何も進んでいません。
下に書かれている RM200 と違って、このマシンは EISA と PCI スロットを持っています。RM200C はオンボードの NCR53c810A SCSI コントローラを除いてサポートされています。
あなたのマシンに EISA と PCI スロットの両方があるなら、それは RM200C です (上をご覧ください)。このアーキテクチャ的なわずかな違いのため、RM200 のほうは現在公式ソースではサポートされていません。 Michael Engel (engel@numerik.math.uni-siegen.de) さんが彼の RM200 を部分的に動くところまで持ってきていますが、このパッチはまだ公式の Linux/MIPS ソースに含まれてはいません。
RM300 は技術的には RM200C にとてもよく似ています。従って現在の Linux カーネルで動くはずですが、まだ動作レポートを受け取っていません。
RM400 はサポートされていません。
これは SGI Indigo の OEM 品で、従ってサポートされていません。
Algorithmics ( http://www.algor.co.uk/) 社は MIPS のプロトタイプ開発用の一連のシングルボードコンピュータを発売していて、 それら全部に関する Linux カーネルを保守しています。
すべてのボードは標準 I/O と Ethernet、ディスクインターフェースをボード上に実装し、その他のコントローラを追加するための数個の PCI スロットを持っています。 このボードは設定の自由度が高く、どちらのバイト順 (エンディアン) でも動作させることができます。全製品が 64-bit カーネルの対象とできますが、 いまのところ私たちが作業している Linux 関連の仕事は全部 32-bit コードを用いています。 これらの製品は出荷中で、サポートされており、PDF 形式のマニュアルがオンラインで入手可能です。例えば P-6032 については http://www.algor.co.uk/ftp/pub/doc/p6032-user.pdf をご覧ください。
これを書いている時点 (2002 年 1月) では私たちは 2.4 カーネルを使っています。カーネルコードは MIPS Technologies, Inc. 社の人たちの移植とあわせたものになっています。Algorithmics はこのカーネルの浮動小数点例外ハンドラとエミュレータを書いています。 この部分は MIPS CPU で浮動小数点演算を信頼性良く、正しく実行するために必須です。
Algorithmics のカーネルと、MIPS ユーザランドへのリンクは http://www.algor.co.uk/algor/info/linux.html のリンクページから辿れます。
Algorithmics は、GNU toolchain の維持もおこなっており、無償のスナップショットと商用のサポートのあるバージョンの両方を提供しています。 商用の Linux 開発を行う場合にはご検討下さい。 Algorithmics で連絡もできます。
80 年代後半から 90 年代初頭にかけて、DEC (現 Compaq) は MIPS を使ったワークステーションを DECsystem とか DECstation という名前で製造していました。 他の x86 や Alpha プロセッサを使用したマシンも DECstation の名前で販売されましたが、これらは明らかにこの FAQ の対象ではありません。 Paul M. Antoine さんの始めた DECstation に対するサポートはまだ開発中です。 最近は、ほとんどの作業は Harald Koerfgen (hkoerfg@web.de) さんを中心とする人たちが行っています。インターネットでは DECstation 関連の情報は http://decstation.unix-ag.org/ にあります。
DECstation ファミリは 12MHz の R2000/R2010 を用いた DECstation 2100 から 60 MHz の R4400SC を用いた DECstation 5000/260 まで多岐にわたっています。
現在活発に開発が行われている DECstation の機種は
下記の DECstation モデルは誰も作業していないのでみなしご状態ですが、 これらのモデルに対するサポートは比較的やさしいはずです。
その他の DECstation ファミリは、x86 を使ったものを除いて、CPU だけ MIPS CPU に変えた VAX と見なせます。 これらのマシンについては全く何の情報もなく、VAXLinux ポートが息を吹き返さない限り、 これらのマシンがサポートされることは起こりそうもありません。具体的には
この二つの機種はほとんど同一です。ACE イニシアティブの頃に、Olivetti は Jazz デザインのライセンスを得て、OS として Windows NT を搭載したマシンを出荷していました。MIPS Computer Systems 社は Jazz デザインを購入して MIPS Magnum 4000 シリーズの機種として出荷していました。 Magnum 4000 システムはオペレーティングシステムとして Windows NT と RISC/os が製品化されていました。
これらのマシンのファームウェアはインストールされていた OS の種類によります。 Linux/MIPS はこの二種のうちリトルエンディアンのファームウェアのみをサポートします。 M700-10 は NT マシンとしてのみ売られていたため、 この機種にはすべてリトルエンディアンのファームウェアが搭載されています。 MIPS Magnum の場合はもっと複雑です。もしあなたのマシンが RISC/os 用のビッグエンディアン構成になっていた場合には、 リトルエンディアンのファームウェアに入れ直す必要があります。 このファームウェアは元々すべての Magnum の添付フロッピーに含まれていましたが、フロッピーがもう無いと言うことなら ftp://oss.sgi.com/pub/linux/mips/misc/magnum-4000 から匿名 ftp でダウンロードできます。
M700 はファームウェア環境変数 ConsoleIn と ConsoleOut を multi()serial(0)term() に設定することでディスプレイレスの動作をさせるよう再設定可能です。 また、有効な ARC デバイスの一覧を listdev コマンドで見ることができます。
一部のマシンの場合、例えば G364 グラフィックカードが搭載されていないが、 コンソールは標準グラフィックを使う構成のままになっている場合などでは、 ボード上の JP2 を設定する必要があります。次のリセットの後、マシンは COM2 をシリアルコンソールとしてリブートします。
MIPS Magnum 4000SC は R4000SC CPU を積んでいる以外は Magnum 4000 と同じものです。上の項をご覧ください。
Linux 2.4 と 2.5 カーネルには、Malta エバリュエーションボードと、そのすべての CPU オプションに対してのサポートが含まれるようになっています。
MIPS 4kc と Alchemy 社 (現 AMD 社) Au1000 ほかがサポートされています。
MIPS 5kc, 20kc, Sibyte 社 SB1 コア/SB1250 SOC(System On Chip) ほかがサポートされています。
Linux は最初の MIPS プロセッサ R2000, R3000 及びこの二つから派生した多くのプロセッサ (例えば R3081 など) をサポートしています。
Linux は R4000 ファミリの多くのメンバーをサポートしています。現時点では R4000PC, R4400PC, R4300, R4600, R4700, R5000, R5230, R5260, RM7000 がサポートされています。動作確認済リストは増え続けています。
サポートされていないのは、R4000MC と R4400MC CPU (マルチプロセッサシステム向け) と、CPU 制御の二次キャッシュを持つ R5000 システムです。後者のほうは、キャッシュが外部のキャッシュコントローラではなく R5000 自身で制御されている場合を指します。この違いは重要です。 と言うのは、MIPS ではキャッシュはアーキテクチャ的に可視で、 ソフトウェアで制御してやる必要があるためです。
R4000SC/R4400SC サポートで CPU モジュールを提供してくれた Ulf Carlsson (ulfc@engr.sgi.com) さんの功績は特記されるべきでしょう。
MIPS 系のプロセッサの R6000 はときどき IBM 社のワークステーションの RS6000 と混同されます。ですので、もし IBM 機の Linux のことが知りたいという希望を持ってこの文書を読まれているのでしたら、読む文書が違っています。
R6000 は現在サポートされていません。これは 32-bit の MIPS ISA 2 (MIPS II) に準拠したプロセッサで、興味深くはありますがかなり変なチップです。 これは BIT Technology 社で開発・製造されたもので、後に NEC が生産を引き継ぎました。これは Cray 社のスーパーコンピュータで使われていて、現在でも使われている特に高速なチップ向けの ECL プロセスで作られています。 このプロセッサは、TLB slice と呼ばれる TLB を外付けの一次キャッシュの最後の数ラインの一部として実現する手法を採っています。 このため、MMU は R3000 や R4000 シリーズのものと相当に異なり、 これがこのプロセッサがサポートされていない理由の一つになっています。
R8000 は現在未サポートです。これはこのプロセッサが一部の SGI の機種のみで使われた比較的まれなプロセッサで、Linux/MIPS 開発者が誰もこのような機種を持っていない、ということも理由の一部です。
R8000 はかなり興味深いシリコンチップです。このプロセッサのキャッシュと TLB 周りはほかの MIPS ファミリとはかなり違っています。 このプロセッサは R10000 が完成する前に、浮動小数点最高性能の名誉を Silicon Graphics が奪い返すべくクイックハックで作成されたものです。
R10000 は mips64 カーネルとしてサポートされています。現在 IP22 アーキテクチャ (SGI Indy、Challenge S と Indigo 2) および Origin でサポートされています。
このプロセッサはキャッシュがノン・コヒーレントなシステムではとても制御しづらく、 このためそのようなシステムでこのプロセッサがサポートできるようになるまでにはしばらくかかると思います。 現時点では、そのようなシステムには SGI O2 と Indigo があります。
組み込み向けの用途で、上記 CPU の派生品として TLB 機能を欠くものがあります。 これらの品種はサポートしませんし、サポートされることを期待してもらっても困ります。
ハッカーなら、マイクロコントローラ向けの Linux (略称 ucLinux) をちょっと調べてみようと思われるかもしれません。これは TLB のないプロセッサをサポート可能です。但し、プロセッサのタイプに TLB の有無が与える影響がほとんどないことを考えると、やはり TLB のあるプロセッサを選択することを薦めます。設計作業をずっと節約できますので。
Linux/MIPS バージョン 2.4 から、完全な浮動小数点エミュレーション機能が加わりましたので、 このようなプロセッサも、浮動小数点付きのプロセッサとのバイナリ互換性を保ったままサポート可能になっています。
名前の通り、これは RS6000 プロセッサシリーズを使った IBM のマシンです。 このため、これは Linux/MIPS プロジェクトの対象ではありません。よく IBM RS6000 と MIPS R6000 が混同されますが。しかしながら、Linux/PPC プロジェクトは該当機種をサポートしているかもしれません。詳しい情報は http://www.linuxppc.org/ を見てみてください。
名前にも含まれているとおり、これらのマシンは Digital Equipment 社の VAX ファミリのメンバーです。ここでこれを取り上げるのは MIPS を使った 同じ DEC の DECstation と似たタイプ名のため、よく混同されるからです。 この 2 つのファミリにはアーキテクチャ的に共通点はほとんどありません。 残念ながら、この VaxStation は、他の VAX ファミリ同様現在サポートされていません。
これらは実際は x86 プロセッサを使ったシステムで、この FAQ の対象外です。 Visual Workstation の旧機種には多少制約のある Linux サポートが提供されています。 現在の Visual Workstations は公式にサポートされた SGI の製品です。 詳しい情報は http://oss.sgi.com か http://www.sgi.com をご覧ください。
これらは とても 古いマシンで、多分現時点で十年以上経っています。 これらのマシンは MIPS プロセッサを使っていませんので Linux/MIPS プロジェクトではサポートしませんし、これらの機種の情報を探すためなら この文書は間違った場所です。