[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

PM7500 arch/macppc/dev/ofb.c (640 x 480 or 1280 x 1024)



>                                            千葉市中央区長洲
>                                                    藤原  誠
  ADB mouse の件は、まだ自分で良く整理が付いていません。自分で
言った wsmouse0 は多分うまく行きませんでした。つばいさんの方法
はまだ良く試していません。( /usr が殆んど一杯の時に kernel を
make したらそれが本当の原因かは不明ですが、不安定で、出来るの
に時間がかかったりして、後ほど整理してお知らせします。)

  ここから本題です。PowerMac 7500 など、 output-device = screen と
設定してもだめな機械で、output-device = /chaos/control とする必要
のあるというような機種の場合の話です。具体的には 7500 に 
604e/160MHz を差したものの話です。

Open Firmware の設定
MacOS での設定
Mac の Video connector と D-sub 15pin 三列適合器(adapter) の設定
(を読んで知らせる機能がうまく OF で動いているのか)

  などの関係がどうなっているのか良く分っていないのですが、このよう
な機種で、1024 x 768 とか 1280 x 1024 の画面に設定出来ている方はい
らっしゃるのでしょうか。linuxppc 方面だと vmode nvvideo ともう一つ
似たようなものがあるという話だけは聞くのですが。

  MacOS で 640 x 480 に設定しておけば、一応動く、そのままで X11 も
動く。ただし 640 x 480 のまま。

  だけは分りましたが、そこから先は良く分りません。どうしても、少な
くとも 1024 x 768 以上で動いて欲しかったので、(そう言えば Linuxppc
+ StarMax の時にも kernel に hardcode したこともあったなと思いなが
ら) 添付のような変更もして見たのですが、これですと X が動かなかっ
たと思います。正確には、640 x 480 で login: まで行く。startx する
と VendorInit = 0 という表示が出て、そこから先は画面が変化しない。
だったと思います。

更に言うならば、PRAM と呼ばれる記憶と、Open Firmware の printenv
で読めるものは一対一ではないのですよね。(集合として一致しているか
という質問です)
---
(藤原)
--- src/sys/arch/macppc/dev/ofb.c-oo	Wed Mar 24 14:51:04 1999
+++ src/sys/arch/macppc/dev/ofb.c	Wed Mar  8 11:03:58 2000
@@ -212,6 +212,11 @@
 	if (width == -1 || height == -1)
 		return;
 
+	width = 1280;
+	height = 1024;
+	depth  = 8;
+/*	linebytes = 1280; */
+
 	OF_interpret("frame-buffer-adr", 1, &addr);
 	if (addr == 0 || addr == -1)
 		return;
@@ -234,13 +239,14 @@
 	rcons_init(rcp, 128, 128);
 
 	/* If screen is smaller than 1024x768, use small font. */
-	if ((width < 1024 || height < 768) && copy_rom_font() == 0) {
-		rcp->rc_xorigin = 2;
+/*	if ((width < 1024 || height < 768) && copy_rom_font() == 0) { */
+	if ( copy_rom_font() == 0) {
 		rcp->rc_yorigin = 4;
 
 		OF_interpret("#lines", 1, &dc->dc_rcons.rc_maxrow);
 		OF_interpret("#columns", 1, &dc->dc_rcons.rc_maxcol);
-	}
+	} 
+
 
 	ofb_stdscreen.nrows = dc->dc_rcons.rc_maxrow;
 	ofb_stdscreen.ncols = dc->dc_rcons.rc_maxcol;