  FreeBSD 用 XFree86 に関する README
  Rich Murphey, David Dawes
  8 November 1998
  The X Japanese Documentation Project
  5 February 1999
  ____________________________________________________________

  目次


  1. XFree86 とその入手方法について
  2. FreeBSD 3.0 と ELF 形式のバイナリ
  3. ディスプレイマネージャのインストール (xdm)
  4. ハードウェアに合わせた X の設定
  5. X の実行
  6. X のためのカーネル再構築
  7. X クライアントの構築
  8. 謝辞
  9. 日本語訳について


  ______________________________________________________________________

  1.  XFree86 とその入手方法について

  XFree86 は X11R6.3 を Intel ベースの Unix のいくつかに移植したもので
  す。 XFree86 は元々、 X386 1.2 という X11R5 と一緒に配布されていた X
  サーバでした。このリリースでは新しい機能がたくさん追加され、性能も改善
  されていますし、バグもたくさん修正されています。

  このリリースについての詳細(インストール手順も含めて)については、リリー
  スノートを参照してください。

  著作権表示には目を通しておいてください。

  FreeBSD 2.2.x, 3.0 用の XFree86 のバイナリは以下の場所で入手することが
  できます:

  ftp://ftp.XFree86.org/pub/XFree86/current/binaries/


  このドキュメントに関する意見や提案があれば、 Rich-Murphey@Rice.edu か
  XFree86@XFree86.org に電子メールでお知らせください。ドキュメントを修正
  します。


  2.  FreeBSD 3.0 と ELF 形式のバイナリ


  FreeBSD-3.0 のバイナリ配布は ELF 形式だけです。tar 形式のアーカイブで
  ある Xbin.tgz には、互換性のために a.out 形式のライブラリも含まれてい
  ます。


  3.  ディスプレイマネージャのインストール (xdm)

  ディスプレイマネージャを使うと PC が X 端末のようになります。つまり、X
  上で動作するログイン画面が現われます。

  起動時にディスプレイマネージャを自動的に起動するための最も簡単な方法
  は、 /etc/ttys に行を追加して、使われていない仮想端末の 1 つで xdm を
  起動させることです:




   ttyv4  "/usr/X11R6/bin/xdm -nodaemon" xterm        on secure




  /usr/X11R6/bin/X をお使いのビデオカードに合った X サーバへのシンボリッ
  クリンクにすることと、/usr/X11R6/lib/X11/xdm ディレクトリ内の Xservers
  ファイルを編集し、X サーバのパス名を指定することのいずれかも必ず行いま
  しょう。

  /etc/ttys への変更が反映されるのは、リブート後か ``kill -HUP 1'' を実
  行して /etc/ttys を再読み込みさせてからです。root ユーザとしてコンソー
  ルからログインして ``xdm -nodaemon'' を実行することで、ディスプレイマ
  ネージャを手動でテストすることもできます。


  4.  ハードウェアに合わせた X の設定

  XF86Config は使っているモニタやビデオカード、マウスの種類を X サーバに
  知らせます。必ず XF86Config を作り、使っている特定のハードウェアをサー
  バに知らせなければなりません。

  QuickStart ガイドを一通り読むことと、`XF86Setup' ユーティリティ(インス
  トールには VGA16 サーバが必要です)または `xf86config' ユーティリティを
  使って XF86Config ファイルを作成することを強くお勧めします。

  `XF86Setup' ユーティリティを実行する際には、マウスの設定を終えるまでは
  マウスに触ってはいけません。さもないと、VGA16 サーバとマウスデバイスが
  混乱し、マウスやキーボードの入力の問題が起こるかもしれません。

  FreeBSD のバージョン 2.2.1 以降で ``moused''(オンラインマニュアルの
  moused(8) を参照) を実行している場合、マウスのブランドやモデルに関係な
  く、マウスのプロトコルの種類には SysMouse を、マウスのデバイス名には
  /dev/sysmouse を指定しなければなりません。

  ``moused'' を実行していない場合には、マウスのインタフェースの種類と
  /dev のエントリ、使用するプロトコルを知っている必要があります。

  インタフェースの種類はマウスのコネクタを見れば分かります。シリアルマウ
  スの場合には D-Sub メスの 9 ピンまたは 25 ピンのコネクタが付いていま
  す。バスマウスの場合には、D-Sub オスの 9 ピンコネクタか丸型 DIN の 9
  ピンコネクタが付いています。PS/2 マウスには小さい丸型 DIN の 6 ピンコ
  ネクタが付いています。 USB マウスには平たい長方形のコネクタが付いてい
  ます。一部のマウスには、コネクタを他のタイプのインタフェースに接続でき
  るアダプタが付属しています。このようなアダプタを使う場合には、マウスと
  アダプタを組み合わせた状態で一番端になるコネクタがインタフェースの種類
  を決めることを覚えておいてください。

  次に決めることは、与えられたインタフェースに対する /dev エントリです。
  バスマウスと PS/2 マウスの場合、選ぶ必要はほとんどありません: バスマウ
  スでは必ず /dev/mse0 を使いますし、PS/2 マウスでは必ず /dev/psm0 を使
  います。複数個の USB マウスをお使いのシステムまたは USB ハブに取り付け
  ることができます。これらは /dev/ums0, /dev/ums1, …としてアクセスでき
  ます。シリアルマウスの場合には、マウスを接続できるシリアルポートが複数
  個あるかもしれません。普通は最初の組み込みシリアルポートである
  /dev/cuaa0 をマウスに割り当てることが多いようです。

  どのシリアルデバイスにマウスを接続したかよく分からない場合、デバイスを
  確かめる最も簡単な方法は ``cat'' や ``kermit'' を使ってマウスの出力を
  見ることです。まずマウスを接続してから、単に次のコマンドを実行し、マウ
  スを動かしたりクリックした時に出力が行われることを確認するだけです。



        % cat < /dev/tty00

  正しいマウスデバイスを見つけられなかった場合には、 ``dmesg|grep sio''
  を用いて起動時に検出されたシリアルデバイスのリストを取得しましょう。



        % dmesg|grep sio
        sio0 at 0x3f8-0x3ff irq 4 on isa




  それから、これらのデバイスに対応する /dev のエントリを重ねて確認しま
  す。まだエントリが存在していなければ、/dev/MAKEDEV スクリプトを用いて
  作成します。



        % cd /dev
        % sh MAKEDEV tty00




  実際にマウスが接続されているポートを指すシンボリックリンク /dev/mouse
  を作成してもよいでしょう。こうしておくと、後で「マウス」ポートを見つけ
  るのが簡単になります。

  次のステップは、マウスが使うプロトコルの種類を適切に推定することです。
  FreeBSD 2.2.6 以降であれば、マウスが比較的古いモデルでない限り、X サー
  バは自動的に適切な種類を選択することができます。これらのバージョンでは
  ``Auto'' プロトコルを指定してください。

  他のバージョンの FreeBSD の場合や、バージョン 2.2.6 でも ``Auto'' プロ
  トコルがうまく動作しない場合には、マウスのプロトコルを推定して試してみ
  る必要があります。

  ここでは経験則を示しておきます:


  1. バスマウスの場合には、マウスのブランドに関係なく常に ``BusMouse''
     プロトコルを使います。

  2. PS/2 マウスの場合には、マウスのブランドに関係なく常に ``PS/2'' プロ
     トコルを指定すべきです。

       注意: XF86Config のオンラインマニュアルには、かなりの数の
       PS/2 マウスプロトコルが書かれています。しかし FreeBSD の場合
       には、 XF86Config に指定する意味がある PS/2 マウスプロトコル
       は ``PS/2'' だけです。バージョン 2.2.6 以降の FreeBSD は、
       PS/2 マウスドライバ psm でこれらの種類のプロトコルを直接サポ
       ートしているので、使用する PS/2 マウスプロトコルを X サーバ
       に伝える必要はありません。``Auto'' は動作するはずですが、こ
       れではなく ``PS/2'' を使ってください。


  3. USB マウスに対しては ``Auto'' を指定しなければなりません。

       注意: XFree86 の他の文書では、``Usb'' はマウスプロトコル用の
       キーワードの一つと書かれているかもしれません。このキーワード
       は必要でなく、したがって FreeBSD ではサポートされていませ
       ん。USB マウスに対しては必ず ``Auto'' を使ってください。


  4. Logitech 製の古いモデルのマウスに対しては ``Logitech'' プロトコルを
     使います。最近の Logitech マウスは ``MouseMan'' プロトコルと
     ``Microsoft'' プロトコルのどちらも使います。
  5. 2 ボタンのシリアルマウスのほとんどは ``Microsoft'' プロトコルをサポ
     ートしています。

  6. 3 ボタンのシリアルマウスは ``MouseSystems'' プロトコルで動作すると
     思います。動作しない場合には、``Microsoft'' プロトコルで動作すると
     思いますが、この場合には 3 番目のボタン(中ボタン)は機能しないでしょ
     う。3 ボタンのシリアルマウスは ``MouseMan'' プロトコルで動作するこ
     ともあり、この場合には 3 番目のボタンも期待通りに動作すると思いま
     す。

  7. 3 ボタンのシリアルマウスには小さなボタンが付いていて、 ``MS'' と
     ``PC''、あるいは ``2'' と ``3'' を選択できることがあります。通常は
     ``MS'' と ``2'' は ``Microsoft'' プロトコルのことであり、``PC'' と
     ``3'' は ``MouseSystems'' プロトコルのことです。

  8. シリアルマウスにローラーやホイールが付いている場合、このマウスは
     ``IntelliMouse'' プロトコル互換かもしれません。


  5.  X の実行

  X を実行するにはメモリが最低 8MB 必要です。サーバ、ウィンドウマネー
  ジャ、ディスプレイマネージャ、xterm で仮想メモリを 8MB 使います。たと
  え常駐セットサイズがこれより小さくても、メモリが 8MB のシステムで
  は、gcc のように数メガバイトの空きメモリを期待する他のアプリケーション
  の分のメモリがほとんど残りません。R6 の X サーバはメモリ 4MB でも動作
  しますが、実際には X の実行中にコンパイルを行うと、頻繁にページングが
  発生するために時間が 5〜10倍かかってしまいます。

  初めてのユーザが X Window を起動するための最も簡単な方法は、 ``startx
  >& startx.log'' を実行することです。X サーバが画面表示を引き継ぐため、
  エラーメッセージはリダイレクトしないと無くなってしまいます。

  X から抜けるためには、コンソールになっている xterm で ``exit'' と入力
  します。ホームディレクトリに .xinitrc, .xserverrc, .twmrc ファイルを作
  ることにより、X をカスタマイズすることができます。これらのファイルにつ
  いては、オンラインマニュアルの xinit と startx の説明を参照してくださ
  い。


  6.  X のためのカーネル再構築


  FreeBSD の GENERIC カーネルは何も変更しなくても XFree86 に対応していま
  す。GENERIC カーネルや、そのスーパーセットであるカーネル設定であれば、
  カーネルの変更を行う必要はありません。

  BSD カーネルの設定の一般的な説明については、smm.02.config.ps.Z
  <ftp://gatekeeper.dec.com/pub/BSD/manuals/smm.02.config.ps.Z> を参照し
  てください。これはシステム管理者用マニュアルからカーネル設定の章を抜粋
  した、すぐに印刷できる Postscript 形式のファイルです。

  カーネル設定ファイルを小さくすることにした場合には、
  (/sys/arch/i386/conf ファイル)の以下の行は削除してはいけません。これは
  X をサポートするために必要です:



        options                UCONSOLE                #X Console support




  FreeBSD の GENERIC カーネルはデフォルトで syscons ドライバを使う設定に
  なっています。同様のカーネル設定を行うには、
  /usr/src/sys/i386/conf/GENERIC に次のような行が含まれていなければなり
  ません:



        device         sc0     at isa? port "IO_KBD" tty irq 1 vector scintr




  MAXCONS オプションを使って、仮想コンソールの数を設定することができま
  す:



        options                "MAXCONS=4"         #4 virtual consoles




  このような設定が無い場合のデフォルト値は 16 になります。仮想端末の数は
  セクション 3の最後で説明した gettys より多くなければなりません。4 は妥
  当な最小値です。

  X サーバは 2 つのコンソールドライバ(syscons と pcvt)をサポートしていま
  す。FreeBSD 1.1.5 以降では syscons ドライバがデフォルトです。これらの
  ドライバは実行時に検出されるので、サーバの設定自体を行う必要はありませ
  ん。

  pcvt をコンソールドライバとして使いたければ、カーネルの設定ファイルに
  必ず以下のオプションを入れてください。



        options                XSERVER                 #Xserver




  pcvt における仮想コンソールの数は、以下のオプションを使って設定するこ
  とができます:



        options                "PCVT_NSCREENS=10"  #10 virtual consoles




  バスマウスや PS/2 マウスのドライバはカーネルに組み込まれていないこと
  や、組み込まれていても無効にされていることがあります。これらのマウスを
  使う場合には、カーネル設定ファイルに以下の行があることを確かめてくださ
  い:



        device         mse0    at isa? port 0x23c tty irq 5 vector mseintr
        device         psm0    at isa? port "IO_KBD" conflicts tty irq 12 vector psmintr




  mse0 はバスマウス用のデバイスで、psm デバイスは PS/2 マウス用のデバイ
  スです。バスマウスのインタフェースカードは、IRQ やポート番号を変更でき
  ることがあります。詳しくは、バスマウスのマニュアルやオンラインマニュア
  ルの mse(4) を参照してください。PS/2 マウスの IRQ とポート番号を変更す
  る方法は用意されていません。
  XFree86 サーバは MIT-SHM 機能拡張をサポートしています。GENERIC カーネ
  ルはこれをサポートしていないので、使用したければ SYSV 共有メモリをサポ
  ートするようにカーネルの設定を行う必要があります。この設定を行うには、
  以下の行をカーネルの設定ファイルに追加します:



        options                SYSVSHM                 # System V shared memory
        options                SYSVSEM                 # System V semaphores
        options                SYSVMSG                 # System V message queues




  SoundBlaster 16 を IRQ 2(9) で使っている場合、sb16_dsp.c にパッチを当
  てる必要があります。パッチを当てないと、SoundBlaster ドライバを使う設
  定のカーネルは 9 番割り込みが存在しないと言ってきて、X サーバが固まっ
  てしまいます。

  S3 のカードとシリアルポート COM4 は 1 つのシステムで同時には使用するこ
  とはできません。I/O ポートアドレスが重なっているからです。


  7.  X クライアントの構築


  新しいクライアント(X のアプリケーション)を作る最も簡単な方法は、
  Imakefile が付属していれば xmkmf を使うことです。 ``xmkmf -a'' を実行
  して Makefile を作り、それから ``make'' を実行します。オンラインマニュ
  アルもインストールした場合には、必ず ``makewhatis /usr/X11R6/man'' を
  実行し、 whatis.db を更新してください。

  注意: XFree86 2.1 と FreeBSD 1.1 以降、FreeBSD システムに対しては、シ
  ンボル __386BSD__ はコンパイラによっても X の設定ファイル経由でも定義
  されなくなりました。クライアントを BSD システムに移植する時は、本当に
  BSD に特有のコードに対してはシンボル BSD を使ってください。シンボルの
  値を使って、異なる BSD リリースを区別することができます。例えば、Net-2
  以降のリリース専用のコードでは次のような指定を行います:


       #if (BSD >= 199103)


  このシンボルの定義を確実に正しいものにするため、シンボルを必要とするソ
  ースコードでは <sys/param.h> をインクルードしてください。 XFree86
  3.1.1 以降では、全ての *BSD システムを表す CSRG_BASED シンボルが定義さ
  れていることに注意してください。 <sys/param.h> のインクルードを保護す
  るために、これを使うべきです。

  特定の i386 用 BSD 専用の移植を行ったコードの場合、 NetBSD ならば
  __FreeBSD__ for FreeBSD, __NetBSD__ を、 OpenBSD ならば __OpenBSD__
  を、 386BSD ならば __386BSD__ を、 BSD/386 ならば __bsdi__ を使ってく
  ださい。


  8.  謝辞

  多くの方々に感謝します:

  o  *BSD のサポートを最初に行ってくださった Pace Willison さん

  o  386BSD のカーネルと S3 チップセットのサポートを行ったAmancio Hasty
     さん

  o  FreeBSD のカーネルをサポートした David Greenman さん, Nate Williams
     さん, Jordan Hubbard さん
  o  Walnut Creek Cdrom のハードウェアを使わせてくださった Rod Grimes さ
     ん, Jordan Hubbard さん、 Jack Velte さん

  o  Linux ディストリビューションからアイディアを採り入れた Orest
     Zborowski さん, Simon Cooperさん, Dirk Hohndel さん


  $XFree86: xc/programs/Xserver/hw/xfree86/doc/Japanese/READ.FreeBSD,v 3.0.4.3 1999/12/28 12:13:46 hohndel Exp $





  $XConsortium: FreeBSD.sgml /main/12 1996/10/28 05:43:08 kaleb $




  9.  日本語訳について

  日本語訳は X Japanese Documentation Project が行いました。 (3.3.6 版
  翻訳: 藤原輝嘉 <fujiwara@linux.or.jp> <mailto:fujiwara@linux.or.jp>)

  原文の著作権は XFree86 プロジェクト社にあり、日本語訳に関する権利は X
  Japanese Documentation Project にあります。問題点の指摘やご意見は藤原
  まで御連絡ください。
