2004 年 2 月 28 日 (土) 自宅

日付を越えました。昨日の続きです。 Let's Note Y2 に FreeBSD 4.9-RELEASE や 5.2.1-RELEASE と XFree86-4.3.0 を導入してみるも、 どちらのバージョンでも、

agp_generic_allog_memory: unsupported type 2
agp0: binding memory at bad offset 0x7df000

のように怒られてしまい、xf86cfg(1) が使えないと…。

ここでふと、おかしなことに気が付きました。 5.2.1-RELEASE の devfs 上にある /dev/agpgart が、 なんと 2 つあるのです (後で send-pr しようか…)。 dmesg を見ると、チップ内蔵の VGA が agp0 ではなく、 agp1 として認識されています。

これはもしかして、XFree86 が、 最初に発見された agp0 の AGP-PCI ブリッジを叩こうとして死んでいるのではないか、 という仮定に基づき、 とりあえずカーネルの config ファイルから device agp の行を消して再構築し、 再起動して xf86cfg に挑戦してみると…。

ありゃ?

[image]

SXGA で xf86cfg が起動してきました。 どうやらログを見ると、fb ドライバが頑張っているようです。 ただ、やはり /dev/agpgart がオープンできないとログで怒られているので、 ためしに

# kldload apg

してみました。すると、内蔵ビデオがなぜか agp0 ときちんと認識され、 /dev/agpgart に関するエラーが発生しなくなりました (あらら?)。

まあ、そこそこ使えるようです。

[image] [image]

CD-ROM から gnome2 を入れて、 キャプチャしてみるとこんな感じ (テスト目的なので日本語は入れていません)。 いいねぇ〜。 1280x1024 ピクセルで、 24bpp もきちんと使えます。 さすがに XGA (1024x768) 比 166% の画面は広い…。 ただ、SXGA+ (1400x1050) はあと 12% だけ広いので、 そこを何とかしたい…。 この時点での XF86Config はこんな感じ (1400x1050 に挑戦した悪あがきつき)。

SXGA での GNOME2 画面

XFree86 のログを見ると次のようなメッセージが出ているので、 VESA BIOS を使って何かやっていることは明らかなのだけれども、 この辺りが 1400x1050 出ない理由になっているのかな?

(II) I810(0): VESA BIOS detected
(II) I810(0): VESA VBE Version 3.0
(II) I810(0): VESA VBE Total Mem: 8000 kB
(II) I810(0): VESA VBE OEM: Intel(r)852GM/852GME/855GM/855GME Graphics Chip Accelerated VGA BIOS
(II) I810(0): VESA VBE OEM Software Rev: 1.0
(II) I810(0): VESA VBE OEM Vendor: Intel Corporation
(II) I810(0): VESA VBE OEM Product: Intel(r)852GM/852GME/855GM/855GME Graphics Controller
(II) I810(0): VESA VBE OEM Product Rev: Hardware Version 0.0

ちなみに一応、モニタ自体は 1400x1050 で識別しているらしい。

(II) I810(0): 2 display pipes available.
(II) I810(0): Display Info: CRT: attached: FALSE, present: TRUE, size: (720,400)
(II) I810(0): Display Info: TV: attached: FALSE, present: FALSE, size: (0,2057)
(II) I810(0): Display Info: DFP (digital flat panel): attached: FALSE, present: FALSE, size: (0,2057)
(II) I810(0): Display Info: LFP (local flat panel): attached: TRUE, present: TRUE, size: (1400,1050)
(II) I810(0): Display Info: TV2 (second TV): attached: FALSE, present: FALSE, size: (0,2057)
(II) I810(0): Display Info: DFP2 (second digital flat panel): attached: FALSE, present: FALSE, size: (0,2057)
(II) I810(0): Size of device LFP (local flat panel) is 1400 x 1050
(II) I810(0): No active displays on Pipe A.
(II) I810(0): Currently active displays on Pipe B:
(II) I810(0): 	LFP (local flat panel)
(II) I810(0): Lowest common panel size for pipe B is 1400 x 1050

でも結局 ↓ こうなってしまっていると。

(II) I810(0): Monitor0: Using hsync range of 31.50-82.00 kHz
(II) I810(0): Monitor0: Using vrefresh range of 40.00-150.00 Hz
(II) I810(0): Not using mode "1400x1050" (no mode of this name)
(II) I810(0): Increasing the scanline pitch to allow tiling mode (1280 -> 2048).
(--) I810(0): Virtual size is 1280x1024 (pitch 2048)
(**) I810(0): *Built-in mode "1280x1024"
(**) I810(0):  Built-in mode "1024x768"
(**) I810(0):  Built-in mode "800x600"
(**) I810(0):  Built-in mode "640x480"
(==) I810(0): DPI set to (75, 75)

今の仮定としては、Built-in mode というのは実は VESA BIOS から得ていて、 結局 VESA 頼りではこれ以上いかないのでは、 という不安もあるのですが、 そのあたりどうでしょうね? まあとりあえず、1024x768 しか使えないという最悪の状況は免れて、 あとフル画面まで 12% というレベルまで持ってきたことは、 まあ、それなりに良し、ということで…。

XF86Config の達人の方、いらっしゃったら是非アドバイスを下さいませ…。


このサイトへのリンクには何ら許可は必要ありません。 ただし、無断で写真をダウンロードして他の場所に掲載したり、 画像加工の素材として利用するなど、再配布に当たる行為はしないようにしてください。 また、このサイトへのリンクであることを明示すること無しに <img src="..."> などで他のページの内部に画像ファイルを取り込むことも、 ご遠慮下さい。