FreeBSD 9.0でxorg-server 1.10.6を試す

先頃FreeBSDportsからインストール可能なxorg-serverの既定のバージョンが更新されました.この更新のついで(かどうかは分かりませんが)により新しいxorg-server 1.10.6をインストールするためのKNOBが追加されたとのことですので,今日はこれを試してみます.ちなみに,この新しいxorg-serverを利用するにはNvidiaGPUIntelの内蔵GPUが必要なようです.また,後者の場合,さらにKMS (Kernel Mode Setting)のサポートが必要です.

今日はFreeBSD 9.0上で,Sandy Bridgeの内蔵GPUについて試すつもりですので,KMSのサポートを追加するところからはじめます.まず,カーネルソースコード/usr/srcに展開しておきます.Subversionをインストールしないのであればベースシステムのcsupを使えば良いでしょう.

csup -g -L 2 /etc/csup/standard-supfile

ただし,/etc/csup/standard-supfileを以下の内容で記述しておきます.

*default host=cvsup.jp.FreeBSD.org
*default base=/var/db
*default prefix=/usr
*default release=cvs tag=RELENG_9_0
*default delete use-rel-suffix
src-sys
src-sys-crypto

続いて,ソースコードに若干の修正を加えます.

--- i915_suspend.c.orig	2012-04-25 22:24:20.000000000 +0900
+++ i915_suspend.c	2012-04-25 22:25:11.000000000 +0900
@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/drm/i915_suspend.c,v 1.4.4.1.2.1 2011/11/11 04:20:22 kensmith Exp $");
+__FBSDID("$FreeBSD$");
 
 #include "dev/drm/drmP.h"
 #include "dev/drm/drm.h"

KMSのサポートを追加するために,Intel GPU patch 13.7 for stable/9 and releng/9.0より9.0向けのパッチを入手し,以下のように適用します.

cd /usr/src
patch -sp1 < /tmp/drm-all.13.7-releng9.0.patch

カーネルを再構築,インストールして再起動します.

make buildkernel
make installkernel
shutdown -r now

続いてXorgをインストールします.安全のためには新規インストールをすべきでしょう.新しいxorg-serverのインストールにはx11-servers/xorg-serverWITH_NEW_XORGなるKNOBを.KMSのサポート追加にはgraphics/libdrmWITH_KMSなるKNOBを与えてインストールする必要がありますので,これらを/etc/make.confにでも追加しておきましょう.

# for xorg-server 1.10.6 and KMS support
WITH_NEW_XORG=yes
WITH_KMS=yes

新規インストールの場合はmeta portのインストールを行えば良いでしょう.

cd /usr/ports/x11/xorg
make install clean
cd /usr/ports/x11-drivers/xf86-video-intel
make install clean

インストールが成功すればxorg.confintelドライバを選択することでXorgを利用できます.著者の環境では以下のようになりました.

[   145.925] (II) Module intel: vendor="X.Org Foundation"
[   145.925]    compiled for 1.10.6, module version = 2.17.0
[   145.925]    Module class: X.Org Video Driver
[   145.925]    ABI class: X.Org Video Driver, version 10.0
[   145.925] (II) intel: Driver for Intel Integrated Graphics Chipsets: i810,
        i810-dc100, i810e, i815, i830M, 845G, 854, 852GM/855GM, 865G, 915G,
        E7221 (i915), 915GM, 945G, 945GM, 945GME, Pineview GM, Pineview G,
        965G, G35, 965Q, 946GZ, 965GM, 965GME/GLE, G33, Q35, Q33, GM45,
        4 Series, G45/G43, Q45/Q43, G41, B43, B43, Clarkdale, Arrandale,
        Sandybridge Desktop (GT1), Sandybridge Desktop (GT2),
        Sandybridge Desktop (GT2+), Sandybridge Mobile (GT1),
        Sandybridge Mobile (GT2), Sandybridge Mobile (GT2+),
        Sandybridge Server, Ivybridge Mobile (GT1), Ivybridge Mobile (GT2),
        Ivybridge Desktop (GT1), Ivybridge Desktop (GT2), Ivybridge Server

これを見る限り,まだ入手できないCPUの内蔵GPUもサポートされているようです.

Sandy Bridgeの内蔵GPUを使うにはカーネルに手を入れる必要があり,それが面倒でNvidiaGPUを使って来ましたが,実際に行ってみるとそこそこ簡単であるという印象です.著者の場合,Full HDの画面が写れば何でも良いという使い方をしているので,問題がないようであればNvidiaのカードを外すことができるかもしれません.