# -*- Text -*- # 1 page= 18 chars x 43 lines x 3 columns ---------------------------------------------------------------- X Window のセットアップ 今回は、Slackware 2.0 の X Window system である XFree86 をセットアップ について簡単に説明する。 XFree86 を動かすためには、Xconfig と いうファイルでビデオカードやモニタ、 マウスなどの設定をしなければならない。 XFree86 では、様々な構成に対応するた めに、この Xconfig もかなり複雑な設 定をする必要がある。また、ビデオカー ドやモニタのスペックを越えるような設 定を行うとハードウェアを破壊すること があるので、Xconfig の設定には注意し ないといけない。 Slackware 2.0 では、ConfigXF86 とい うものがあり、それを使えばかなり簡単 に Xconfig を作成することができる。 この ConfigXF86 を使って Xconfig の 設定を具体例を使って説明しよう。なお、 詳しくは /usr/X11/lib/X11/etc にある README.* や JF の XFree86関係のドキュ メントなどを読んでいただきたい。 今回使った機器の構成は前回と同じであ る。 ---------------------------------------------------------------- ハードウェア構成 ---------------------------------------------------------------- HP Vectra 486/66XM ビデオカード S3 928 モニタ HP Ultra VGA Display D1193A マウス PS/2マウス ---------------------------------------------------------------- まず、Xconfig の設定を行うには自分の 機器の構成を知っておかないといけない。 マウスについては、シリアルマウスなら どの tty につながっていて、baud rate がいくつか、PS/2 マウスなどならば、 /bin/dmesg を実行してちゃんとマウス のデバイスが認識されているかを確認す る。例えば、HP Vectra 486/66XM では PS/2 マウスが使われており、 /bin/dmesg を実行すると次のように PS/2 マウスのデバイスが認識されてい る。 ---------------------------------------------------------------- : lp_init: lp1 exists, using polling driver PS/2 auxiliary pointing device detected -- driver installed. Calibrating delay loop.. ok - 33.22 BogoMips : ---------------------------------------------------------------- また、デバイスファイルのパス名も ちゃんと確認しておこう。Slackware イ ンストール時にマウスの Configuration をちゃんとしていれば /dev/mouse が しかるべきデバイスファイルに symbolic link されているはずである。 それからビデオカードとモニタも一応確 認しておこう。そしてビデオカードに対 応した X server がインストールされて いるかを確認する。/usr/X11/bin にあ る XF86_* という実行ファイルが X server である。ビデオカードと X server の対応は表の通りである。 ---------------------------------------------------------------- XF86_SVGA 非アクセラレータチップ (ET3000など) Cirrus Logicなどのアクセラレータチップ の載っているビデオカード(256色モード) XF86_Mono モノクロモード XF86_VGA16 VGA 16色モード XF86_S3 S3 86C911,924,801,805,928 XF86_Mach8 ATI mach8 XF86_Mach32 ATI mach32 XF86_8514 IBM 8514/a ---------------------------------------------------------------- とりあえず機器構成の確認ができたら ConfigXF86 を実行して Xconfig の設定 を行う。ConfigXF86 は、ディレクトリ /usr/X11/lib/ConfigXF86 にある。実行 する前にこのディレクトリにあるドキュ メント ConfigXF86.txt, HOWTO.Config, README.COnf なども読んでおいた方がよ い。ConfigXF86 のデータベースにない カードを使っている場合は MakeCard プ ログラムでカードのデータベースを作る ことができる。ここでは、MakeCard を 使ってみた。まず、root で login して /usr/X11/lib/ConfigXF86 に移動し、 MakeCard を実行する。 ---------------------------------------------------------------- # cd /usr/X11/lib/ConfigXF86 # ./MakeCard ---------------------------------------------------------------- まず、最初にハードウェアの probe をするか 聞いてくるので y と答える。 ---------------------------------------------------------------- Want me to probe your hardware first? (y/n): y ---------------------------------------------------------------- すると、次に mouse のタイプを聞いて くるので、番号で答える。Vectra では PS/2 マウスなので、8 を選んだ。次に マウスのデバイスファイルを指定する。 次に baud rate を聞いてくる。シリア ルマウス以外の場合には関係ないので 適当な値を入力すればよい。 ---------------------------------------------------------------- Select your mouse type: 1) xqueue (Use this for SVR4 or SVR4.2) 2) busmouse (Use this for ANY bus mouse) 3) logitech (Logitech serial mouse only) 4) microsoft (Serial mouse only) 5) mmseries 6) mouseman (Serial mouse only) 7) mousesystems (Serial mouse only) 8) ps/2 9) mmhittab (Hitachi in MM mode) >8 What tty port does your mouse use? (ie /dev/tty01 etc.): /dev/mouse Enter Mouse baud rate (Valid Baud Rates are 1200, 2400, 4800 or 9600): 9600 ---------------------------------------------------------------- マウスの設定が終わると、MakeCard は ビデオカードの認識を SuperProbe を使っ て行う。注意のメッセージが出た後、 ---------------------------------------------------------------- Press [Enter] to continue [Delete] to abort: ---------------------------------------------------------------- で止まるので、ここで Enter を入力し てしばらく待つと、認識した次のように ビデオカードの情報を表示する。 ---------------------------------------------------------------- Graphics Card Description CardID [0] ------------------------------------------------------------------------------- CardName [NoCard] CardDesc [0] Contributor [0] LastEdit [09-09-94] ChipSet [928,] ClockChip [0] Server [XF86_S3] (ie XF86_SVGA) ClockProg [0] RamDac [0] Driver [accel] (ie vga256) ClockRates [ 25.20 28.32 40.10 0.00 50.10 50.80 36.10 45.00 131.30 120.40 80.10 31.80 110.30 110.50 77.20 94.90 ] Vesa Fallbacks - At least ONE MUST be defined! Vmode64 [0] Vmode86 [0] Vmode107i [0] Vmode107 [0] Vmode121i [0] Vmode121 [0] Options [0] VideoRam [1024] BiosBase [0] ViewPort [0] Virtual [0] SpeedUp [0] ------------------------------------------------------------------------------- Changes? (Format: Fieldname=Value) [f]ile [t]est [s]ave [q]uit [e]xample ---------------------------------------------------------------- ChipSet や Server, Driver などが正し いか確認しよう。もしよさそうなら、 CardName や CardDesc も設定しておく。 これらを設定するには次のような入力を Changes? のプロンプトが出ている時に 入力すればよい。 ---------------------------------------------------------------- CardName=HP-S3 CardDesc=Hewlett-Packard S3 Video Card ---------------------------------------------------------------- これらを入力したら、s で save し、q で終了する。 ---------------------------------------------------------------- Changes? (Format: Fieldname=Value) [f]ile [t]est [s]ave [q]uit [e]xample s Press [Enter] to save to /usr/X11/lib/ConfigXF86/DATAFILES/HP-S3.CRD... Adding Record to Database... ---------------------------------------------------------------- MakeCard でビデオカードのデータがで きたら、ConfigXF86 を使って Xconfig の設定を行う。 まず最初に、再びマウスについての設定 を行う。もし 2ボタンマウスの時は3ボ タンのエミュレーションをするようにし ておいたほうが便利だろう。 マウスの設定が終れば次はビデオカード の設定である。4画面分くらいあるので 自分のビデオカードが見つかるまで次々 と見ていけばよい。もしうっかり Enter を入力して次のページにいっても最後ま でいけばまた最初から見ることができる ので大丈夫である。なお、MakeCard で 作ったデータは一番最後に追加される。 今回は この MakeCard で作ったデータ を使うことにした。 ---------------------------------------------------------------- 67 SWAN sVGA (with VCO chip) 68 TVGA9000 69 Targa Win+ 70 Trident Generic 8900CL (TCK9004N clock chip) 71 Trident JAX-8212B (TCK9002NP clock chip) 72 Trident JAX-8214 73 Tseng ET4000 74 Tseng et4000 UN-4010 75 Tseng Highcolor 72Mhz 76 Tseng Labs International 77 Tseng Labs MegaEva-2 78 Tseng SVGA-VLB 79 VGA-800 80 VGA4031 81 VGA MENTOR 82 HP-S3 Select the Card that most closely resembles yours (Press [Enter] for more): 82 ---------------------------------------------------------------- ビデオカードの設定が終ると次はモニタ の設定である。これも 3画面分あるので 自分のモニタがあるかどうか見ていく。 これも次々と見ていくと一番最初に戻っ てループしていく。もし自分のモニタの データがなかったら一番最初の 1 VESA-Generic Modes を選べばよい。今 回は この、1 VESA-Generic Modes を選 んだ。 ---------------------------------------------------------------- 1 VESA-Generic Modes - TRY THESE FIRST!!! 10 ESCOMM 15" 11 EIZO-Nanao 8060s 12 Nanao-EIZO 9070U 13 EIZO-Nanao 9070s 14 EIZO-Nanao 9080i 15 EIZO-Nanao F550i-M 16 EIZO T560i 17 Eizo T560iT92 18 Everex Eversync-VGA 19 Gateway 2000 Crystal Scan 2 AOC CLMB 735 20 IBM 8514-001 21 gIDEKIiyama MF-5217 22 InterQuad AC1564 23 Kuo Feng Corporation CK-1405 24 LE1024 25 MAG 1564NI 26 MAG-MX17F 27 MAG MX-17H 28 MAG MX15F 29 Mag Technology Co. PMV1448 Select the Monitor that most closely resembles yours (Press [Enter] for more): 1 ---------------------------------------------------------------- そうすると今選んだデータを使って Xconfig 用のデータを作ってくれる。後 は仮想デスクトップのサイズとか、左上 の座標の指定とかを行う。これらはデフォ ルトでよければ Enter を入力していく だけでよい。次に chipset に対するオ プションだがこれもデフォルトを選べば いいであろう。 そうすると ConfigXF86 が調べて生成し た Modes が表示される。Clock とかの 値に注意して使えそうなものを選ぶ。あ まり Clock とかが高すぎるものはハー ドを壊すことがあるかもしれない。よく わからなければとりあえず Enter で全 部選んでしまってもいいだろう。今回は 単に Enter と入力してみた。 ---------------------------------------------------------------- Here are the modes I was able discern from your hardware: 1 "1024x768i" - Clock=44MHz, Horiz. sync=35kHz, Vert. refresh=86Hz 2 "1024x768i" - Clock=45MHz, Horiz. sync=36kHz, Vert. refresh=88Hz 3 "1280x1024" - Clock=110MHz, Horiz. sync=64kHz, Vert. refresh=61Hz 4 "1280x1024i" - Clock=80MHz, Horiz. sync=51kHz, Vert. refresh=88Hz 5 "640x480" - Clock=25MHz, Horiz. sync=31kHz, Vert. refresh=59Hz 6 "640x480" - Clock=31MHz, Horiz. sync=37kHz, Vert. refresh=71Hz 7 "800x600" - Clock=36MHz, Horiz. sync=35kHz, Vert. refresh=56Hz 8 "800x600" - Clock=40MHz, Horiz. sync=38kHz, Vert. refresh=61Hz 9 "800x600" - Clock=50MHz, Horiz. sync=48kHz, Vert. refresh=72Hz Order them as you would like them (Leave out the mode numbers you don't want) put the default mode number first. Separate the mode numbers with SPACES. Pressing [Enter] without entering any numbers will save the list as is. Entering only a 'u' will re-set the list to the original order and allow you to start over: ---------------------------------------------------------------- Mode の指定が終ると後は Xconfig を save して終了すればよい。view で確認 して manual_edit するのもいいだろう。 ここでは何も考えずに save, 場所は DEFAULT の /usr/X386/lib/X11/Xconfig にした。 ---------------------------------------------------------------- So what do you want to do? ([v]iew, [m]anual_edit, [s]ave, [t]une or [e]xit)? s Where would you like to save the NEW Xconfig file: 1) (Personal Xconfig) $HOME/Xconfig 2) (System Xconfig) /etc/Xconfig 3) (Host Xconfig) /usr/X386/lib/X11/Xconfig.vectra1 4) (DEFAULT) /usr/X386/lib/X11/Xconfig 5) Leave it where it is (/tmp/Xconfig.test) ------------------------------------------------- Enter Your Selection: 4 ---------------------------------------------------------------- これでとりあえず Xconfig の設定がで きたはずである。ここで、ちゃんと /usr/X386/lib/X11/Xconfig をドキュメ ントなどを見ながら確認したほうがよい。 とりあえずここで、xinit として X window を起動してみると、次のように 動かなかった。 ---------------------------------------------------------------- vectra1:/usr/X11/lib/ConfigXF86# xinit XFree86 Version 2.1.1 / X Window System (protocol Version 11, revision 0, vendor release 5000) Operating System: Linux Configured drivers: S3: accelerated server for S3 graphics adaptors (Patchlevel 0) mmio_928, s3_generic (using VT number 7) Xconfig: /usr/X386/lib/X11/Xconfig (**) stands for supplied, (--) stands for probed/default values Config Error: /usr/X386/lib/X11/Xconfig:97 Emulate3Buttons ^^^^^^^^^^^^^^^^ Keyword expected xinit: Interrupted system call (errno 4): unexpected signal 13 ---------------------------------------------------------------- このメッセージを見ればわかるとおり Xconfig の 97行目の Emulate3Buttons がおかしいようだ。Xconfig ファイルを 見てみると 97 行付近は次のようになっ ている。 ---------------------------------------------------------------- # # Mouse definition and related parameters # # Logitech "/dev/tty00" # BaudRate 9600 # SampleRate 150 Emulate3Buttons ps/2 "/dev/mouse" ---------------------------------------------------------------- これはどこが間違っているかというと、 Emulate3Buttons が ps/2 よりも前にあ ることであるので、この 2行の順番を変 えて、ps/2 を上に持ってくればよい。 そのように Xconfig を修正してまた、 xinit すると今度は次のようなエラーで 動かなかった。 ---------------------------------------------------------------- # xinit XFree86 Version 2.1.1 / X Window System (protocol Version 11, revision 0, vendor release 5000) Operating System: Linux Configured drivers: S3: accelerated server for S3 graphics adaptors (Patchlevel 0) mmio_928, s3_generic (using VT number 7) Xconfig: /usr/X386/lib/X11/Xconfig (**) stands for supplied, (--) stands for probed/default values (**) Mouse: type: PS/2, device: /dev/mouse, 3 button emulation (**) FontPath set to "/usr/X386/lib/X11/fonts/misc/,/usr/X386/lib/X11/fonts/Speedo/,/usr/X386/lib/X11/fonts/75dpi/,/usr/X386/lib/X11/fonts/100dpi/" (--) S3: card type: 386/486 localbus (--) S3: chipset: 928, rev D or below (--) S3: chipset driver: mmio_928 (--) S3: videoram: 1024k (--) S3: Detected a BrookTree Bt485 RAMDAC (**) S3: clocks: 25.20 28.32 40.10 0.00 50.10 50.80 36.10 45.00 (**) S3: clocks: 131.30 120.40 80.10 31.80 110.30 110.50 77.20 94.90 (--) S3: Maximum allowed dot-clock: 85MHz (**) S3: Mode "1024x768i": mode clock = 45.000, clock used = 45.000 (**) S3: Mode "1024x768i": mode clock = 45.000, clock used = 45.000 Fatal server error: Clocks for mode "1280x1024" are too high for the configured hardware. Limit is 85.000 (MHz) xinit: Interrupted system call (errno 4): unexpected signal 13 ---------------------------------------------------------------- これもメッセージをよく見ればわかる通 り、Clocks の Limit が 85MHz なので それよりも高い Clocks を使っている Mode "1280x1024" があるので動かない のである。よって、再び Xconfig ファ イルを修正する。今度は Xconfig ファ イルの最後の方の Modes のある行と、 ModeDB の部分を見る。ModeDB の 2コラ ム目の数字が Clock であるので、この 値が Limit を越えている行を消す。そ してそれに対応する Mode を Modes の 行から消す。今回は Mode "1280x1024" と "1280x1024i" が Clock Limit の 85MHz を越えていたので、ModeDB 以下 の "1280x1024" と "1280x1024i" の行 を消し、Modes の行から "1280x1024" と "1280x1024i" を消す。このように修 正した Xconfig をセーブして、また xinit すると今後はちゃんと X window が起ちあがり、左上に xterm のウィン ドウが開いた。マウスを動かしてマウス カーソルを xterm に入れて exit と入 力して xterm を終了させれば X server も終了する。もしマウスが動かなかった りしたらマウスの設定が間違っていたの であろう。どういう設定で動いているか を調べるには Ctrl+Alt+Fn で xinit を 起動した時の仮想コンソールに移ってみ ればよい。X を止めたければそこで、 Ctrl-C するか、別の仮想コンソールでX server を kill すればいい。ちなみに X server は仮想コンソールで getty の 起きていない 7番で動いていたので、仮 想コンソールからは Alt+F7 で X に戻 れた。 X が終了する時、 xinit: Unknown error (errno 0): Client error. などというエラーが出たりもするが気に しなくてよい。 後は ディレクトリ /usr/X11/lib/X11/xinit にある xinitrc.fvwm, xinitrc.twm の好きな方 をユーザのホームディレクトリに .xinitrc という名前で cp してくれば xinit した時に fvwm か twm が起ちあ がる設定になる。~/.xinitrc は単なる shell script なので、ユーザごとにい ろいろと設定することができる。xinit するのではなくて xdm を起こすように してもいいだろう。こういった設定は UN*X の X window system とほぼ同じな のでそれらに関する本などを見ていろい ろと個人の好みに設定すればよい。 ---------------------------------------------------------------- # line here: 404-533 # Local Variables: # mode: Text # mode: auto-fill # fill-column: 36 # End: