FreeBSD Daily Topics

2009年1月27日≪注目≫X.Org 7.4へのアップグレード方法とトラブルシューティング、グラフィックアクセラレータの選択指針

heads-up

How to upgrade X.Org 7.4

ports - Ports CollectionのX.Orgが7.4へアップグレードされました。X.Org 7.4へのアップグレードはPorts Collectionを最新の状態にしてからportupgrade(8)でまとめてアップグレードすることで実施できます。Libxcbライブラリが更新されていることから、アップグレード後には念のため「portupgrade -rf libxcb」のようにLibxcbライブラリに依存するライブラリやアプリケーションを再構築します。

Ports Collectionを最新の状態に上げてからまとめて更新
# portsnap fetch update
# portupgrade -a
Libxcbに依存しているライブラリやアプリケーションを再構築
# portupgrade -rf libxcb

X.Org 7.4ではFilesセクションのRgbPath設定が不要になりました。またデフォルトで読み込まれるモジュールも変更されています。以前の/etc/X11/xorg.confファイルをそのまま使うのではなく、次のように新しく/root/xorg.conf.newファイルを自動生成して、このファイルを編集する形で新しい/etc/X11/xorg.confファイルを作成すると良いでしょう。

Xorg(1)コマンドで新しい/etc/xorg.confファイルのベースを作成する - /root/xorg.conf.new
# Xorg -configure

X.Org 7.4からはキーボードとマウスの操作にHALを使うようになりました。X.Orgを起動する前にhald(8)が有効になっている必要があります。hald(8)はdbus(8)を要求することから、次の2行を/etc/rc.confに追加してシステム起動時に起動するように設定します。

/etc/rc.confに追加する設定 - hald(8)とdbus(8)を先に実行する
hald_enable="YES"
dbus_enable="YES"

/usr/ports/UPDATINGにはxorg.confのServerLayoutセクションに「Option "AllowEmptyInput" "off"」の設定を追加してAllowEmptyInputを無効にし、従来のようにxorg.confに記載されている設定からマウスやキーボードを使う方法も紹介されています。しかし、多くのアプリケーションがhald(8)やdbus(8)を使うようになってきていること、今後X.Orgがhald(8)とdbus(8)が動作していることを前提としてくることを考えると、このタイミングでhald(8)/dbus(8)を使う方向で調整したほうが良いでしょう。

X.Org 7.4はサーバの起動/停止処理が高速化された他、Radonデバイスドライバ(xf86-video-ati)へRadeonHD 1xxx/2xxx/3xxx系サポートの追加、その他入力系のバグ修正や高速化が実施されています。

X.Org 7.4 upgrading Trouble Shooting

tips - X.Org 7.4へのアップグレードはいくつか注意する必要があります。随時改善が実施されているため、基本的には最新のPorts Collectionにアップデートしてから取り組むようにしてください。次に個別の問題とそれを解決する方法をまとめます。

graphics/graphviz問題

graphvizのビルドが失敗する場合、依存関係の指定にXaw8が指定されている可能性があります。最新のPorts Collectionでは修正されていますので、最新のPorts Collectionにアップグレードしてもう一度取り組むか、graphics/graphviz/Makefileのxaw8の部分をxawに変更してもう一度作業してください。

x11-drivers/xf86-video-via問題

xf86-video-viaのビルドが失敗する場合、xf86-video-viaを削除してください。X.Org 7.4ではデフォルトではこのデバイスドライバをインストールしません。⁠pkg_delete -f xf86-video-via-0.2.2_3」のように削除して「pkgdb -F」のようにデータベースを修正してからもう一度作業してください。

xphelloworld問題

xphelloworldはPorts Collectionから削除されました。xphelloworldが問題として表示される場合、⁠pkg_delete -f xphelloworld-1.0.1_1」のように削除して「pkgdb -F」のようにデータベースを修正してからもう一度作業してください。

xorg-protos問題

xorg-protosはPorts Collectionから削除されました。xorg-protosが問題として表示される場合、⁠pkg_delete -f xorg-protos-7.3_2」のように削除して「pkgdb -F」のようにデータベースを修正してからもう一度作業してください。

マウスが使えない

hald(8)が実行されていない可能性があります。前述したように/etc/rc.confにhald(8)を有効にする設定を追加するか、/usr/ports/UPDATINGに説明があるようにhald(8)を使わないように/etc/X11/xorg.confファイルを編集してから動作を確認してください。

gdm(8)でマウスが使えない

起動順序の関係でgdm(8)でマウスが使えなくなることがあります。マウス動作に対応するために追加された変更で発生したバグなので近日中に修正されると思いますが、それまでは/etc/rc.confから「gnome_enable="YES"」の設定を削除し、代わりに次の設定を追加することで起動できるようになります。

gnome_enableを削除し、すべて明示的に指定することでgdm(8)を動作させる
hald_enable="YES"
dbus_enable="YES"
gdm_enable="YES"
avahi_daemon_enable="YES"
avahi_dnsconfd_enable="YES"

キーボードが使えない

問題とその対処方法はマウスが使えない場合と同じです。

X.Org 7.4 Video Driver Issue

tips - X.Org 7.4へアップグレードすることでビデオデバイスドライバ、特にCompizやGoogle Gadgetなど3D描画関連機能で再ビルドが必要になったり、動作しなくなる可能性があります。次に主な操作方法や設定方法を紹介します。

NVIDIAドライバ(最新)を使っている場合

X.Org 7.4へアップグレードしてから/etc/make.confに「WITH_NVIDIA_GL=yes」の設定を追加したうえで、次のようにNVIDIAドライバとlibGLおよびそれに依存するライブラリやアプリケーションをすべて再構築します。

NVIDIAドライバの更新とlibGL関連の更新
# portupgrade -f x11/nvidia-driver
# portupgrade -fr graphics/libGL

これで問題なく動作するようになるケースもあれば、GLX機能が使えなくなり、CompizやGoogle Gadgetなどの3D描画機能(透過処理など)が使えなくなるケースもあります。NVIDIAドライバが更新されることで対処できるようになるとみられますが、動作しなくなっては困る場合にはX.Orgへのアップグレードはしばらく待ったほうが良いでしょう。

NVIDIAドライバ(旧来)を使っている場合

最新版のNVIDIAと同様に作業しますが、同じようにGLXが機能しなくなる可能性があります。こちらは将来的に修正がはいるかどうかもわからないため、動かなくなっては困る場合には基本的にX.Org 7.4へのアップグレードは見送ったほうが良さそうです。

NVIDIAドライバのGLXが機能しなくなった場合

NVIDIAのGLXが機能しなくなるとしても、X.Org 7.4へのアップグレードを実施するという場合には、/etc/make.confから「WITH_NVIDIA_GL=yes」の設定を抜いたあとで次のアプリケーションでインストールしてあるものを再インストールしてください。

  • astro/google-earth
  • emulators/linux-pete-xgl2gpu
  • emulators/linux-pete-mesagpu
  • games/linux-savage-samuraiwars
  • games/linux-ut2003-demo
  • games/linux-ut2004-demo
  • games/linux-nwnclient
  • games/linux-savage
  • games/linux-virtual-jay-peak
  • games/atitd
  • games/linux-doom3-demo
  • graphics/linux-ac3d
  • graphics/mesa-demos
  • graphics/mesa-demos
  • multimedia/libxine
  • net/skype
  • net/skype12
  • net/skype-devel

また、/etc/make.confから「WITH_NVIDIA_GL=yes」の設定を抜いたあとで「portupgrade -fr graphics/libGL」のように関連ライブラリの再構築を行っておいたほうが良いでしょう。

Radeon (ATI)ドライバを使っている場合

X.Orgはデフォルトでxf86-video-ati-6.10.0を使いますが、xf86-video-radeonhd-1.2.4_1の方が最新版の認識は進んでいることがあります。Driver "radeon"でうまくいかない場合は、Deriver "radeonhd"で試してみてください。設定オプションや対応している機能などはそれぞれradeon(4)、radeonhd(4)オンラインマニュアルにまとまっています。

X.Org/FreeBSDに適したグラフィックアクセラレータ

X.Org/FreeBSDで使うグラフィックアクセラレータには、おもにNVIDIA、Radeon (AMD, ATI)、Intelという3つの選択肢があります。適材適所であるため一概にどれが良いとはいえません。特徴と得手不得手をまとめると次のようになります。

  • NVIDIAドライバ(x11/nvidia-driver, x11/nvidia-driver-173, x11/nvidia-driver-71xx, x11/nvidia-driver-96xx, x11/nvidia-settings)
    高性能。人気も高い。しかしクローズドドライバでありX.Orgのアップグレード時に対応が遅れる傾向があります。またFreeBSD/i386版しか提供されておらず、FreeBSD/AMD64版では動作しません。
  • Radeonドライバ(x11-drivers/xf86-video-ati, x11-drivers/xf86-video-radeonhd)
    OSSで提供されているドライバでNVIDIAほどではありませんが、それなりの性能が期待できます。i386でもAMD64でも動作します。しかし3D機能が提供されているデバイスが限られており、最近のボードでは3D機能が使えません。開発は進められているため今後が期待できます。
  • Intelドライバ(xf86-video-intel)
    OSSで提供されているドライバ。オンボード。あまり性能は期待できませんが、3D機能が使えるケースが多いようです。i386でもAMD64でも動作します。一通り動作しi386でもAMD64でも使いたい場合には有効な選択肢です。

4Gバイト以上のメモリを活用するにはFreeBSD/amd64版の活用が有益です。主要な配布物も向こう数年でi386からAMD64へ移行すると見られます。今後、NVIDIAドライバがAMD64版として登場するか不透明であるため、AMD64版でのCompiz/Google Gadgetなどの動作を望むならIntelを、将来的に動けばいいならRadeonを、i386版で高性能に動作して欲しいならNVIDIAということになりそうです。

アップグレード作業に自身がない場合は、すべて削除してから一からインストールしたほうが簡単です :)

おすすめ記事

記事・ニュース一覧