12.3. XFree86 のインストール

XFree86 をインストールする最も簡単な方法は sysinstall プログラムを使うことです. システムのインストール時でも, 後から /stand/sysinstall を起動するのでもどちらでも構いません. この章の残りでは, 配布物の構成を見てゆき, 手動で X11 をインストールする方法についても見てみることにしましょう.

12.3.1. XFree86 の配布物

XFree86 は困ってしまいそうな数のアーカイブとして配布されています. 次のセクションでは, どれをインストールすべきかということについて考えます. どれを選べばいいのかわからないし, 空いているディスク容量は 200 MB しかない‥‥という場合だとしても, それほど心配しないでください. それだけあればすべてを展開しても大丈夫です.

最低でも下の表にあるアーカイブと VGA ボードに合ったサーバの一つとを展開する必要があります. 最低限必要な実行時バイナリだけであればだいたい 10MB の容量が必要で, サーバは 17 MB から 3 MB くらいの容量が必要です.

下の表は, 必要となるものです.

アーカイブ解説
Xbin.tgz実行可能な X クライアントと共有ライブラリの全て
Xfnts.tgzmisc と 75 dpi のフォント
Xlib.tgz実行時に必要なデータファイルとライブラリ

12.3.2. X サーバ

上のアーカイブに加えて, 少なくとも一つのサーバが必要です. これは約 3 MB のディスクを消費します. どれを選ぶのか, というのはあなたが持っているボードの種類次第です. デフォルトのサーバ名は /usr/X11R6/bin/X ですが, これは特定のサーバのバイナリである /usr/X11R6/bin/XF86_xxxx へのリンクになります. もし CD-ROM のセットを持っているなら, 標準的な PC アーキテクチャ用のサーバアーカイブは /cdrom/XF86336/Servers から, 日本の PC98 アーキテクチャ用のものは /cdrom/XF86336/PC98-Servers から見つけることができます. また、FreeBSD の FTP サイトである ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/4.2-RELEASE/XF86336/Servers/ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/4.2-RELEASE/XF86336/PC98-Servers/ から入手することもできます.

標準的な PC アーキテクチャで利用可能な X サーバ:

アーカイブ解説
X8514.tgzIBM 8514 とその互換品用. 8 ビットカラー
XAGX.tgzAGX や XGA ボード用. 8 ビットおよび 16 ビットカラー
XI128.tgzI128 ボード用. 8 ビットおよび 16 ビットカラー
XMa32.tgzATI Mach 32 ボード用. 8 ビットおよび 16 ビットカラー
XMa64.tgzATI Mach 64 ボード用. 8, 16, 32 ビットカラー
XMa8.tgzATI Mach8 ボード用. 8 ビットカラー
XMono.tgzVGA, SVGA, Hercules やその他のボード用. 1 ビットモノクロ
XP9K.tgzWeitek P9000(Diamond Viper) ボード用. 8, 16, 32 ビットカラー
XS3.tgzS3 ボード用. 8, 16, 32 ビットカラー
XS3V.tgzS3 ViRGE ボード用. 8 および 16 ビットカラー
XSVGA.tgzSVGA カード用. 8 ビット以上のカラー
XVG16.tgzVGA や SVGA カード用. 4 ビットカラー
XW32.tgzET4000/W32, /W32i, /W32p そして ET6000 カード用. 8 ビットカラー

PC98 アーキテクチャで利用可能な X サーバー:

アーカイブ解説
X9GAN.tgzPC98 GA-98NB/WAP ボード用. 8 ビットカラー
X9GA9.tgzPC98 S3 GA-968 ボード用. 8, 16, 32 ビットカラー
X9480.tgzPC98 PEGC 用. 8 ビットカラー
X9NKV.tgzPC98 NEC-CIRRUS/EPSON NKV/NKV2 ボード用. 8 ビットカラー
X9WBS.tgzPC98 WAB-S ボード用. 8 ビットカラー
X9WEP.tgzPC98 WAB-EP ボード用. 8 ビットカラー
X9WSN.tgzPC98 WSN-A2F ボード用. 8 ビットカラー
X9EGC.tgzPC98 EGC 用. 4 ビットカラー
X9TGU.tgzPC98 Trident Cyber9320/9680 ボード用. 8, 16 ビットカラー
X9NS3.tgzPC98 NEC S3 ボード用. 8, 16 ビットカラー
X9SPW.tgzPC98 S3 PW/PCSKB ボード用. 8, 16 ビットカラー
X9LPW.tgzPC98 S3 PW/LB ボード用. 8, 16 ビットカラー

それぞれのサーバには, サポートするチップセットやサーバ特有の設定オプションを記述したマニュアルが付属しています.

また, X プログラマ用に提供されるアーカイブも数多くあります:

アーカイブ解説
Xprog.tgzクライアントをコンパイルするのに必要な設定ファイル, lib*.a および *.h.
Xctrb.tgz寄贈されたソース
Xlk98.tgzPC98 用のサーバを構築するのに必要な "リンクキット".
Xlkit.tgzPC 用のサーバを構築するのに必要な "リンクキット".
Xsrc-1.tgz完全なソース. パート 1
Xsrc-2.tgz完全なソース. パート 2
Xsrc-3.tgz完全なソース. パート 3

Note: X ソフトウェアの ports をインストールする場合 Xprog.tgz は必須です.

XFree86 には, 文書やセットアッププログラムといった付加的なものもたくさん含まれています.

アーカイブ解説
Xdoc.tgzREADME
Xjdoc.tgz日本語版 README
Xps.tgzPortScript フォーマットの README
Xhtml.tgzHTML 化された README
Xman.tgzオンラインマニュアル
Xcfg.tgzカスタマイズ可能な xinitxdm の実行時設定ファイル.
Xset.tgzX86Setup; グラフィカルな xf86config ユーティリティ
Xjset.tgzPC アーキテクチャ用の XF86Setup 日本語版

XF86Setup は XFree86 用のグラフィカルな設定プログラムで, 標準的な設定プログラムである xf86config よりもこちらを好む人は多いかも知れません. xf86config の場合には特別なアーカイブがあるわけではなく, Xbin.tgz に含まれています.

初めてインストールする時には, 最初の設定ファイルを作るために Xcfg.tgz が必要でしょう. 既にある設定ファイルを上書きしてしまいますので, アップグレードする時には使わないでください.

また, XFree86 には他にもフォントがあります:

アーカイブ解説
Xf100.tgz100 dpi フォント
Xfscl.tgzSpeedo と Type1 のフォント
Xfnon.tgz日本語, 中国語 や他の非英語フォント
Xfcyr.tgzキリルフォント

上で述べた X サーバと異なり, 次に紹介するサーバのアーカイブはすべてメインのディレクトリにあります.

アーカイブ解説
Xfsrv.tgzフォントサーバ
Xnest.tgz別のディスプレイ上のクライアントウィンドウで動作するネストサーバ
Xprt.tgzプリントサーバ
Xvfb.tgzメモリや mmap されたファイル中に描画を行なう仮想フレームバッファ X サーバ

12.3.3. XFree86 のマニュアルインストール

sysinstall を使わずに X をインストールする場合は, 以下のようにたくさんのステップを踏む必要があります.

  1. ディレクトリを作成し, 必要なアーカイブを展開します.

  2. X サーバを選びインストールします.

  3. X にアクセスできるように環境を整えます.

  4. X を実行するための仮想端末を見つけます.

  5. ハードウェアに合わせて X を設定します.

やることがたくさんあるように見えますが, きっちりとやればそう大変ではありません. このセクションの残りでは, それぞれのステップについて見ていきます.

12.3.3.1. アーカイブの展開

多くの実行ファイルが set-user-id されていますので, アーカイブの展開は root で行なう必要があります. 通常のユーザとして展開した場合, 実行できないこともあります. また, umask の値として 022 (rwxr-xr-x の許可属性) を用いる必要があります. なぜなら X サーバは特別な許可属性を要求するからです.

    % su
    Password:
    # umask 022

/usr ファイルシステムに十分な空き容量がない場合, 他のパーティションにディレクトリを作成し, /usr にシンボリックリンクを張ってください. たとえば, /home に十分な空き容量がある場合は次のようにします.

    # cd /home
    # mkdir X11R6
    # ln -s /home/X11R6 /usr/X11R6

次に, どのアーカイブをインストールするのかを決めます. 最小インストールであれば Xbin.tgz, Xfnts.tgz, Xlib.tgz, および Xcfg.tgz を選んでください. すでに X の設定を行なっているのなら Xcfg.tgz はなくても構いません.

sh を使っている場合は次のようにして展開します.

    # mkdir -p /usr/X11R6
    # cd /usr/X11R6
    # for i in bin fnts lib cfg; do
    #   tar xzf X$i.tgz
    # done

csh なら次のようにしてください.

    # mkdir -p /usr/X11R6
    # cd /usr/X11R6
    # foreach i (bin fnts lib cfg)
    ?   tar xzf X$i.tgz
    ? end

12.3.3.2. サーバのインストール

自分の VGA カードに対応するサーバのアーカイブを選んでください. 上の表からは十分な情報が得られない場合にはサーバのマニュアル /usr/X11R6/man/man1/XF86_* をチェックしてください. それぞれのサーバでサポートするチップセットが載っています. たとえば ET4000 ベースのボードを持っている場合には XF86_SVGA サーバを用いるとよいでしょう. この場合には次のように操作します.

    # cd /usr/X11R6
    # tar xzf XSVGA.tgz [substitute your server name here]

12.3.3.3. 環境設定

次にシンボリックリンクを作って /usr/X11/bin/X が自分のビデオボードに合うサーバを指すようにしましょう. ここでは XF86_SVGA がサーバですから, 次のようにします.

    # cd /usr/X11R6/bin
    # rm X
    # ln -s XF86_SVGA X

X が正しく動くためにこのシンボリックリンクが必要なのですが, 以下のように xf86config を実行中に設定するチャンスがあります.

次に, ディレクトリ /usr/X11R6/bin がデフォルトのパスに入っているかどうかチェックします. チェックするのは sh であれば /etc/profile, csh であれば /etc/csh.login です. パスがなければ加えておきましょう. エディタを使うのが最も良いのですが, 面倒な場合には次のようなテもあります.

    # echo 'PATH=$PATH:/usr/X11R6/bin' >>/etc/profile

もしくは

    # echo 'set path = ($path /usr/X11R6/bin)' >>/etc/csh.login

そして, そのシステム上で X を使うユーザの全員が シェル変数 PATH/usr/X11R6/bin を加えていることを確認しましょう.

次に ldconfig を使って共有ライブラリを ld.so のキャッシュに入れます.

    # ldconfig -m /usr/X11R6/lib

X を使う前に再起動するのであれば ldconfig を起動する必要はありません.

フォントファイルを圧縮する必要はないのですが, もしするなら忘れずに該当ディレクトリで mkfontdir を実行しなければいけません. そうしないとサーバは "could not open default font `fixed'" というメッセージを出して強制終了してしまうかも知れません.

12.3.3.4. X への仮想端末の割り当て

次に getty が動いている予備の仮想コンソールがあることを確認しましょう. まずいくつの仮想コンソールがあるのかチェックします.

    # dmesg | grep virtual
    sc0: VGA color <16 virtual consoles, flags=0x0>

そして, /etc/ttys をチェックして少なくとも一つの仮想端末 (ttyvxx デバイス) で getty が有効になっていないことを確認します. これは次のように off というキーワードを探します.

    # grep ttyv /etc/ttys
    ttyv0  "/usr/libexec/getty Pc" cons25  on secure
    ttyv1  "/usr/libexec/getty Pc" cons25  on secure
    ttyv2  "/usr/libexec/getty Pc" cons25  on secure
    ttyv3  "/usr/libexec/getty Pc" cons25  off secure

この場合, カーネルが少なくとも 4 つの仮想端末を持っていれば /dev/ttyv3 が利用可能です. そうでなければ /etc/ttys で on を off に変更してgetty を無効にするか, 仮想端末を増やしたカーネルを作ります.

12.3.3.5. 自分のハードウェア用に X を設定する

X のインストールが終わったら, XF86Config ファイルをカスタマイズして X サーバにハードウェアの構成と, どう動作させたいのかを X サーバに教えます.

XF86Config を設定するためには次にあげるようなハードウェア情報が必要です.

  • マウスの種類, シリアルマウスであればビットレート, そしてマウスが接続されているデバイスの名前. 一般的には, シリアルマウスであれば /dev/ttyd0 もしくは /dev/ttyd1, PS/2 マウスであれば /dev/psm0, そして バスマウスであれば /dev/mse0 です.

  • ビデオボードの種類と表示メモリの量. 名前がわからなければどんなチップセットを使っているのか確認しましょう.

  • モニターのパラメータ. つまり垂直と水平の同期周波数のことです.

12.3.3.6. ハードウェアの確認

ハードウェアがどういうものなのか, どうやって決めればいいのでしょう? ハードウェアメーカが教えてくれるとしても, たとえばディスプレイボードやモニタについて得られる情報は "76 Hz のリフレッシュレートで 16,777,216 色を表示できる SVGA" のように非常に貧弱なことがしばしばです. この情報からはピクセルの最大の色深度がわかるくらいで, ディスプレイボードについては何もわかりません.

後でわかりますが, 本当に知る必要のあるパラメータは水平最大周波数, ドットクロック幅, チップセット, そして表示用メモリの量です.

不幸にもこういった情報を得ることができないかも知れませんが, そのうちのいくつかは SuperProbe プログラムを用いて得ることができます. 特にチップセットとボード上のメモリの量はどんなものでも調べられるはずです.

SuperProbe は時々, システムをクラッシュさせてしまうこともあります. 実行する時には他に重要なものが動いていないことを確認してから行ないましょう. SuperProbe の出力は次のようになります.

    # SuperProbe
    (warnings and acknowledgments omitted)
    First video: Super-VGA
            Chipset: Tseng ET4000 (Port Probed)
            Memory:  1024 Kbytes
            RAMDAC:  Generic 8-bit pseudo-color DAC
                     (with 6-bit wide lookup tables (or in 6-bit mode))

SuperProbe はかなり気難しいコマンドなのでうまく動かないこともあります. その時には次のようなメッセージが出力されます.

    SuperProbe: Cannot be run while an X server is running
    SuperProbe: If an X server is not running, unset $DISPLAY and try again
    SuperProbe: Cannot open video

言い換えれば, X サーバが動いていないのに DISPLAY 環境変数が設定してあると SuperProbe は動きません. ではどうやればこの環境変数の設定を解除できるのでしょう? Bourne シェル系の場合は次のように入力してください.

    # unset DISPLAY

C シェル系ならば次ようにします.

    # unsetenv DISPLAY

12.3.3.7. xf86config の実行

設定ファイルを作成する簡単な方法は xf86config (すべて小文字であることに注意) か XF86Setup のどちらかのユーティリティを用いることです. 両方のツールとも, 一つ一つ手順を追って設定を行なうことができます. xf86config は CUI モードで動きますが, XF86Setup はグラフィカルなモードで動きます. XF86Setup は変わったハードウェアでは問題を起こし得るため, わたしは個人的に xf86config の方が好きです.

sysinstall を使うこともできるのですが, 操作はほとんど変わりません. sysinstall は単に xf86config を起動するだけですし, 直接起動する方が簡単だからです. このセクションでは xf86config を使った設定を解説するための例を示します. 1 MB のメモリが載った懐しい Diamond SpeedStar, ロジテック MouseMan マウス, そして ADI MicroScan 5AP モニタ用に X をインストールするとしましょう. マウスは一つ目のシリアルポート /dev/ttyd0 に接続されています.

xf86config を実行するには, そのコマンド名を入力します. 環境変数 PATH/usr/X11R6/bin 含まれていれば単に xf86config と入力するだけです. そうでない場合は xf86config へのフルパスを入力する必要があります.

    # /usr/X11R6/bin/xf86config

このプログラムはメニューから選んだものを基にして基本的な XF86Config ファイルを生成します.

XF86Config ファイルは通常 /usr/X11R6/lib/X11 もしくは /etc に置きます. サンプルの XF86Config ファイルが XFree86 とともに提供されていますが, これは標準的な VGA カードと 640x480 の解像度を持ったモニタ用に設定されたものです. このプログラムはファイルに書き出す時にパス名を尋ねてくるでしょう.

サンプルの XF86Config を利用して編集しても良いですし, このプログラムに生成させてから細かく調整するのでも良いでしょう. 設定に関する詳細については /usr/X11R6/lib/X11/doc/README.Config を参照してください.

特別に対応したサーバ (SVGA ドライバ中の特別に対応したドライバも含む) の場合, チップセットやカードに特有のオプションと設定がたくさんあります. しかし, このプログラムはそれらの特別な設定については対応していません. いくつかの構成では, それらの設定が必要になります. サーバのマニュアルページやチップセット用の README ファイルをご覧ください.

このプログラムを続ける前に, チップセットとビデオカード上のビデオメモリの量について確認しておきます. SuperProbe が役に立つでしょうし, またどのサーバを実行したいのかを知っておくと役に立ちます.

    Press enter to continue, or ctrl-c to abort. ENTER
    
    First specify a mouse protocol type. Choose one from the following list:
    
     1.  Microsoft compatible (2-button protocol)
     2.  Mouse Systems (3-button protocol)
     3.  Bus Mouse
     4.  PS/2 Mouse
     5.  Logitech Mouse (serial, old type, Logitech protocol)
     6.  Logitech MouseMan (Microsoft compatible)
     7.  MM Series
     8.  MM HitTablet
     9.  Microsoft IntelliMouse

2 ボタンマウスの場合はほとんどが 1 でしょうし, 3 ボタンマウスであれば, おそらく 1 も 2 もサポートしているでしょう. 後者の場合, 主に二つの組み合わせがあります. プロトコルを選択するためのスイッチが付いたマウスと, デフォルトは 1 で, プロトコル 2 を選択するには起動時にボタンを押す必要があるようなマウスです. シリアルポートに特別な命令列を送って 2 を使うようにできるマウスもあります (ClearDTR/ClearRTS オプションを参照してください).

    Enter a protocol number: 6              Logitech MouseMan
    
    You have selected a Logitech MouseMan type mouse. You might want to enable
    ChordMiddle which could cause the third button to work.
    
    Please answer the following question with either 'y' or 'n'.
    Do you want to enable ChordMiddle? n

多くの X クライアントが三番目のボタンを使うため, このボタンも欲しいところです. しかし, ロジテック純正のマウスの場合 ChordMiddle を有効にする必要はありません. X を起動した時に三番目のボタンが効かない場合には, 設定ファイルを編集して ChordMiddle を有効にします. - そのほうが XF86Setup をもう一度起動するよりもエラーになりにくいのです.

Continuing through the setup:

    If your mouse has only two buttons, it is recommended that you enable Emulate3Buttons.
    
    Please answer the following question with either 'y' or 'n'.
    Do you want to enable Emulate3Buttons? n
    
    Now give the full device name that the mouse is connected to, for example
    /dev/tty00. Just pressing enter will use the default, /dev/mouse.
    
    Mouse device: /dev/ttyd1

このエントリには細心の注意を払ってください. マウスが接続されているデバイスの名前を正しく指定しなければいけません. xf86config は FreeBSD に特有のコマンドではなく, 例として示されているものは FreeBSD には存在しないデバイスなのです. シリアルマウスの場合には /dev/ttyd0 から /dev/ttyd3, PS/2 マウスでは /dev/psm0, バスマウスでは /dev/mse0 を使ってください.

Continuing, we see:

    Beginning with XFree86 3.1.2D, you can use the new X11R6.1
    XKEYBOARD extension to manage the keyboard layout. If you answer 'n' to the
    following question, the server will use the old method, and you have to
    adjust your keyboard layout with xmodmap.
    
    Please answer the following question with either 'y' or 'n'.
    Do you want to use XKB? y
    
    The following dialogue will allow you to select from a list of already
    preconfigured keymaps. If you don't find a suitable keymap in the list,
    the program will try to combine a keymap from additional information you
    are asked then. Such a keymap is by default untested and may require
    manual tuning. Please report success or required changes for such a
    keymap to XFREE86@XFREE86.ORG for addition to the list of preconfigured
    keymaps in the future.
    
    Press enter to continue, or ctrl-c to abort.
    
    List of preconfigured keymaps:
    
      1  Standard 101-key, US encoding
      2  Microsoft Natural, US encoding
      3  KeyTronic FlexPro, US encoding
      4  Standard 101-key, US encoding with ISO9995-3 extensions
      5  Standard 101-key, German encoding
      6  Standard 101-key, French encoding
      7  Standard 101-key, Thai encoding
      8  Standard 101-key, Swiss/German encoding
      9  Standard 101-key, Swiss/French encoding
     10  None of the above
    
    Enter a number to choose the keymap.
    
    1                                       Choose the standard US keyboard

さて, ここではモニタの設定を行います. 中心となる二つのパラメータは, スクリーン全体を書き換える時のレートである垂直リフレッシュレートと, 特に重要な, 走査線を表示するレートである水平同期周波数です.

水平同期と垂直同期の有効な範囲はモニタのマニュアルに記載されているでしょう. 疑問がある場合は自分のモニタがあるかどうか, モニタデータベースである /usr/X11R6/lib/X11/doc/Monitors をチェックしてみましょう.

    Press enter to continue, or ctrl-c to abort. ENTER
    
    You must indicate the horizontal sync range of your monitor. You can either
    select one of the predefined ranges below that correspond to industry-
    standard monitor types, or give a specific range.
    
    It is VERY IMPORTANT that you do not specify a monitor type with a horizontal
    sync range that is beyond the capabilities of your monitor. If in doubt,
    choose a conservative setting.
    
        hsync in kHz; monitor type with characteristic modes
     1  31.5; Standard VGA, 640x480 @@ 60 Hz
     2  31.5 - 35.1; Super VGA, 800x600 @@ 56 Hz
     3  31.5, 35.5; 8514 Compatible, 1024x768 @@ 87 Hz interlaced (no 800x600)
     4  31.5, 35.15, 35.5; Super VGA, 1024x768 @@ 87 Hz interlaced, 800x600 @@ 56 Hz
     5  31.5 - 37.9; Extended Super VGA, 800x600 @@ 60 Hz, 640x480 @@ 72 Hz
     6  31.5 - 48.5; Non-Interlaced SVGA, 1024x768 @@ 60 Hz, 800x600 @@ 72 Hz
     7  31.5 - 57.0; High Frequency SVGA, 1024x768 @@ 70 Hz
     8  31.5 - 64.3; Monitor that can do 1280x1024 @@ 60 Hz
     9  31.5 - 79.0; Monitor that can do 1280x1024 @@ 74 Hz
    10  31.5 - 82.0; Monitor that can do 1280x1024 @@ 76 Hz
    11  Enter your own horizontal sync range
    
    Enter your choice (1-11):

残念なことにわたしたちのモニタは /usr/X11R6/lib/X11/doc/Monitors には載っていませんでした. しかし, 偶然にもマニュアルのテクニカルデータセクションに載っていたのです. 水平周波数の範囲は 30 〜 64 kHz で垂直周波数の範囲は 50 〜 100 Hz です. 周波数範囲は選択肢 8 とほぼ同じですが, この設定はテクニカルデータシートのものよりも 0.3 kHz ほど高いほうに広がっています. 危険を冒したいですか? もしそのまま進めてもほとんど問題ありません. 仕様からのずれが小さければ, それでモニタが壊れてしまうようなことはありませんし, また XF86Config が実際に 64.0 から 64.3 kHz の間の水平周波数を出すこともないからです. とは言っても, この小さな危険を背負う必要があるわけではありません. 実際の値を指定すれば良いのです.

    Enter your choice (1-11): 11
    
    Please enter the horizontal sync range of your monitor, in the format used
    in the table of monitor types above. You can either specify one or more
    continuous ranges (e.g. 15-25, 30-50), or one or more fixed sync
    frequencies.
    
    Horizontal sync range: 30-64

次に, 水平周波数の範囲を選びます.

    You must indicate the vertical sync range of your monitor.
    You can either select one of the predefined ranges below that correspond
    to industry-standard monitor types, or give a specific range.  For
    interlaced modes, the number that counts is the high one (e.g., 87 Hz
    rather than 43 Hz).
    
     1  50-70
     2  50-90
     3  50-100
     4  40-150
     5  Enter your own vertical sync range
    
    Enter your choice: 3                         exactly the range of the monitor

次のステップでは識別のための文字列を指定します. 好きなものを使うことができますが, 非常に多くのハードウェアを扱わない限り xf86config に任せておけばいいでしょう.

    You must now enter a few identification/description strings,
    namely an identifier, a vendor name, and a model name. Just pressing enter
    will fill in default names.
    
    The strings are free-form, spaces are allowed.
    Enter an identifier for your monitor definition: ENTER
    Enter the vendor name of your monitor:  ENTER
    Enter the model name of your monitor:  ENTER

次はビデオボードの選択です. わたしたちは古い ET4000 チップの載った Ramdac とクロックチップが不明な Diamond SpeedStar Plus を持っています. どうやればいいのか見てみましょう.

    Now we must configure video card specific settings.  At
    this point you can choose to make a selection out of a database of video
    card definitions.  Because there can be variation in Ramdacs and clock
    generators even between cards of the same model, it is not sensible to
    blindly copy the settings (e.g., a Device section).  For this reason,
    after you make a selection, you will still be asked about the components
    of the card, with the settings from the chosen database entry presented as
    a strong hint.
    
    The database entries include information about the chipset, what server to
    run, the Ramdac and ClockChip, and comments that will be included in the
    Device section. However, a lot of definitions only hint about what server
    to run (based on the chipset the card uses) and are untested.
    
    If you can't find your card in the database, there's nothing to worry about.
    You should only choose a database entry that is exactly the same model as
    your card; choosing one that looks similar is just a bad idea (e.g. a
    GemStone Snail 64 may be as different from a GemStone Snail 64+ in terms of
    hardware as can be).
    
    Do you want to look at the card database? y
      0  2 the Max MAXColor S3 Trio64V+                    S3 Trio64V+
      1  928Movie                                          S3 928
      2  AGX (generic)                                     AGX-014/15/16
      3  ALG-5434(E)                                       CL-GD5434
      4  ASUS 3Dexplorer                                   RIVA128
      5  ASUS PCI-AV264CT                                  ATI-Mach64
      6  ASUS PCI-V264CT                                   ATI-Mach64
      7  ASUS Video Magic PCI V864                         S3 864
      8  ASUS Video Magic PCI VT64                         S3 Trio64
      9  AT25                                              Alliance AT3D
     10  AT3D                                              Alliance AT3D
     11  ATI 3D Pro Turbo                                  ATI-Mach64
     12  ATI 3D Xpression                                  ATI-Mach64
     13  ATI 3D Xpression+ PC2TV                           ATI-Mach64
     14  ATI 8514 Ultra (no VGA)                           ATI-Mach8
     15  ATI All-in-Wonder                                 ATI-Mach64
     16  ATI Graphics Pro Turbo                            ATI-Mach64
     17  ATI Graphics Pro Turbo 1600                       ATI-Mach64
    
    Enter a number to choose the corresponding card definition.
    Press enter for the next page, q to continue configuration.
    ENTER

かなりの数のボードがアルファベット順に定義されていますが, ついに次のようなものを見つけました.

    108  DSV3325                                           S3 ViRGE
    109  DSV3326                                           S3 Trio64V+
    110  DataExpert DSV3325                                S3 ViRGE
    111  DataExpert DSV3365                                S3 Trio64V+
    112  Dell S3 805                                       S3 801/805
    113  Dell onboard ET4000                               ET4000
    114  Diamond Edge 3D                                   nv1
    115  Diamond Multimedia Stealth 3D 2000                S3 ViRGE
    116  Diamond Multimedia Stealth 3D 2000 PRO            S3 ViRGE/DX
    117  Diamond SpeedStar (Plus)                          ET4000
    118  Diamond SpeedStar 24                              ET4000
    119  Diamond SpeedStar 24X (not fully supported)       WD90C31
    120  Diamond SpeedStar 64                              CL-GD5434
    121  Diamond SpeedStar HiColor                         ET4000
    122  Diamond SpeedStar Pro (not SE)                    CL-GD5426/28
    123  Diamond SpeedStar Pro 1100                        CL-GD5420/2/4/6/8/9
    124  Diamond SpeedStar Pro SE (CL-GD5430/5434)         CL-GD5430/5434
    125  Diamond SpeedStar64 Graphics 2000/2200            CL-GD5434
    
    Enter a number to choose the corresponding card definition.
    Press enter for the next page, q to continue configuration.
    
    117
    
    Your selected card definition:
    
    Identifier: Diamond SpeedStar (Plus)
    Chipset:    ET4000
    Server:     XF86_SVGA
    
    Press enter to continue, or ctrl-c to abort.ENTER
    
    Now you must determine which server to run.  Refer to the man pages and
    other documentation.  The following servers are available (they may not
    all be installed on your system):
    
     1  The XF86_Mono server. This a monochrome server that should work on any
        VGA-compatible card, in 640x480 (more on some SVGA chipsets).
     2  The XF86_VGA16 server. This is a 16-color VGA server that should work on
        any VGA-compatible card.
     3  The XF86_SVGA server. This is a 256 color SVGA server that supports
        a number of SVGA chipsets. On some chipsets it is accelerated or
        supports higher color depths.
     4  The accelerated servers. These include XF86_S3, XF86_Mach32, XF86_Mach8,
        XF86_8514, XF86_P9000, XF86_AGX, XF86_W32, XF86_Mach64, XF86_I128 and
        XF86_S3V.
    
    These four server types correspond to the four different "Screen" sections in
    XF86Config (vga2, vga16, svga, accel).
    
     5  Choose the server from the card definition, XF86_SVGA.
    
    Which one of these screen types do you intend to run by default (1-5)?

システムはすでに XF86_SVGA を選んでくれています. 違うものに変えますか? 変更するには, それなりの理由が必要でしょう. ここではさしたる理由もありませんので, カードの定義のままにしておきましょう.

    Which one of these screen types do you intend to run by default (1-5)? 5
    
    The server to run is selected by changing the symbolic link 'X'. For example,
    the SVGA server.
    
    Please answer the following question with either 'y' or 'n'.
    Do you want me to set the symbolic link? y

X を起動するすべてのプログラム (xinit, startx および xdm) は /usr/X11R6/bin/X を起動します. ここでのシンボリックリンクは /usr/X11R6/bin/X が自分のサーバを指すようにしてくれます. もしシンボリックリンクを行なわなければ X を起動することはできません.

    Now you must give information about your video card.  This
    will be used for the "Device" section of your video card in XF86Config.
    
    You must indicate how much video memory you have. It is probably a good
    idea to use the same approximate amount as that detected by the server you
    intend to use. If you encounter problems that are due to the used server
    not supporting the amount memory you have (e.g. ATI Mach64 is limited to
    1024K with the SVGA server), specify the maximum amount supported by the
    server.
    
    How much video memory do you have on your video card:
    
     1  256K
     2  512K
     3  1024K
     4  2048K
     5  4096K
     6  Other
    
    Enter your choice: 3
    
    You must now enter a few identification/description strings, namely an
    identifier, a vendor name, and a model name. Just pressing enter will fill
    in default names (possibly from a card definition).
    
    Your card definition is Diamond SpeedStar (Plus).
    
    The strings are free-form, spaces are allowed.
    Enter an identifier for your video card definition: ENTER
    You can simply press enter here if you have a generic card, or want to
    describe your card with one string.
    Enter the vendor name of your video card:  ENTER
    Enter the model (board) name of your video card:  ENTER
    
    Especially for accelerated servers, Ramdac, Dacspeed and ClockChip settings
    or special options may be required in the Device section.
    
    The RAMDAC setting only applies to the S3, AGX, W32 servers, and some
    drivers in the SVGA servers. Some RAMDAC's are auto-detected by the server.
    The detection of a RAMDAC is forced by using a Ramdac "identifier" line in
    the Device section. The identifiers are shown at the right of the following
    table of RAMDAC types:
    
      1  AT&T 20C490 (S3 and AGX servers, ARK driver)                att20c490
      2  AT&T 20C498/21C498/22C498 (S3, autodetected)                att20c498
      3  AT&T 20C409/20C499 (S3, autodetected)                       att20c409
      4  AT&T 20C505 (S3)                                            att20c505
      5  BrookTree BT481 (AGX)                                       bt481
      6  BrookTree BT482 (AGX)                                       bt482
      7  BrookTree BT485/9485 (S3)                                   bt485
      8  Sierra SC15025 (S3, AGX)                                    sc15025
      9  S3 GenDAC (86C708) (autodetected)                           s3gendac
     10  S3 SDAC (86C716) (autodetected)                             s3_sdac
     11  STG-1700 (S3, autodetected)                                 stg1700
     12  STG-1703 (S3, autodetected)                                 stg1703
    
    
    Enter a number to choose the corresponding RAMDAC.
    Press enter for the next page, q to quit without selection of a RAMDAC.
    
    
    q                                  We don't need this
    
    
    A Clockchip line in the Device section forces the detection of a
    programmable clock device. With a clockchip enabled, any required
    clock can be programmed without requiring probing of clocks or a
    Clocks line. Most cards don't have a programmable clock chip.
    Choose from the following list:
    
     1  Chrontel 8391                                               ch8391
     2  ICD2061A and compatibles (ICS9161A, DCS2824)                icd2061a
     3  ICS2595                                                     ics2595
     4  ICS5342 (similar to SDAC, but not completely compatible)    ics5342
     5  ICS5341                                                     ics5341
     6  S3 GenDAC (86C708) and ICS5300 (autodetected)               s3gendac
     7  S3 SDAC (86C716)                                            s3_sdac
     8  STG 1703 (autodetected)                                     stg1703
     9  Sierra SC11412                                              sc11412
    10  TI 3025 (autodetected)                                      ti3025
    11  TI 3026 (autodetected)                                      ti3026
    12  IBM RGB 51x/52x (autodetected)                              ibm_rgb5xx
    
    Just press enter if you don't want a Clockchip setting.
    What Clockchip setting do you want (1-12)? ENTER
    
    For most configurations, a Clocks line is useful since it prevents the slow
    and nasty sounding clock probing at server start-up. Probed clocks are
    displayed at server startup, along with other server and hardware
    configuration info. You can save this information in a file by running
    imprecise; some clocks may be slightly too high (varies per run).
    
    At this point I can run X -probeonly, and try to extract the clock information
    from the output. It is recommended that you do this yourself and add a clocks
    line (note that the list of clocks may be split over multiple Clocks lines) to
    your Device section afterwards. Be aware that a clocks line is not
    appropriate for drivers that have a fixed set of clocks and don't probe by
    default (e.g. Cirrus). Also, for the P9000 server you must simply specify
    clocks line that matches the modes you want to use.  For the S3 server with
    a programmable clock chip you need a 'ClockChip' line and no Clocks line.
    
    You must be root to be able to run X -probeonly now.
    
    Do you want me to run 'X -probeonly' now?

この最後の質問はきちんと考える必要があります. あるポイントで X -probeonly を実行する必要はあるのですが, そうするためにはさらにいくつかの設定が必要です. 忠告通り, 後でやってみることにしましょう.

    Do you want me to run 'X -probeonly' now? n
    
    For each depth, a list of modes (resolutions) is defined. The default
    resolution that the server will start-up with will be the first listed
    mode that can be supported by the monitor and card.
    Currently it is set to:
    
    "640x480" "800x600" "1024x768" for 8bpp
    "640x480" "800x600" for 16bpp
    "640x480" for 24bpp
    "640x400" for 32bpp
    
    Note that 16, 24 and 32bpp are only supported on a few configurations.
    Modes that cannot be supported due to monitor or clock constraints will
    be automatically skipped by the server.
    
     1  Change the modes for 8pp (256 colors)
     2  Change the modes for 16bpp (32K/64K colors)
     3  Change the modes for 24bpp (24-bit color, packed pixel)
     4  Change the modes for 32bpp (24-bit color)
     5  The modes are OK, continue.
    
    Enter your choice: 5     accept the defaults
    
    You can have a virtual screen (desktop), which is screen area that is larger
    than the physical screen and which is panned by moving the mouse to the edge
    of the screen. If you don't want virtual desktop at a certain resolution,
    you cannot have modes listed that are larger. Each color depth can have a
    differently-sized virtual screen
    
    Please answer the following question with either 'y' or 'n'.
    Do you want a virtual screen that is larger than the physical screen? n

物理的な画面の大きさよりも大きな仮想スクリーンが必要かどうかというのは難しい問題です. わたしはかなりうっとうしいと思うので n と答えることをお勧めしますが, 特に最も高い解像度でも小さい, という場合には便利だと感じるかも知れません.

さて設定は終わりました. 後は sysinstall が設定ファイルを書くだけです.

    I am going to write the XF86Config file now.  Make sure
    you don't accidently overwrite a previously configured one.
    
    Shall I write it to /etc/XF86Config? y
    
    File has been written. Take a look at it before running 'startx'. Note that
    the XF86Config file must be in one of the directories searched by the server
    (e.g. /usr/X11R6/lib/X11) in order to be used. Within the server press
    ctrl, alt and '+' simultaneously to cycle video resolutions. Pressing ctrl,
    alt and backspace simultaneously immediately exits the server (use if
    the monitor doesn't sync for a particular mode).
    
    For further configuration, refer to /usr/X11R6/lib/X11/doc/README.Config.

一旦この設定が終われば, X を起動する準備ができています.