XFree86 3.2 設定概論第1

Copyright(c) 1997 George(小浜 純). All rights reserved.
Last Update 97/09/20 00:59:05

[ホームページ] [日記] [読んでいる日記] [FreeBSD] [FreeBSD LINK] [検索]

XF86Setupを使う前に

FreeBSDのインストーラからXF86Setupを使うと、Xサーバーの設定を簡単(以前と比らべての話だが...)に行うことができる。 だが、完全に自動ではないので、若干の知識はまだ必要とされる。 ここでは、XF86Setupを実行する前に必要な知識を紹介する。
  1. グラフィックアクセラレータに使われているチップの型番の情報を得る。
    まずは自分のマシンのカタログやマニュアルを見てみよう。 通常はグラフィックアクセラレーターにどんなチップを使っているか書いてあるはずである。 私のマシンの場合は、IBM PS/V Master RWE なので、S3 Incorp. の Vision 864である。
  2. ディスプレイの許す水平同期信号の最大値と最小値、垂直同期信号の最大値と最小値をディスプレイのマニュアルからメモしておく。
    この値を間違えると、ディスプレイを破壊することもあるようなので、注意が必要だ。
  3. ビデオカードに載っているRAMの容量を調査する
    ビデオカードに載っているRAMはどれくらい容量があるのかを調査しておく。 通常は、マニュアルに記載があるはずだ。 私の場合は、2M bytesである。
  4. グラフィックアクセラレーターカードに用いられているRamDACの型番を調査しよう。
    DACはDigital-Analog-Converterの略で、ビデオカードのRAM上にあるデジタル画像データをディスプレイに送る時にアナログ信号に変換するチップである。 RamDACの型番まではカタログに記載されていない場合も多いようなので、以下の方法で調査すると良かもしれない。
    X -probeonly    または
    SuperProbe
    	
    この方法で調査すると、通常は表記されていないRamDACの名前などの情報がある程度得られる。
    PS/V Master RWEのオンボードビデオの場合は、s3_sdac、別名86C817と呼ばれているDACが使われていると上記の方法でわかる。
  5. マウスの種類を調査する
    マウスをシリアルポートに接続している場合は、おそらくMSマウスだろう。 PS/2のマウスポートに接続している場合は、PS/2 マウスである。 ノートマシンの場合は、ほとんどが PS/2 マウスのようだ。
  6. ノートマシンの場合
    ノート型マシンの場合は、グラフィックアクセラレーターに利用されているチップが特殊な場合があり、XF86Setupでは設定できないことがある。 (私のThinkpad 230Cs/530CSがそうなのだ...。) FreeBSD ノートパソコン用インストール&設定方法 にリンクしてあるページに情報があるだろう。

FreeBSDページの目次に戻る


XF86Setupを使ってXサーバの設定を行う

それではXF86Setupを使ってみよう。 XF86Setupを使う上で、いくつかの注意事項がある。
  1. XF86Setupを使うには、VGA用16色のXサーバがインストールされている必要がある。
    XF86SetupはGUIを前提として、ボタンやスクロールバーを多用して設定を行う。 というわけで、各機種/各グラフィックアクセラレータ用の設定が済むまでは、どのマシンでも標準で持っているVGA 16色のXサーバを使うのだ。
  2. XF86Setupで、マウスの設定を行うまでは、マウスを動かしてはならない。 マウスにはいくつかの種類があり、マウスから送られて来るデータの内容が異なる。 マウスの種類を設定する前では、マウスの移動に伴うデータの解釈ができないのでまともにマウスの移動を検出できないのだ。 マウスの設定は、キーボードを使って行おう。
XF86Setupの画面がでたら、最初にキーボードを使ってマウスの設定をしよう。 TABキーとスペースキーを使って根気良く設定していくのも一つの手である。

キーボードの設定では、私は

Model:              Japanese 106-key
Layout (language): Japanese
Variant (non U.S. Keyboards only): Eliminate dead keys

Abailable options:
Group Shift/Lock behavior
  Use default setting

Control Key Position
  Make Capslock an additional Control

としている。

すべての設定質問に答えると、XF86Setup は /etc/XF86Config というファイルにデータを出力する。 以後、Xサーバーは /etc/XF86Config というファイルを見てから起動するので、XF86Setupを使うのが面倒になったら直接 /etc/XF86Config を編集しても良いだろう。

XF86Setupの設定のままだと、全角/半角キーが ESC キーとして使えない。 そこで /usr/X11R6/lib/X11/xkb/symbols/jp というファイルを編集する。

  1. su で root になる。
  2. cd /usr/X11R6/lib/X11/xkb/symbols としてディレクトリを移動。
  3. chmod +uw jp として書き換え可能にする。
  4. vi jp などとして、編集開始する。 9行目の
        key  { [ Zenkaku_Hankaku,Kanji]                             };
    	
        key  { [ Escape             ]                               };
    	
    と書き換える。
  5. chmod -w jp として、ファイルの書き換えを禁止しておく。
  6. リブートする。
以上の操作で全角/半角キーがESCキーになる。

FreeBSDページの目次に戻る


.xinitrcについて

~/.xinitrcは、コンソールから startx または xinit タイプして X Window System を起動する際に実行されるファイルだ。 このファイルでは、X Window System が起動する際に実行しておきたいプログラムを記述しておく。 このファイルはシェルスクリプトになっている。

例として、私の dot.xinitrc 1KB を示す。 このファイルは 640x480 ドットの表示領域を持つ Note PC と、1280x1024 ドットの表示領域を持つデスクトップマシンで共有できるように工夫してある。
画面の情報を表示するxdpyinfoコマンドの出力を加工して、現在の画面サイズを調べている。 そして、xrdbコマンドを用いてユーザリソースを読み込むときに、現在の画面サイズを示すマクロ(SIZE1280x1024、または、SIZE640x480など)を定義している。 下に示すリソースファイルとセットで使うようになっているので、リソースファイルについても見て欲しい。

FreeBSDページの目次に戻る


リソースファイルについて

X Window Systemでは、アプリケーションソフト毎の設定などをリソースファイルと呼ばれるファイルで指定することが多い。 Windows 3.1で言うところの /windows/win.ini 、Windows95で言うところのレジストリみたいなものだ。 リソースファイルとして、~/.Xdefaultsか~/.Xresourcesのどちらかが利用されている。 実際には~/.xinitrcファイル中で、xrdb -merge の引数に指定されているファイルがリソースファイルとして読み込まれており、私の所では ~/.Xresourcesが読み込まれている。

なぜ~/.Xdefaultsと~/.Xresourcesの二つのファイル名があるのかというと、X11R5までは~/.Xdefaultsというファイル名を使っていたのだが、X11R6からリソースという名前にしようということで~/.Xresourcesというファイル名に変更になったらしい。

リソースファイル内部は普通のテキストファイルで、一般には

アプリケーション名.部品名.変数名:   値
と記述する。 リソースの設定ファイル中では、ワイルドカード'*'が利用できるので、
アプリケーション名*変数名:   値
*変数名:   値
などという書き方もできる。
例えば、ktermというアプリケーションの設定は以下のようになる。
KTerm*scrollBar:        true
KTerm*saveLines:	400
KTerm*international:    True
KTerm*inputMethod:      kinput2
KTerm*preeditType:      OverTheSpot
アプリケーション名の先頭は大文字にする約束になっているらしい。

リソースファイル中でコメント行を入れたい場合は、行の先頭に ``!''(アポストロフィ) を入れて書くようだ。 (このあたりのことは、man X とすると表示される。)

! This line is comment line

リソースの指定では、通常1行に一つの設定を書く。 一つの変数名に対して複数の内容を書く場合には、``,''(コンマ)で区切って書く。

Emacs*FontSet-12: -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1, -mnkaname-fixed-medium-r-normal--12-110-75-75-c-60-jisx0201.1976-0, -mnkaname-fixed-medium-r-normal--12-110-75-75-c-120-jisx0208.1983-0
ただ、上のような指定だと横に長くなりすぎるので、行の最後に``\''(バックスラッシュ)を使うことで次の行に同じ設定行を続けて書く事ができる。
Emacs*FontSet-12: -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1,\
                  -mnkaname-fixed-medium-r-normal--12-110-75-75-c-60-jisx0201.1976-0,\
		  -mnkaname-fixed-medium-r-normal--12-110-75-75-c-120-jisx0208.1983-0

例として、私のリソースファイル dot.Xresources 2KB を示す。 このファイルは 640x480 ドットの表示領域を持つ Note PC と、1280x1024 ドットの表示領域を持つデスクトップマシンで共有できるように工夫してある。
xrdb する際に -D オプションでラベルを指定できることを利用して、#ifdef ... #endif でデスクトップマシン用とノートマシン用の設定を分離している。
上で示した .xinitrc ファイルとセットで使うようになっているので、 .xinitrcについて も参照して欲しい。

FreeBSDページの目次に戻る


xloadを実行するとエラーがでるときには

FreeBSD 2.1.6R 〜 2.2.2R では、xloadを実行すると、
xload: Can't open file kvm xxxx
と表示されて、xloadが実行できない。 これは、XFree86 3.2 contrib の xload が kmem を参照するように変更されたのだが、xloadの実行ファイルのグループ名がwheelになったままのためである。 以下のような操作でエラーが出なくなるだろう。
  1. suでrootになる。
  2. chown bin /usr/X11R6/bin/xload としてファイルのオーナーを変更。
  3. chgrp kmem /usr/X11R6/bin/xload としてファイルのグループを変更。
  4. chmod 2555 /usr/X11R6/bin/xload として、グループでsetuidする。

FreeBSDページの目次に戻る


X Window System 上でコンソール出力を得る

コンソール画面をxterm/ktermに表示する方法を解説する。 ここで言う「コンソール画面」とは、重要なエラーメッセージや、警告メッセージを出力する先の画面のことだと思って欲しい。 何も設定しないで X Window System を起動して使っていると、かなり重要なエラーメッセージや警告メッセージが X Window System を終了した後のコンソール画面に出ていることがある。 このままでは多少危険なので、コンソール画面に出力される内容をktermに出力するようにしてみよう。

コンソール出力を得るには、2つの方法がある。

一つ目の方法は、スーパーユーザーになって、/etc/ttysを編集する。 consoleとttyv0という単語から始まる行

console	none				unknown	off secure
ttyv0	"/usr/libexec/getty Pc"		cons25	on  secure
があるので、以下のように変更しよう。
console	"/usr/libexec/getty Pc"		cons25	on secure
ttyv0	"/usr/libexec/getty Pc"		cons25	off secure
onとoffで、そのコンソールを使うか、使わないかを指定している。 この変更で、consoleを使ってttyv0を使わないように指定しているわけだ。 ここで一度リブートする。 うまく設定ができていれば、リブート後、ログインプロンプトの表示が(ttyv0)から(console)に変わる。 また、ls -l /dev/console とすると、コンソールのオーナーがログインしたユーザーになっている。

次に、X Window System を起動するときに、自動的に実行されるプログラムを指定しているファイルを編集する。 ktermを起動しているファイル(通常は.xinitrcだが、fvwmを使っている場合には.fvwmrc)をエディタで開き、ktermの起動オプションに-Cを追加する。 -Cオプションは、ktermに対して「コンソールへの出力を受け取れ」という指定である。 複数のktermを起動するように設定している場合には、どれか一つのktermに-Cをつけておけば良い。

kterm -C
以上で設定は終了である。

二つ目の方法は、

  1. su で root になる。
  2. /etc/fbtab ファイルを作成して
    /dev/ttyv0      0600    /dev/console
    
    という内容を記述する。
  3. リブートする
  4. .xinitrc などに kterm -C と記述する。
とconsoleの持ち主が(ttyv0に) loginした人に変わる。

一つ目の方法の方が、コンソールに出力されるエラーメッセージの種類が増えるようだ。 うるさくない方が良い場合は、二つ目の方法を取ると良いだろう。

FreeBSDページの目次に戻る


X Window System 使用テクニックのあれこれ

X Window System のちょっと便利な技を紹介する。
便利なキーバインド (twm)
ウィンドウマネージャとしてtwmを使っている場合にちょっと便利なキーバインドを紹介する。 Metaキーはこの場合、左のAltキーを指す。
Ctrl+Meta+BackSpace	Xの強制終了
Ctrl+Meta+F1〜F3	コンソール画面1〜3へ切替え
↑この状態でAlt+F4	Xに戻る

Ctrl+Meta+(テンキーの)+ 解像度切替え
Ctrl+Meta+(テンキーの)- 解像度切替え
	
便利なキーバインド (fvwm95-2)
ウィンドウマネージャーとしてfvwm95を利用している時のちょっと便利なキーバインドを紹介する。
Ctrl+Meta+BackSpace	Xの強制終了
Ctrl+Meta+F1〜F3	コンソール画面1〜3へ切替え
↑この状態でAlt+F4	Xに戻る

Alt+TAB                 Windows95ライクなフォーカスウィンドウ切替え
Ctrl+→                 仮想デスクトップ画面切替え
Ctrl+←                 仮想デスクトップ画面切替え
Ctrl+↑                 仮想デスクトップ画面切替え
Ctrl+↓                 仮想デスクトップ画面切替え
Alt+→                  仮想デスクトップ画面スクロール
Alt+←                  仮想デスクトップ画面スクロール
Alt+↑                  仮想デスクトップ画面スクロール
Alt+↓                  仮想デスクトップ画面スクロール
	

FreeBSDページの目次に戻る


小さいフォントを使うには

ノートマシンなどで、640x480ドットの画面しか無い場合は、小さいフォントを利用したい場合がある。 以下では、muleで要町フォント(12ドットフォント)を使う方法を示す。
FreeBSD 2.2.2Rのpackages/japanese/jp-k12font-1.0.tgzには、要町フォントをインストールするパッケージが用意されている。 パッケージを使って要町フォントをインストールした場合は、 ~/.Xresourcesに利用するフォントを設定する。 からの設定を行う。
  1. 要町フォントを取得する。
    以下からftpできるだろう。
    ftp://ftp.kuis.kyoto-u.ac.jp/X11/contrib/fonts/kaname_k12_bdf.tar.gz 196KB
    ftp://ftp.kuis.kyoto-u.ac.jp/X11/contrib/fonts/
    要町フォントのアーカイブと、アーカイブのあるディレクトリ
  2. 要町フォントのインストール。
    1. tar xvzf kaname_k12_bdf.tar.gz として、アーカイブを展開。
    2. bdftopcf -o knmzn12x.pcf knmzn12x.bdf として、pcf形式に変換
    3. bdftopcf -o knmhn12x.pcf knmhn12x.bdf として、pcf形式に変換
    4. su で rootになる
    5. cp knmzn12x.pcf knmhn12x.pcf /usr/X11R6/lib/X11/fonts/misc として、フォントディレクトリにコピー
    6. cd /usr/X11R6/lib/X11/fonts/misc として、フォントディレクトリに移動
    7. mkfontdir として、フォント一覧ファイル(fonts.dir)を作成。
    8. xset fp rehash として、フォントパスを再読み込みさせる。
      もし、この操作が面倒なら、一度X window systemを再起動させても良い。
  3. ~/.Xresourcesに利用するフォントを設定する。
    1. ~/.Xresourcesに、下記の記述を追加する。
      Emacs*FontSetList: 12,24
      Emacs*FontSet-12: -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1,\
                        -mnkaname-fixed-medium-r-normal--12-110-75-75-c-60-jisx0201.1976-0,\
      		  -mnkaname-fixed-medium-r-normal--12-110-75-75-c-120-jisx0208.1983-0
      Emacs*FontSet-24: -*-fixed-medium-r-*--24-*-iso8859-1
      		
      ちなみに、-misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1というフォントは、/usr/X11R6/lib/X11/fonts/misc/fonts.aliasでfixedという別名がついているもので、xtermのデフォルトフォントである。
    2. xrdb -merge ~/.Xresources として、リソースファイルの記述をリソースデータベースに反映させる。
      この操作が面倒なら、一度X Window System を終了させても良い。
    以上の設定が終了した後に mule/emacs を起動すると妙に小さなフォントで表示されるはずである。

    続いて、ktermで要町フォント(jp-k12font)を利用する方法を示す。
    ~/.Xresourcesに下記の記述を追加する。

    KTerm*VT100*fontList: -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1,\
                          -mnkaname-fixed-medium-r-normal--12-110-75-75-c-60-jisx0201.1976-0,\
                          -mnkaname-fixed-medium-r-normal--12-110-75-75-c-120-jisx0208.1983-0
    
    設定後の操作は、muleの場合と同じである。

FreeBSDページの目次に戻る


スクリーンセーバーを自動で利用できるようにするには

XFree86-3.1.2とは異なり、XFree86-3.2からデフォルトではX window system上でスクリーンセーバーが作動しなくなった。 以下のような行を、~/.xinitrcに追加すると、スクリーンセーバーを自動的に利用可能になる。
xset s on
xset s on というコマンドで、スクリーンせーバーをオンにしている。 xsetには、他にも色々な機能があるのでman xsetして調査するか、単にxsetと入力して簡単なヘルプを見て色々と遊んでみるとよいだろう。

FreeBSDページの目次に戻る


[ホームページ] [日記] [読んでいる日記] [FreeBSD] [FreeBSD LINK] [検索]
home: <george@yk.rim.or.jp> or <george@ceres.dti.ne.jp>