Top / Old / etch / Software / X-Window-System

X Window System の FAQ

このビデオカードで X は使えますか?

ほとんどのビデオカードは vesa や vga という汎用ドライバで使えます。
etch のオフィシャルツリーにある X のバージョンは xorg 7.1 です。
ビデオカード毎のドライバはこのへんで調べてください。(註 xorg 7.0 時点のものです)

http://www.x.org/archive/X11R7.0/doc/html/RELNOTES3.html

xorg 7.1 のものは、残念ながら、個々のドライバについての説明はありません。

http://www.x.org/archive/X11R7.1/doc/RELNOTES3.html

sarge のオフィシャルツリーにある X のバージョンは xfree86 4.3.0 です。

http://www.xfree86.org/4.3.0/Status.html

  • [注意] 広く一般的に採用されている Intel 製チップの場合、公式のグラフィカルなインストーラでは i810 しか選択できません。
    i810 用ドライバーは、 i81x 以外に 830M, 845G, 852GM, 855GM and 865G もサポートしています。
    間違って i810 の替わりに vesa や vga を選択すれば、かえって問題が発生する可能性があります。

X が立ち上がらないんですけど

とりあえず ~/.xsession の書き方を間違えていませんか?
マウスやキーボードの設定は間違えてませんか?
ありもしないものなどが書かれていると起動に失敗する場合があります。
まずは ~/.xsession-errors に怪しげなエラーが出力されてないかチェックしましょう

# dpkg-reconfigure xserver-xorg

(sarge では)

# dpkg-reconfigure xserver-xfree86

で /etc/X11/xorg.conf (/etc/X11/XF86Config-4) を作り直してみてはいかがでしょうか?

それでも駄目な場合は必ず以下の3つの情報を添えて投稿してください。

  • /var/log/Xorg.0.log (/var/log/XFree86.0.log) の (WW) や (EE) の内容
$ grep -n "(EE)\|(WW)" /var/log/Xorg.0.log
  • インストールされている X のバージョン
$ X -version
$ dpkg -l | grep xserver-
  • 使っているビデオチップ (カードの製品名でなくチップの名前を教えてね)
悪い例)
Triplex Millennium Silver Ti4600

良い例)
GeForce4 Ti4600

チップ名の調べ方は

$ lspci | grep VGA
01:00.0 VGA compatible controller: Matrox Graphics, Inc. MGA G400 AGP (rev 82)

でわかります。(上は Matrox の G450 で表示させた例) 質問の際、一緒にこの結果を貼り付けましょう。

X もしくは ディスプレイマネージャ (*dm) が立ち上がっても、即座に落ちてしまう

$HOME/.xsession の書き方を間違っていませんか? このシェルスクリプトは X の起動処理 (Xsession) で読み込まれます。

  • Xsession の大まかな流れは以下の通りです。
         xdm           gdm            kdm          startx
          |             |              |             |
          |     /etc/gdm/Xsession      |       $HOME/.xinitrc
/etc/X11/xdm/Xsession   |   /etc/kde3/kdm/Xsession   |
           |            |              |    /etc/X11/xinit/xinitrc
           |            |              |             |
           +------------+              +-------------+
                        |              |
                        /etc/X11/Xsession
                                | (以降共通の処理)
                       /etc/X11/Xsession.d/*
                                |
                         $HOME/.xsession
                                |
                +---------------+-----------------+
                |               |                 |
       x-session-manager  x-window-manager  x-terminal-emulator

/etc/X11/Xsession.options に "allow-user-xsession" があるかどうか確認してください。 なければ $HOME/.xsession は読み込まれません。 gdm/kdm は Xsession に引数を与えて起動しています。 これによりフェイルセーフモードなどの起動制御を行うことができるようです。 $HOME/.xsession の一番最後のプログラムが終了すると X も終了し、コンソールに戻ります。 従って、$HOME/.xsession の最後で、

exec x-session-manager

などと行うと、Xsession のプロセスをウィンドウマネージャなどが引き継いでくれます。 (実際に自分で起動スクリプトを眺めてみるのもいいと思います。)

  • シェルのビルトインコマンドである `exec' を使ってプログラムを起動させていると、場合によっては /etc/X11/Xsession が止まってしまいます。

man bash からの引用

exec [-cl] [-a name] [command [arguments]]
command が指定されていると、シェルはこのコマンドに置き換えられます。 新しいプロセスは生成されません。

例えば、

exec kinput2 -canna

など。これは Xsession のプロセスを全て kinput2 という ウィンドウマネージャではないプログラムに渡すということなので不具合が起こります。従って、

kinput2 -canna &

などとすべきです。("&" はもしかしたら不必要?)

exec kinput2 -canna &

でもOKなものもあるらしいですが、kdm (= 3.4.2-4) では NG、kdm (= 3.3.2-1) では OK と結果が分かれました。

  • 対話的処理を前提としているものも Xsession を止めてしまいます。
  • DM 特有の問題
    • gdm
    • kdm
      • kdm では "default" 以外を選ぶと $HOME/.xsession を読みません。
      • kdm (>= 3.4.2-4) では /etc/kde3/kdm/Xsession を読む限り、$HOME/.bash_profile などを読むようになったみたいです。このため、$HOME/.bash_profile に `exec' などがある人もハマるみたいです。(exec screen など)

詳しくは、

  • man Xsession
  • man startx
  • /usr/share/doc/xfree86-common/examples/xsession.gz (sarge)
  • /usr/share/doc/x11-common/examples/xsession.gz (etch 以降)
  • お使いのシェルのマニュアル (特に `exec' などの項目)
  • お使いのディスプレイマネージャのドキュメント
  • kdm を導入しているならば /usr/share/doc/kdm/News.Debian.gz の Changes to user login script handling: の項目
  • 徹底入門第 3 版 p242~p245
  • http://lists.debian.or.jp/debian-users/200507/msg00239.html

などを御覧ください。

セッションマネージャーってどうなってるの?

デスクトップ環境でインストールすると、グラフィカルなログイン画面になりますが
ここにカスタマイズ DE (デスクトップ環境) を追加するのは意外と簡単。
GDM や KDM は /usr/share/xsessions/hogehoge.desktop という設定ファイルを見て ログイン画面の「セッションの選択」に表示しています。
一例として、/usr/local/bin/startroxsession という名前で

#!/bin/sh
exec beryl-manager &
sleep 2
exec xterm &
exec rox-filer -S

のようなセッション起動スクリプトを作っておき、/usr/share/xsessions/rox.desktop という名前で

[Desktop Entry]
Encoding=UTF-8
Name=ROX Session
Comment=Use this session to run ROX desktop environment
Exec=/usr/local/bin/startroxsession

とこんな感じで設定ファイル (適当で申し訳ない) を置けばよい。

xserver-xfree86 が dpkg-reconfigure で再設定できない

sarge では、dpkg-reconfigure で再設定する場合は XF86Config-4 にも書いてあるとおり

# cp /etc/X11/XF86Config-4 /etc/X11/XF86Config-4.custom
# md5sum /etc/X11/XF86Config-4 > /var/lib/xfree86/XF86Config-4.md5sum
# dpkg-reconfigure xserver-xfree86

として保存されている md5sum を更新する必要があります。 また sudo でやる場合、リダイレクトする部分を以下のような感じ

$ sudo sh -c "md5sum /etc/X11/XF86Config-4 > /var/lib/xfree86/XF86Config-4.md5sum"

XFree86 から X.Org に upgrade したら \_ が使えなくなった

upgrade 時にファイルがうまく移行できてないからかも。 /etc/X11/xkb/keycodes/xfree86.dpkg-dist があったら xfree86 にリネームして再起動。

XkbDisable すると \_ が使えなくなる

多分バグなので、直るまで

xmodmap -e "keycode 211 = backslash underscore kana_RO"

とでもしてお茶を濁しておくが吉。

X.Org 7.3 にアップグレードすると解像度が設定できなくなる

xorg バージョン 1:7.3+2 からは /etc/X11/xorg.conf の Modes セクションで解像度を設定できなくなりました。 代わりに `xrandr' コマンド (パッケージは x11-xserver-utils) を使用してください。詳細は、

を参照して下さい。

nVidia 謹製ドライバを使いたい

まずカーネルモジュールをインストールします。 2.4 系カーネルな人は nvidia-kernel-(カーネルのバージョン) を使いましょう。 2.6 系カーネルだったり、自分で再構築したい人は nvidia-kernel-source というのがあります。 (etch では kernel 2.6 用のパッケージも提供されています。) 再構築方法は外部カーネルモジュールを再構築したいを参照。

続いて nvidia-glx をインストール。 /etc/X11/XF86Config-4 (or /etc/X11/xorg.conf) から nv, dri, GLCore 等をコメントアウト、nvidia と glx を追加する。

#Load "dri"
#Load "GLCore"
Load "glx"
#Driver "nv"
Driver "nvidia"

そして使用するユーザを video グループに追加し、nvidia モジュールを手動で読み込んでおきます。

# adduser (ユーザ名) video
# modprobe nvidia

そして再ログイン (既にVideo グループに入っているなら不要) し、X を再起動。

参考:
/usr/share/doc/nvidia-glx/README.Debian
/usr/share/doc/nvidia-kernel-source/README.Debian
http://home.comcast.net/~andrex/Debian-nVidia/

USB マウスの挙動がおかしい

evdev ドライバを使えば改善するかもしれません。 /etc/X11/xorg.conf の InputDevice セクションを

Section "InputDevice"
        Identifier "mouse"
        Driver     "evdev"
        Option     "evBits"        "+1-2"
        Option     "keyBits"       "~272-287"
        Option     "relBits"       "~0-2 ~6 ~8"
        Option     "Pass"          "3"
EndSection

参考:
http://www.linux-gamers.net/modules/wiwimod/index.php?page=HOWTO%20Mouse%20Buttons

compiz を使う

http://kmuto.jp/d/index.cgi/debian/compiz.htm



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-12-12 (金) 23:26:27 (3119d)