  SVR4 ユーザのための情報
  The XFree86 Project, Inc
  1998年2月27日(1998年3月1日訳)
  野村 高明(Takaaki Nomura)

  注意: アクセラレーションがサポートされたサーバをお使いになる場合は、
  10節をお読みになり、書いてあることに従って下さい。そうしないと、X サー
  バを終了させたり、再起動したり、仮想端末の切替えを行なったりした時
  に、X サーバはクラッシュするかもしれません。

  1.  XFree86 がテストされている SVR4 のバージョン

  XFree86 は、次のバージョンの SVR4 上でテストされています。

  SVR4.0

  o  Microport: 2.2, 3.1, 4.1, 4.2

  o  Esix: 4.0.3A, 4.0.4, 4.0.4.1

  o  Dell: 2.1, 2.2, 2.2.1

  o  UHC: 2.0, 3.6

  o  Consensys: 1.2

  o  MST: 4.0.3

  o  AT&T: 2.1, 4.0

  o  ISC: 4.0.3

  o  NCR: MP-RAS

  o  PANIX: 5.0

  SVR4.2

  o  Consensys

  o  Novell/SCO UnixWare 1.x, 2.0

  基本的に、XFree86 の SVR4 用バイナリは、ISA、EISA、MCA プラットフォー
  ム上のいかなる SVR4.0(Solaris 2.x は例外)あるいは SVR4.2 上でも無変更
  で動作するでしょう。このリストに載っていない SVR4 上で XFree86 をお使
  いであれば、そのことを我々に知らせて下さい。

  2.  VT-switch のホットキーの対処方法

  VT-switch(仮想端末の切り替え)のホットキーに関しては、いくつかのバー
  ジョンの SVR4(Esix, Microport)は、2キー・シーケンス(Alt-Fn)を可能にす
  るメカニズムを持っています。標準的な SVR4 のメカニズムは、Alt-SysReq-
  Fn です。X を走らせると、Alt-Fn シーケンスは、サーバが見るよりも先にド
  ライバが横取りしてしまい、X のアプリケーションでそれを使うことはできま
  せん。そこで、X を走らせている時は、標準的な 3キー・シーケンスに戻るこ
  とになるでしょう。これへの対処の仕方は、次の通りです。

     Microport
        Microport のやり方は非常に単純です。2キー・モードは "Microport
        Mode"、 3キー・モードは "Compatible Mode" と呼ばれていま
        す。Microport Mode には Alt-SysReq-m で、Compatible Mode には
        Alt-SysReq-c で入れます。X のクライアントが Alt-Fn シーケンスに
        アクセスするのを可能にするためには、X サーバを起動後、Alt-
        SysReq-c を入力するだけでいいのです。

     Esix
        Esix にはモード切り替えをするキー・シーケンスはありません。それ
        は、次の 2レベルで行ないます。

        1. どちらのモードをデフォルトにするかを決めるカーネルパラメータ
           があります。カーネルパラメータは、/etc/conf/pack.d/kd/space.c
           における kd_2keysw の初期化で、それを 1(デフォルト)にする
           と、2キー・モードになり、0 にすると、それが disable されま
           す。

        2. モードは、各々の VT が ioctl() を発行することにより変更できま
           す。 XFree86 ユーザの便宜を図るため、`2key' と呼ばれるプログ
           ラムが用意されています。(ソースツリー上では
           xc/programs/Xserver/hw/xfree86/etc/ に、バイナリでは
           /usr/X11R6/lib/X11/etc/ にあります。) このプログラムをコンパ
           イルしてインストールして下さい。これを使うためには、
           XF86Config の Keyboard セクションに `VTInit "2key off"' の
           1行を入れて、サーバ起動時にそのプログラムが自動的に実行される
           ようにして下さい。これを実行すると、サーバの VT では 2キーに
           よる切り替えが OFF となり、他の VT では ON のままになります。

        詳細は、リリースノートに含まれる keyboard(7) manpage を参照して
        下さい (オンラインの manpage にはこの情報は含まれていません)。

  3.  SVR4.0.4 と SVR4.2 上での SVR3 のバイナリの実行

  SVR4.0.4 は SVR3 のバイナリ実行のための iBCS-2 に従った `Advanced
  Compatibility Package' を追加しました。このツールは SVR4.2 にも存在し
  ます。XFree86 は、SVR3 のクライアントからのローカル接続を受け入れるた
  めに、これを利用します。XFree86 のバイナリはこれらのツールを使うように
  作られています。もしまだであれば、`Advanced Compatibility Package' を
  インストールする必要があります。

  SVR4.0.4 がすべての SCO バイナリと、ことによると ISC SVR3 のバイナリの
  多くも実行できる訳ではないことがわかっています。これは、XFree86 が悪い
  からではなく、 SVR4 自身によるものです。その 1例としては、多くの SVR3
  のプログラムが UFS ファイルシステムのことを知っておらず、そのために定
  義されているシステムコールを使うのではなく、ディレクトリをファイルとし
  て読もうとすることがあります。これは明らかに失敗します。USL の
  SVR4.0.4 のリリースノート(ベンダから手に入れることができます)には、コ
  ンパチビリティを向上させるための沢山の示唆があります。

  いくつかの SCO バイナリに関しては、幸運にもそのまま使えるようです。何
  も変更は要りません。xterm のウィンドウ上でプログラムを実行するだけでい
  いのです。

  ISC ユーザは、バイナリを実行する前に、バイナリエディタを必要とするで
  しょう。 ISC は、どういう訳か、ローカル接続のためのパイプを
  /tmp/.X11-unix/Xn に置きます。不運なことに、ここは X コンソーシアムの
  X サーバが、ローカル接続のためにいつも使われる Unix ドメインソケットを
  置く場所でもあるのです。 XFree86のサーバは、ISC のクライアントへのロー
  カル接続のために、 /dev/X/ISCCONN/Xnを使うように変更されました。従っ
  て、バイナリエディタで、クライアントプログラムを編集しなければいけませ
  ん。 /tmp/.X11-unixをサーチして、それを /dev/X/ISCCONNに変更して下さ
  い。そうすれば、後はベース OS のコンパチビリティについて心配するだけで
  済みます。

  4.  SVR4 上で XFree86 を構築する場合の注意

  1. SVR4 で gcc をお使いなら、gcc-2.4.5(あるいは、最近の安定したリリー
     ス) をお使いになることを強くお勧めします。2.6.0 は i386 プラット
     フォームではいくつかの問題があり、お勧めできません。

  2. 構築を行なう前に、UFSNINODE(UFS ファイルシステムの場合)あるいは
     S5INODE(S5 ファイルシステムの場合)のカーネルパラメータを約 650 に上
     げることをお勧めします。他のいくつかのパラメータについては、 "SVR4
     上で XFree86 を動作させる場合の注意" を御覧下さい。

  3. BOOTSTRAPCFLAGSとしては、以下が必要です。

       Unixware:     "-DUSL"

       NCR:          "-DNCR"

       他の SVR4:   "-DSVR4 -Di386"

  5.  SVR4 上で XFree86 を動作させる場合の注意

  注意:アクセラレーションをサポートしたサーバをお使いになるおつもりであ
  れば、10 節をお読みになり、書いてあることに従って下さい。そうしない
  と、 X サーバを終了させたり、再起動したり、仮想端末の切替えを行なった
  りした時に、 X サーバはクラッシュするかもしれません。

  1. SVR4 では、/usr/X11R6/libを LD_LIBRARY_PATHに加える必要があるかもし
     れません。しかし、正しく構築されたクライアントを実行する場合は、必
     要ありません。

  2. 次のいくつかのカーネルパラメータを増加させるといいかもしれません。
     (idtuneを実行するか、/etc/conf/cf.d/stuneを編集して、 idbuildでカー
     ネルを再構築して下さい。)

       [HS]FNOLIM    オープンされたファイル数のハード/ソフト上の制
       限

       MAXUP         1ユーザ当りのプロセスの最大値

       ARG_MAX       引数リストの最大長

       SHMMAX        共有メモリセグメントの最大サイズ(単位:バイト)

  3. どのマウスドライバを使うかを選択して下さい。最良の選択は、SVR4 のど
     のバージョンを使うかに依存します。バスマウスをお使いなら、Xqueue が
     多分唯一の選択でしょう。シリアルマウスの場合は、次のようにして下さ
     い。

     Esix 4.0.3
        Xqueue が動作します。標準の asy ドライバを直接使うこともできます
        が、マウスはスムーズに動かないでしょう。

     Microport SVR4 [34].1
        Xqueue が動作します。asy ドライバを直接使ってもマウスはスムーズ
        に動きます。

     Xqueue を使用するためには、XF86Config の Keyboard、 Pointerセクショ
     ンにおいて、どちらもProtocolに Xqueue を指定して下さい。また、マウ
     スドライバパッケージをインストールし、mouseadmin を実行してマウスの
     セットアップを行なう必要があります。 mouseadmin が動かない場合
     は、`touch /dev/gmse' を事前に実行して下さい。(mouseadmin は、カー
     ネル再構築後に再実行する必要があります。さもなけれ
     ば、/etc/conf/node.d/gmse に適当なエントリを加えて下さい。)

     <注意:ハードウェアカーソルと Xqueue を同時に使用すると、アクセラレ
     ーションのかかったサーバやドライバの多くで問題が起きます。シリアル
     マウスをお持ちの場合は、Xqueue を使わないことでこれを回避できます。
     そうでない場合は、XF86Config の Device セクションに、

          Option "sw_cursor"

  の 1行を入れて下さい。S3 サーバは、この問題が無いことで知られる唯一の
  サーバです。

  Xqueue と標準 asy ドライバを同時に使用して問題が出る場合は、SAS をイン
  ストールする必要があります。SAS を使う場合、XF86Config は標準ドライバ
  を使うように設定して下さい。

  SAS は、ftp.physics.su.oz.au にあります。シリアルマウスに SAS を使う場
  合、 sas.h 内の EVENT_TIME を 80 から 30 に変更すれば、スムーズな動き
  をするようになるでしょう。SAS の README に書いていないこととして、次の
  2点があります。

  - /etc/ap/chan.ap に、次の 1行を加えて下さい。

        MAJOR    0       255     ldterm ttcompat

  MAJOR は、SAS デバイスが使う major 番号です。それがいくつであるかは、
  カーネル再構築後、/etc/conf/cf.d/mdevice で調べて下さい。 major 番号
  は、`sas' で始まる行の 6番目のフィールドにあります。このファイルは、新
  しいカーネルでリブートする前に更新しなければいけません。

  - インストールの手引きに、次のことが書いてありません。

       3a) `kconfig' を実行するか、/etc/conf/sdevice.d/asy を編集し
       て、asy ドライバを disable して下さい。

       3b) /etc/conf/bin/idbuildを実行して、カーネルを再構築して下
       さい。

  4. SVR4 で xdm を使いたい場合は、shar ファイル
     /usr/X11R6/lib/X11/etc/XdmConf.svr4を一時ディレクトリに展開して下さ
     い。README にどのファイルをどこにインストールすべきかが書いてありま
     す。各々のファイルをよく読んで、必要な変更を行なって下さい。

     注意 いくつかの SVR4 のバージョン(ex. Esix 4.0.3)では、コンソールで
     `vtgetty' を実行するデフォルトの inittab を持っています。xdm をブー
     ト時にスタートさせる場合、それはうまく動きません。問題なの
     は、vtgetty セッションから logout すると、xdm がサーバのために使用
     する１つも含め、全ての VT がクローズされてしまうことです。`getty'
     を使うのがお勧めです。 /etc/inittab を変更する場合
     は、/etc/conf/cf.d/init.base も同時に変更して下さい。さもないと、次
     にカーネルを再構築した後で変更がキャンセルされてしまいます。

  5. VT の最大数を変更するためには、/etc/default/workstations のファイル
     を編集して、その数を変更して下さい。次にリブートした時に、デバイス
     ノードは作成/削除されます。

  6. デフォルトのローカル接続タイプは、X11R6 で変更されました。Unix ドメ
     インのソケットは、もはや "ローカル" 接続タイプとしては扱われませ
     ん。このことは、 :0 に接続するクライアントは接続に Unix のソケット
     を使用しないことを意味します。Unix のソケット接続を使うためには、ク
     ライアントは unix:0 に接続しなければなりません。

     ローカル接続タイプは、"NAMED"(named ストリームパイプ)、 "PTS"(古い
     形式の USL のストリームパイプ)、"SCO"(SCO Xsight のストリームパイ
     プ)、"ISC"(ISC のストリームパイプ)のいずれかです。XLOCAL 環境変数
     が、どの優先順位でローカル接続を行なうかを決めるのに使用されます。
     デフォルトの設定は、 PTS:NAMED:ISC:SCO です。大抵の場合は、NAMED を
     使うのが推奨されます。その理由は、それがデフォルトの PTS よりも速
     く、 PTS を使うと /dev/pts デバイスが不足してしまう(PTS を使う各々
     のクライアントが /dev/pts デバイスを必要とします)からです。デフォル
     トのローカル接続タイプを設定するためには、.xinitrc(xinit か startx
     を使う場合)か /usr/X11R6/lib/xdm/Xsession(xdm を使う場合) におい
     て、XLOCAL が設定され、export されるようにして下さい。

  6.  SVR4 での一般のクライアントの構築

  1. 沢山のクライアント(いくつかの明確に SVR4 をサポートしているものも含
     む) が、SVR4 環境下の構築で -DSYSV の指定を必要とします。デフォルト
     の設定でも指定されないかもしれません。手っ取り早い方法は、クライア
     ントの Imakefile に次のようなものを加えることです。

           #if SystemV4
                DEFINES = -DSYSV OTHER_CLIENT_DEPENDENT_DEFINES
           #endif

  一番いいのは、-DSYSV 無しで正しくコンパイルされるように、コードを書き
  直すことです。

  7.  XFree86 で DOS/Merge 2.2 を使用するためには

  Locus DOS/Merge 2.2 X クライアントは、XFree86 上で使用することができま
  す。しかし、それを動かすためには、いくつかのことをする必要がありま
  す。1つの変更は、 X クライアントと X11R5/6 の一般的な問題で、その他
  は、XFree86 のサーバに特有なことに対する作業です。必要な作業は以下の通
  りです。

  1. .xinitrc、.xsessionの中で、$XMERGEを設定し、export して下さい。一般
     に、XMERGE=vgaと設定するようです。

  2. `dos' クライアントの "zoom" 機能を使用されるのなら、サーバのキーボ
     ードとマウスの本来のドライバの代わりに、"xqueue" を使わなければいけ
     ません。そうでないと、最初に "zoom" を行なった後に、マウスは機能し
     なくなるでしょう(`dos' クライアントが本来のドライバを使用するため、
     サーバは、zoom が終った後にマウスをアクセスできなくなるからです)。
     他の唯一の選択肢は、各々のデバイスに別々のマウスを使用することで
     す。

  3. `dos' クライアントのフォントを XFree86 のフォントディレクトリにイン
     ストールする必要があります。BDF ファイルを探して下さい(`*pc???.bdf'
     というパターンにマッチするファイルを見つけて下さい)。これらは、
     /usr/lib/X11/fonts/miscにあるでしょう。これらのファイルがあるディレ
     クトリに移動し、次のことを(`sh' か `ksh' を使って) 行なって下さい。

             for i in *pc???.bdf
             do
                 /usr/X11R6/bin/bdftopcf $i > \
                             /usr/X11R6/lib/X11/fonts/misc/`basename $i .bdf`.pcf
             done
             cd /usr/X11R6/lib/X11/fonts/misc
             /usr/X11R6/bin/mkfontdir
             # Do this only if the server is already running.
             /usr/X11R6/bin/xset fp rehash

  4. `dos' クライアントは、内部キー表現から X のキーマップへの変換テーブ
     ルを使います。Merge 2.2 に付いているテーブルは、SCO のサーバに対す
     るマッピングを使用するようです。正しいマッピングテーブルは、
     /usr/X11R6/lib/X11/etc/xcode.xfree86にあります。このファイル
     は、/usr/lib/merge/xc にインストールして下さい。さらに、次のリソー
     スを `dos' クライアントの application-defaults ファイル(通
     常、/usr/lib/X11/app-defaults/DOS にあります)に加えて下さい。

             dos*xcodetable: /usr/lib/merge/xc/xcode.xfree86

  もし間違ったテーブルがインストールされれば、テンキーの矢印キーは `dos'
  クライアントで機能しなくなりますから、この新しいコードテーブルが必要な
  のは明らかでしょう。

  5. "zoom"機能を正しく動かすためには、$DISPLAY を "unix:N" か
     "host_name:N" に設定して、`dos' を実行して下さい。単に ":0" を使う
     と、クライアントは正しく動かないでしょう。`dos' は、 `-display' パ
     ラメータを受け付けません。従って、`dos' プログラムを次のようなもの
     に置き換えるのが多分いいでしょう。

             #!/usr/bin/ksh
             if [ "X${DISPLAY}" != "X" ]
             then
                     case ${DISPLAY} in
                     :*)
                             DISPLAY=unix${DISPLAY}
                             ;;
                     esac
             fi
             /usr/bin/dos.real "$@"

  8.  Esix システムでのキーボードマッピングの問題

  Esix 4.0.3A のあるコンソールドライバのパッチは、XFree86 のサーバのデ
  フォルトキーマップを破壊します。キーのほとんどが正しくマップされなくな
  るので、この問題の影響を受ければ、それは明白になるでしょう。これに対す
  る解決策は 2つあります。 1つ目は、問題を起こしたコンソールドライバの
  パッチを削除することです。2つ目は、サーバ起動後にデフォルトのマッピン
  グをリセットするために、xmodmap(1) を使用することです。デフォルトマッ
  ピングは /usr/X11R6/lib/X11/etc/xmodmap.std にあり、.xinitrc(xdm を使
  用している場合は、Xsetup)に、次の行を加えれば、自動的にインストールさ
  れます。

         xmodmap /usr/X11R6/lib/X11/etc/xmodmap.std

  9.  PANIX 上での 106 日本語キーボードの問題

  PANIX for PC-AT は、DICOP(Desktop UNIX for Intel Cooperative Promotion
  Group) で標準化された日本語キーコードを使っています。そのため、XFree86
  で 106 日本語キーボードを使用すると、キーコードのコンフリクトが起こり
  ます。これを避けるためには、XF86Config に キーワード "panix106" を次の
  ように指定して下さい。

    Section "Keyboard"
      Protocol    "Standard"
      Autorepeat  500 5
      XkbModel    "jp106"
      XkbLayout   "jp"
      panix106
    EndSection

  10.  アクセラレーションをサポートするサーバで必要なカーネルパッチ

  SVR4.0 は、拡張 I/O レジスタ(0x3FF 以降)をアクセスするプログラムの処理
  に関してバグがあります。しかし、S3 や IBM 8514/A のようなチップを使用
  したビデオカードはそれらのレジスタを使用します。このバグを引き起こすボ
  ードをサポートするため、XFree86 ではこの問題をフィックスするカーネル
  パッチを作成し、インストール、アンインストールができるスクリプトを用意
  しました。 S3, 8514, Mach8, Mach32, P9000, AGX, W32 のサーバを使用する
  場合は、このパッチをインストールする必要があります。

  Dell 2.2 は、Thomas Roell が Dell に勤めていた頃、このバグを見つけて
  フィックスしたので、パッチを当てる必要はないことが分かっています。
  Microport も 4.0 v4.2 リリースでフィックスしています。SVR4.2 も、 USL
  がこの問題をフィックスしたので、パッチは必要ありません。

  パッチは、ソースツリー上では xc/programs/Xserver/hw/xfree86/etc、バイ
  ナリ上では /usr/X11R6/lib/X11/etc のディレクトリの下にあります。インス
  トールするスクリプトは `svr4_patch'、アンインストールするスクリプトは
  `svr4_rem_pch' です。パッチが当てられる対象のファイルは、
  /etc/conf/pack.d/kernel/os.o です。パッチのスクリプトは、パッチを当て
  る前にバグの存在を確認し、パッチ当てに成功したか失敗したかを知らせま
  す。 `svr4_patch' スクリプトは、もちろん root 権限で実行して下さい。オ
  リジナルの os.o、パッチを当てるプログラム、削除するスクリプトのコピー
  は、 /etc/conf/pack.d/kernel/.xfree86 のディレクトリの下に保存されま
  す。

  我々がこの問題に対する簡単な解決策を見い出すのを手伝い、その情報をリリ
  ースする許可を与えてくれた Microport の John M. Sully に感謝します。

  11.  他の問題

  アクセラレーションをサポートしたドライバは、SVR4.0 のいくつかのバー
  ジョンでハングアップを起こします。この問題は、/dev/pmem をメモリマップ
  する時、物理メモリがあるかどうかをカーネルがチェックすることに関連する
  ようです。このことは、メモリマップトレジスタをマップする時に問題を起こ
  します。これは、かつて SVGA サーバの中の MGA ドライバで起きた問題で
  す。他のドライバでも影響があるかもしれません。MGA ドライバで起きた問題
  は、現在はフィックスされています。

