注:このドキュメントに書かれた手順はまだチェックが完了していません。 しばしお待ち下さい。
XFree86 は、主に i386 アーキテクチャのマシンで動作する X11R6.1 ベースの Xのパッケージです。 Ver 3.2 は正規リリースで、ソースコードがふくまれています。
通常 XFree86 は、各種OS用にバイナリで配布されています。 OpenBSD や NetBSD 用のバイナリも存在します。
通常の使用はこのバイナリで問題ないのですが、国際化機能の 使用のために、X に内蔵された locale 関数群を使用したい場合には、 X のライブラリ群などを再構築する必要があります。
ここでは、-DX_LOCALE を組み込んだ X の再構築手順を簡単に 解説しています。国際化の機能を使用しない、また別に示した方法 でこれをおこなう場合にはとくに再構築を行なう必然性はありません。 また、この文書では、再構築後の細かい設定については触れていません。 これらについては、各種雑誌の記事や、付属のドキュメント ( /usr/X11R6/lib/X11/doc などにインストールされます ) などを参照して下さい。
また、これらインストール後の設定については、FreeBSD や Linux と 同じです。これらの WWW ページで非常に詳しく解説してくれている ところがいくつかありますので、そちらも参考になると思います。
再コンパイルの手順は次のようになります。
まず、XFree86 のソースパッケージを入手します。 近くの ftpサイト や CD-ROMなどから入手して下さい。 以下の場所などにあります。
ftp://ftp.tut.ac.jp/X11/XFree86/3.2/source/X32src-1.tgz ftp://ftp.tut.ac.jp/X11/XFree86/3.2/source/X32src-2.tgz ftp://ftp.tut.ac.jp/X11/XFree86/3.2/source/X32src-3.tgz ftp://ftp.tut.ac.jp/X11/XFree86/3.2/source/X32contrib.tgz ftp://ftp.tut.ac.jp/X11/XFree86/3.2/source/X32servonly.tgz
% cd $(TOPDIR) % tar zxvf $(SRCDIR)/x32src-1.tar.gz % tar zxvf $(SRCDIR)/x32src-2.tar.gz % tar zxvf $(SRCDIR)/x32contrib.tar.gz
再コンパイルの際には、$(TOPDIR)/xc/programs/Xserver/hw/xfree86/doc 以下 の文章が参考になります。インストール後には(バイナリパッケージをいれた 場合も入っています。)、$(LIBDIR)/doc にコピーされています。 (通常 /usr/X11R6/lib/X11/doc )
コンパイルを始める前に、設定ファイルを修正します。 設定ファイルは、
$(TOPDIR)/xc/config/cf/site.def $(TOPDIR)/xc/config/cf/xf86site.def $(TOPDIR)/xc/config/cf/NetBSD.cf $(TOPDIR)/xc/config/cf/xfree86.cfが読み込まれます。(OpenBSD でも NetBSD.cf を共通で使用)
読み込む順序は次のようになります。
通常は、site.def に変更を加えるのですが、ここでは、 NetBSD.cf (Open/NetBSDに固有の設定) xf86site.def (xfree86 用の設定) に変更を加えています。
なお、これらの設定ファイルの記述項目については、 $(TOPDIR)/xc/config/cf/README を参照して下さい。 変更可能なオプションについて説明があります。 デフォルトの設定は、上記の site.def, xf86site.def, NetBSD.cf, xfree86.cf の中を追いかけて読んでいってください(^^;) 普通、最初に設定したもの(普通site.defに書く)がずっと有効になるように なっています。
158行 #define StandardDefines -DCSRG_BASED
の部分を以下のように修正します。
#define StandardDefines -DCSRG_BASED -DX_LOCALE
これは X_LOCALE をつかうための設定の追加です。
内容をコメントを見ながら適宜修正しておきます。 ここでは、以下のような項目を変更しました。 使用しているグラフィックボード別に使用するサーバを指定します。
112行 #ifdef i386Architecture #define XF86SVGAServer YES #define XF86VGA16Server YES #define XF86VGA16DualServer NO #define XF86MonoServer NO #define XF86MonoDualServer NO #define XF86S3Server NO #define XF86S3VServer NO #define XF86I8514Server NO #define XF86Mach8Server NO #define XF86Mach32Server NO #define XF86Mach64Server NO #define XF86P9000Server NO #define XF86AGXServer NO #define XF86W32Server NO #define XF86I128Server NO #endif
どの種類のサーバをコンパイルするか決めています。 必要な部分を YES にして下さい。この例では、SVGA対応のサーバ と、VGAのサーバを作成させています。 VGA のサーバは、XF86Setup を使用する場合には必須です。
202行 #define ServerToInstall XF86_SVGA
これは、インストールする際に、どのサーバを標準のサーバにするか 決めるためのものです。ここに指定されたものが、"X" に シンボリックリンクされます。 ここはコメントアウトされているので、それを外して下さい。
262行 #define XFree86ConsoleDefines -DPCCONS_SUPPORT -DPCVT_SUPPORT
デフォルトでは、xfree86 は syscons, pcvt の 2 種のコンソールを サポートするようにコンパイルされます。この3つのうち、SYSCONSは標準の NetBSD1.1のパッケージに入っていないので、はずしておきます。 仮想コンソール pcvt は、標準の位置(/usr/include/machine)に ヘッダファイルがないので、このままだとエラーが出ます。 カーネルのソースのなかにあるので、コピーしておきます。
% cp /sys/arch/i386/isa/pcvt/pcvt_ioctl.h /usr/include/machineOpenBSD 2.0でははいっている。NetBSD 要確認 /* XXX */ OpenBSD 2.0いらない可能性あり(pccons.h)がある すでに Xfree86 にははいってない
PCCONSも Xfree86 に付属するヘッダファイルをコピーしておきます。
% cp xc/programs/Xserver/hw/xfree86/etc/console.h /usr/include/machine
詳細は、xc/programs/Xserver/hw/xfree86/doc/{README.NetBSD,README.OpenBSD} を参照して下さい
282行 #define BuildFontServer NO 387行 #define InstallFSConfig NO /* install sample fs config */
フォントサーバは、不要と判断し、入れないように指定しています。 必要な人はYES のままにしておきましょう。
339行〜 #define BuildXInputExt YES /* #define JoystickSupport YES */ #define WacomSupport YES #define ElographicsSupport YES #define SummaSketchSupport YES
496行 #define InstallJapaneseDocs YES
日本語に翻訳されたドキュメントをインストールします。 $(LIBDIR)/doc/Japanese にインストールされます。 少し内容が古いようですが、一読しておくといいでしょう。
このパッチをあてるには以下のようにします。
% cd $(TOPDIR)/xc/lib/Xaw % patch < XawI18n-bugfix.patch
% make World (ログをとる場合は、% make World > making.log )
数時間でコンパイルが完了します。
% su # make install # make install.man (マニュアルも入れる場合)
でインストールされます。
インストール後、いくつかの作業が必要です。
これの設定については man XF86Config や、$(LIBDIR)/dic 以下の 文書、雑誌の記事などを参考にして下さい。
OpenBSD 2.0では /etc/rc にすでに記述があるのでこの項目は不要です NetBSD 要チェック /* XXX */
# ldconfig /usr/X11R6/lib /usr/local/lib
として、共有ライブラリの読み込みの指示をしておきます。 (/usr/local/lib は Xfree86 とは関係ないですが、ここにライブラリを おくことが多いので指定しておきました。)
次回起動以降も有効にするために、/etc/rc.local を修正しておきます。
if [ -f /sbin/ldconfig ]; then echo 'creating runtime link editor directory cache.' ldconfig fiの部分を以下のように直します。
if [ -f /sbin/ldconfig ]; then echo 'creating runtime link editor directory cache.' ldconfig /usr/local/lib /usr/X11R6/lib fi