目次

XFree86 から X.Org への移行メモ

旧文書にアクセスがあるようなので、htaccessに手を入れてこちらへ誘導しました。 だって、UAに “w3m”なんてあるアクセス、私のとこじゃめったに見ないし。たいしたものじゃないけど見てってくださいませ。

htaccessのRedirectディレクティブ、URLに“?”が使えないとばかり思っていましたが、
Redirect コード url
であれば使えるんですね。知らんかった。

これは何?

FreeBSD で XFree86 4.4.0 から X.Org 6.7.0 への移行メモを自分のためにまとめたもの。検索エンジンで探せばいろいろな人が手順等々を公開しているが、意外と検索キーワードにてこずったので自分用に編集した。自分専用のため、間違いがあるかもしれないし、他人には意味不明な記述があるかもしれない。 また、ここで説明する対象OSが FreeBSD 4.10 なので、FreeBSD 5.X 全盛の中もしかすると全く役に立たないかもしれない。自己満足で書いている部分もある。

もし、こんな駄文でも、間違いを指摘をしていただけるのであれば webmaster@hgotoh.jp まで連絡いただきたく。

移行手順

「移行」なので、当然ながら XFree86 が導入されていることが前提。まぁ、まだ入れていなければ、手順のいくつかを飛ばせばよいだけ。 もちろん、実行に際しては root になってから作業すること。

XFree86回復手段の準備

この手順だと「X.Orgの導入に失敗=XFree86環境を失う」ということなので意識しておくように。予め、

  cd /usr/ports/x11/XFree86-4
  make

あたりを実行しておいてXFree86を導入可能にしておくか(make install で導入が可能)、パッケージを準備しておく。 ディスクをだいぶ食うので、ディスクに余裕のない人は別途方法を考えておく。「失敗なんてありえねぇ」と開き直るならそれでもよし。私的には、個人の趣味用PCならそれでも良いと思う。

make.confの編集

/etc/make.con ファイル中に以下の1行を追加する。

  X_WINDOW_SYSTEM=xorg 

すでにこのエントリがあるなら、ファイルの書き換えは要らない。このエントリがないと、portsでコンパイルができなかったりするので注意。興味あるなら、この手順を飛ばしてみると良い。

XFree86のパッケージ削除

XFree86関連パッケージ を消しこむ。

  pkg_delete -f /var/db/pkg/imake-4* /var/db/pkg/XFree86-* 

他のパッケージやportsの依存関係でメッセージがだらだらと出力されるが、それらは放置しておいてもとりあえずかまわない。 X.Orgを導入してから解決していくためである。ただし、かなり面倒なんですけどねぇ。

X.Orgのインストール

pkg_addコマンドに挑戦したが、どうしても自分の環境下ではうまくいかなかったので、portsからインストールする。時間はかなりかかるが、こればかりはしょうがない。

  cd /usr/ports/x11/xorg
  make
  make install

エラーなく完了することを祈る。エラーが出ても、きちんとメッセージを見ていけば対処できるはず。とはいっても、できないもんがあるかもしれない。コーヒーや紅茶でも飲んで、終わるのを待ちましょう。

依存関係の修復

pkg_deleteコマンドでわらわら出てきた、依存関係の回復を行う。多分これが一番面倒。 全部手動でソースからコンパイルして、インストールをする人にはあまり関係ないかもしれない。 だが、依存関係を元に自動導入を行うツール群を利用している者にとっては、この情報の修復・回復は必須の作業となる。 portupgradeの味を知ってしまった身としては、どうしてもやらなきゃならない手順である。

  pkgdb -F

このコマンドで行うのは、「このプログラムAはXFree86のパッケージXを使います」と定義されている情報を「このプログラムAはX.OrgのパッケージYを使います」と再定義すること。インタラクティブに質問してくるので、そのつど答えていく。 例えば、「パッケージ aalib-1.4.r5_1 は今まで パッケージ XFree86-libraries-4.4.0_1 を使っていたけどどうするの?」「xorg-libraries-6.7.0_2 を使うことにします」という感じで答えていく。以下はその例。 基本的には XFree86-xxx のものを xorg-xxx に置き換えしていけばよい。導入したパッケージが多ければそれだけ質問の回数が増える可能性があるので、かなりきついかもしれない。

  Stale dependency: bitstream-vera-1.10 -> imake-4.4.0 (devel/imake-4):
  imake-6.7.0_2 ? ([y]es/[n]o/[a]ll) [yes] y
  Fixed. (-> imake-6.7.0_2)
  Stale dependency: bitstream-vera-1.10 -> XFree86-libraries-4.4.0_1 (x11/XFree86-4-libraries):
  xorg-libraries-6.7.0_2 ? ([y]es/[n]o/[a]ll) [yes] y
  Fixed. (-> xorg-libraries-6.7.0_2)
  Stale dependency: boxtools-0.65.0 -> imake-4.4.0 (devel/imake-4):
  imake-6.7.0_2 ? ([y]es/[n]o/[a]ll) [yes] y
  Fixed. (-> imake-6.7.0_2)
  Stale dependency: boxtools-0.65.0 -> XFree86-libraries-4.4.0_1 (x11/XFree86-4-libraries):
  xorg-libraries-6.7.0_2 ? ([y]es/[n]o/[a]ll) [yes] y
  Fixed. (-> xorg-libraries-6.7.0_2)
  Stale dependency: cups-pstoraster-7.07_1 -> imake-4.4.0 (devel/imake-4):
  imake-6.7.0_2 ? ([y]es/[n]o/[a]ll) [yes] y
  Fixed. (-> imake-6.7.0_2)
  Stale dependency: cups-pstoraster-7.07_1 -> XFree86-libraries-4.4.0_1 (x11/XFree86-4-libraries):
  xorg-libraries-6.7.0_2 ? ([y]es/[n]o/[a]ll) [yes] y
  Fixed. (-> xorg-libraries-6.7.0_2)
  Stale dependency: dia-gnome-0.94,1 -> XFree86-fontScalable-4.4.0_1 (x11-fonts/XFree86-4-fontScalable):
  New dependency? (? to help): xorg-
  xorg-6.7.0_1                  xorg-fonts-truetype-6.7.0
  xorg-clients-6.7.0_4          xorg-fonts-type1-6.7.0
  xorg-documents-6.7.0          xorg-fontserver-6.7.0
  xorg-fonts-100dpi-6.7.0       xorg-libraries-6.7.0_2
  xorg-fonts-75dpi-6.7.0        xorg-nestserver-6.7.0
  xorg-fonts-cyrillic-6.7.0     xorg-printserver-6.7.0
  xorg-fonts-encodings-6.7.0    xorg-server-6.7.0_9
  xorg-fonts-miscbitmaps-6.7.0  xorg-vfbserver-6.7.0
  New dependency? (? to help): xorg-fonts-truetype-6.7.0
  Fixed. (-> xorg-fonts-truetype-6.7.0)
  Stale dependency: dia-gnome-0.94,1 -> imake-4.4.0 (devel/imake-4):
  imake-6.7.0_2 ? ([y]es/[n]o/[a]ll) [yes] y
  Fixed. (-> imake-6.7.0_2)
  Stale dependency: dia-gnome-0.94,1 -> XFree86-libraries-4.4.0_1 (x11/XFree86-4-libraries):
  xorg-libraries-6.7.0_2 ? ([y]es/[n]o/[a]ll) [yes] y
  Fixed. (-> xorg-libraries-6.7.0_2)
  Stale dependency: dia-gnome-0.94,1 -> XFree86-fontEncodings-4.4.0 (x11-fonts/XFree86-4-fontEncodings):
  New dependency? (? to help): xorg-
  xorg-6.7.0_1                  xorg-fonts-truetype-6.7.0
  xorg-clients-6.7.0_4          xorg-fonts-type1-6.7.0
  xorg-documents-6.7.0          xorg-fontserver-6.7.0
  xorg-fonts-100dpi-6.7.0       xorg-libraries-6.7.0_2
  xorg-fonts-75dpi-6.7.0        xorg-nestserver-6.7.0
  xorg-fonts-cyrillic-6.7.0     xorg-printserver-6.7.0
  xorg-fonts-encodings-6.7.0    xorg-server-6.7.0_9
  xorg-fonts-miscbitmaps-6.7.0  xorg-vfbserver-6.7.0
  New dependency? (? to help): xorg-fonts-encodings-6.7.0
  Fixed. (-> xorg-fonts-encodings-6.7.0)

pkgdb コマンド自身が予測可能な場合は、「もしかしてこれを使います?」というニュアンスで聞いてくる。 以下の「imake-4.4.0」から「imake-6.7.0_2」がその例。

  Stale dependency: bitstream-vera-1.10 -> imake-4.4.0 (devel/imake-4):
  imake-6.7.0_2 ? ([y]es/[n]o/[a]ll) [yes] y

「 XFree86-4-fontScalable 」は xorg-xxxシリーズに見当たらないのでWebを調べたところ、「 xorg-fonts-truetype-6.7.0 」にすることでとりあえず大丈夫の模様。 念のため、再度 pkgdb -F を実行し、漏れがない事を確認しておく。

もし、portsの「portupgrade」を導入していたのならば念のため以下のコマンドを実行しておく。

  portsdb -Uu 

正直、これが必要かどうかはさっぱりわからないが、時間が許すならやっておいても良いのではないかと。

xorg.conf ファイルの作成

XFree86 の XF86Config ファイルに対応する、X.Org のファイルが xorg.conf になる。 ….実は XF86Config をリネームせずそのまま利用可能。以下は、/var/log/Xorg.0.log の一部。

  Release Date: 18 December 2003
  X Protocol Version 11, Revision 0, Release 6.7
  Build Operating System: FreeBSD 4.10 i386 [ELF] 
  Current Operating System: FreeBSD flatbox.root.hgotoh.jp 4.10-RELEASE-p2 FreeBSD 4.10-RELEASE-p2 #8: Mon i386
  Build Date: 24 October 2004
  	Before reporting problems, check http://wiki.X.Org
  	to make sure that you have the latest version.
  Module Loader present
  Markers: (--) probed, (**) from config file, (==) default setting,
  	(++) from command line, (!!) notice, (II) informational,
  	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
  (==) Log file: "/var/log/Xorg.0.log", Time: Mon Oct 25 00:25:30 2004
  (==) Using config file: "/etc/X11/XF86Config"
  (==) ServerLayout "XFree86 Configured"

「Using config file : “/etc/X11/XF86Config”」とメッセージがある。

だが、一応XFree86でもやった方法で configure ファイルを生成してみたほうが良いかもしれない。 XFree86 で言うところの 「XFree86 -configure」コマンドが X.Org でも可能になっている。まぁ、根っこは同じソースだし、できるのは当たり前といえば当たり前なのかもしれない。

  Xorg -configure

root で作業していると、rootのホームディレクトリに xorg.conf.new が出来上がる。これに手を加えて、/etc/X11 へコピーする。どう手を加えるのかに関しては、環境により違うので、先の XF86Config を見つつ手を入れていけばよいと思う。

.xinitrc、.xsession

都合の良いことに、XFree86 で利用していたものがそのまま使える。

システムの再起動

わかるならばOSそのものを再起動しないで XFree86 を止めて X.Org を起動する。わからないなら、OSを再起動する。ログイン画面が変化しているので移行できたかどうかがすぐわかる…XDMを使っていない場合は当然わからないから、startx なり何なりコマンドを叩く。

その他注意点

ports collectionのツリーを cvsup コマンドで更新した場合、ものによっては依存関係が XFree86 に戻ってしまうものがあるかもしれない。何らかの手段があるはずなのだが、それはまだ探せていない。