<!doctype linuxdoc system>
 
<article>
 
<title> Linux を使用している人のための情報
<author> Orest Zborowski
<date> 1994 年 11 月 13 日
<trans> 岡本　一幸 Kazuyuki Okamoto &lt;ikko-@pacific.rim.or.jp&gt;
<toc>

<sect> XFree86 がテストされた Linux のバージョン <p>
XFree86 は Linux のバージョン 1.1.49 でテスト済みです。 1.0 以降のバージョ
ンでは、XFree86 に変更がなければ動くでしょう。バイナリとライブラリは 
4.5.26 のDLL C ライブラリと 1.4.4 のダイナミック・リンカー <tt>ld.so</tt> を基にし
ています(libc-4.5.26 かそれ以降の新しいものが*必須*です)。DLL X ライブラリ
は Eric Youngdale 氏によって 2.16 DLL-tools を使用して作成されました。

<sect> 前のバージョンとの互換性 <p>
X11R6 は X11R5 から大きく更新したものとなっていますので、XFree86-3.1 以降
の共有ライブラリは、XFree86-2.1.1 以前の古いライブラリとは互換性がありませ
ん。X11R5 のアプリケーションを実行するには、マシンの何処かに古いライブラリ
を保存しておかなければいけません。古いライブラリは<tt>/usr/X386/lib</tt> から何処か
へ移動すればいいのですが、<tt>/etc/ld.so.conf</tt> は更新しなければいけません。全て
の X11R5 のアプリケーションは問題無く X11R6 のサーバーと一緒に動作するでし
ょう。

XFree86-1.2、XFree86-1.3 または XFree86-2.0 ライブラリと関連のある古いバイ
ナリは引き続き動作しますが、<tt>/lib/libX{11,t,aw}.so.3</tt>
<tt>/usr/X386/lib/libX{11,t,aw}.so.3</tt> へ明確にシンボリックリンクを張る必要があ
ります。XView3L5 配付物に対して <tt>ld.so</tt> をリンクする時は、XView ライブラリに
ld.so が動作しないように共有イメージへの絶対パスを含ませないと、1.3 以前の
バージョンの <tt>ld.so</tt> とは問題を生じるでしょう。暫定的対策は、<tt>/</tt>（ルートディレ
クトリ）を <tt>/etc/ld.so.config</tt> に入れることですが、より良くするなら、XView 
を相対ライブラリ名とリンクするか、より新しい <tt>ld.so</tt> を手に入れることです。

<sect> XFree86 を導入するには <p>
バージョン 3.0 から始めるなら、XFree86 を <tt>/usr/X11R6</tt> に導入します。X11R5 
と X11R6 の両方を導入する十分なディスク容量が無い場合は、X11R5 の必要の無
い部分を捨てる事でディスク容量を確保しましょう。特に、フォントと古い 
X11R5 のバイナリは、消去出来ます。ダイナミックリンクを使う X11R5 のバイナ
リを動作させるには共有ライブラリを取っておいて下さい。

XFree86 3.X のそれぞれのバイナリ配付物には、対応する版の詳細な導入に関する
文書が付属しています。殆どの最新の情報がその文書にありますが、この文書に 
Linux で動く XFree86 3.X の基本的な機能とソースをどうやってコンパイルする
かを記述しています。

<sect> XFree86 を動作させるには <p>
XFree86 を動作させるためには 4MB の仮想メモリが必要ですが、快適に動作させ
る最小の環境としては、多分 8MB の実記憶があったほうがいいでしょう。386 プ
ロセッサにとって 387 コプロセッサは、有効ですが、物理的なメモリを増設した
ほうが対話処理の速度は格段に向上します。また、高速なグラフィックカード、バ
スまたはメモリがサーバーの性能を向上させるでしょう。

tar ファイルを展開したら、<tt>/etc/ld.so.conf</tt> の中か（初期値によって既にそう定
義されているはずです）、<tt>LD_LIBRARY_PATH</tt> 環境変数の中に <tt>/usr/X11R6/lib</tt> を定
義する必要があります。また、構成定義ファイルである 
<tt>/usr/X11R6/lib/X11/XF86Config</tt>を <tt>README.Config</tt> を指針とし、<tt>XF86Config.eg</tt> を
出発点としてホストの構成を正確に記入し<em>なければ</em>なりません。間違った 
<tt>XF86Config</tt> を使うとハードウェアを痛める場があるので、<em>良く文章を読んで</em>下さ
い。特にオンラインマニュアルと <tt>/usr/X11R6/lib/X11/doc</tt> にあるその他の 
<tt>README</tt> ファイルを良く読んで下さい。

XFree86 は、X サーバーとの間で双方向に仮想端末 (VT) 切り替え（サーバーから
仮想端末へ、仮想端末からサーバーへ切り替える）をする機能があります。初めて
起動するときは、XFree86 が、先ず仮想端末（使用可能な他のプロセスに開かれて
いないもの）を自動的に探して、その仮想端末で起動します。その仮想端末が使用
不可の場合、エラーメッセージを出して XFree86 は終了するでしょう。
``vt&lt;nn&gt;'' というオプションを付けることによって、サーバーを指定する仮想端
末で実行させることができます。ここで &lt;nn&gt; は使用可能な仮想端末番号（1 から
始まります）です。空いている仮想端末がないときは、XFree86 は起動不能です。
<tt>include/linux/tty.h</tt> の中の <tt>NR_CONSOLES</tt> の数を増やしてカーネルをコンパイル
すれば、使用可能な仮想端末の数を増やすことができます。

一旦、XFree86 が動作してしまえば、コントロールキー &lt;Ctrl&gt; とオルタネイトキ
ー &lt;Alt&gt; とファンクションキー &lt;Fnn&gt; を同時に押すことで、他の仮想端末に切り
替えられます。ここの nn は切り替えたい仮想端末番号です。XFree86 サーバーに
戻すときは、サーバーが標準で使っている仮想端末番号を表わす正しいキーの組み
合わせを押しましょう。正しいキーの組み合わせとは、オルタネイトキー &lt;Alt&gt; 
とファンクションキー &lt;Fmm&gt; です。ここで、mm はサーバーが動いている仮想端末
の番号です。（この番号はサーバーが起動するときに表示されます。）既に起動し
ているサーバーから起動した仮想端末<em>ではない</em>ことに注意して下さい。

注意: <tt>kbd-0.81.tar.gz</tt> 以降のバージョンの中にある `<tt>loadkeys</tt>' コマンドで、テ
キストモードのキー割当を再定義できます。これを使えば、例えば、コントロール
キー &lt;Ctrl&gt; とオルタネイトキー &lt;Alt&gt; とファンクションキー &lt;Fmm&gt; を同時に使
用して X サーバー下から移動するのと同じようなキー操作で、仮想端末のテキス
トモードから、移動する事が出来ます。

サーバーを終了させるとサーバーを起動した仮想端末に戻りますが、もしサーバー
を起動した仮想端末が死んでしまったときは、手動で戻さなければなりません。
XFree86 からテキストモードに戻る時に、未だ画面の回復に問題があるのは、グラ
フィックカードとマザーボードの相性が悪いのだと思われます。こんな時は、
<bf>svgalib</bf> という配付物に入っている <tt>runx</tt> というスクリプトを実行すれば、解消で
きるでしょう。

起動時に、XFree86 サーバーはカーネルに対してキー割り付けを獲得することを要
求します。この割り付けはカーネルをコンパイルしたとき設定される初期値かまた
は、`<tt>loadkeys</tt>' ユーティリティによって書き替えた値になります。サーバーでは、
カーネルに依存したもの、複数のキー組み合わせや無効なキーは割り付け出来ませ
ん。その他のキーは X 共通に変換されます。X サーバーはシフトしてない状態、
シフト状態、モードスイッチを押していない状態と、モードスイッチを押している
状態の４種類しか変換テーブルを持っていないことに注意して下さい。モードスイ
ッチがどんなキーかによります（これは <tt>XF86Config</tt> で設定可能です。初期値はオ
ルタネイトキー &lt;Alt&gt; です。）が、XFree86 はキーマップの中に変換テーブルを
読み込みます。この事は、Linux のモードスイッチに左コントロールキーの様な特
定のキーを割り当てられない事を意味します。

構成によっては、調子が悪くなって修正しなければならないことがあるでしょう。
過去に、Linux の xload コマンドが、動作中のカーネルから、負荷平均を取り出
すのに BSD の方法を使った事があります。XFree86-1.3 版では、カーネルの将来
の版での互換性を考慮して、動作中のカーネルから負荷平均を取り出す代わりに、
<tt>/proc/loadavg</tt> から取り出す方法に変えました。Xman も BSD の nroff ファミリ
ーの代わりに GNU groff ファミリーをサポートするように変更されました。ちょ
っと編集して再コンパイルすれば従来の BDS の nroff の方をサポートするように
戻せます。クライアントに、仮想端末で動作していたのと同等なより良いコンソー
ル切り替えを提供するために、 <tt>/dev/console</tt> と <tt>/dev/tty0</tt> の所有権と共にサー
バーが変更されましたが、そのために root の setuid 属性を付けなければならな
くなりました。同様に、<tt>xterm</tt> と <tt>xconsole</tt> にも root の setuid 属性を付ける必
要があります。<tt>xconsole</tt> は root の setuid 属性を付けて動作するようには設計
されてないので、これは安全上、大きな問題が生じると思われます。

<sect> XFree86 をコンパイルするには <p>
XFree86 をコンパイルするためには特別な手順書は必要ありません。
このバージョンの XFree86 は gcc-2.5.8 、DLL ライブラリの 4.5.26 と共用ライ
ブラリの1.4.4 、ダイナミック・リンカ ld.so とでコンパイルしています。共有
ライブラリは DLL tools-2.16 パッケージで作成し、新しい場所 (<tt>/usr/bin</tt>) にあ
るツールを使うようにサーバーのソースを更新しました。サーバーは 486 プロセ
ッサ用に最適化する為に、<tt>-m486</tt> オプションを付けてコンパイルされていますが、
バイナリは 386 プロセッサで動作するでしょう。（ -m486 を付けてコンパイルし
たものは、<tt>-m386</tt> を付けてコンパイルしたものより少々ファイルサイズが大きくな
っていますが、性能の損失はありません。）

全ての機能拡張とクライアントは移植とテストが終わっています。標準では、サー
バーは外部機能拡張 (PEX, XIE 等) 無しでコンパイルしていますが、これらの外
部機能拡張のライブラリは既に生成済みです。<tt>site.def</tt> を変更すれば、外部機能
拡張をコンパイルしてサーバーに組み込めます。若しくは、リンクキットがサーバ
ーを変更できます。

配付物は大変大きいものですが、オンラインマニュアル、PEX や大きなクライアン
トを消去する等してソースを注意深く整理すれば、XFree86 は 64MB のパーティシ
ョン１つで、コンパイル出来ます。 Makefile を作成するには、単に ``<tt>make Makefiles</tt>'' を実行してください。ファイルが自動的に作成され、実行は終了しま
す。ディスクを節約するならば、``<tt>make depend</tt>'' は実行する必要はないでしょう。
100MB の空きディスクがあれば、もっと容易に XFree86 をコンパイルできます。
サーバー全てをコンパイルするには、約 10MB の仮想メモリが必要でしょう。

パッチがライブラリに重要な変更を行なう場合は、更新した jump_xxx が必要でし
ょう。DLL tools パッケージに付属する手順でパッチが生成でき、XFree86 のパッ
チを当てるのに必要でしょう。

例えば、Xaw3d のような外部 X 共有ライブラリも X ライブラリをコンパイルする
ように、 X ライブラリを定義する JUMP_xxx で定義してコンパイル出来ます。詳
細な手順については、X ライブラリの定義例を、
<tt>/usr/X11R6/lib/X11/config/lnxLib.rules</tt> に提供しています。

Orest Zborowski (<it>orestz@eskimo.com</it>) 氏が開発した最新の方法で、全ての詳細
説明ファイルを書き、初めて XFree86 DLL ライブラリを作成してくれた Dirk 
Hohndel (<it>hohndel@aib.com</it>) 氏に感謝します。

<sect> バグの告知について <p>
バグ報告は <it>XFree86@XFree86.org</it> に送るか <it>comp.windows.x.i386unix</it> のニュース
グループに投稿して下さい。Linux のサポートや Linux の配付物に関する質問や
コメントは <it>orestz@eskimo.com.</it> で行なわれています。

<verb>
$XConsortium: Linux.sgml,v 1.2 95/01/23 15:34:44 kaleb Exp $
$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Linux.sgml,v 3.5 1995/01/28 16:01:43 dawes Exp $
</verb>
<hrule>
このファイルは xc/programs/Xserver/hw/xfree86/doc/sgml/Linux.sgml,v 3.5 1995/01/28
 16:01:43 を、岡本  一幸 
( Kazuyuki Okamoto <url url="mailto:ikko-@pacific.rim.or.jp"
name="&lt;ikko-@pacific.rim.or.jp&gt;"> ) が XFree86 3.1.2 を
日本でインストールする人向けに和訳したものです。ここがおかしいとか、
ここはこうしたほうがいいといったご意見がありましたら、電子メールで
お知らせ下さい。
原文の著作権は XFree86 プロジェクト社にあります。この和訳の著作権は 
XFree86 プロジェクト社と岡本　一幸にありますが、この和訳の不具合は私に、
電子メールで送って下さい。
<verb>
$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Japanese/Linux.sgml,v 3.3 1995/08/30 21:42:23 dawes Exp $
</verb>
<hrule>
&lsqb;EOF&rsqb;
</article>
