NetBSD ドキュメンテーション: X Window System
X の実行
- XFree でマウスを動作させる方法は ?
- X でのキーボード配列を 'US' から変更する
- Caps キーをもうひとつの Control キーにする方法は
- Rage 128 でアクセラレートしていると XF86_SVGA でのグリフが乱れる
- NetBSD 1.3.x でコンパイルすると X が非常に遅い
- xdm をバイパスする方法
- 'startx' すると startx: Command not found. と文句を言われる。なぜ ?
- X が動かない - 'xinit: not found'
- startx が失敗する -'X connection to: 0.0 broken'
- コンソール表示 ('su'などの) が X の表示をこわす
- マウスのホイールを使えるようにする方法は?
- XFree86 Documentation
- 私が使っている XFree86 のバージョンは何?
- NetBSD 上での X11 用アンチエイリアスフォントの設定方法
- Xft を使うアプリケーションが CPU を食っていますが、 何もしていないように見えます!
- 'No fonts found' - どういう意味?
- デフォルトのウィンドウマネージャーを変更する方法は?
プログラムのコンパイル
- コンパイルに失敗する - 'unable to locate libXm'
- コンパイルに失敗する - 'unable to locate xpm.h' または '-lXpm: no match'
- コンパイルでリンクに失敗する: Undefined symbol '_XOpenDisplay'
X の実行
XFree でマウスを動作させる方法は ? (トップ)
デフォルトの wscons コンソールドライバーを使っていると仮定しますが、 XF86Config ファイルの "Pointer" セクションで、マウスのプロトコルとデバイスが 正しく設定されているか確認してください:
Section "Pointer" ###Protocol "PS/2" # Linux ###Device "/dev/mouse" # Linux ##Protocol "busmouse" # NetBSD 1.4.x ##Device "/dev/pms0" # NetBSD 1.4.x Protocol "wsmouse" # NetBSD 1.5 or later Device "/dev/wsmouse" # NetBSD 1.5 or later EndSection
wscons を使わない場合 (1.4.x ではこれがデフォルト) 、
PS/2 マウスでは /dev/pms0
と "busmouse" プロトコルを使います
古いカーネル用に "PS/2" プロトコルもまだサポートされていますが、
この場合、そのカーネルの opms マウスドライバーと "/dev/pms0
"
デバイスを使う必要があります。
これは wscons プロトコルをサポートしない
(XFree V4 や、 Linux/FreeBSD の X サーバーのバイナリーのような)
X サーバー用に使えます。
X でのキーボード配列を 'US' から変更する (トップ)
XFree 3.x は、デフォルトでは英語キーボード配列を使います。これを、 たとえばドイツ語に変えるには、 XF86Config ファイルに次のように 書きます:
# XkbDisable # XkbKeymap "xfree86(us)" XkbModel "pc102" XkbLayout "de" XkbVariant "nodeadkeys"
XFree 4.x で、たとえばドイツ語キーボードにするためには、 XF86Config の "InputDevices" セクションに下記のように書きます:
Options "XkbLayout" "de"
wscons 下でのコンソールにおけるキーボードの設定は、別ページで説明しています。
Caps キーをもうひとつの Control キーにする方法は (トップ)
(NetBSD 1.l5 に附属している) XFree 3.x では、
caps-lock キーを 2 個目の control キーとして使いたい場合は
“XkbOptions "ctrl:nocaps"
” を追加します。
キーボードの "Windows" キーを使いたければ、
“XkbModel "pc105"
”
に差し替えて、使えるようにすることができます。
XFree 4.x では設定ファイルの書式が異なります。こちらでは、
Option "XkbOptions" "ctrl:nocaps"
を XF86Config ファイルの "InputDevice" セクションに書きます。
Rage 128 でアクセラレートしていると XF86_SVGA でのグリフが乱れる (トップ)
これを修正するため、 2000-01-13 以降の xsrc を用意してください (このほか、PR
misc/9171
のパッチを適用する必要があります) 。
そして、 XF86Config
の Device セクションで
Option "xaa_no_color_exp"
を使います。
NetBSD 1.3.x でコンパイルすると X が非常に遅い (トップ)
NetBSD 1.3 シリーズ用の パッチ があり、これは、コンパイルや他のタスクの実行中の X 下でのパフォーマンスの相互の影響を大幅に改善します。
xdm をバイパスする方法 (トップ)
xdm(1) を有効にしているが、 root パスワードがなく、 利用可能な仮想コンソールがない (あるいはお使いのポートでは未サポートである) など、何らかの理由でログインできない場合は、ブートメッセージ後の xdm スタートの兆しが見えた直後に ^C を押すか、または以下のようにすることができます:
- シングルユーザーモードでブート - 普通は、 ブートコマンドの最後に '-s' を追加すればよいです。
- シェルの起動 - シェルを尋ねられたら
ENTER
を押します。 -
fsck(8) と mount(8)
を使ってディスクのチェックとマウント -
fsck -p ; mount -vat ffs
- 変数に端末の種類を設定 -
TERM=vt100 ; export TERM
注意: 'pc3' や 'sun' など、 別の端末の種類にする必要があるかもしれません。 - 問題の修正 -
/etc/rc.conf
を編集して xdm を使わないようにし、 passwd(1) で root のパスワードの設定をするなど、必要な修正をします。
'startx
' すると startx: Command not found.
と文句を言われる。なぜ ? (トップ)
X のバイナリーの場所をシェルの
path
変数に加える必要があります。
csh(1) 系のシェルでは、 .cshrc
ファイルの
path
を設定する行に
/usr/X11R6/bin
を加えます。
sh
系のシェルでは、
.profile
を編集する必要があります。
X が動かない - 'xinit: not found' (トップ)
/usr/X11R6/bin
を path に入れてください。
root で 'set path = ( $path /usr/X11R6/bin )
' を
/etc/csh.cshrc
に追加し、新たなシェルを起動してください。
startx が失敗する -'X connection to: 0.0 broken' (トップ)
この場合、エラーメッセージを見るために、次のようにして起動してください:
- 使用しているシェルが csh(1) または
shells/tcsh
の場合:startx >& ~/x.log
- 使用しているシェルが sh(1), ksh(1) 等の場合:
startx > ~/x.log 2>&1
そして、~/x.log
を見てください
コンソール表示 ('su'などの) が X の表示をこわす (トップ)
システムは何かが起こったこと ('su'など) を示すためコンソールに出力を行います。 このコンソール出力を表示させるための、xconsole(1) あるいは 'xterm -C' プログラムを起動するようにしてください。
以下を有効にしてカーネルをコンパイルする必要があるかもしれません:
options UCONSOLE # allow anyone to steal the virtual console
詳しくは カーネルの作り方 を参照してください。
もしあなたが root でログインしていて、
うっとうしい portmap
の注意を受けているのであれば、
このメッセージを出さないようにする方法の
FAQ 項目を見るのがいいかもしれません。
マウスのホイールを使えるようにする方法は? (トップ)
Microsoft IntelliMouse、 Logitech Wheel Mouse (cordless our not) 、 またはこれらに似たスクロールホイールのあるマウスを使っていて、 NetBSD でそのホイールを使いたい場合、 まず "pmsi" ドライバーを含むカーネルを作り、 "wsmouse" がこれを使うようにします。次のようなものが dmesg(8) の出力中に含まれるはずです:
pmsi0 at pckbc0 (aux slot) wsmouse0 at pmsi0
(NetBSD 1.5.2 以前に附属している) XFree86 3.x を使っている場合は、
/etc/XF86Config
の内容に下記を含めるようにしてください:
Section "Pointer" Protocol "wsmouse" Device "/dev/wsmouse" ZAxisMapping 4 5 EndSection
XFree86 4.x を使っている場合は、 /etc/X11/XF86Config
の内容に下記を含めるようにしてください:
Section "InputDevice" Identifier "Mouse0" Driver "mouse" Option "Protocol" "wsmouse" Option "Device" "/dev/wsmouse" Option "Buttons" "5" Option "ZAxisMapping" "4 5" EndSection
xterm をスクロールさせるならこれだけで十分です。他のアプリケーションでは、
~/.Xdefaults
を編集する必要があります。利用可能な多くのアプリケーション
について、詳しくは
Colas Nahaboo の X マウスでホイールスクロールなページ
を見てください。
XFree86 Documentation (トップ)
私が使っている XFree86 のバージョンは何? (トップ)
実行中の X サーバーのバージョンを簡単に調べるには、 xdpyinfo(1) が使えます。たとえば次のようにします:
$ xdpyinfo | grep release vendor release number: 335
XFree86 の場合、これはサーバーのバージョンが 3.3.5 であることを表します。
NetBSD 上での X11 用アンチエイリアスフォントの設定方法 (トップ)
Note
pkgtools/xpkgwedge
を使っている場合は、
以下の説明中のパスを適宜読み替えてください
-
pkgsrc から、
fonts/ms-ttf
パッケージをインストールします。 pkgsrc 版の X を使っている場合は、fonts/mkfontscale
およびfonts/fontconfig
パッケージもインストールします。 -
NetBSD 附属の XFree86 を使っている場合、 pkgsrc の
fonts/fontconfig
は、もっと複雑なオプションを使えるので、 そちらを使うことを考えてもよいでしょう。附属 (あるいは標準) のバージョンを使わずに pkgsrc 版を使うようにするため、/etc/mk.conf
ファイルで pkgsrc 用の変数PREFER.fontconfig
を以下のように設定します。PREFER.fontconfig=pkgsrc
さらに、fontconfig がビットマップフォントを今後一切使わないように指示するとよいでしょう。
# cd /usr/pkg/etc/fontconfig/conf.d # ln -s ../../../share/examples/fontconfig/conf.avail/70-no-bitmaps.conf .
標準の fontconfig ライブラリーを完全に pkgsrc 版に置き換えるとよいかもしれません。 これまでにコンパイルしたバイナリーが標準のライブラリーを使っている場合、 こうすると便利です。
# cd /usr/X11R6/lib # mv libfontconfig.so.1.0 libfontconfig.so.1.0.old # rm libfontconfig.so.1 # ln -s ../../pkg/lib/libfontconfig.so.1 . # cd /usr/X11R6/bin # mv fc-cache fc-cache.old # mv fc-list fc-list.old
-
fontconfig を設定するため、以下の行を local.conf に追加します。このファイルは、ふつうは
/etc/fonts/local.conf
にあります。 fonts/fontconfig パッケージをインストールしている場合は、/usr/pkg/etc/fonts/local.conf
にも同様に追加する (あるいは、どちらか一方のファイルを、もう一方へのシンボリックリンクにする) 必要があります。<dir>/usr/pkg/lib/X11/fonts/TTF</dir>
local.conf
ファイルの内容は、以下のようになるでしょう。<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <dir>/usr/pkg/lib/X11/fonts/TTF</dir> </fontconfig>
これ以外の、フォントが置いてあるディレクトリーも、
local.conf
ファイルに追加することができます。 以下に示すのは、teTeX-3.0 と ghostscript のフォントを使うための設定です。<dir>/usr/pkg/share/texmf-dist/fonts/</dir> <dir>/usr/pkg/share/ghostscript/fonts</dir>
-
fontconfig を利用するアプリケーション用のフォントキャッシュを再構築します。
# fc-cache -v
これは、ハードウェアによっては長時間かかります。
-
以下の各コマンドを実行します。
# mkfontscale /usr/pkg/lib/X11/fonts/TTF # mkfontdir /usr/pkg/lib/X11/fonts/TTF
これで、TTF フォントディレクトリーに、
fonts.dir
とfonts.scale
ファイルができたはずです。 -
X サーバーの構成
-
“Module” セクション内に、以下の記述があることを確認します:
Load "type1" Load "freetype"
-
“Files” セクション内の、フォントパスの順序を確認します。 TTF と Type1 用のフォントパスが、 それ以外のものより先にあることを確認します:
FontPath "/usr/X11R6/lib/X11/fonts/local/" FontPath "/usr/pkg/lib/X11/fonts/TTF" FontPath "/usr/X11R6/lib/X11/fonts/Type1/" FontPath "/usr/X11R6/lib/X11/fonts/misc/" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/" FontPath "/usr/X11R6/lib/X11/fonts/100dpi/"
以上の変更を現在の X のセッションに反映するには、 X を再起動するのではなく、以下のコマンドを実行します。
# xset fp rehash
このコマンドは、あらたに追加されたフォントパスを調べます。
X の設定ファイルに “FontPath” ディレクティブを追加するかわりに、
~/.xinitrc
(または~/.xsession
) ファイルで以下のコマンドを実行するという方法もあります。xset +fp /usr/X11R6/lib/X11/fonts/Type1 xset +fp /usr/pkg/lib/X11/fonts/TTF xset +fp /usr/X11R6/lib/X11/fonts/local
-
-
これで完了です。以下のコマンドを実行して、設定できているか確認します。
$ xterm -ls -fg gray -bg black -ls -fa 'Courier New:bold' -fs 10
fc-list
コマンドを実行すると、 利用可能なフォントを一覧表示するはずです。そして、core は吐かないはずです。上で示した xterm コマンドは、fontconfig に関するテストをするだけです。 一方、以下のコマンドは、XLFD 形式でのアクセスをテストします。
$ xterm -fn '-monotype-Courier New-medium-r-normal--0-0-0-0-m-0-iso8859-1'
さらに別のテストですが、以下のようにすると複数のフォントが出力されるはずです。
$ xlsfonts | grep -i 'courier new'
-
pkgsrc/fonts 以下には、別の TTF フォントパッケージもあります。 たとえば
fonts/vera-ttf
などです。
Xft を使うアプリケーションが CPU を食っていますが、 何もしていないように見えます! (トップ)
おそらくそのアプリケーションは、 fc-cache によって準備されているべき
フォント情報の計算をしています─キャッシュの情報を最新のものにするために、
'fc-cache -v
' を実行しなおしてください。
'No fonts found' - どういう意味? (トップ)
No fonts found; this probably means that the fontconfig library is not correctly configured. You may need to edit the fonts.conf configuration file. More information about fontconfig can be found in the fontconfig(3) manual page and on http://fontconfig.org
(訳: フォントが見つかりません; これはおそらく、fontconfig ライブラリーが正しく設定されていないためです。 fonts.conf 設定ファイルを編集する必要があるかもしれません。 fontconfig に関するさらなる情報は、 fontconfig(3) マニュアルページと http://fontconfig.org にあります)
fonts/fontconfig
のインストール時に
MESSAGE
が示した説明どおりに 'fc-cache -v
' を実行していないのです。
詳細は、 'pkg_info -D fontconfig
' するか、前の項目を参照してください。
デフォルトのウィンドウマネージャーを変更する方法は? (トップ)
最初にすることは、使いたいウィンドウマネージャーをインストールすることです。
pkgsrc の wm
カテゴリー以下に、
数多くのマネージャーがインストールできるように用意されています。
インストールしたら、そのバイナリーの名前を調べておいてください。
たいていは、バイナリー名はパッケージ名と同じです。
ウィンドウマネージャーの実行方法を把握した上で、そのウィンドウマネージャーが起動するように
X セッションの設定をする必要があります。ここでは例として twm (X に標準で附属しています)
を使います。バイナリー名は twm
です:
いずれの設定ファイルも内容は同じであることにお気付きでしょう。 よって、これらはリンクさせてもいいかもしれません。
プログラムのコンパイル
コンパイルに失敗する - 'unable to locate libXm' (トップ)
Xm は標準の X11 環境に入っていません。これは商用の GUI である Motif の一部です。
Motif のフリーな実装である Lesstif も利用できます。
これは NetBSD パッケージの中に
x11/lesstif
として含まれています。
コンパイルに失敗する - 'unable to locate xpm.h' または '-lXpm: no match' (トップ)
xpm.h
は X の PixMap
ライブラリーの一部で、
カラーアイコンを作るために多くのプログラムで使われています。
これは NetBSD パッケージの中に
graphics/xpm
として含まれています。
コンパイルでリンクに失敗する: Undefined symbol '_XOpenDisplay' (トップ)
サードパーティー製のソフトウェアの場合、
NetBSD
パッケージコレクションで利用可能なバージョンを確認すべきです。
あなたが書いたコードの場合、
必要な X ライブラリーをリンクするようにしなければなりません。
この場合は、リンク行の末尾に -L/usr/X11R6 -lX11
を追加してください。
Back to NetBSD ドキュメンテーション