2007年4月10日火曜日

(FreeBSD) Xのフォントサーバ(xfs)を使ってみました (ただの気まぐれ)

この前、VNC serverでXのフォントサーバを使うと云々・・・





ってのがあったので、今度は、ごく普通に、Xサーバ(Xorg)でXのフォントサーバを使ってみました。



昔聞いた、xfsを使うとメモリ使用量が減るという噂が本当なのか確認したかったのですが、やってみたところ、ほとんど変わりませんでした。あははははは



Xサーバ起動後、firefoxなどいくつかのアプリを起動した時点で、topコマンドで見た、大雑把な値。

xfsなしで300MB程度、xfsありで294MB。
もっとも、residentはずっと小さくて、それぞれ41MB、34MBでした。

その程度の差は、どうでもいいかな。



ただ、ものすごぉ~く気のせいのような気がしているのですが、xfsを使ったほうが、なんとなく、本当になんとなく、firefoxがサクサク軽く動くような気がしました。



それまで数日間立ち上げっぱなしだった環境を、一度、Xサーバを終了し、立ち上げなおしたせいで、なんかがすっきりさっぱりしただけなのかも。



☆ ☆ ☆ 



■ FreeBSDでxfsを使うようにする設定手順



せっかくFreeBSDでxfsを使う方法を調べたので、メモとして残しておきます。



xfsの起動スクリプトは、

/usr/X11R6/etc/rc.d/xfs.sh

になります。/etc/rc.conf

xfs_enable="YES"

を書き足します。



xfsの設定ファイルは、/usr/X11R6/lib/X11/fs/configにあります。とりあえず、こんな感じにしてみました。



% cat /usr/X11R6/lib/X11/fs/config
# font server configuration file
# $Xorg: config.cpp,v 1.3 2000/08/17 19:54:19 cpqbld Exp $



clone-self = on
use-syslog = off
catalogue = /usr/X11R6/lib/X11/fonts/misc/,/usr/X11R6/lib/X11/fonts/TTF/,/usr/X11R6/lib/X11/fonts/Type1/,/usr/X11R6/lib/X11/fonts/CID/,/usr/X11R6/lib/X11/fonts/75dpi/,/usr/X11R6/lib/X11/fonts/100dpi/,/usr/X11R6/lib/X11/fonts/bitstream-vera/,/usr/X11R6/lib/X11/fonts/cyrillic/,/usr/X11R6/lib/X11/fonts/local/
error-file = /var/log/xfs.log
# in decipoints
default-point-size = 120
default-resolutions = 75,75,100,100



configファイルを設定したあと、

# /usr/X11R6/etc/rc.d/xfs.sh start

で、すぐに、xfsを起動できます。



もっともそれだけではxfsは使われないので、xfsを利用するようにフォントパスを指定する必要があります。xset fpコマンドで指定してもいいわけですが、xorg.confで設定してもいいです。



xorg.confで書く場合は

FontPath     "unix/localhost:7100"

という感じになります。そのほかのFontPathは不要なので



# FontPath     "/usr/X11R6/lib/X11/fonts/misc/"
# FontPath     "/usr/X11R6/lib/X11/fonts/75dpi/"
# FontPath     "/usr/X11R6/lib/X11/fonts/100dpi/"



というように、#をつけてコメントアウトしてしまいます。



ただし、本当に全部コメントアウトしてしまったら、firefoxなど、TrueTypeフォントを使っていたXアプリが、



Gdk-WARNING **: Missing charsets in FontSet creation
Gdk-WARNING **:     ISO8859-1
Gdk-WARNING **:     JISX0208.1983-0
Gdk-WARNING **:     JISX0201.1976-0
** WARNING **: Failed to open font: "-kochi-gothic-medium-r-normal-*-*-110-*-*-c-*-jisx0208.1983-0".



というようなエラーを出すようになってしまいました。なるほど、xfsって、TrueTypeフォントには対応していないのでしょうか?



そこで、とりあえず、xorg.confでこれだけは残しておきました。



FontPath     "/usr/X11R6/lib/X11/fonts/TrueType/"



昔(XFree86 3.3.6くらいだったか)、X-ttとかいって、TrueType用のパッチをあてて使っていたことがありましたが、同様にxfs-ttとかいうのもありました。



Xorgの場合、なんかをconfigファイルにかけばいいだけなのかも・・・?ま、いーや。xfsを使い続けるつもりないし・・・



☆ ☆ ☆ 



■ xfsでTCPソケットを使わないようにする



上記のようにした場合、sockstatコマンドで調べると、こんな具合になります。



% sockstat | grep xfs
root     xfs        41287 3  tcp6   *:7100                *:*
root     xfs        41287 4  tcp4   *:7100                *:*
root     xfs        41287 5  stream /tmp/.font-unix/fs7100
root     xfs        41287 6  stream /tmp/.font-unix/fs7100



最近は、余計なネットワークポートは開くな、というのがセオリーらしいので、xfsがTCPで7100を開いているのはいやだ!と思う人もいるかもしれません。



ちゃんと、そういう使い方もできるようになっています。



とりあえずXサーバを終了。



/usr/X11R6/lib/X11/fs/config

no-listen = tcp

を書き加えてから、xfsを再起動します。



# /usr/X11R6/etc/rc.d/xfs.sh restart



この時点でsockstatで調べてみると、



% sockstat | grep xfs
root     xfs        41942 3  stream /tmp/.font-unix/fs7100
root     xfs        41942 4  stream /tmp/.font-unix/fs7100



となって、UNIX domain socketしか開いていません。



そして、xorg.confでのフォントパスの指定を、

FontPath     "unix/localhost:7100"

から

FontPath     "unix/:7100"

に変更します。

余談。いやぁ~、xfsのマニュアルを見ても、unix/:7100という書き方はぜんぜんわかりませんでしたよ。

/のあとに何を書くのか?
:のあとに何をかくのか?

って。だって、ソケットのパス名は「/tmp/.font-unix/fs7100」になってますからねぇ。個人的には謎の書式だと思うのですが。

こうやっておいてから、startxでXを起動。xset qで見ると、たとえばこんな感じ(これはTrueTypeフォントのパスを抜いてあります)。



# xset q
Keyboard Control:
  auto repeat:  on    key click percent:  0    LED mask:  00000000
  auto repeat delay:  500    repeat rate:  30
  auto repeating keys:  00ffffffdffffbbf
                        fadfffdfffdfe5ef
                        ffffffffffffffff
                        ffffffffffffffff
  bell percent:  50    bell pitch:  400    bell duration:  100
Pointer Control:
  acceleration:  2/1    threshold:  4
Screen Saver:
  prefer blanking:  yes    allow exposures:  yes
  timeout:  600    cycle:  600
Colors:
  default colormap:  0x20    BlackPixel:  0    WhitePixel:  16777215

Font Path:
  unix/:7100

Bug Mode: compatibility mode is disabled
DPMS (Energy Star):
  Standby: 1200    Suspend: 1800    Off: 2400
  DPMS is Enabled
  Monitor is On
File paths:
  Config file:  /usr/X11R6/lib/X11/xorg.conf
  Modules path: /usr/X11R6/lib/modules
  Log file:     /var/log/Xorg.0.log



「Font Path」のところに現在のフォントパス設定が表示されています。




2~3日、xfsを使ってみましたが、xfs使っても使わなくても違いがわかんないので、使わないことにしちゃうかも(笑)。だってFreeBSDでは、デフォルトは使用しない、になってるし。



0 件のコメント:

コメントを投稿