<!DOCTYPE linuxdoc PUBLIC "-//XFree86//DTD linuxdoc//EN">
<article>

<!-- TitleS information -->

<!--
<title>README for XFree86 3.1 on Mach
-->
<title>Mach 用 XFree86 3.1 に関する README
<author>Robert Baron
<date>17 December 1994
<trans>The X Japanese Documentation Project
<tdate>7 February 1999


<!-- Table of contents -->
<toc>

<!-- Begin the document -->

<!--
<sect>README for XFree86 3.1 on Mach<p>
-->
<sect>Mach 用 XFree86 3.1 に関する README<p>

<!--
<bf>NOTE:</bf>  THIS TEXT WILL LOOK A LOT LIKE THE README.MACH FOR XFREE86 2.1,
BECAUSE NOT MUCH HAS CHANGED FROM THE MACH OS PERSPECTIVE.  ON THE
OTHER HAND, THERE ARE SIGNIFICANT DIFFERENCES IN THE BUILD INSTRUCTIONS.
BE CAREFUL TO FOLLOW THEM.<p>
-->
<bf>注意:</bf>このテキストは XFree86 2.1 の README.Mach によく似ていま
す。というのも、Mach OS という立場から見ると変わっている部分があまりな
いからです。一方、構築手順は大きく変わっています。手順に従う時には注意
してください。

<!--
All XFree86 client binaries should work with not only the Mach 2.5
kernel but also the Mach 3.0 kernel.  Mach 2.5 kernels should support
both the traditional SVGA/VGA servers and the newer accelerator
servers.  The Mach 3.0 kernel MK83 has a fix necessary for Mach 3.0 to
support the new accelerator servers and for SuperProbe; this change
allows the full 64K of I/O ports to be accessed.  <bf>THUS, IF YOU USE
MACH 3.0, YOU MUST RUN MACH 3.0 Kernel RELEASE MK83 OR LATER TO USE
ANY ACCELERATOR SERVER</bf>.  The XF86_SVGA server, XF86_VGA16 server, and
XF86_Mono server should still continue to function under the older
Mach 3.0 kernels.  Note: the latest SuperProbe can be used with older
Mach 3.0 kernels by specifying the command line option <tt>-no16</tt>.<p>
-->
全ての XFree86 のクライアントのバイナリは、Mach 2.5 カーネルだけでなく、
Mach 3.0 カーネルでも動作するはずです。Mach 2.5 カーネルは従来の 
SVGA/VGA サーバと新しいアクセラレータサーバを両方サポートしています。
Mach 3.0 カーネルである MK83 では、Mach 3.0 に新しいアクセラレータサー
バをサポートさせるためと、SuperProbe を使うためには変更が必要です。こ
の変更を行うと、完全 64KB の I/O ポートにアクセスできます。
<bf>したがって、Mach 3.0 を使う場合、アクセラレータサーバを使うために
はリリース MK83 以降の Mach 3.0 カーネルを使わなければなりません</bf>。
XF86_SVGA サーバ、XF86_VGA16 サーバ、 XF86_Mono サーバは古い Mach 3.0 
カーネルでもまだ機能するはずです。注意: コマンドラインオプション
<tt>-no16</tt> を指定すると、古い Mach 3.0 カーネルでも最新の 
SuperProbe を使うことができます。<p>

<!--
Autodetection of SVGA clocks will not work at all with the Mach 3.0
kernel; the clocks must be specified in the <tt>XF86Config</tt> file.  Mach 2.5
kernels can compute the clocks correctly.  (So you might need to use
Mach 2.5 to get the data for the clock line.)  Autodetection of the
SVGA chipset requires Mach 2.5 release X142E or later, or Mach 3.0
release MK76 or later.  Alternatively, you can specify a Chipset line
in the <tt>XF86Config file</tt>.<p>
-->
SVGA のクロック値の自動検出は Mach 3.0 カーネルでは全く動作しません。
クロック値は <tt>XF86Config</tt> ファイルで指定しなければなりません。
Mach 2.5 カーネルでは正しいクロック値を計算することができます。(したがっ
て、クロック行用のデータを得るためには Mach 2.5 を使う必要があるかもし
れません。) SVGA チップセットを自動検出するためには、リリース X142E 以
降の Mach 2.5 カーネルか、MK76 以降の Mach 3.0 カーネルが必要です。自
動検出を行わずに、<tt>XF86Config file</tt> ファイルに Chipset 行で指定
することもできます。<p>

<!--
Lastly, only the ATI Mach32 Accelerator server (<tt>XF86_Mach32</tt>) has been
extensively tested under Mach 3.0.  It works reasonably and the OS
intensive features, like linear memory (non-bank switched), seem to
work fine.  An S3 (801) board on an ISA bus has been tested and also
seems to work.  We have not checked the non-banked memory feature on
S3 or other cards.<p>
-->
最後になりますが、Mach 3.0 を使って色々なテストを行ったのは ATI Mach32 
アクセラレータサーバ(<tt>XF86_Mach32</tt>)だけです。このサーバはうまく
動作し、リニアメモリ(バンク切り替え無しのメモリ)等の OS への要求が大き
い機能もうまく動作するようです。ISA バス用の S3(801)ボードのテストも行
われていますが、うまく動作するようです。S3 やその他のカードでは、非バ
ンク切り替えメモリ機能の動作確認は行っていません。

<!--
<sect>USING AND CONFIGURING THE INSTALLED BINARIES<p>
-->
<sect>インストールされたバイナリの利用と設定<p>

<!--
By default, the CMU BINARY DISTRIBUTION obtained via sup is installed
in <tt>/usr/X11R6</tt> make sure you have enough room for it (about 45Meg).
The previous server for XFree86 2.1 was installed in <tt>/usr/misc/.X11</tt>;
thus you can easily keep both servers around.<p>
-->
デフォルトでは、sup 経由で取得した CMU バイナリ配布が 
<tt>/usr/X11R6</tt> にインストールされます。ディスクに十分な余裕(約 
45MB)があることを確かめてください。
<!-- ここの sup って何でしょ? 何かのツール? -->
XFree 2.1 用の古いサーバは <tt>/usr/misc/.X11</tt> にインストールされ
ています。したがって、両方のサーバを共存させることは簡単にできます。<p>

<!--
Mouse selection for Mach is different from that described in the 
<tt/XF86Config/
manual entry.  The Pointer Device entry in <tt/XF86Config/ is ignored.  The
mouse device is always <tt>/dev/mouse</tt>.<p>
-->
Mach におけるマウスの選択方法は、オンラインマニュアルの 
<tt/XF86Config/ のエントリに書かれている方法と違います。
<tt/XF86Config/ の Device セクションの Pointer エントリは無視されます。
マウスデバイスは必ず <tt>/dev/mouse</tt> になります。<p>

<!--
Mach supports several kinds of external mice, the logitech three
button mouse, the microsoft two button mouse, the PS2 mouse, and the
logitech mouseman mouse.  We do not support any kind of bus mouse.  The
way you indicate the mouse type and com port is with the mouse device
minor.  The value you set the minor to is computed by the formula:<p>
-->
Mach は何種類かの外付けマウスをサポートしています(Logitech の 3 ボタン
マウス、Microsoft の 2 ボタンマウス、PS/2 マウス、Logitech MouseMan マ
ウス)。バスマウスは全くサポートしていません。マウスの種類と COM ポート
を指定するには、マウスデバイスのマイナー番号を使います。マイナー番号に
設定する値は次の公式を使って計算します:<p>
<!--
<quote>
	&lt type &gt * 8 + &lt com port &gt
</quote>
-->
<quote>
	&lt; タイプ &gt; * 8 + &lt; COM ポート &gt;
</quote>
<!--
&lt com port &gt is 0, or 1 or &hellip; depending on which com port you plug your
mouse into.  (Some architectures prefer to make com0 the modem line.)<p>
-->
&lt; COM ポート &gt; の値は 0, 1, &hellip; であり、これはマウスを接続
した COM ポートによって決まります。(アーキテクチャに寄っては、COM0 に
はモデムを接続した方がよいものもあります。)<p>
<!--
<quote>
&lt type &gt is:<p>
	0 	for logitech mouse<p>
	1	for microsoft mouse<p>
	2	for ps2 mouse<p>
	3	for no real mouse at all<p>
	4	for logitech mouse man (M+ or V type)<p>
</quote>
&lt; タイプ &gt; は以下のようになります:<p>
	0 	Logitech マウス<p>
	1	Microsoft マウス<p>
	2	PS/2 マウス<p>
	3	実際にはマウスが繋がっていない場合<p>
	4	Logitech MouseMan(タイプ M+ または V)<p>
-->
<!--
We have implemented a neat hack for notebooks so that they don't have
to be saddled with a HUGE external mouse.  Scroll lock toggles a mode
wherein "seldom used 'function keys'" are used to represent mouse
actions.  F1, F2, F3 are the left, middle, and right mouse.  The first
key stroke represents a down click and the second key stroke
represents an up click for the mouse button.  Then the up down, right,
left, arrow keys actually move the mouse AND if you have a standard
pad with home, pageup, end, and pagedown filling in the square around
the up, down, right, and left arrow keys then the former set do the
obvious and move the mouse along the diagonals.  Try it &hellip;
Note: whereas most notebooks these days do have an integral mouse, they
typically provide only two buttons.  Thus this feature still is useful
for just using F1, F2, and F3 for accessing three mouse buttons.<p>
-->
作者らはノート PC 用に便利なハックをしてあり、<em/でかくて邪魔な/外付
けマウスを付けなくても良いようになっています。Scroll Lock キーによって、
「滅多に使わない『ファンクションキー』」を使ってマウスの動作を示すモー
ドがトグルするようになっています。F1, F2, F3 はそれぞれマウスの左、中、
右ボタンです。1 度キーを押すとクリックしてマウスのボタンを押したことに
なり、再びキーを押すとボタンを離したことになります。それから、上下左右
の矢印キーで実際にマウスが動き、かつ上下左右の矢印キーの周囲斜め方向に 
Home, PgUp, End, PgDn キーがある標準キーパッドが付いている場合には、お
分かりかと思いますが、これらのキーはマウスを斜め方向に動かします。試し
てみてください&hellip;
注意: 最近のノート PC のほとんどには内蔵マウスが付いていますが、普通は
ボタンが 2 つしかありません。したがって、マウスの 3 つのボタンにアクセ
スするために F1, F2, F3 キーを使うだけの場合は、この機能は現在でも有効
です。<p>

<!--
<sect>ACKNOWLEDGMENT<p>
-->
<sect>謝辞<p>

<!--
<bf>Elliot Dresselhaus</bf> did the initial work of converting the SCO only
driver to work under Mach2.5.  <bf/Ernest Hua/ added support for Mach's
unique way of treating the mouse.  <bf/Joel Jacobson/ tested the release to
make sure it built at sites other than CMU.  <bf/Robert V. Baron/ was
responsible for Mach3.0 support and feeding the Mach changes back to
the XFree86 development group.  Lastly, we are indebted to all the 
<bf/developers of XFree86/.<p>
-->
<bf>Elliot Dresselhaus</bf> さんは、SCO 専用のドライバを Mach 2.5 で動
作させるための移植の作業の最初の部分を行いました。<bf/Ernest Hua/ さん
は Mach 独自のマウスの処理方法のサポートを追加しました。
<bf/Joel Jacobson/ さんは、リリースが CMU 以外のサイトで構築できること
を確かめるテストを行いました。<bf/Robert V. Baron/ は Mach 3.0 のサポー
トの責任者で、Mach における変更点を XFree86 開発グループにフィードバッ
クしています。最後になりますが、我々は <bf/XFree86 の開発者/の皆さんに
感謝します。<p>

<!--
<sect>BUILDING THE DISTRIBUTION<p>
-->
<sect>配布物の構築<p>

<!--
Refer to <tt>xc/programs/Xserver/hw/xfree86/INSTALL</tt> for details about
building and configuring the distribution.<p>
-->
配布物の構築と設定の詳細については、
<tt>xc/programs/Xserver/hw/xfree86/INSTALL</tt> を参照してください。<p>

<!--
I build XFree86 under a Tahoe Binary Environment with a Mach 2.5
kernel and I make sure that the Mach 3.0 "release" include files and
libraries are not on my path.  The Mach interface (API) is slightly
different between the Mach 2.5 kernel and Mach 3.0 kernel, but the
Mach 3.0 kernel was designed to be upwardly compatible with Mach 2.5
kernel.  This means that if you build XFree86 with Mach 2.5 includes
and libraries (the default in the Tahoe Environment), the binaries will
run on either Mach 3.0 or Mach 2.5.<p>
-->
筆者は Mach 2.5 カーネルを使っている Tahoe Binary Environment で 
XFree86 を構築しました。Mach 3.0「リリース」のインクルードファイルとラ
イブラリはパスに入っていないことを確認しています。Mach のインタフェー
ス(API)は Mach 2.5 カーネルと Mach 3.0 カーネルでは少し違いますが、
Mach 3.0 カーネルは Mach 2.5 の上位互換となるように設計されています。
つまり、Mach 2.5 のインクルードファイルとライブラリ(Tahoe Environment 
のデフォルト)を使って XFree86 を構築すれば、バイナリは Mach 3.0 でも 
Mach 2.5 でも動作します。<p>

<!--
If you choose to build with the Mach 3.0 headers and libraries, the
applications will only work with the Mach 3.0 kernel.  The Mach kernel
calls made in some of the <tt>vga*/*/*driver.c</tt> and SuperProbe use the
Mach 2.5 calls names.  To build with Mach 3.0 these latter few Mach
2.5 dependencies must be changed.<p>
-->
Mach 3.0 のヘッダファイルとライブラリで構築することにした場合は、アプ
リケーションは Mach 3.0 カーネル上でしか動作しません。
<tt>vga*/*/*driver.c</tt> のいくつかと SuperProbe で行われている Mach 
のカーネルコールは、Mach 2.5 のコール名を使っています。Mach 3.0 でこれ
らの構築を行うためには、これらのいくつかある Mach 2.5 への依存部分を変
更しなければなりません。

<!--
There are several different Mach Operating Systems available.  One is
distributed by Mt.Xinu.  The others are distributed by CMU; CMU
distributes two different OS's; Mach 2.5 - a monolithic kernel and
Mach 3.0 a micro kernel with Unix as a server.  Both OS's from CMU use
the same set of binaries which were developed from the BSD4.3 Tahoe
release.  (Note the Mt.Xinu system uses a later "generation" of
application programs.  Lastly, the environment used internally at CMU 
is still different from what is distributed externally.  This environment
supports AFS and Kerberos and &hellip;)  The CMU Tahoe environment uses a
gcc 1.36 compiler with a bsd derived cpp (not __STDC__); the Mt.Xinu
system uses gcc 1.37.<p>
-->
入手可能な Mach オペレーティングシステムには、異なるものがいくつかあり
ます。そのうちの 1 つは Mt.Xinu によるものです。他には CMU が配布して
いるものがあります。CMU は異なる 2 つの OS を配布しています。
これが Mach 2.5 (モノリシックなカーネル)と Mach 3.0(Unix をサーバとし
て使うマイクロカーネル)です。CMU の OS はどちらも、BSD4.3 Tahoe リリー
スから開発した同じバイナリのセットを使います。(Mt.Xinu システムは後の
「世代」のアプリケーションプログラムを使う点に注意してください。
最後に、CMU 内部で使われている環境はまだ外部で配布されているものとは異
なります。この環境は AFS や Kerberos 等をサポートしています。) CMU
Tahoe 環境では gcc 1.36  コンパイラを BSD 由来の cpp (__STDC__ ではあ
りません)と組み合わせて使います。Mt.Xinu システムは gcc 1.37 を使いま
す。<p>

<!--
We do not build XFree86 under all these systems, just one &ndash; CMU Tahoe
environment distributed with Mach 2.5.  It should be possible to
build XFree86 using any application environment and with either Mach
2.5 or Mach 3.0.  Please let us know of any difficulties.
-->
筆者らはこれら全ての環境で XFree86 を構築したわけではなく、Mach 2.5 と
一緒に配布されている CMU Tahoe 環境だけを使っています。どんなアプリケー
ション環境を用いても、Mach 2.5 でも Mach 3.0 でも XFree86 を構築するこ
とはできるはずです。難しい点があればお知らせください。
<!--
<tscreen><verb>
++Some changes are necessary to the Original Tahoe environment to build++
++X11R6.  A few "new" functions are called and were thus added to      ++
++/lib/libc.a(mbtowc.c, putenv.c, strdup.c, and strtol.c) and a few old++
++ header files were modified to guard against multiple inclusions     ++
++(/usr/include/{time.h,utmp.h}).  These three files should be         ++
++dated May 31 1994; if they are not, "sup" to get the latest copies.  ++
++The X11R6 build was done with the gcc 2.3.3 compiler that is shipped ++
++with Mach 3.0.  You probably want to use this gcc, or maybe even get ++
++a later version.  THERE IS ONE DEPENDENCY ON THE COMPILER IN         ++
++xc/config/cf/mach.cf; CPP IS SPECIFIED AS:			       ++
++#define CppCmd	/usr/mach3/lib/gcc-lib/i386-mach/2.3.3/cpp     ++
++#define PreProcessCmd	/usr/mach3/lib/gcc-lib/i386-mach/2.3.3/cpp     ++
++THIS ASSUMES THAT THE COMPILER AND MACH3 "RELEASE" ARE ROOTED AT     ++
++/usr/mach3.  IF YOU DO NOT FOLLOW THIS PRACTICE OR USE ANOTHER       ++
++COMPILER, YOU MUST CHANGE THESE TWO LINES ACCORDINGLY.  Before you   ++
++start the compilation you must type:				       ++
++	limit datasize unlimited				       ++
++Two of the .c files (lib/X11/StrKeysym.c and			       ++
++programs/Xserver/XIE/mixie/fax/faxtabs.c) generate intermediaries    ++
++that exceed the default limit of 6Meg for data.  Lastly, if you are  ++
++building the Local CMU Environment make sure that /usr/cs/include is ++
++NOT on your CPATH.						       ++
</verb></tscreen>
-->
<tscreen><verb>
++XFree86 を構築するには、オリジナルの Tahoe 環境を何ヶ所か変更する ++
++必要があります。いくつかの「新しい」機能が呼び出されるので、      ++
++/lib/libc.a(mbtowc.c, putenv.c, strdup.c, strtol.c)に追加されてお ++
++り、多重インクルードを防ぐためにいくつかの古いヘッダファイルが変更++
++されています(/usr/include/{time.h,utmp.h})。これら 3 つのファイル ++
++の日付は「May 31 1994」のはずです。そうでない場合には、"sup" を   ++
++行って最新版を入手してください。XFree86 の構築は Mach 3.0 と一緒に++
++出されている gcc 2.3.3 コンパイラで行われました。たぶんこの gcc を++
++使うか、最新版を使いたいと思うでしょう。xc/config/cf/mach.cf には ++
++コンパイラに依存する部分が 1 ヶ所あります。cpp を次のように指定し ++
++てください:                                                       ++
++#define CppCmd	/usr/mach3/lib/gcc-lib/i386-mach/2.3.3/cpp  ++
++#define PreProcessCmd	/usr/mach3/lib/gcc-lib/i386-mach/2.3.3/cpp  ++
++ここでは、コンパイラと Mach3 「リリース」のルートディレクトリが   ++
++/usr/mach3 であるものと想定しています。この習慣に従っていない場合 ++
++や、別のコンパイラを使っている場合には、それに合わせてこれらの 2  ++
++行を変更してください。コンパイルを始める前には                    ++
++	limit datasize unlimited				    ++
++を実行しなければなりません。2 つの .c ファイル(lib/X11/StrKeysym.c++
++と programs/Xserver/XIE/mixie/fax/faxtabs.c)については、デフォルト++
++の 6MB を越えるサイズの中間ファイルが生成されるためです。最後にな ++
++りますが、Local CMU Environment を構築する場合には、              ++
++/usr/cs/include がパスに<em/入っていない/ことを確認してください。 ++ 
</verb></tscreen>
<!--
The normal XFree86 distribution makes all the servers in bin/ setuid
root; this is not necessary.  In Mach, access to I/O privileges is not
controlled by root; rather it is controlled by <tt>/dev/iopl</tt>.  What is
necessary for Mach is that the X servers be able to open <tt>/dev/iopl</tt>
 for
read/write.  There are many ways to achieve this effect.
-->
通常の XFree86 ディストリビューションでは、 bin ディレクトリ内の全ての
サーバが root に setuid されています。Mach では I/O へのアクセス権限を
管理するのは root ではなく <tt>/dev/iopl</tt> です。Mach の場合に必要
なのは、X サーバが <tt>/dev/iopl</tt> を読み書き可能でオープンできるこ
とです。これを実現する方法はたくさんあります。

<verb>
$XFree86: xc/programs/Xserver/hw/xfree86/doc/Japanese/sgml/Mach.sgml,v 1.1.2.2 1999/11/26 15:23:43 hohndel Exp $





$XConsortium: Mach.sgml /main/7 1996/02/21 17:45:27 kaleb $
</verb>

</article>
