X Windowのカラー化 (1998/5/14 更新)

NuBus用ビデオカード:RasterOps 24XLi

RasterOps 24XLiは、残念ながらサポートされてません。
GENERICカーネルでのNetBSD起動時のRasterOps 24XLiに関するメッセージでも
	macvid0 at nubus0 slot c: RasterOps 8/24XLi
	macvid0: Unknown video card ID 0x2a0 -- Not Installing interrupt routine.
	macvid0: 1152 x 870, monochrome
	grf1 at macvid0
	ite at grf1 not configured
と表示されています。 つまり、1152x 870モノクロームとして認識されたということですね。
また、「ite at grf1 not configured」の内容は、「grf1(RasterOps 24XLi)をコンソールとしない」という意味です。 このカードはIIciに挿しかつ内蔵ビデオも使用するようにしているので、この場合、内蔵ビデオをコンソールにするようになるようで、それの起動メッセージも「ite0 at grf0 (minimal console)」となっています。 もちろん、内蔵ビデオを使用しなければRasterOps 24XLiをコンソールにするようになります。

さて、Color Video LKMSLOTMAN kernelを使用しないとカラーにはならないので試してみたところ、どちらの場合も起動時にRasterOps 24XLiをチェックしている所でデバッグモードに落ちました。
Color Video LKM の方のソースを追いかけてみると、アセンブラソース内で落ちているようでした。 詳しくは判らないのですが、カードのリソースで見つからないものがあったにも関わらず、エラーリターンせずに突っ走っているためだと思われましたので、この部分を変更して取り敢えずデバッグモードに落ちることだけはなくなりました。
それにしてもマジックナンバー0x40,0x80ってなに?
意味も判らず、ソースを追っかけてしまうのであった(笑)<時間の無駄だってば

また、RasterOps 24XLiを抜いて、内蔵ビデオだけにするとNetBSDは起動しますが、Xはカラーにはなりませんでした。
結局、GENERICカーネルだけにして、

となりました。

後日、RasterOps 24XLiに関する情報(「サポート外のNuBusビデオカードへの対応」参照)を調査してAllen Briggs氏に送ったところ、対応コードをcurrentに付け加えた旨とその修正内容のメイルを頂きました。 さっそく、ソースに修正を施し、カーネルの再構築をしています。 こちらでテストしないと誰もテストしてくれませんからね。(まあ、できれば、それを元に自分で対応できれば申し分ないのですが、取り敢えず無駄な努力とは思いつつやってみた所、どこでどういう処理をすればいいのかまで判っても、どういうコードを書けばいいかわからず、やはり無駄に終わりました。)

さて、対応コードを付け加えたカーネルで起動してみると、起動メッセージは、

macvid0 at nubus0 slot c: RasterOps 8/24XLi
macvid0: 1152 x 870, monochrome
grf1 at macvid0
ite at grf1 not configured
となり、
macvid0: Unknown video card ID 0x2a0 -- Not Installing interrupt routine.
の行は消えたので、カードは認識され、インタラプトルーチンはインストールされたという事なんでしょうね。 (というか、カードを認識させインタラプトルーチンをインストールするコードを追加したんだから当然といえば当然なんですが...)
しかし、カードは256カラーにしているにもかかわらず、モノクロームとしか認識されていません。(したがって、BooterでMonitor DepthがB&Wになるようにして起動しないとおかしな事になります。)  (まぁ、Monitor Depthの取得は別の部分でやってるので、これも当然なのかもしれませんね。) この事に関しての問い合わせはまだ行っていませんが、取り敢えず、強制的に256カラーモードとして認識する(としか認識しない)ようにコードを変更したところ、起動メッセージは、
macvid0 at nubus0 slot c: RasterOps 8/24XLi
macvid0: 1152 x 870, 256 color
grf1 at macvid0
ite at grf1 not configured
となり、Xもうまく動作しています。 もちろんカラー対応カーネルではありませんので、Xは256グレイスケールとなります。

ちょっと調べて見たら、このカードが動作可能なMonitor Depth(このカードの場合5種類)を表すコードは返してくるように見えますが、なにがいけないのでしょうか? これ以上は判りません。(あ、当然か)

というわけで、現在は、

となっています。


[ X Windowのカラー化 ] [ NetBSD/mac68k Topics (Japanese) もくじ ]

HQP00700@nifty.ne.jp