Solaris for x86 ユーザ向けの情報 David Holland 25 Feb 1998 The X Japanese Documentation Project 7 Feb 1999 ____________________________________________________________ 目次 1. XFree86 について 2. XFree86 3.3.3 のテストを行った Solaris for x86 のバージョン 3. Solaris x86 の仮想端末切り替えサブシステム 4. Solaris x86 で XFree86 を構築する際の注意 5. Solaris x86 で XFree86 を実行する際の注意 6. 既知のバグと Solaris x86 における回避方法 7. バグの報告について ______________________________________________________________________ 1. XFree86 について XFree86 は X116.3 を移植して Intel ベースの UNIX をいくつかサポートし たものです。XFree86 は元々、X11R5 と一緒に配布されていた X サーバであ る X386 1.2 でした。このリリースでは新しい機能をサポート、性能の改善と 共にバグ修正も多く行っています。このこのリリースは X コンソーシアムの コードに対するソース用パッチとしても入手できますし、多くのアーキテク チャ用のバイナリ配布もあります。 XFree86 のソースは以下のサイトから anonymous ftp で入手できます: ftp://ftp.XFree86.org/pub/XFree86/current XFree86 のソースの Solaris 用バイナリは以下のサイトから anonymous ftp で入手できます: ftp://ftp.XFree86.org/pub/XFree86/current/binaries/Solaris 2. XFree86 3.3.3 のテストを行った Solaris for x86 のバージョン XFree86 3.3.2 は以下のバージョンの Solaris で盛んにテストされました: o Solaris 2.5.1 for x86 o Solaris 2.6 for x86 3. Solaris x86 の仮想端末切り替えサブシステム 仮想端末サブシステムは、Solaris x86 のドキュメントが無く、サポートもさ れていない機能です。したがって、仮想端末の利用は読者の皆さん自身の責任 において行ってください。 Solaris の仮想端末は基本的に、Intel ベースの SVR4 仮想端末サブシステム とほぼ同様に動作します。しかし、以下に述べるようないくつかの制限があり ます。 まず最初に、Solaris 2.4 x86 システムで仮想端末を使う場合、必要なデバイ スを作成する必要があります。これは root になって行います。 まず chanmux デバイスのメジャー番号が 100 であることを確かめます: # grep -i chanmux /etc/name_to_major chanmux 100 # `chanmux' の後の数字が 100 以外であれば、仮想端末を作ろうとするのは即 刻止めて、仮想端末なしでやって行く方法を考えることをお勧めします。 この数字が 100 であれば、root ユーザで以下のコマンドを実行し、利用可能 な最大の数の仮想端末を作成します。 # cd /dev # mknod vt01 c 100 1 # mknod vt02 c 100 2 # mknod vt03 c 100 3 # mknod vt04 c 100 4 # mknod vt05 c 100 5 # mknod vt06 c 100 6 # mknod vt07 c 100 7 再設定のための起動は必要はありません。 次に、Solaris x86 のバージョン 2.1, 2.4 どちらのシステムの場合も、次 の行を inittab に追加して、仮想端末からログインできるようにします。 (注意: ここで間違ってはいけません。システムにログインできなくなってし まうかもしれません。) --------------------->ここから切り取る<----------------------------------------------- v1:234:respawn:/usr/lib/saf/ttymon -g -h -p "`uname -n` VT01 login: " -T AT386 -d /dev/vt01 -l console v2:234:respawn:/usr/lib/saf/ttymon -g -h -p "`uname -n` VT02 login: " -T AT386 -d /dev/vt02 -l console v3:234:respawn:/usr/lib/saf/ttymon -g -h -p "`uname -n` VT03 login: " -T AT386 -d /dev/vt03 -l console v4:234:respawn:/usr/lib/saf/ttymon -g -h -p "`uname -n` VT04 login: " -T AT386 -d /dev/vt04 -l console ---------------------->ここまで<----------------------------------------------- この行を設定すると、Alt-SysReq-F1 から Alt-SysReq-F4 までのキーを使っ て 4 つの仮想端末を有効にすることができます。 それからコマンド 'init q' を実行し、仮想端末をすぐに有効にします。 仮想端末の切り替えに使うキーは以下のようになります: Alt-SysReq-F1 から Alt-SysReq-F7 でそれぞれ仮想端末 1〜7 が 有効になります(仮想端末がアクティブな場合)。 Alt-SysReq-n で次のアクティブな仮想端末の画面が有効になりま す。 Alt-SysReq-p で前のアクティブな仮想端末の画面が有効になりま す。 Alt-SysReq-h でコンソールに戻ります。 仮想端末を使っている場合、X サーバが使うための空きの仮想端末を少なくと も 1 つ残しておかなければなりません。 Solaris x86 における仮想端末サブシステムの制限を以下に示します: 通常の 15 個ではなく、合計 8 個の仮想端末(通常の仮想端末 7個 + コンソ ール 1 つ)しか使えません。8 個全てを割り当てた状態で追加の仮想端末を割 り当てようとすると、システムがパニックしてしまいます。(このバグは Solaris 用 XFree86 の X サーバでは回避されています。) プログラミングの立場から言えば、仮想端末サブシステムはほぼ「AT&T Unix System V/386 Release 4 Integrated Software Development Guide」に書かれ ているように動くのですが、ioctl() の多くが壊れています。 4. Solaris x86 で XFree86 を構築する際の注意 1. 構築を行うために必要な修正の大部分は ~xc/config/cf/xf86site.def に おけるものです。 2. XFree86 では gcc と ProWorks をどちらもサポートしています。コンパイ ラは gcc-2.5.8 か gcc-2.7.2.3 が推奨されており、gcc-2.6.0 ではうま くいかないことがわかっています。また、 ~xc/config/cf/xf86site.def で HasGcc2 を正しく設定する必要があります。 また、お使いのバージョンの gcc が `sun' を予め定義していることを確 かめなければなりません。2.4.5 では定義されていないことがわかってい ます。必要に応じて、/usr/local/lib/gcc-lib/*/*/specs ファイルを編集 して *predefines: 行を修正してください。 注意: gcc でコンパイルしたスレッド対応の Xlib には少し問題がありま す。 98% はうまく動作するのですが、クライアントがときどきおかしなハ ングをすることがあります。特に xv-3.10 などの画像ビューアではこの問 題が顕著です。 gcc を使っている場合には、~xc/config/cf/sun.cf ファイルで ThreadedX を NO に設定することをお勧めします。ProWorks にはこの問題はありませ ん。 3. XFree86 を gcc で構築するためには、gcc と(無くても構いませんが) GNU binutils の c++filt が必要です。GNU binutils の gas と ld を使って はいけません。これらについては、Sun が用意したものを使いましょう。 XFree86 3.3.2 では、/opt/SUNWspro/bin ディレクトリ内に、それぞれ実 際の gcc, g++, c++filt コマンドを指す cc, CC, c++filt というシンボ リックリンクがをあるように設定する必要があります。 4. c++filt が無い場合や、c++filt を使うと make World で問題が起こる場 合には、~xc/config/cf/host.def ファイルで UseExportLists を NO に設 定する必要があります。 5. ProWorks を使って XFree86 配布をコンパイルする場合には、ProWorks の ツール群が使えるように PATH を適切に修正する必要があります。通常 は、 /opt/SUNWspro/bin がパスに入っていなければなりません。 6. /usr/ccs/bin は PATH の先頭に置かなければなりません。ここにあるユー ティリティの代替となる GNU のツールの一部は問題を起こすことが分かっ ています。したがって、これらのプログラムの /usr/ccs/bin 版は、他の どの GNU 版プログラムよりも前になければなりません。(特に、GNU 'ar' は構築中に動作しません。) 7. S3, Mach32 サーバの「メモリアパーチャ」機能を使いたい場合には、メモ リマップト I/O をサポートするために Solaris x86 のアパーチャドライ バをコンパイル・インストールする必要があります。このドライバは I128, P9000, Mach64 サーバでは必須です。 ~xc/config/cf/xf86site.def ファイルでは HasSolx86apertureDrv を YES に設定して、アパーチャドライバを有効にする必要があります。 Solaris 2.5 以降には、この機能を提供するシステムドライバ (/dev/xsvc)があります。このドライバはサーバが自動的に検出するので、 アパーチャドライバをインストールする必要はありません。 Solaris 2.1, 2.4 用に、このドライバのソースが ~xc/programs/Xserver/hw/xfree86/etc/apSolx86.shar にあります。ドラ イバの構築とインストールは割合簡単です。付属の README ファイルを参 照してください。 5. Solaris x86 で XFree86 を実行する際の注意 1. 仮想端末デバイスを作成していない場合には、X サーバを動作させる端末 デバイスを指定する必要があります。正しいデバイスは vt00 なので、 xinit コマンドは次のようになるでしょう: xinit -- vt00 仮想端末デバイスを作成した場合には、X サーバを動作させる仮想端末を指定 する必要はありません。 XF86Setup を実行できるようにするためには、少なくとも /dev/vt01 を作成 しなければなりません。そうでない場合、XF86Setup は起動できないでしょ う。 2. Solaris の場合、たぶん LD_LIBRARY_PATH に /usr/X11R6/lib:/usr/openwin/lib:/usr/dt/lib を設定しておくとよいで しょう。/usr/X11R6/lib を含めておく必要はたぶんありませんが、問題に なることもないでしょう :-) LD_LIBRARY_PATH に /usr/openwin/lib を含めることは必要です。という のも、Sun が提供しているバイナリの一部はコンパイル時に LD_RUN_PATH が適切に設定されていないからです。 Motif や CDE のアプリケーションでも、LD_LIBRARY_PATH に /usr/dt/lib が必要かもしれません。 3. Xqueue は Solaris ではサポートされていません。Xqueue を使うことはで きますが、カーネル内にドライバが無いようです。(要確認) 4. Solaris で xdm を使いたければ、テンポラリディレクトリで shar 形式の ファイル /usr/X11R6/lib/X11/etc/XdmConf.svr4 からファイルを展開して ください。README ファイルに、それぞれのファイルのインストール先が書 いてあります。それぞれのファイルには必ず目を通し、必要に応じてサイ ト固有の修正を行ってください。 6. 既知のバグと Solaris x86 における回避方法 1. Solaris 2.1 for x86 の OpenWindows の filemgr は X11R5 の X サーバ 上では動作しません。おそらく X11R6 の X サーバ上でも動作しないで しょう。ファイルを「ドラッグ&ドロップ」しようとすると、filemgr が `X error' で異常終了します。 Solaris 2.4 ではこの問題は起こりません。 この問題を回避する方法はありません。 7. バグの報告について バグの報告は XFree86@XFree86.org に送るか、ニュースグループ comp.windows.x.i386unix に投稿してください。Solaris のサポートや Solaris 用の配布に関する質問やコメントは davidh@use.com または danson@lgc.com に送ってください。 $XFree86: xc/programs/Xserver/hw/xfree86/doc/Japanese/README.SOLX86,v 1.1.2.2 1999/11/26 15:23:12 hohndel Exp $ $XConsortium: SOLX86.sgml /main/7 1996/10/28 05:43:28 kaleb $