9. Xウィンドウシステム・バージョン11リリース6


Contents of this section

9.1 Xはどこから入手できますか?

XウィンドウシステムはNetBSD 1.2から、正式配付セットの一部となりました。最新バージョンを入手することをお薦めしますが、これは次のURLから入手できます:

ftp://ftp.NetBSD.org/pub/NetBSD/NetBSD-1.5/mac68k/binary/sets/

xbase.tgzファイルがベース配付セットで、Xクライアントのバイナリー、共有ライブラリーそしてコンフィギュレーションファイルのいくつかが含まれます。xcomp.tgzファイルはXアプリケーションをコンパイルするのに必要な静的ライブラリーやヘッダファイルなどが含まれます[訳註:当然ですがxcompセットを使用するにはcompセットまたはそれに相当するものがインストールされている必要があります。]。xfont.tgzセットはX11フォントファイルです。xcontrib.tgzには、xloadやxevといったX "contrib"ディレクトリーに置かれたアプリケーションやマニュアルページが含まれます。最後にxserver.tgzファイルですが、これはXサーバーのバイナリーそのものです。これらのファイルを好みの方法でインストールしてください(つまり、InstallerユーティリティーまたはNetBSD上でtar -xzpv -C / --unlink -f)。/usr/X11R6/以下のサブディレクトリーにファイルが展開されます。

正式配付のXサーバーはモノクロサーバーです。NetBSDをブートする際、ビデオモードを1-bit (つまりB&W)に変更しなくてはなりません。NetBSD 1.3のXサーバーには、1.2のサーバーと比較して数多くの改良が加えられていますから、もし古いバイナリーを使っている場合はアップグレードした方が良いでしょう。

もしXがうまく動かないときは、次のように起動してみてください。

startx >& startx.log
これにより、エラーメッセージがstartx.logというファイルに残り、エラーの原因究明に役立ちます。

9.2 startxとタイプしてもstartx: Command not found.というエラーになってしまいます

Xバイナリーの置いてある場所をシェルに教えてやる必要があります。この為にはシェルのpath変数に/usr/X11R6/binを加えてやります。csh系シェルを使っている場合は.cshrcファイルでpath変数を設定しているところを変更してください。sh系シェルの場合は.profileというファイルになります。

9.3 Xが動かないのですが、これは読み出し専用(read-only)ファイルシステムと何か関係ありますか?

私の知る限りXはシングルユーザーモードでは動きません。というのはXに必要なポート接続を司るデーモンがまだ動作していないと思うからです。[訳註:本当の理由は、ルートファイルシステムだけが読み出し専用でマウントされている状態では/tmpにUNIXドメインのソケットが作れないからです]シングルユーザーモードから出るには、exitとタイプするかコントロールDを押してシングルユーザーモードシェルから抜けてください。すると/etc/rc*スクリプトを実行し、/etc/fstabに指定されているファイルシステムを読み書きモードで(または指定されたどんなモードでも)マウントしてマルチユーザーモードに入ります。そうしたらログインしてstartxとタイプすることでXを起動することができます。

9.4 startxとタイプすると六個の小さなスクリーンがモニターの上の方に表示されます

問題はモニターが1-bit (B&W)モードになっておらず、また使用中のNetBSD/mac68kカーネルもXサーバーもカラーに対応していないことです。NetBSDをブートする際、モニターを1-bitモードにしておく必要があることを忘れないように。

9.5 startxとタイプするとxinit: libXmu.so.6.0 not foundというエラーメッセージが出ます

これはシステムがXの共有ライブラリーファイルのありかを知らないのが原因です。これにはldconfigコマンドを使ってvar/run/ld.so.hintsの内容を書き換える必要があります。

1.2より新しい新方式の設定ファイルを使っている場合、/etc/ld.so.confファイルに次の行をつけ加えてください:

 /usr/X11R6/lib

1.2以前と同じ古い方式の場合は/etc/rc.localファイルを編集して以下のような内容をつけ加えます:

#
# Build the link-editor fast directory cache.
#
echo "adding X libraries to the runtime link editor directory cache."
ldconfig -m /usr/X11R6/lib

ldconfig-mフラグについてヒントをくれたJim Wise (jim@santafe.arch.columbia.edu)に、この場を借りて感謝します。

上の例ではいずれもX共有ライブラリーファイルが/usr/X11R6/libにあると仮定しています。もし他の場所に移動したならその場所を指定してください。

通常、LD_LIBRARY_PATH環境変数によってldconfigの共有ライブラリーファイルサーチパスをオーバーライドしたり拡張したりできますが、Xサーバーはsetuidプログラムであり、環境変数によるldconfigサーチパスの変更はセキュリティー上の理由から無視されるようになっています。詳しくはldconfig(8)を参照してください。

9.6 startxとタイプするとxinit: libXext.so.6.1 not foundというエラーメッセージが出ます

前節の回答を参照してください。

9.7 X起動時に"ld.so: warning: libm.so.0.0: minor version >= 1 expected, using it anyway"というメッセージが出ます

このエラーメッセージが出力される理由は、システムに現在インストールされている共有ライブラリーよりも新しいライブラリーを使ってXサーバーがコンパイルされたからです。あなたのシステムでは恐らくNetBSD 1.0から1.2までの共有ライブラリーを使用しているのでしょう。このメッセージを出なくするには共有ライブラリーを更新する必要があります。[訳註:メッセージが出力されること以外には実害はないと思いますが、念の為アップグレードしておいた方がよいでしょう]

9.8 X起動時に"ld.so: Undefined symbol "__sys_errlist" in X:X"というエラーメッセージが出てXが終了してしまいます

この問題は前項同様、古過ぎる共有ライブラリーを使用しているのが原因です。より新しいバージョンのbaseセットをインストールするか、またはcurrentソースを自分でコンパイルして共有ライブラリーを更新する必要があります。

9.9 Xとfvwm使用中、マウスが画面左端から右端へラップアラウンドしてしまいます

[訳註:これはfvwmに限らず、どのウィンドウマネジャを使用していても起きる問題です]これは初期2バージョンのMacBSD用Xサーバーのバグです。Xバイナリーをアップグレードしましょう。最新版は次のURLを参照してください:

ftp://ftp.NetBSD.org/pub/NetBSD/NetBSD-1.5/mac68k/binary/sets/

9.10 Xを数時間使用するとある特定のキーが効かなくなります

これも初期2バージョンのMacBSD用Xサーバーのバグです。基本的にはMacBSDのXサーバーでは、'a'などのキーに本来割り当てるべきではないキーコードが割り当てられているのが原因です。Xバイナリーをアップグレードしましょう。最新版は次のURLを参照してください:

ftp://ftp.NetBSD.org/pub/NetBSD/NetBSD-1.5/mac68k/binary/sets/

9.11 ふたつモニターを持っていますが、どうすれば二個目のモニターにxtermなどのウィンドウを表示できますか?

Xクライアントを起動するとき-displayフラグを試してみます:

xterm -display :0.1

これによって、クライアントはlocalhostのディスプレイ(サーバー) 0、スクリーン1に接続されます。またはほとんどのウィンドウマネジャが持っているルートウィンドウメニューを利用することもできます。クライアントを実行するメニューがあれば、そのメニューを二番目のモニターで開いてクライアントを呼び出すことで、そちらのモニターにクライアントウィンドウを表示させることができます。

9.12 上下の矢印キーがXで動きません

この問題はNetBSD 1.3のXセットでは修正されていますから、アップグレードをお薦めします。[訳註:以下のワークアラウンドは1.2以前のX配付セットにのみ適用され、1.3では却って逆効果ですので注意してください]

この問題の説明と、旧版X配付セットでのワークアラウンドを以下に示します。

NetBSD/mac68kのXサーバーでは、オプションキーと左右の矢印キーを同時に押し下げることで、それぞれマウスボタンの中および右ボタンの機能をエミュレートしています。どうもこれがXでの上下矢印キーの動作と干渉しているようですが、簡単な修正があります:

中田健 (kenn@eden.rutgers.edu)曰く:

以下に示すのは私の .xmodmaprc ファイルです:
!
! This is an `xmodmap' input file for Apple Standard ADB keyboards.
! Automatically generated on Wed Jun 28 20:09:20 1995 by kenn with
! XKeyCaps 2.22; Copyright (c) 1994 Jamie Zawinski <jwz@lucid.com>.
!
! This file presupposes that the keyboard is in the default state, and
! may malfunction if it is not.
!
remove Mod1    = Alt_L

keycode 0x3D =  Down
keycode 0x3E =  Up

add    Mod1    = Meta_L
さらに、.xinitrcファイルに次の一行を加えます(最後ではなく最初の方に):
xmodmap $HOME/.xmodmaprc
これだけです。Mod1のremoveとaddというのは、私の設定ではMod1モディファイアーキーとしてデフォルトのオプションキーではなくコマンドキーを使用しているということです。
[訳註: Mod1モディファイアー=MuleではMetaキーとして使ったりする]

9.13 Xの使用中スピーカから音が出ません

古いX配付セットを使っているのが原因です。明らかにX用のサウンドの対応は難しいようですが、Scott Reynolds (scottr@og.org)がNetBSD 1.3のXリリースに音を出させることに成功しました:

ftp://ftp.NetBSD.org/pub/NetBSD/NetBSD-1.5/mac68k/binary/sets/

9.14 モノクロのXもいいですがカラーは?

これはハードウェアに依存します。中田健 (kenn@eden.rutgers.edu)とTaras Ivanenko (ivanenko@ctpa03.mit.edu)による初期の作業、およびPaul Goyette (paul@whooppee.com)によるさらなる作業により、NuBusビデオカードを使用するいくつかの'030および'040ベースの機種で、8-bitカラーが利用できるようになっています。

注意:ここに挙げられた情報のほかに、Mark Andres (mark@giganet.net)のカラーX HOWTOも見ておいた方がよいかも知れません。URLは:

http://www2.giganet.net/~mark/NetBSD/howtos/color-x-howto.html

カラーモードでXを使うためにはふたつの条件を満たす必要があります:まず、カーネルにカラーに対応していること。そして、そのカラー機能をXサーバーが知っていて利用できること。NetBSD 1.3に対応したカラーサーバーは以下のURLから入手できます:

ftp://ftp.macbsd.com/pub/NetBSD/X/Xmac68k_color.tar.gz

[訳註:これは中田健のX11R6ベースのカラーサーバーソースを元にColin Wood (ender@macbsd.com)がNetBSD 1.3のX11R6.3に移植したものです]

もしNetBSD 1.2用のカラーサーバーが必要な場合は、上と同じディレクトリーにあるold/サブディレクトリーをチェックしてみてください。

それぞれのサーバーと同じディレクトリーにあるREADMEファイルを読んでください。さらに、中田健からのカラーサーバーの新機能についてちょっとした情報があります:

新機能は、非カラー対応カーネル使用時のgrfデバイスの初期化です。

サーバーはまず8-bppモードでgrfデバイスを初期化しようとします。それに失敗すると次に1-bppモード初期化を試みます。この初期化にはどちらもTaras Ivanenkoのカラーgrfドライバーのioctl() APIが使用されるので、GENERICカーネルなどカラー対応ドライバーが組み込まれていないカーネルでは初期化は必ず失敗します。古いカラーサーバーではこの時点で諦めていましたが、新しいサーバーはここで、もう少しもがくのです:カラーgrfドライバーAPIで失敗しているのだから今動いているカーネルはカラー対応ドライバーは持っていないだろう、とサーバーは推測します。そしてgrfデバイスは既に1-bppに初期化されているものと仮定し、1-bppモードで起動します。従って、もしNetBSDブート時に1-bpp以外のモードでビデオが初期化されているとサーバーは正常動作しません。しかし、古いサーバーでもどっちみち正常動作は望めなかったのですから違いはないでしょう。

注意: Colorkitに関する誤解について: Tarasのgrfドライバーを組み込んだカーネルとこのサーバーを使用している場合、NetBSDブート時のカラーデプスは何でも構いません。サーバーが8ビットか1ビットに初期化してしまうからです。もしあなたのビデオカードが8ビットモードに対応していない場合1ビットモードが使用されます。言い換えれば、いくらNetBSDブート時にわざわざ使いたいカラーデプスに初期化したとしても、このサーバーでは8または1-bit以外のモードは使用されないということです。なぜ4、16や24ビットモードに対応しなかったかというと、ぶっちゃけた話スキルが追いついていなかったのと[訳註:その後少しはマシになったと見えて、1/4/8/16ビットの各ピクセルデプスに対応するサーバーを作ったりしてはいますが]、それほど必要性を感じなかったからです。ごめん。

簡単に言えば、このサーバーなら通常カーネル、カラー対応カーネルどちらでも動作する、ということです。また端末のビープにも対応しています。という訳で、このサーバーがたぶん私が選ぶサーバーということになります。

もしこのカラーサーバーを/usr/X11R6/bin/Xmac68k(デフォルト)以外のファイル名でインストールした場合は、そのファイルから/usr/X11R6/bin/Xへのシンボリックリンクを張ってstartxが正しいサーバーバイナリーを起動できるようにしてやります。

カラービデオサポートをカーネルに付加するにはふたつのやり方があります。古い方がcolorkitのLKM (ローダブル・カーネル・モジュール)を使うやり方です。NetBSD 1.3以降で動作するLKMは次のURLから入手できます:

ftp://ftp.macbsd.com/pub/NetBSD/X/video_lkm/video_lkm_combined.o

Colorkit LKMを使うためにはまずカーネルにロードすることが必要です。最近のカーネルを使っているのなら、既にLKMに対応しているはずです。しかし1.2以前のカーネルの場合にはLKMを使えるようにしたカーネルを自分で構築するか、1.3にアップグレードする必要があります。まず、上のオブジェクトファイルを/usr/lkmにインストールします。そして、新しい/etc/lkm.confがある場合にはそれを下のようにエディットします:

#       $NetBSD: lkm.conf,v 1.2 1997/07/14 11:55:46 drochner Exp $
#
# see lkm.conf(5) for details.  path will look in /lkm and /usr/lkm.
#
# path          options         entry           postinstall     output  when
video_lkm_combined.o    -       video_lkm_cmd   -       /tmp/video      -

もし/etc/lkm.confファイルを使っていない場合は/etcディレクトリーの内容をアップグレードした方がよいでしょう。または、以下のようなものを/etc/rc.localに加えてください:

# Set up color video
if [ -f /usr/lkm/video_lkm_combined.o ] ; then
        echo 'loading color video.'
        modload -o /tmp/video -e video_lkm_cmd video_lkm_combined.o
fi

上のコマンドは手動で起動することもできますが、カーネルコンフィギュレーションでoptions INSECUREが指定されている場合を除き、modloadはシングルユーザーモードでないと実行できません。三つ目の選択肢は、 colorkit LKMソースを入手してコンパイル・インストールし、コンパイルしたディレクトリーに移動してmake loadコマンドを実行することです(もちろんシングルユーザーモードで)。

Colorkit LKM使用時の注意としては、このモジュールはあまり潔くアンロードしないので、マルチユーザーからシングルユーザーモードへシステムをシャットダウンして再度LKMをロードしようとした場合に、一番ありそうなのはシステムがハングしてしまうことです。

さて、カーネルにカラー対応を付加する二番目の方法ですが、これはPaul GoyetteのSLOTMANカーネルを利用することか、または彼のSLOTMANパッチを手に入れて自分のカーネルを構築することです。どちらも以下のURLから入手可能です:

http://www.whooppee.com/slotman/

こちらの方がLKMを使った方法よりおススめです。というのはSLOTMANの方がより多くのビデオカードに対応しており、またこちらのSlot Managerコールの実装の方が、上のLKMよりもより完成度が高いからです。SLOTMANカーネルでサポートされるハードウェアのリストは上のディレクトリーから入手できるはずです。もしあなたの機種がリストに載っていない場合はPaul (paul@whooppee.com)に直接問い合わせてみてください。

さて、今までの話はすべてNuBus (またはPDS)のビデオカードに限ったことでした。では、内蔵ビデオのカラー対応は、というと、Michael Zucca (mrz5149@acm.org)が作業中です。結果として、どの'040ベースMac内蔵ビデオでもカラーXは現在のところサポートされていません。Michaelのプロジェクトページに彼の作業の現状報告があります:

http://www.mdc.net/~mrz5149/projects.html

[訳註:限定つきながら内蔵ビデオでカラーに対応したXサーバーが最近非公式リリースされました。URLは以下の通りです:

ftp://ftp.macbsd.com/pub/NetBSD/X/Xmac68k_OSFA.tar.gz

このOSFAサーバーでは、カラービデオLKMやSLOTMANカーネルを使用していなくても、NetBSDブート時にあらかじめピクセルデプスを好みのものに初期化しておくことでそのモードでサーバーが動作します。ピクセルデプスとしては1/4/8/16ビットの各モードに対応しています。ビデオLKMやSLOTMANカーネル使用時には1-bitを除くどのモードでもカラー表示が可能ですが、通常カーネル使用時には1/4/8ビットではカラーではなくグレイスケール表示になります。これはCLUT (カラールックアップテーブル)のハードウェア操作はビデオLKMやSLOTMANなしでは不可能なためで、NetBSDブート時にあらかじめモニターコントロールパネルやコントロールバーなどでグレイスケールモードにしておく必要があります。16-bitでは5-5-5 TrueColorモードのみに対応しています。インストール手順などはXmac68k_colorと同様です。私のところでは普段はQuadra 840AVの内蔵ビデオの16-bitカラーモードで使用しています—中田]

9.15 X起動時にFatal server error: Can't run X server with no screens!とエラーが出てXが終了してしまいます

これは恐らくあなたのビデオハードウェアにカーネルが対応していないのが原因だと考えられます。すべての内蔵ビデオ回路がサポートされている訳ではないのが現状です。まずdmesgコマンドを使ってブートメッセージ中にgrf0という文字列を含む行があるかどうか見てください。もしそのような行がなければ、今のところお手上げです(特定ハードウェア用の特殊なパッチやドライバーを組み込んだカーネルがある場合は別ですが)。

もしgrf0の行がある場合は、恐らくデバイスの作り忘れと考えられます。Rootになって/devディレクトリーにcdし、次のコマンドを実行して適切なデバイスファイルを作成してください:

sh MAKEDEV grf0 grf1 grf2 grf3
これでたぶん問題は解決するでしょう。

解決策を寄せてくれた中田健 (kenn@eden.rutgers.edu) に感謝します。

9.16 キーボードレイアウトが私のドイツ語キーボードと違っています

Hauke Fath (hauke@Espresso.Rhein-Neckar.DE)がドイツ語キーボード用xmodmaprcファイルを作ってくれました。

ftp://ftp.NetBSD.org/pub/NetBSD/arch/mac68k/contrib/Xmodmap/de/
から入手できます。

9.17 X起動時に/dev/grf2: not foundというエラーで終了してしまいます

恐らく古いシステムに二台以上のモニターを接続して使っているのではないでしょうか。いずれにせよ1995年9月以降のXサーバーではいくつかチェックを行うようになっていて、そのひとつが/dev/grf2をオープンしようとしているのが原因です。このデバイスファイルが存在しないとXサーバーは終了してしまいます。

これを修正するにはrootになって/devディレクトリーにcdし、/dev:

sh MAKEDEV grf2 grf3
を実行してデバイスファイルを作成します。

もし上の手順でうまくいかない場合、新しいバージョンのMAKEDEVスクリプトをインストールする必要があります(バージョン1.2以降なら大丈夫)。

回答と修正案を寄せてくれた中田健(kenn@eden.rutgers.edu)とAllen Briggs (briggs@puma.macbsd.com)に感謝します。

9.18 コンソールへのメッセージでXの画面がぐちゃぐちゃになってしまいます

Xconsoleを使うか、xtermを-Cオプションつきで起動する必要があります。ただし、

options         UCONSOLE
というオプションがカーネルコンフィギュレーションファイルに記述されている必要があります(GENERICカーネルはそのようになっています)。xconsoleのバグにより、Xの起動スクリプト(.xinitrcなど)の中でコンソールの所有者を自分に変えておく必要があるかも知れません。

また、/etc/syslog.confファイルをエディットすることで、syslogの出力をどこへでもリダイレクトすることができます。

回答を寄せてくれたDavid Brownlee (abs@anim.dreamworks.com)に感謝します。

9.19 Xサーバー以外をアップグレードしたらフォントに関してエラーが出るようになってしまいました

この問題の原因は、バージョン1.3用Xではgzip圧縮されたフォントを使用していることです。これは新しいXセットはXFree86 3.3をベースにしているからですが、一方古いバージョンはXコンソーシアムのX11R6をベースにしており、フォントはcompress圧縮になっています。新しいサーバーは古い形式のフォントファイルを取り扱えますが、逆はできません。

これを解決するにはXサーバーも含めてXをアップグレードする必要があります。もし古いカラーサーバーを利用しているのが理由でサーバーをアップグレードしなかった場合は、新しいXセットと互換性を持ったカラーサーバーがありますからそちらを使用してください:

ftp://ftp.macbsd.com/pub/NetBSD/X/Xmac68k_color.tar.gz

この情報を寄せてくれたKevin F. Havener (havenerk@thunder.safb.af.mil)に感謝します。

9.20 Xを起動しようとするとマシンがハングしてしまうようです

もしあなたのマシンにXが対応しているなら(コンソールが動作するマシンであればほとんどの場合Xも対応します)、ただ単に、起動に非常に長い時間がかかっているだけということが考えられます。例えばLCIIのようにFPUの無くてメモリーの少い機種ではXの起動に20分以上かかることがあるようです。ですから、コーヒーでもいれに行って気長に待ってみてください。

一方、グレイのクロスハッチバックグラウンドに黒いX形カーソルが現れた状態から先に進まない場合は[訳註:特にマウスを動かすとカーソルが動く場合]、.xinitrcファイルを設定していないことも原因として考えられます。このファイルがXクライアントを自動的に起動するのです(ただ、パスがきちんと通っているならばデフォルトの状態で最低でもxtermウィンドウが開くはずですが)。Xの自分好みの設定方法についてはX(1)xinit(1)のマニュアルページを参照してください。

9.21 Xを起動すると、すべてがピンクと黄色の陰影で表示されます

NetBSDをブートするときに画面を1-bitモードにしておかなかったこと、カラーXサーバーを使用していること、そしてあなたのシステム構成ではカラーサーバーがサポートされないこと、が原因です。表示されている色は、ブート時にたまたまCLUT (パレット)に設定されていた色なのでしょう。カラードライバーによってサポートされているNuBusビデオカードを持っている場合は カラーXの項を参照して設定してください。そうでない場合は NetBSDを1-bitモードでブートする必要があります。

9.22 マウスボタン1,2,3の キーボードでのエミュレーションが動作しません。

1.2G 以降のカーネルでは、 option キーと同時に "1"、 "2"、 "3"キーを押すことで、3ボタンマウスをエミュレート することが可能です。ただし、これはデフォルトの GENERIC カーネルでは有効では ありません (少なくともバージョン 1.5 ではそうなんです) 。

マウスボタンのエミュレーションを有効にするには、 NetBSD/mac68k Kernel Compiling HOWTO の説明に従って新たにカーネルを構築する 必要があります。カーネルソースをダウンロードして、(HOWTO の説明どおりに) 新しくコンフィギュレーションを作ってから、コンフィギュレーションファイルの ALTXBUTTONS のある行の行頭の # を削除して、次のようにします。

options    ALTXBUTTONS     # Map Opt-{1,2,3} to mouse buttons

あとは HOWTO の説明のとおり、新しいカーネルの構築とインストールを続けます。

9.23 backspace キーを押すと バックスペースではなく ~ になります。

.xinitrc (xdm を使う場合は .xsession) ファイルに

xmodmap -e "keysym Delete = BackSpace Delete"
と書いてみてください。これにより、 backspace が押されたときには backspace を、 shift と同時に押されたときは forward-delete を生成するようになるはずです。 お使いのシステムで forward-delete が機能するかどうかはわかりませんが、 少なくとも backspace の問題は治るはずです。


Next Chapter | Previous Chapter

Table of contents of this chapter, General table of contents

Beginning of this Chapter


(連絡先 - 英語, 日本語: www@jp.NetBSD.org)
$NetBSD: faq-9.html,v 1.2 2007/06/09 20:18:05 dsieger Exp $
Copyright © 1994-2003 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.