LynxOS における XFree86 に関する README Thomas Mueller Last modified on: 15 November 1999 The X Japanese Documentation Project Last modified on: 21 December 1999 ____________________________________________________________ Table of Contents 1. XFree86 とその入手方法について 2. バイナリのインストール 3. XFree86 の実行 3.1 システム要件 3.2 システムのチューニング 3.2.1 チューニングできるパラメータ 3.2.2 Riva 128/Riva TNT ドライバ用の調整 SVGA サーバの nVidia ドライバ(Riva 128, TNT, TNT2)をお使いであれば、 /sys/lynx.os/uparam.h ファイル中の SMEMS パラメータの値を 10 から 20 に増やす必要があるでしょう。 3.2.3 pty の数を増やす 3.2.4 カーネルの構築 3.3 XFree86 におけるマウスのサポート 3.4 バスマウスのドライバ 3.5 ATC コンソールドライバと仮想端末切り替え 3.6 X サーバのデバッグ診断出力と仮想端末のその他の特性 4. XFree86 のオンラインマニュアルのインストール 5. XFree86 の Motif と組み合わせての利用 5.1 Motif のファイルのコピー 5.2 LynxOS x86 2.3.0 用の Motif ライブラリへのパッチ 5.3 X11R6 設定ファイルへのパッチ 5.4 Motif 設定ファイルへのパッチ 6. XFree86 配布物のコンパイル 6.1 必要なディスク容量 6.2 システム環境に対する変更点 (LynxOS x86) 6.3 make World 7. microSPARC と PowerPC 上での構築 7.1 microSPARC 用のコンソールドライバのパッチ 7.2 microSPARC サーバの既知のバグ 8. 日本語訳について ______________________________________________________________________ 1. XFree86 とその入手方法について XFree86 3.1.2 は X11R6.3 を Intel ベースの Unix のいくつかに移植したも のです。XFree86 は元々、 X386 1.2 という X11R5 と一緒に配布されていた X サーバでした。このリリースでは新しい機能がたくさん追加され、性能も改 善されていますし、バグもたくさん修正されています。このリリースは X コ ンソーシアムの X11R6 のソースコードへのパッチの形でも入手できますし、 各種アーキテクチャ用のバイナリ配布の形でも入手できます。 著作権表示には目を通してください。 XFree86 のソースコードは以下の場所から anonymous ftp で入手できます: ftp://ftp.XFree86.org/pub/XFree86/current XFree86 の LynxOS x86 用バイナリは以下の場所から入手できます: ftp://ftp.XFree86.org/pub/XFree86/current/binaries/LynxOS バイナリは `LynxOS x86 3.0.1' 上で構築されています。オブジェクトのフォ ーマットが変更されたため、このバイナリは 3.0.0 より古いバージョンの LynxOS では動作しません。 このバージョンの XFree86 の構築は、バージョン 2.4.0 以前の LynxOS でテ ストされています。LynxOS 2.4.0 上で構築したバイナリは、2.3.0 でもきっ と動作すると思います。 XFree86 は、 AT, microSPARC, PowerPC プラットフォーム用の LynxOS をサ ポートしています。現時点で X サーバが利用可能なのは AT と microSPARC プラットフォームです。AT 以外のプラットフォームにおける XFree86 の詳細 については、「``microSPARC と PowerPC 上での構築''」セクションを参照し てください。 XFree86 の FTP サーバ上に置いてないプラットフォーム用のバイナリが必要 であれば、筆者(tmueller@sysgo.de)に連絡してください。 コメントや提案があれば tmueller@sysgo.de (Thomas Mueller) または XFree86@XFree86.org に電子メールを送ってください。修正を行います。 2. バイナリのインストール 詳しいインストール手順については、リリースノート の「XFree86 3.3.6 の 導入」セクションを参照してください。 XF86Setup をインストールする予定ならば、X336prog もインストールする必 要があります。というのも、XF86Setup は X336prog からライブラリファイル をインストールした場合だけ満たされる、特定のファイル名パターンの存在を 確認するからです。 お使いのシステム上で XFree86 を動かすためには、プロセススタックの上限 を増やす必要があるかもしれません。インストールを始める前には /etc/startab を編集し、システムをリブートして、変更を有効にしましょ う。 また、環境変数 PATH に /usr/X11R6/bin が必ず含まれるようにしましょう。 LynxOS で XFree86 を実行する前に必要な設定ステップの詳しい情報について は、次の ``XFree86 の実行'' セクションを参照してください。 3. XFree86 の実行 このセクションでは、XFree86 をうまく動作させるために必要かもしれない LynxOS の環境に対する変更点を説明します。 ハードウェアに関する XFree86 の設定方法について詳しく知るには、 「XFree86 の設定を手早くする為の手引き」を読んでください。 3.1. システム要件 X を実行するためにはメモリが最低 16MB 必要です。実際のアプリケーション を実行したければ、32MB(以上)へのアップグレードを考えるべきです。 3.2. システムのチューニング 3.2.1. チューニングできるパラメータ XFree86 をうまく動作させるためには、システムのパラメータをいくつか変更 する必要があるかもしれません。 LynxOS 2.5.x と 3.0.x では、 #define X_WINDOWS という行を /sys/lynx.os/uparam.h に追加してください。 以前のバージョンの場合には、/usr/include/param.h を編集しなければなり ません: 調整可能 旧 新 USR_NFDS プロセスごとにオープンできるファイル数 20 64 NPROC タスクの数 50 150 NFILES システムがオープンできるファイル数 100 250 NINODES コア内の i-ノードの数 (NFILES と同じ数) QUANTUM プリエンプションまでのクロック数 64 20 CACHEBLKS キャッシュのメモリブロック数 202 >= 4096 新しい値は、LynxOS のドキュメントに OS 付属の X ウィンドウパッケージ用 として書かれている値です。 3.2.2. Riva 128/Riva TNT ドライバ用の調整 SVGA サーバの nVidia ドライ バ(Riva 128, TNT, TNT2)をお使いであれば、 /sys/lynx.os/uparam.h ファ イル中の SMEMS パラメータの値を 10 から 20 に増やす必要があるでしょ う。 3.2.3. pty の数を増やす xterm を何個も実行できるようにするためには、pty の数も増やさなければな りません。/sys/lynx.os/pty.cfg を /usr/X11R6/lib/X11/etc/pty.cfg で置 き換えることもできます。 3.2.4. カーネルの構築 PS/2 マウスやバスマウスの使用を考えている場合、カーネルの再構築の前に 以下のセクションを見てください。考えていない場合には、すぐにカーネルを 再構築してください: # cd /sys/lynx.os # make install # reboot -N 3.3. XFree86 におけるマウスのサポート XFree86 は PnP マウスをサポートしています(XFree86 におけるマウスのサポ ートも参照してください)。しかし、現在の LynxOS の TTY デバイスドライバ は TRS ラインで必要な操作を行うことができないので、LynxOS では PnP マ ウスのサポートは無効にされます。 バージョン2.4.0 以降の LynxOS x86 には PS/2 マウスドライバが入っていま す。このドライバはプロトコル変換を行うので、マウスの種類としては実際の マウスの種類に関係なく Microsoft を指定する必要があります。場合によっ ては、マウスのボタンが全くサポートされないこともあります。 LynxOS x86 3.0.1 patch #XXX に含まれる PS/2 マウスドライバはプロトコル 変換を行わないので、マウスの種類としては PS/2 を設定する必要がありま す。このドライバは拡張 PS/2 マウスもサポートしています。 3.4. バスマウスのドライバ Linux のバスマウスドライバを LynxOS に移植したものが /usr/X11R6/lib/X11/etc/BM-Lynx.shar にあります。このドライバをインスト ールするには、まず以下の操作で shar 形式のアーカイブを展開します: # cd / # bash /usr/X11R6/lib/X11/etc/BM-Lynx.shar 次に、インストールの続きと設定の注意について、/BMOUSE.Readme に書かれ ている注意に従ってください。 XFree86 の PS/2 マウスドライバは、LynxOS のパッチ 000055-00 をインスト ールしていなければ、LynxOS x86 2.4.0 に付属している MetroLink X 2.3.3.1 でも動作します。 3.5. ATC コンソールドライバと仮想端末切り替え XFree86 サーバは LynxOS のデフォルトのコンソールドライバでしか動作しま せん。代替品の vdt コンソールドライバを使っている人には残念なことです が。現時点では、サーバを起動した後の仮想端末切り替えはサポートされてい ません。 X サーバがキーボード入力のために使う空きのコンソールが 1 つ必要です。 したがって、/etc/ttys の 4 つの仮想端末のうち、少なくとも1 つを無効に しなければなりません。/dev/atc3 を無効にする例を示します: /dev/atc3:1:default:vt100at:/bin/login を /dev/atc3:0:default:vt100at:/bin/login ^ に変更します。 3.6. X サーバのデバッグ診断出力と仮想端末のその他の特性 XFree86 の X サーバは起動の間に大量の診断用の出力を標準エラー出力に出 力します。この出力は、サーバがコンソール初期化処理の特定の点に達した時 に消えてしまいます。サーバが生成した診断用の出力を解析したければ、標準 出力と標準エラー出力をリダイレクトしなければなりません。 X サーバの実行中は、他のコンソールへの出力は消えてしまいます。サーバが 終了した後は、他のコンソールの画面の内容はおかしくなり、想像できないよ うなもの(つまりランダム)になるかもしれません。 4. XFree86 のオンラインマニュアルのインストール LynxOS は cat で表示する方式のオンラインマニュアルを使っています。ド キュメント準備システムは、リアルタイムオペレーションシステムの重要な部 分では決してないため、まずは groff-1.09(以降)をインストールしなければ なりません。LynxOS 2.3.0 以降では、箱(あるいは、もっと便利な tar アー カイブ)から取り出してすぐにコンパイルできるはずです。 XFree98 のオンラインマニュアルは次のコマンドでインストールできます: make install.man XFree86 のオンラインマニュアル用のインデックスと whatis データベースは 自動的に生成されます。対象ディレクトリに whatis データベースやインデッ クスファイルが既にある場合は、sort/uniq で操作を行って、重複しているエ ントリを取り除かなければなりません: for i in 1 3 5 do rm -f /tmp/tmpfile sort /usr/X11R6/man/cat$i/LIST$i | uniq > /tmp/tmpfile mv /tmp/tmpfile /usr/X11R6/man/cat$i/LIST$i done sort /usr/X11R6/man/whatis | uniq > /tmp/tmpfile mv /tmp/tmpfile /usr/X11R6/man/whatis LynxOS 2.3.0 では、MANPATH 環境変数に /usr/X11R6/man を含めなければな りません。 bash の場合: MANPATH=$MANPATH:/usr/X11R6/man LynxOS 2.2.1 の man コマンドは MANPATH 環境変数を正しくサポートしてい ません。したがって、XFree86 のオンラインマニュアルを man コマンドが読 めるように、標準のオンラインマニュアルの場所(/usr/man/catx)にコピー(あ るいはリンク)しなければなりません。 for i in 1 3 5 do ln -s /usr/X11R6/man/cat$i/*.* /usr/man/cat$i cat /usr/X11R6/man/cat$i/LIST$i >> /usr/man/cat$i/LIST$i sort -o /usr/man/cat$i/LIST$i /usr/man/cat$i/LIST$i cat /usr/X11R6/man/cat$i/whatis$i >> /usr/man/whatis done 5. XFree86 の Motif と組み合わせての利用 LynxOS x86 2.3.0 と 2.4.0 付属の Motif ライブラリは、XFree86 のライブ ラリと組み合わせて使うこともできます。XFree86 と LynxOS の Motif をシ ステムにインストールした後に、以下の手順の概略にしたがってください。 5.1. Motif のファイルのコピー Motif のライブラリとユーティリティへのシンボリックリンクを /usr/X11R6 ディレクトリツリーに作らなければなりません。 ln -s /usr/bin/X11/uil /usr/X11R6/bin ln -s /usr/lib/libUil.a /usr/X11R6/lib ln -s /usr/lib/libMrm.a /usr/X11R6/lib ln -s /usr/lib/libXm.a /usr/X11R6/lib ln -s /usr/lib/X11/uid /usr/X11R6/lib/X11 ln -s /usr/include/Xm /usr/X11R6/include ln -s /usr/include/Mrm /usr/X11R6/include ln -s /usr/include/uil /usr/X11R6/include Motif の imake 設定ファイルは LynxOS の X ウィンドウパッケージに含まれ ています。これを /usr/X11R6 ディレクトリツリーにコピーしなければなりま せん。 cp /usr/lib/X11/config/Motif.* /usr/X11R6/lib/X11/config 5.2. LynxOS x86 2.3.0 用の Motif ライブラリへのパッチ XFree86 のライブラリは -mposix コンパイラオプションを使ってコンパイル されており、一方 LynxOS x86 2.3.0 付属の Motif のライブラリではこのオ プションを使っていません。この非互換性により、Motif の XmFileSelection ウィジェットは誤った(つまり POSIX)のディレクトリルーチンとリンクされて しまいます。この問題を回避するためには、ライブラリに以下のパッチを適用 します: cp /usr/lib/libXm.a /usr/X11R6/lib ar x /usr/X11R6/lib/libXm.a Xmos.o ar x /lib/libc.a directory.s.o ld -r -o x.o Xmos.o directory.s.o mv x.o Xmos.o ar r /usr/X11R6/lib/libXm.a Xmos.o このパッチは 2.3.0 以降のリビジョンの LynxOS では必要ありません。 5.3. X11R6 設定ファイルへのパッチ /usr/X11R6/lib/X11/config/lynx.cf を編集し、HasMotif の定義 #define HasMotif NO から #define HasMotif YES に変更します。 5.4. Motif 設定ファイルへのパッチ LynxOS の Motif に付属の Motif.tmplファイルを XFree86 で動作させるため には修正が必要です。UnsharedLibReferences への参照全てについて、最初の 引き数を UnsharedLibReferences(LIB, Arg2, Arg3) から UnsharedLibReferences(, Arg2, Arg3) に変更しなければなりません。 この変更は必ず、/usr/X11R6/lib/X11/config にコピーしたファイルに適用し てください。 6. XFree86 配布物のコンパイル XFree86 をソースから再構築しようとする前には、「XFree86 の構築」を読ん で、構築の手続きの詳細を調べてください。次のセクションでは、構築の手続 きの点から LynxOS 特有の注意を述べています。 6.1. 必要なディスク容量 現在は LynxOS 移植版の XFree86 では、共有ライブラリはサポートされてい ません。オンラインマニュアルも含めたバイナリの完全なインストールには、 約 90〜100MB のディスク容量が必要です。システムをコンパイルするには、 少なくとも空きディスク容量が 230MB 必要でしょう。 6.2. システム環境に対する変更点 (LynxOS x86) XFree86 の配布物をコンパイルする前には、システムを少し調整しなければな らないでしょう: LynxOS x86 2.5 o /lib/cpp という名前で、次のようなシェルスクリプトを作成します: #!/bin/sh /usr/lib/gcc-lib/i386-unknown-lynxos2.5/2.7-96q1/cpp \ -traditional "$@" AT 以外のプラットフォームでは、コンパイラ補助のプログラムのパスは異 なります。正しいパスは gcc -v を使って見つけることができます。次のコマンドで、/lib/cpp のファイル のモードを設定してください: # chown root /lib/cpp # chmod 755 /lib/cpp o /lib/liblynx.a を修正します。X サーバは、フレームバッファを自身 のメモリ空間にマップするために smem_create() システムコールを必 要とします。システムコールは liblynx ライブラリに、他の Lynx 固 有の呼び出しと一緒に入っています。これらの呼び出しは(残念ながら) libc の呼び出しと重複しています。混乱を少なくするために、 liblynx を以下のように変更しておくべきです: # mv /lib/liblynx.a /lib/liblynx.a.ORG # mkdir /tmp/xx; cd /tmp/xx # ar xv /lib/liblynx.a.ORG # ar rv /lib/liblynx.a *smem* # ranlib /lib/liblynx.a LynxOS x86 2.4 o XFree86 を構築するには CYGNUS GNU C コンパイラを使います。LynxOS 2.4.0 ではシェルスクリプト /CYGNUS.bash を実行して、環境に対して 必要な変更を行わなければなりません。 o /lib/cpp という名前で以下のようなシェルスクリプトを作成します: #!/bin/sh /cygnus/94q4-lynxos-x86/lib/gcc-lib/i386-lynx/2.6-94q4/cpp \ -traditional "$@" 将来のリリースでは CYGNUS のコンパイラ支援のプログラムに対して別の パスを使う可能性があります。正しいパスは gcc -v を使って見つけることができます。/lib/cpp のファイルモードを # chown root /lib/cpp # chmod 755 /lib/cpp を使って設定します。 LynxOS x86 2.3 これは実際にはテストされていませんが、2.4 向けに説明した手順は 2.3 にも適用できるはずです。 LynxOS x86 2.2.1 これは実際には全くテストされておらず、構築はどこかで失敗するで しょう。 o /lib/cpp という名前で次のようなシェルスクリプトを作成します: #!/bin/sh /usr/local/lib/gcc-cpp -traditional "$@" o LynxOS 2.2.1 のローダ /bin/ld は、X11R6 の Makefile で非常に多用 されている -L オプションをサポートしていません。この問題を回避す るためには、元の /bin/ld プログラムを置き換える、小さなラッパプ ログラムをインストールしなければなりません。以下の手順に従って、 これをインストールしてください: # cd xc/programs/Xserver/hw/xfree/etc # cc -o ld ld-wrapper.c # mv /bin/ld /bin/ld.org # mv ld /bin/ld # chmod 511 /bin/ld # chown root /bin/ld o システムのヘッダファイルを以下のように修正します: /usr/include/uio.h を #ifndef _UIO_H #define _UIO_H ... #endif で囲みます。 /usr/include/utmp.h を #ifndef _UTMP_H #define _UTMP_H ... #endif で囲みます。 /usr/include/unistd.h に extern int read(); を追加します。 6.3. make World ソース配布物から XFree86 を再構築しようとする前には、 XFree86 の構築を 読んでください。 次に make World を実行して、XFree86 をコンパイルします。数時間後には(たぶん XFree86 シ ステムがうまく構築され)、 make install を使ってソフトウェアをインストールすることができます。`make install' を実行する際には、スーパーユーザ(root)としてログインしていなければなり ません。必ず `make World' で使ったのと同じコンパイラ(LynxOS 2.3.0/2.4.0 では CYGNUS GNU-C)を使うように環境を設定してください。 LinkKit をインストールするには、 make install.linkkit を使ってください。LynsOS 2.2.1 では、プログラムはインストール時にスト リップされません。これは、インストールがファイルシステム境界にまたがっ た時に現われる strip プログラムの問題のせいです。 オンラインマニュアルのインストールについては、 ``XFree86 のオンライン マニュアルのインストール'' セクションを参照してください。 LynxOS x86 2.5.0 では、深くネストしたディレクトリで make の問題(コアダ ンプやハングアップ等)に出会うかもしれません。このような場合には、GNU make のバージョン 3.75 以上に更新してください。 7. microSPARC と PowerPC 上での構築 XFree86 3.3 は LynxOS microSPARC 上と LynxOS PPC 上でもコンパイルでき ます。microSPARC の場合は、X サーバは CG3 と CG6 カラーフレームバッ ファをサポートし、PPC の場合は現時点では X サーバは利用できませ ん。(2.5.0 以前のバージョンで)構築を始める前には、PATH 環境変数に入っ ているディレクトリのいずれかに、CYGNUS gcc から cc という名前へのシン ボリックリンクを作らなければなりません。 7.1. microSPARC 用のコンソールドライバのパッチ microSPARC 上で構築を行う前に は、xc/programs/Xserver/hw/sunLynx/patch.Console として用意されている コンソールドライバ用のパッチをインストールしなければなりません(2.5.0 以前のリビジョンの LynxOS の場合は xc/programs/Xserver/hw/sunLynx/patch.Console-2.4.0 を使ってください)。 このパッチは LynxOS オリジナルのドライバのちょっとしたバグを修正し、キ ーボードの種類の検出とキークリックの制御の機能を追加します。オリジナル のドライバのバックアップを生成し、パッチをインストールするには、以下の コマンドを実行します: # cd / # tar cf /sys/drivers/console.tar /sys/drivers/console # patch -p -E < xc/programs/Xserver/hw/sunLynx/patch.Console # cd /sys/drivers/console # make install # cd /sys/lynx.os # make install # reboot -a パッチをインストールしないことを選んだ場合には、 xc/config/cf/lynx.cf を編集し、SparcConsoleDefines の定義を #define SparcConsoleDefines -DPATCHED_CONSOLE から #define SparcConsoleDefines /* -DPATCHED_CONSOLE */ に変更しなければなりません。 7.2. microSPARC サーバの既知のバグ microSPARC 上で X サーバを初めて起動する際には、ポインタがマウスの動き にいくらか遅れて追従する(特にマウスをとても速く動かしている場合)ことに 注意してください。特定のウィンドウマネージャ(mwm 等)を使っている場合に は、ウィンドウの移動が正しく動作しない点にも注意してください。このよう な現象は、次にサーバを起動した時には起こらないはずです。 lynx.cf で有効にすれば白黒カード用のサーバが正しくコンパイルされます が、テストは全く行われていません(報告はお待ちしています)。 $XFree86: xc/programs/Xserver/hw/xfree86/doc/Japanese/README.LynxOS,v 1.1.2.3 1999/12/28 12:13:47 hohndel Exp $ $XConsortium: LynxOS.sgml /main/10 1996/10/28 05:13:07 kaleb $ 8. 日本語訳について 日本語訳は X Japanese Documentation Project が行いました( 翻訳(XFree86 3.3.3-3.3.6): 藤原輝嘉 , 校正: 金田浩司 )。問題 点の指摘やご意見は藤原までお願いします。