2007年11月10日土曜日

(FreeBSD,Xorg) Xサーバが2~3回目以降起動しなくなる … (EE) I810(0): V_BIOS address 0x0 out of range

日常の私の使い方では、朝(?…笑)、パソコンの電源を入れて、FreeBSDをブートして、コンソールからログインして(xdmは使わないのだ)、startxでXを立ち上げて、仕事(?…笑)をして、夜になったら、Xから抜けて、shutdown -pして電源を切る、という感じ。



そのパターンを繰り返してきたので、これまで気がつかなかったことなのですが、つい最近、Xを一度落としたあと、2回目のstartxを実行すると、Xが立ち上がらないことに気がつきました。



もしかすると、2回目はまだXは立ち上がったかもしれません。



でも、3回目以降は、だいたいダメでした。一度でもエラーが出てXが立ち上がらなくなると、もうそれ以降は、リブートしない限り、2度とXが立ち上がりません。



だめだったとき、こんなログが出ています。



(II) Loading font Type1
(II) LoadModule: "i810"
(II) Loading /usr/local/lib/xorg/modules/drivers//i810_drv.so
(II) Module i810: vendor="X.Org Foundation"
        compiled for 1.4.0, module version = 1.6.5
        Module class: X.Org Video Driver
        ABI class: X.Org Video Driver, version 2.0
(II) LoadModule: "mouse"
(II) Loading /usr/local/lib/xorg/modules/input//mouse_drv.so
(II) Module mouse: vendor="X.Org Foundation"
        compiled for 1.4.0, module version = 1.2.3
        Module class: X.Org XInput Driver
        ABI class: X.Org XInput driver, version 2.0
(II) LoadModule: "kbd"
(II) Loading /usr/local/lib/xorg/modules/input//kbd_drv.so
(II) Module kbd: vendor="X.Org Foundation"
        compiled for 1.4.0, module version = 1.2.2
        Module class: X.Org XInput Driver
        ABI class: X.Org XInput driver, version 2.0
(II) I810: Driver for Intel Integrated Graphics Chipsets: i810, i810-dc100,
        i810e, i815, i830M, 845G, 852GM/855GM, 865G, 915G, E7221 (i915),
        915GM, 945G, 945GM, 965G, 965G, 965Q, 946GZ
(II) Primary Device is: PCI 00:02:0
(--) Chipset 915G found



~省略~



(II) Loading sub module "int10"
(II) LoadModule: "int10"
(II) Reloading /usr/local/lib/xorg/modules//libint10.so
(II) I810(0): initializing int10
(==) I810(0): Write-combining range (0xa0000,0x20000) was already clear
(==) I810(0): Write-combining range (0xc0000,0x40000) was already clear
(EE) I810(0): V_BIOS address 0x0 out of range
(EE) I810(0): VBE initialization failed.

(II) UnloadModule: "i810"
(II) UnloadModule: "int10"
(II) UnloadModule: "vgahw"
(II) Unloading /usr/local/lib/xorg/modules//libvgahw.so
(II) UnloadModule: "vbe"
(II) Unloading /usr/local/lib/xorg/modules//libvbe.so
(II) UnloadModule: "int10"
(II) Unloading /usr/local/lib/xorg/modules//libint10.so
(EE) Screen(s) found, but none have a usable configuration.

Fatal server error:
no screens found



EEというマークがついている行は、エラーのことらしいのですが、

(EE) I810(0): V_BIOS address 0x0 out of range
(EE) I810(0): VBE initialization failed.

というのが出てます。



正常に立ち上がるときは、その近辺の行は、こんな感じです。



(II) Loading sub module "int10"
(II) LoadModule: "int10"
(II) Reloading /usr/local/lib/xorg/modules//libint10.so
(II) I810(0): initializing int10
(==) I810(0): Write-combining range (0xa0000,0x20000) was already clear
(==) I810(0): Write-combining range (0xc0000,0x40000) was already clear
(WW) I810(0): Bad V_BIOS checksum
(II) I810(0): Primary V_BIOS segment is: 0xc000

(==) I810(0): Write-combining range (0x0,0x1000) was already clear
(II) I810(0): VESA BIOS detected
(II) I810(0): VESA VBE Version 3.0
(II) I810(0): VESA VBE Total Mem: 7872 kB
(II) I810(0): VESA VBE OEM: Intel(r)Grantsdale-G 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)Grantsdale-G Graphics Controller
(II) I810(0): VESA VBE OEM Product Rev: Hardware Version 0.0
(II) I810(0): Integrated Graphics Chipset: Intel(R) 915G
(--) I810(0): Chipset: "915G"
(--) I810(0): Linear framebuffer at 0xC0000000
(--) I810(0): IO registers at addr 0xB0080000
(==) I810(0): Write-combining range (0xb0080000,0x80000) was already clear



Badとか言われちゃってますけど(笑)。



ま、いいか、と見なかったことにしていたのですが、先日、偶然見つけたのですけど、FreeBSDのメーリングリストで、同じ不具合を訴えている人がいて、解決方法がわかりました。



ログからもわかるように、ビデオチップは、Intelのチップセット統合のやつでして、これまで、i810というドライバを使っていました。それをやめて、代わりに、intelというドライバを使えばOKだよ、とのこと。



ほほぉ~ 最近は、そういうドライバがあったんですね。



これまで使っていたビデオドライバは、portsでインストールした
xf86-video-i810-1.6.5_3
なので、pkg_deleteでアンインストールしてしまえ・・・



# pkg_delete /var/db/pkg/xf86-video-i810-1.6.5_3
pkg_delete: package 'xf86-video-i810-1.6.5_3' is required by these other packages and may not be deinstalled:
xorg-7.3_1
xorg-drivers-7.3



というように依存しているものがあるのでアンインストールできません。



どうやら、xorg-driversというのがメタ・パッケージで、こいつの依存関係で、xf86-video-i810がインストールされている、ということらしいです。



ports/x11-drivers/xorg-drivers にて、make configすると、メニューが表示されるので、i810をoff、intelをon にすればよさそうです。



あとは、xorg-driversをビルドしなおせばOKっぽいですけど、私はめんどくさかったので、make configしただけで、そのあと、pkg_delete -f xf86-video-i810-1.6.5_3 で、強制的にアンインストールしたあと、ports/x11-drivers/xf86-video-intel にて、make installしました。あとで、pkgdb -Fでつじつまあわせすれば大丈夫かな、と思って。



なお、



# ls -l /usr/local/lib/xorg/modules/drivers/i810*
lrwxr-xr-x  1 root  wheel      12 11  8 18:19 /usr/local/lib/xorg/modules/drivers/i810_drv.so -> intel_drv.so



というように、昔のドライバ名からシンボリックリンクがつくられているので、xorg.confは書き換えることなく、そのまま使えています。



0 件のコメント:

コメントを投稿