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

4. Linux/MIPS がサポートするハードウェア

4.1 ハードウェアプラットフォーム

多くのマシンがいくつかの異なったプロセッサオプションを持っていますが、 その全部がサポートされているわけではありません。 プロセッサタイプ の項を参照してあなたの プロセッサがサポートされているか確認してください。下記は Linux/MIPS が走っているマシン、Linux/MIPS が移植できそうなシステム、そして Linux/MIPS を走らせることに興味を持っている人たちのいるシステムの一覧です。

Acer PICA

Acer PICAMips Magnum 4000 の設計を引き継いでいます。 これは R4400PC CPU で、133MHz で動作するものか、機種によってはオプションの 150MHz 動作で 512KB (オプションで 2MB のものもあります) の二次キャッシュ付きの CPU が搭載されており、昔の Magnum の G364 gfx カードの代わりに S3 968 チップを使ったカードが使われています。 このシステムは X サーバ以外はサポートされています。

Baget/MIPS シリーズ

Baget シリーズは R3000 プロセッサを使った次の 3 機種からなります: Baget 23, Baget 63, and Baget 83。Baget 23 と 63 は 25MHz の R3500A (基本的には R3000A チップです 【訳注 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 Qube と Raq

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 の機種

NEC の単一プロセッサの機種は Acer PICA システムの OEM ですので、該当の項を参照ください。マルチプロセッサシステムは別物です。 Linux/MIPS の開発者達は OS を開発するに必要な技術情報を持っていません。 この点に進展が無い限り、ドキュメント関連が NEC のマルチプロセッサシステム への移植を阻む主要因であり続けるでしょう。

NEC の VR41xx 系を使った機種

Linux VR プロジェクトでは NEC 社 VR41xx マイクロプロセッサを使った機器への Linux の移植を行っています。これらの機種の多くはもともと Windows CE を動かすためのものです。現在基本的なドライバを備えた動作するカーネルが Vadem 社の Clio、Casio 社の E-105、Everex 社の Freestyle 他の機種向けに 同プロジェクトで作成されています。更に詳しい情報は http://linux-vr.org/ を参照ください。

東芝 TMPR39xx/Philips PR31700 プラットフォーム

VR41xx と同様、これらのプロセッサを使った機器はもともと Windows CE を動かすためのものです。但し、Sharp MobilonCompaq C-Series には基本的ドライバを含む動くカーネルがあります。 その他の機種については開発中です。コードは Linux VR プロジェクトの一部で、 このためより詳しい情報は http://linux-vr.org/ にあります。

Netpower 100

Netpower 100 は明らかに変装した Acer PICA です。従ってサポートされているはずですが、テストされていません。 もし問題があるとするなら、マシン判定の関連でしょう。

Nintendo 64

Nintendo 64 は 4MB の RAM を持つ R4300 ベースのゲーム機です。 グラフィックチップは Silicon Graphic 社と任天堂で開発されています。 このマシンへのポートは現在できたらいいな、の状態であり、 任天堂が必要な技術情報の公開を決定するまではその状態のままでしょう。 もっともこの機種に Linux/MIPS のコードを移植するのが良い考えなのかどうかは問題ではありますが。

Silicon Graphics Challenge S

このマシンは Indy によく似ています。 違いはこのマシンにはキーボードとグラフィックカードがないこと、その代わりに WD33C95 チップを使った SCSI アダプタが追加されていることです。 この WD33C95 アダプタは現時点ではサポートされていません。

Silicon Graphics Indigo

このマシンをここで言及しているのは、Indy や Indigo 2 と良く混同されるためです。 Indigo は R3000 を使った別のアーキテクチャの機種で、まだサポートされていません。

Silicon Graphics Indigo2

このマシンは Indigo の後継機種で、Indy ととてもよく似ています。 この機種は現在サポートされていますが、かなりの機能が欠けています。 また、シリアルコンソールを使わなければいけません。Indigo2 を持っていて、現在の状態でも良いので Linux を動かしてみたいということならば、 Florian Lohoff (flo@rfc822.org) さんか Klaus Naumann (spock@mgnet.de) さん に連絡を取ってください。

Silicon Graphics Indy

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 関連の問題

一部の人たちが、マシンを保守パーツ等でアップグレードした後にこの問題を報告しています。 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 ユーザがこれについて質問を出していたからです。

古い版の PROM の ELF サポート

古い版の PROM は Linux カーネルの使う ELF フォーマットを知らず、 Linux が直接ブートできません。この問題の望ましい解決策はもちろん PROM のアップグレードです。代替手段として、Irix 5 以降の Sash をカーネルを ブートするために使うことができます。Sash は ELF バイナリをロードするやり方を知っており、それが IRIX のカーネルか Linux のカーネルかを気にしません。PROM モニタで ``Sash'' と打ってください。 別のシェルプロンプトがでたなら、それが Sash からのプロンプトです。 後は普通通り Linux を起動してください。

Sash は EFS と XFS ファイルシステムを読め、bootp / tftp でカーネルを読むこともできます。 このことから、ローカルのディスクから Sash を使ってカーネルをブートするには最小の IRIX がインストールされたパーティションをシステムに残しておく必要があります。

私の Indy でメモリがこんなにシステムで使われてしまうのはなぜ?

ブート時に Indy の `Memory: ...' メッセージは 128 MB のメモリがシステムで使われていると答えます。これは正常です。 PC アーキテクチャで 640KB から 1024KB までにギャップが開いているのと同様、 Indy のメモリアドレス空間内に最初の 128MB がイメージとして現れる部分があるためです。Linux はそのことを知っていて、そのメモリを単に無視するため、このようなメッセージがでるのです。

Silicon Graphics Origin 200 と 2000

Ralf Bächle (ralf@gnu.org) さんと SGI 社員のチームが Origin 200 への移植に取り組んでいます。 これは現在まだ初期の段階ですが、単一プロセッサでもマルチプロセッサでも走り、 内蔵の IOC3 Ethernet と SCSI ホストアダプタのドライバがあります。 コードは Linux/MIPS の CVS ツリーから得られます。

Silicon Graphics Onyx 2

Onyx 2 は、基本的には Origin 2000 に追加のグラフィックハードウェアがついたものです。 現時点でこの追加グラフィックハードウェアの Linux サポートはできあがっていません。 それ以外の点では、通常のディスプレイなしの Origin 2000 構成と同程度に Linux が走るはずです。

Silicon Graphics Power Series

これはとても古い R3000 マルチプロセッサ機です。 これらの機種のハードウェアのドキュメントはありませんし、マシン自体既にあまり残っていませんし、ハードウェアはねじけています。 簡単にいって、Linux がこれらのマシンで走る可能性はほとんどゼロです。 もっとも、挑戦者の意気を挫こうというわけではありませんが…。

SGI マシンのシリアルコンソール

使っているカーネルにシリアルインターフェースとシリアルコンソールのための適切なドライバが組み込まれるようにしてください。 Indy と Challenge S では ARC 環境変数 consoled1d2 のどちらかの、 コンソールとして使おうとしているシリアルインターフェースの側になるように設定してください。

もし、全カーネルメッセージがブート時にはシリアルコンソールに現れて、 init が動き出した時点から何もでなくなるという問題に出くわしたと言うことなら、 多分あなたの /dev/console の設定が間違っているためでしょう。 カーネルソースをインストールしているなら Linux カーネルソースの /usr/src/linux/Documentation/serial-console.txt に詳しい情報がみつかります。

その他の Silicon Graphics 社の機種

現時点でその他の Silicon Graphics 社のマシンはサポートされていません。 これらサポートされていない機種にはとても 古い モトローラの 68k を使ったマシンも含まれます。

Sony プレイステーション

Sony のプレイステーションは R3000 派生の機種を使っており、Sony の自社開発のグラフィックチップセットを使っています。このマシンは理論的には Linux を走らせることができるはずですが、Sony が必要な技術情報を現時点で提供していないので移植は困難です。 端的に言って、多数の人がこのシステムで Linux を走らせることに興味を表明した時点から何も進んでいません。

SNI RM200C

下に書かれている RM200 と違って、このマシンは EISA と PCI スロットを持っています。RM200C はオンボードの NCR53c810A SCSI コントローラを除いてサポートされています。

SNI RM200

あなたのマシンが EISA と PCI スロットの両方を持っているなら、それは RM200C です (上をご覧ください)。このアーキテクチャ的なわずかな違いのため、こちらのマシンは現在公式ソースではサポートされていません。 Michael Engel (engel@numerik.math.uni-siegen.de) さんが彼の RM200 を部分的に動くところまで持ってきていますが、このパッチはまだ公式の Linux/MIPS ソースに含まれてはいません。

SNI RM300C

RM300 は技術的には RM200C にとてもよく似ています。従って現在の Linux カーネルで動くはずですが、まだ動作レポートを受け取っていません。

SNI RM400

RM400 はサポートされていません。

SNI RW320

これは SGI Indigo の OEM 品で、従ってサポートされていません。

Algorithmics P-4032, P-5064, P-6032

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 をご覧ください。

これを書いている時点 (2000 年 11月) では私たちは 2.2.x カーネルを使っています。カーネルコードは MIPS Technologies, Inc. 社の人たちの移植とあわせたものになっています。Algorithmics はこのカーネルの浮動小数点例外ハンドラとエミュレータを書いています。 この部分は MIPS CPU で浮動小数点演算を信頼性良く、正しく実行するために必須です。

Algorithmics のカーネルと、MIPS ユーザランドへのリンクは http://www.algor.co.uk/algor/info/linux.html のリンクページから辿れます。 Algorithmics で連絡もできます。

DECstation シリーズ

80 年代後半から 90 年代初頭にかけて、DEC (現 Compaq) は MIPS を使ったワークステーションを DECsystem に対する DECstation の名前で製造していました。 他の x86 や Alpha プロセッサを使用したマシンも DECstation の名前で販売されましたが、これらは明らかにこの FAQ の対象ではありません。 Paul M. Antoine さんの始めた DECstation に対するサポートはまだ開発中です。 最近は、ほとんどの作業は Harald Koerfgen (Harald.Koerfgen@home.ivm.de) さんを中心とする人たちが行っています。インターネットでは DECstation 関連の情報は http://decstation.unix-ag.org/ にあります。

DECstation ファミリは 12MHz の R2000/R2010 を用いた DECstation 2100 から 60 MHz の R4400SC を用いた DECstation 5000/260 まで多岐にわたっています。

現在活発に開発が行われている DECstation の機種は

下記の DECstation モデルは誰も作業していないのでみなしご状態ですが、 これらのモデルに対するサポートは比較的やさしいはずです。

その他の DECstation ファミリは、x86 を使ったものを除いて、VAX で CPU だけ MIPS CPU に変えたものと見なせます。 これらのマシンについては全く何の情報もなく、VAXLinux ポートが息を吹き返さない限り、 これらのマシンがサポートされることは起こりそうもありません。具体的には

の各機種です。

Mips Magnum 4000 / Olivetti M700-10

この二つの機種はほとんど同一です。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://ftp.fnet.fr から匿名 ftp でダウンロードできます。

M700 はファームウェア環境変数 ConsoleIn と ConsoleOut を multi()serial(0)term() に設定することでディスプレイレスの動作をさせるよう再設定可能です。 また、有効な ARC デバイスの一覧を listdev コマンドで見ることができます。

一部のマシンの場合、例えば G364 グラフィックカードが搭載されていないが、 コンソールは標準グラフィックを使う構成のままになっている場合などでは、 ボード上の JP2 を設定する必要があります。次のリセットの後、マシンは COM2 をシリアルコンソールとしてリブートします。

MIPS Magnum 4000SC

MIPS Magnum 4000SC は R4000SC CPU を積んでいる以外は Magnum 4000 と同じものです。上の項をご覧ください。

4.2 プロセッサタイプ

R2000, R3000 ファミリ

R2000 が 起源となる MIPS プロセッサです。これは 32bit プロセッサで 1985 年に 8MHz 動作品が市場に最初の MIPS プロセッサとして現れました。 その後のバージョンはクロック周波数を高めたものです。例えば、R3000 は R2000 と完全に互換な再設計で、クロック周波数を高くできるようになっています。 このプロセッサ間には高い互換性があり、何かの文書が R3000 のことについて記載している場合、たいていは R2000 にもそのまま当てはまります。 R3000A は基本的には 40MHz R2000 と R3010 FPU と 64K のキャッシュを同一チップに集積したものです。

Harald Koerfgen (Harald.Koerfgen@home.ivm.de) さんと Gleb O. Raiko (raiko@niisi.msk.ru) さんが独立に R3000 プロセッサ向けのパッチの作成を行いました。 両名の仕事はマージされ、公式の Linux/MIPS のソースに 1999/7 月に統合されています。実際は Linux は R3000 プロセッサを、派生品種の R3081 と TMPR3912/PR31700 を含めサポートしています。

R6000

ときどき MIPS 系のプロセッサの R6000 は IBM 社のワークステーションの RS6000 と混同されます。ですので、もし IBM 機の Linux のことが知りたいという希望を持ってこの文書を読まれているのでしたら、読む文書が違っています。

R6000 は現在サポートされていません。これは 32-bit の MIPS ISA 2 に準拠したプロセッサで、興味深くはありますがかなり変なチップです。 これは BIT Technology 社で開発・製造されたもので、後に NEC が生産を引き継ぎました。これは Cray 社のスーパーコンピュータで使われていて、現在でも使われている ECL プロセスで作られています。 このプロセッサは、TLB slice と呼ばれる TLB を外付けの一次キャッシュの最後の数ラインの一部として実現する手法を採っています。 このため、MMU は R3000 や R4000 シリーズのものと相当に異なり、 これがこのプロセッサがサポートされていない理由の一つになっています。

R4000 and R5000 family

Linux は R4000 ファミリの多くのメンバーをサポートしています。現時点では R4000PC, R4400PC, R4300, R4600, R4700, R5000, R5230, R5260 がサポートされています。他のものも多分同様に動くでしょう。

サポートされていないのは、R4000MC と R4400MC CPU (マルチプロセッサシステム向け) と、CPU 制御の二次キャッシュを持つ R5000 システムです。後者のほうは、キャッシュが外部のキャッシュコントローラではなく R5000 自身で制御されている場合を指します。この違いは重要です。 と言うのは、MIPS ではキャッシュはアーキテクチャ的に可視で、 ソフトウェアで制御してやる必要があるためです。

特別の功績が、R4000SC/R4400SC サポートで CPU モジュールを提供してくれた Ulf Carlsson (ulfc@engr.sgi.com) さんにあります。

R8000

R8000 は現在未サポートです。これはこのプロセッサが一部の SGI の機種のみで使われた比較的まれなプロセッサで、Linux/MIPS 開発者が誰もこのような機種を持っていない、ということも理由の一部です。

R8000 はかなり興味深いシリコンチップです。このプロセッサのキャッシュと TLB 周りはほかの MIPS ファミリとはかなり違っています。 このプロセッサは R10000 が完成する前に、浮動小数点最高性能の名誉を Silicon Graphics が奪い返すべくクイックハックで作成されたものです。

R10000

R10000 は mips64 カーネルの一部としてサポートされています。現在 IP22 アーキテクチャ (SGI Indy、Challenge S と Indigo 2) および Origin でサポートされています。

このプロセッサはキャッシュがノン・コヒーレントなシステムではとても制御しがたく、 このためそのようなシステムでこのプロセッサがサポートできるようになるまでにはしばらくかかると思います。 現時点では、そのようなシステムには SGI O2 と Indigo  があります。

TLB の無いプロセッサ

組み込み向けの用途で全機能の TLB の欠けた特別な派生版の CPU が入手できます。 これらの品種はサポートしませんし、サポートされることを期待してもらっても困ります。

ハッカーなら、マイクロコントローラ向けの Linux (略称 ucLinux) をちょっと調べてみようと思われるかもしれません。これは TLB のないプロセッサをサポート可能です。但し、プロセッサのタイプに TLB の有無が与える影響がほとんどないことを考えると、やはり TLB のあるプロセッサを選択することを薦めます。設計作業をずっと節約できますので。

浮動小数点機構が一部分サポートされた、または搭載されていないプロセッサ

理論的には、 これらのプロセッサは特にアプリケーションが浮動小数点を必要としていないなら、 サポート可能なはずです。 但し、現在はまだサポートされていません。

4.3 私たちがサポートしていかないハードウェア

IBM RS6000

名前の通り、これは RS6000 プロセッサシリーズを使った IBM のマシンです。 このため、これは Linux/MIPS プロジェクトの対象ではありません。よく IBM RS6000 と MIPS R6000 が混同されます。しかしながら、Linux/PPC プロジェクトは該当機種をサポートしているかもしれません。詳しい情報は http://www.linuxppc.org/ を見てみてください。

VaxStation

名前にも含まれているとおり、これらのマシンは Digital Equipment 社の VAX ファミリのメンバーです。ここでこれを取り上げるのは MIPS を使った 同じ DEC の DECstation と似たタイプ名のため、よく混同されるからです。 この2つのファミリにはアーキテクチャ的に共通点はほとんどありません。 残念ながら、この VaxStation は、他の VAX ファミリ同様現在サポートされていません。

SGI VisPC

これらは実際は x86 プロセッサを使ったシステムで、この FAQ の対象外です。 Visual Workstation の旧機種には多少制約のある Linux サポートが提供されています。 現在の Visual Workstations は公式にサポートされた SGI の製品です。 詳しい情報は http://oss.sgi.comhttp://www.sgi.com をご覧ください。

Iris 3000 などのモトローラ 68k ベースの機種

これらは とても 古いマシンで、多分現時点で十年以上経っています。 これらのマシンは MIPS プロセッサを使っていませんので Linux/MIPS プロジェクトではサポートしませんし、これらの機種の情報を探すためなら この文書は間違った場所です。


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