2007年4月5日木曜日

X Error of failed request: BadName (named color or font does not exist)

X Windows System上で、Xクライアントを実行したとき、



% Xクライアントのなんとかコマンド
X Error of failed request:  BadName (named color or font does not exist)
  Major opcode of failed request:  45 (X_OpenFont)
  Serial number of failed request:  99
  Current serial number in output stream:  101



というようなエラーメッセージが表示されて、Xクライアントが起動しないことがあります。



・・・というか、昔は、このエラーをよく見たのですが、実は、最近、ほとんど見たことがありませんでした。唯一見るときが、



  • FreeBSDマシンとかでVNC serverを実行していて


  • Windowsなどからvncviewerで、そのVNC serverへ接続していて(Windowsかどうかはあんまり関係ないです)


  • VNC serverな環境の中で、Solarisワークステーションにログインしたあと、Solarisワークステーション上で、Xのクライアント、とくに、やや古臭い香りのする(意味わかんないな~)、システム管理ツールとか、バックアップソフトのGUIなど、わりとシステム関係のお仕事をするときのツールを実行する


という、かなり限定された条件がそろったときだけ、上記のエラーがでます。また、VNCを使わずに、Xorgを動かしているFreeBSDマシンで、同じXクライアントを実行すると、動いちゃったりします。



昔、だれかから教えてもらった知恵として、「Xのフォントサーバ(xfs)を利用すると解決する」というのを思い出してやってみたら・・・ なんと動いちゃいました。



FreeBSDマシン上で、とりあえず

% xfs &

とやって、フォントサーバを実行(別にroot権限はいらない)。Xのフォントパスをxset fpコマンドで指定する。たとえばこんな感じ・・・

% xset fp tcp/FreeBSDマシンの名前:7100/all

いやはや、実は、このコマンドの書式をすっかりわすれていて、man xfsしてやっと判明した次第。なにしろ、Xのフォントサーバなんて、ほとんど使ったことがなかったもので。



超大昔、X端末と呼ばれる機器(XMiNTとか。懐かしいな)があったころ、「Xのフォントサーバを使うとnetscapeが動くよ」とかいう噂(真実でした)がありましたが、私の場合は、「font aliasをバリバリ設定してX端末のROMフォントだけ使うように設定すればいいんだよ」という硬派?な解決策をとってたので、昔も今も、ほとんどフォントサーバは使ったことがありませんでした。そのほうがメモリ使用量が節約できたんです。何しろX端末ってRAMの容量が4MBとかいうレベルだったもので、いかにしてメモリを節約するかが腕の見せ所でした(???)。



私はLinux方面はかなり疎いのですが、xfsがデフォルトで動いてたりするのを見たことがあるので、Linuxなデスクトップ環境ではxfsを使うのは当たり前なんでしょうか。



Xサーバがメモリをやたらとアロケートしてて、最近だと平気で300MBとか確保してたりするのを見たりするのですが、これもxfsを使うと、メモリの使用量が減るという話を聞いたことがあります。ほんとかな? 今度ぜひ試してみよう。





0 件のコメント:

コメントを投稿