BSD/OS 2.0 用 XFree86 3.1.2 に関する README Hans Nasten 24 July 1995 The X Japanese Documentation Project 8 February 1999 ____________________________________________________________ 目次 1. XFree86 とその入手方法について 2. このドキュメントに対するバグ報告 3. バイナリのインストール 4. xdm (ディスプレイマネージャ)のインストール 5. ハードウェアに応じた X の設定 6. X の実行 7. XFree86 配布物の再構築 8. 新しい X クライアントの構築 9. BSD/386 1.1 の場合のフレームバッファへのリニアアクセス ______________________________________________________________________ このドキュメントの内容は古くなっています 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 BSD/OS 2.0 用バイナリは以下の場所から入手できます: ftp://ftp.XFree86.org/pub/XFree86/current/binaries/Bsdi 古いバージョンの BSD/OS を使っている場合には、ソースから配布物を構築し なければなりません。BSD/386 1.0, 1.1 上での配布物の構築のテストは行っ ていませんが、正しく動作すると思います。古い BSD/OS のリリースでの構築 で問題が起きた場合には、互換でない部分を修正できるよう我々にお知らせく ださい。構築がうまくでき、できたバイナリを共有したい場合には、Bsdi の メーリングリストでお知らせください。バイナリは BSD/OS 2.0 と一緒に配布 されている gcc 2.6.3 を使って構築されています。一般の gcc のソースコー ドを使って構築した gcc コンパイラを使ってソースコードから配布物を構築 した場合、数値コプロセッサを搭載していない 386/486 マシン上ではバイナ リの実行で問題が起こるかもしれません。 2. このドキュメントに対するバグ報告 このファイルに関するコメントや提案があれば nasten@Everyware.SE (Hans Nasten) または XFree86@XFree86.org まで電子メールを送ってください。文 書を修正します。 3. バイナリのインストール バイナリ配布物はたくさんの gzip で圧縮された tar アーカイブで構成され ています。このアーカイブには実行ファイル、サーバ、フォント、ライブラ リ、インクルードファイル、オンラインマニュアル、設定ファイル、サーバリ ンクキットが含まれています。全ての tar アーカイブは / をデフォルトディ レクトリとして root ユーザで展開しなければなりません。全ディストリビュ ーションでディスクを 40MB 強必要とします。ファイル名は CD-ROM の規約と 互換になるように変換されています。 多くのクライアントがX11R6 配布物から `contrib' 領域に移された点に注意 してください。しかし、これらは今でも XFree86 バイナリ配布物と一緒に配 布されています。 アーカイブの内容を以下に示します: 必須: X312doc.tgz READM と XFree86 固有のオンラインマニュアル X312bin.tgz 実行可能な X クライアントアプリケーション全て X312fnts.tgz キリル文字フォントを除く全てのフォント X312lib.tgz 実行時に必要なデータファイル ハードウェアに応じて、以下のうち最低 1 つを選んでください: X312SVGA.tgz Super VGA カード用の 8 ビット pseudo-color X サーバ X312VG16.tgz VGA, SVGA カード用の 4 ビット pseudo-color X サーバ X312Mono.tgz 白黒 X サーバ X3128514.tgz IBM 8514/A とその互換ボード用の X サーバ X312AGX.tgz AGX ボード用の X サーバ X312Ma8.tgz ATI Mach8 ボード用の X サーバ X312Ma32.tgz ATI Mach32 ボード用の X サーバ X312Ma64.tgz ATI Mach64 ボード用の X サーバ X312P9K.tgz P9000 ベースのボード用の X サーバ X312S3.tgz S3 ベースのボード用の X サーバ X312W32.tgz ET4000/W32, ET6000 ベースのボード用の X サーバ 無くても構わないもの: X312fsrv.tgz フォントサーバとそのオンラインマニュアル X312cfnt.tgz キリル文字フォント X312prog.tgz include/X11 ヘッダファイルと、他の X アプリケーションのコンパ イルする際だけに必要なスタティックライブラリ X312man.tgz オンラインマニュアル全て X312link.tgz サーバ再設定キット 初めてインストールするのであれば、全てのパッケージをインストールすれば 安全です。最小インストールとしては、doc, bin, fnts, lib と X サーバ 1 つが必要です。 アーカイブを展開してインストールする手順は以下です: 1. X の配布物を置くためのインストール先ディレクトリを何か作ります。 /usr/X11R6 が推奨されていますが、(筆者のマシンのように)このパーティ ションがいっぱいであれば、単に別のディレクトリを作り、 /usr/X11R6 からこの場所へシンボリックリンクを張ってください。 つまり、筆者のマシンでは以下の操作を行いました: % cd /usr/local % mkdir X11R6 % ln -s /usr/local/X11R6 /usr/X11R6 2. アーカイブを展開し、`umask' 値 022 を使うために root としてログイン しなければなりません。umask 値を設定するには `umask 022' と入力しま す。注意: 正しい umask 値を使い、`root' ユーザでとしてファイルを展 開しなかった場合、XFree86 3.1.2 を実行できないことがあります。X サ ーバは root ユーザにしか与えられていない特殊な権限を必要とします。 また、アーカイブを展開する前には / ディレクトリに cd しなければなり ません。 3. /usr/X11R6/bin にビデオカードに合ったサーバを指す、 `X' という名前 のシンボリックリンクを作ります。ハードウェアに関する詳しいことにつ いては、オンラインマニュアルの XF86_* を参照してください。例え ば、ET400 ベースの SVGA カードを使っている場合は、以下のような操作 を行います: cd /usr/X11R6/bin rm -f X ln -s XF86_SVGA X 注意: lib/X11/fonts にあるフォントファイルは展開する必要はありません。 それでも展開したければ、展開の後に各ディレクトリで `mkfontdir' を実行 するのを忘れないでください。 4. xdm (ディスプレイマネージャ)のインストール ディスプレイマネージャを使うと PC が X 端末みたいに見えます。つまり、X 上で動作するログインスクリーンが提供されます。ディスプレイマネージャを 起動するには、コンソールから root でログインし、 `xdm -nodaemon' と入 力してください。 コンソールの getty を無効にし、かつ以下のコードを /etc/rc.local に追加 することで、システム起動時に自動的に xdm を 起動することができます。 if [ -x /usr/X11R6/bin/xdm ]; then echo -n ' xdm'; /usr/X11R6/bin/xdm fi コンソールの getty を無効にするには、/etc/ttys ファイル内のコンソール のエントリを `on' から `off' に変更します。 console "/usr/libexec/getty std.9600" ibmpc3 off secure 5. ハードウェアに応じた X の設定 XF86Config は使っているモニタやビデオカード、マウスの種類を X サーバに 知らせます。必ず XF86Config を作り、使っている特定のハードウェアをサー バに知らせなければなりません。 XFree86 3.1 以降のリリースでは、設定ファイルのフォーマットが新しくなっ ています。オンラインマニュアル XF86Config と一般的なインストール手順に 関する INSTALL ファイルを参照してください。 XFree86 2.x 用の Xconfig ファイルがあれば、reconfig コマンドを使って Xconfig ファイルの一部を新しいフォーマットに変換してください: # reconfig XF86Config オンラインマニュアルの XF86Config とテンプレートとして使える XF86Con- fig.sample に従って、残りの部分を補ってください。 ハードウェアを壊さないようにするため、サーバはユーザのホームディレクト リの XF86Config は参照しないようになりました。しかし、このファイルとし ては /etc/XF86Config, /usr/X11R6/lib/X11/XF86Config.hostname, /usr/X11R6/lib/X11/XF86Config のいずれかが必要です。 ハードウェアについては以下の情報が必要です: o マウスの種類、ボーレート、/dev のエントリ o ビデオカードのチップセット (例: ET4000, S3 等) o モニタの同期周波数 マウスが接続されているデバイスを見つける最も簡単な方法は、 `cat' や `kermit' を使ってマウスの出力を見ることです。マウスを接続し、マウス を動かしたりクリックしたときに生成される出力を確認するだけです: % cat < /dev/tty00 これで正しいマウスデバイスが分からなければ、次に `dmesg|grep com' を 使ってブート時に検出されたデバイスのリストを取り出しましょう。 % dmesg|grep com com0 at isa0 iobase 0x3f8 irq 4 com0 は /dev/tty00 に対して使われるハードウェアポートで、com1 は /dev/tty01 に対して使われるものです。画面のサイズやモニタ上での位置を うまく調整しようと考えているならば、モニタのマニュアルに書かれている同 期周波数に関する仕様が必要です。 6. X の実行 X を実行するにはメモリが最低 8MB 必要です。サーバ、ウィンドウマネー ジャ、 xterm でメモリを 4MB 使います。メモリが 4MB のシステムでは、カ ーネルや数メガバイトの空きメモリを期待する gcc のような他のアプリケー ションの分のメモリがほとんど残りません。 初めてのユーザが X Window を起動するための最も簡単な方法は、 ``startx >& startx.log'' を実行することです。X サーバが画面表示を引き継ぐため、 エラーメッセージはリダイレクトしないと無くなってしまいます。 X から抜けるためには、コンソールになっている xterm で ``exit'' と入力 します。ホームディレクトリに .xinitrc, .xserverrc, .twmrc ファイルを作 ることにより、X をカスタマイズすることができます。これらのファイルにつ いては、オンラインマニュアルの xinit と startx の説明を参照してくださ い。 7. XFree86 配布物の再構築 サーバリンクキットを使うと、ディスクをできるだけ使わずに X サーバだけ を再構築することができます。サーバリンクキットを展開し、site.def を適 切に修正し、`./mkmf' と `make' を実行してサーバをリンクしてください。 詳しくは /usr/X11R6/lib/Server/README を参照してください。 ソース配布物の展開と構築の手順については /usr/X11R6/lib/X11/etc/INSTALL を参照してください。構築中にソース、オ ブジェクト、バイナリのために必要なディスクの空き容量は約 250MB です。 コンパイルの前には xc/config/cf/xf86site.def を編集して、配布物を設定 しなければなりません。ソースをコンパイルするには make World を xc ディレクトリで実行します。 8. 新しい X クライアントの構築 新しいクライアント(X のアプリケーション)を作る最も簡単な方法は、 Imakefile がソースに付属していれば xmkmf を使うことです。 ``xmkmf'' を 実行して Makefile を作り、必要に応じて設定を確認し、それから ``make'' を実行します。オンラインマニュアルも追加インストールした場合には、必ず ``makewhatis /usr/X11R6/man'' を実行し、whatis.db を更新してください。 cc がコンパイル時に `Virtual memory exhausted' というメッセージを出す のを避けるため、データサイズとスタックサイズの上限を増やしてくださ い(csh の場合は、`limit datasize 32M' と `limit stacksize 16M' を入力 します)。 注意: XFree86 2.1 以降、シンボル ``__386BSD__'' は、コンパイラによって も X の設定ファイル経由でも定義されないようになりました。クライアント を *BSD システムに移植するときには、本当に BSD 特有のコードに対しては シンボル ``BSD'' を使ってください。このシンボルの値を使って異なる BSD リリースを区別することができます。例えば、Net-2 以降のリリース専用のコ ードの場合には以下のように記述します。 #if (BSD >= 199103) このシンボルを確実に正しく定義するため、このシンボルが必要なソースでは をインクルードしてください。 XFree86 3.1.1 以降では *BSD システム用のシンボル CSRG_BASED が定義されている点に注意してくださ い。 のインクルードを保護するために、これを使うべきです。 i386 用に移植された BSD のうち特定のものの専用コードの場合には、 FreeBSD ならば __FreeBSD__ を、 NetBSD ならば __NetBSD__ を、 OpenBSD ならば __OpenBSD__ を、 386BSD ならば __386BSD__ を、 BSD/OS ならば __bsdi__ を使ってください。 9. BSD/386 1.1 の場合のフレームバッファへのリニアアクセス 普通の BSD/386 1.1 カーネルには、フレームバッファを(バンク切替えでな く) リニアメモリとして高位メモリに mmap しようとすると問題が起きます。 このパッチを当てると、/sys/i386/isa/vga.c での、フレームバッファのリニ アモードでの mmap を無効にするチェックが行われなくなります。新しいカー ネルの構築の手順については、BSD/386 1.1 のリリースノートを調べてくださ い。このパッチは BSD/OS 2.0 では必要ありません。 o 以下のパッチを別ファイルとして保存します。 o /sys/i386/isa に cd します。 o ``patch -p <パッチファイル'' を実行して、パッチを適用します。 o 新しいカーネルを構築・インストールします。 o リブートします。 vga.c に対するパッチは以下です: *** vga.c.orig Sun Dec 19 09:35:01 1993 --- vga.c Mon Oct 24 01:38:44 1994 *************** *** 159,165 **** #if 0 if (off + NBPG > vgap->vga_mem_size) return (-1); ! #else if (off + NBPG > IOM_END) return (-1); #endif --- 159,165 ---- #if 0 if (off + NBPG > vgap->vga_mem_size) return (-1); ! /*#else*/ if (off + NBPG > IOM_END) return (-1); #endif $XFree86: xc/programs/Xserver/hw/xfree86/doc/Japanese/README.Bsdi,v 1.1.2.2 1999/11/26 15:23:03 hohndel Exp $ $XConsortium: Bsdi.sgml /main/8 1996/10/27 11:05:51 kaleb $