Skip to main content.
Google custom search

NetBSD ドキュメンテーション: X Window System

X の実行

プログラムのコンパイル


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 を使っている場合は、 以下の説明中のパスを適宜読み替えてください

  1. pkgsrc から、 fonts/ms-ttf パッケージをインストールします。 pkgsrc 版の X を使っている場合は、 fonts/mkfontscale および fonts/fontconfig パッケージもインストールします。

  2. 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
      

  3. 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>
      

  4. fontconfig を利用するアプリケーション用のフォントキャッシュを再構築します。

      # fc-cache -v
      

    これは、ハードウェアによっては長時間かかります。

  5. 以下の各コマンドを実行します。

      # mkfontscale /usr/pkg/lib/X11/fonts/TTF
      # mkfontdir /usr/pkg/lib/X11/fonts/TTF
      

    これで、TTF フォントディレクトリーに、fonts.dirfonts.scale ファイルができたはずです。

  6. 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
          

  7. これで完了です。以下のコマンドを実行して、設定できているか確認します。

      $ 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'
      

  8. 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 です:

  • startx(1) を使っている場合は、 ~/.xinitrc ファイルに、 以下の行を書き加えます: exec twm
  • xdm(1) を使っている場合は、 ~/.xsession ファイルに、 以下の行を書き加えます: exec 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 ドキュメンテーション