7月 022007
 

カーネルモジュールのお話。特に DELL 製 NotePC 系でのお話。xorg.conf のお話。なんか、いろんなことが絡んでいるなぁ・・。

xorg が 7.2 になったので合せて色々なものが動く様になったり動かない様になったり、目に付くようになった今日このごろ、僕の持っている DELL X1 の NotePC において /var/log/Xorg.0.log を眺めていると、 /dev/agpgart が無いゼイッって怒られている行が合った。

/dev/agpgart が無いとどうなるのかと言うと drm が動かないので mplayer がフル画面で表示してくれないとか 3D が遅いかもとか言った弊害が出てくる。まぁ、そんなに大した問題では無いのだけどね(^^;;。

では、どうして /dev/agpgart が出来ないのか? どうやらカーネルモジュールをロードする時に問題がありそうだ。acpi_video.ko を先にロードしてから agp.ko、drm.ko、i915.ko をロードすると /dev/agpgart が生えてこないみたい。

そして、acpi_video.ko をロードしないようにすると /dev/agpgart が無事に生えてくる。この辺り、pciconf -lv するとデバイスの認識状況が楽しかったりします;-)。

それにしても、/dev/agpgart が生えてこないんだったら acpi_video.ko をロードしなければいいじゃん。となるんだけど、これがまたねぇ・・。DELL X1 は中途半端に suspend/redume するもんだから acpi_video.ko をロードしておかないとディスプレーのリセットとかできなくなってします。

解り易いのは acpi_video.ko をロードした時としない時の sysctl -a | grep video の違いを見れば一目瞭然。

前者の場合、外部ディスプレー出力にも対応しているのに対して、後者の場合は video 周りの ACPI (と言うか sysctl の MIB) は何も無い状態。その状態で acpiconf -s3 なんざ叩いたらマシンがあっと言う間に凍りついてしまう。

mplayer をフル画面で見たいがため、もしくは Xorg.0.log からエラーメッセージを除去したいがために acpi_video.ko をロードしないのはあまりにもナンセンスだ・・。

と、言うか、agp.ko と acpi_video.ko で drm 辺りが競合してしまうのに問題があると言うか、なんちゅーか本中華・・。

デスクトップの i915 だったら無条件で acpi_video.ko をロードしないと言う選択枝が取れるんだけどねぇ。NotePC の場合は悩ましい。

さて、あなたはどっちを選択しますか!?