Xorg / ガイド

From Gentoo Wiki
< Xorg
Jump to: navigation, search
This page is a translated version of the page Xorg/Guide and the translation is 100% complete.

Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎polski • ‎русский • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어

Xorgは、簡単に操作可能なGUI環境をユーザーに提供してくれる、X Window serverです。このガイドでは、Xorgとは何か、Xorgのインストール方法、各種設定について説明します。

X Window サーバとは何ですか?

GUI vs GLI

平均的なユーザは、コマンドラインインターフェース(CLI)上でコマンドを入力するというとギョッとするでしょう。Gentoo(や、Linux一般において)によって提供される自由な世界をポイントし、クリックして進んでゆくことは出来ないのでしょうか? いや、もちろんできます!

Gentooはウィンドウマネージャデスクトップ環境のような、既にインストールされているGentooにインストール可能な派手なグラフィカルインターフェイスを提供しています。

Linux初心者が遭遇する最も大きな驚きのうちの一つは、つまり、グラフィカルユーザーインターフェースはシステムの上で動く一つの(あるいは一部の場合、一連の)アプリケーションでしかないということです。これはLinuxカーネルや他の内部システムの一部ではありません。そうは言っても、GUIはあなたのワークステーションのグラフィカルな能力を使わせてくれるパワフルなツールです。

規格というものは重要ですから、描画、スクリーン上でのウィンドウの移動、マウスやキーボードや他の基本的で、しかし重要なものの規格がつくられ、そして"X11"や単に"X"とよく呼ばれる"X Window System"が名付けられました。これは世界中でUnix, Linux, そしてUnixライクなOSで使われています。

X11 規格を利用して Linux ユーザーに GUI を動かす機能を提供しているアプリケーションは、 XFree86 プロジェクトのフォークである Xorg-X11 です。XFree86 は GPL ライセンスとは互換性のないライセンスを使っています。そのため、Xorg の使用が推奨されます。XFree86パッケージはGentooのリポジトリからもはや提供されていません。

X.org プロジェクト

X.orgプロジェクトがつくられ、自由に配布可能な、X11システムのオープンソース実装を管理しています。これがオープンソースのX11ベースデスクトップ基盤です。

Xorgは実行したいグラフィカルソフトウェアとハードウェアの間のインターフェースを提供します。にしても、Xorgは完全なネットワーク意識でもあります。つまり、アプリケーションをあるシステムで実行しつつ、それと異なるシステムで見ることが可能です。

インストール

Xrogのインストールの前に、システムの準備をする必要があります。まず、ビデオカードとインプットデバイスサポートのためにカーネルセットアップを行いましょう。それから、正しいドライバとXorgパッケージがビルドされ、インストールされるために/etc/portage/make.confを準備しましょう。

インプットドライバサポート

カーネル設定を変更することで event interface (CONFIG_INPUT_EVDEV) のサポートを有効化する必要があります。もしカーネル設定の方法がわからなければKernel Configuration Guideを読んでください。

KERNEL カーネルで evdev を有効化する
Device Drivers --->
  Input device support --->
  <*>  Event interface

カーネルモード設定

モダンなオープンソースビデオドライバはカーネルモード設定(KMS)に依存しています。KMSはちらつきの少ないグラフィカルブート、早い応答性、ビルトインフレームバッファーコンソール、コンソールからXorgへの滑らかな切り替えや他の機能を提供します。

Important
KMSはカーネル設定で""disable""であるべき古いフレームバッファドライバと競合します。

まず、KMSのためにカーネルを準備してください。このステップはどのXorgビデオドライバが使われるかにはよりません。

KERNEL 古いフレームバッファーのサポートを無効化し、基本的なコンソール FB のサポートを有効化する
Device Drivers --->
   Graphics support --->
      Frame Buffer Devices --->
         <*> Support for frame buffer devices --->
         ## (Disable all drivers, including VGA, Intel, nVidia, and ATI, except EFI-based Framebuffer Support, only if you are using UEFI)
 
    ## (Further down, enable basic console support. KMS uses this.)
    Console display driver support --->
      <*>  Framebuffer Console Support

つぎに、ビデオカードに正しいKMSドライバをカーネルが使うよう設定してください。Intel、nVidiaやAMD/ATIはよくあるカードなので、下に示したカード毎のコードに従ってください。

インテルのカードについてはkernel section of the Intel articleを見てください。

nVidiaカード:

KERNEL nVidia の設定
Device Drivers --->
   Graphics support --->
      <M/*>  Nouveau (nVidia) cards

新しいAMD/ATIカード (RadeonHD 2000 and up) については emerge sys-kernel/linux-firmware を実行してください(このパッケージにradeonamdgpu が含まれています; 独自の x11-drivers/radeon-ucode パッケージはもはや存在しません)。これらパッケージがインストールされたら、Radeon ドライバーをカーネルのモジュールにするか、あるいは Radeon の記事firmware 節 や新しい AMD グラフィックカード (GCN1.1 以上) に関する AMDGPU の記事の firmware 節 に詳解されているようにカーネルを設定してください。

KERNEL AMD/ATI Radeon の設定
## (Setup the kernel to use the radeon-ucode firmware)
Device Drivers --->
   Generic Driver Options --->
   [*]  Include in-kernel firmware blobs in kernel binary
  ## # ATI card specific, (see Radeon page for details which firmware files to include)
   (radeon/<CARD-MODEL>.bin ...)
  ## # Specify the root directory
   (/lib/firmware/) External firmware blobs to build into the kernel binary
 
## (Enable Radeon KMS support)
Device Drivers --->
   Graphics support --->
   <M/*>    ATI Radeon
   [*]      Enable modesetting on radeon by default
   [ ]      Enable userspace modesetting on radeon (DEPRECATED)
KERNEL AMDGPU の設定
## (Setup the kernel to use the amdgpu firmware)
Device Drivers --->
   Generic Driver Options --->
   [*]  Include in-kernel firmware blobs in kernel binary
  ## # AMD card specific, (see AMDGPU page for details which firmware files to include)
   (amdgpu/<CARD-MODEL>.bin ...)
  ## # Specify the root directory
   (/lib/firmware/) External firmware blobs to build into the kernel binary
 
## (Enable Radeon KMS support)
Device Drivers --->
   Graphics support --->
   <M/*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
   <M/*> AMD GPU
         [ /*] Enable amdgpu support for SI parts
         [ /*] Enable amdgpu support for CIK parts 
         [*]   Enable AMD powerplay component  
         ACP (Audio CoProcessor) Configuration  ---> 
             [*] Enable AMD Audio CoProcessor IP support (CONFIG_DRM_AMD_ACP)
         Display Engine Configuration  --->
             [*] AMD DC - Enable new display engine
             [ /*] DC support for Polaris and older ASICs
             [ /*] AMD FBC - Enable Frame Buffer Compression
             [ /*] DCN 1.0 Raven family
   <M/*> HSA kernel driver for AMD GPU devices
Note
古いカード (X1900シリーズ以下)は追加のファームウェアやファームウェア設定を必要としません。これらについては、単にDirect Rendering Manager (DRM)やATI Radeon modesettingを有効化してください。
Note
Linuxカーネル >= 3.9 はデフォルトで含んでいるためEnable modesetting on radeon by default項目をもっていません。新カーネルにこのオプションがなくても心配しないでください。
Note
Linux kernel >= 4.15 は AMDGPU の動作に必要な Display Core (DC) を含んでいます。この新しいドライバーは GCN5.0 Vega や DCN1.0 Raven Ridge (APU) 向けに書かれたものですが、GCN1.1 Southern Islands 以降の古い Radeon グラフィックカードに対してもさらなる機能を追加します。この古い Radeon カードに対する追加サポートは標準化される予定ですので、新しいカーネルでこのオプションが無くなっていても心配はいりません。

カーネル設定を出て、カーネル再ビルド、再起動しましょう。

今、KMSはセットアップされ、次のセクションで/etc/portage/make.confの準備をします。

make.conf

カーネルは準備され、/etc/portage/make.confファイル中の二つの変数をXorgインストール前に設定する必要があります。

最初の変数はVIDEO_CARDSです。これはあなたの使おうとしているビデオカード用のビデオドライバを設定するために使われます。最もよくある設定は、nVidiaカードにはnouveau、ATIカードにはradeonです。これらは活発に開発され、よくサポートされたオープンソースドライバです。新しい AMD ビデオカード(Southern Islands 以降)を持っている場合、新しい amdgpu オープンソースドライバーを試すことになるでしょう。詳細については AMDGPU の記事を参照してください。

Note
nVidiaとAMD/ATIそれぞれのプロプライエタリドライバ、nvidiafglrxも試すかも知れません。しかしながら、プロプライエタリドライバの設定はこのガイドの範囲を超えています。Gentoo Linux nVidia GuideGentoo Linux ATI FAQを読んでください。どちらを使うべきかわからない場合はそれらのガイドを参照してください。

intelドライバはよくあるIntel統合グラフィクスチップセット搭載のデスクトップやラップトップに使われるでしょう。

Note
スペース区切りの場合、VIDEO_CARDS は2つ以上の値をもちます。

2つ目の変数はINPUT_DEVICESで、これはインプットデバイスにどのドライバがビルドされるか決定するために使われます。

make.defaults では Libinput がデフォルトのインプットデバイスドライバーになっています。

現在何が有効になっているか確認するには、以下を実行します:

user $portageq envvar INPUT_DEVICES

ラップトップ用の Synaptics タッチパッドのような代替インプットデバイスが必要な場合には、それらを /etc/portage/make.conf ファイルの INPUT_DEVICES に忘れずに追加してください。

CODE make.conf のサンプル項目
## (For mouse, keyboard, and Synaptics touchpad support)
INPUT_DEVICES="libinput synaptics"
## (For nVidia cards)
VIDEO_CARDS="nouveau"
## (For AMD/ATI cards)
VIDEO_CARDS="radeon"

もし提案された設定がうまく動かなかったらx11-base/xorg-driversパッケージをemergeしましょう(次のステップを見てください)。有効なオプションを全て選び、どれをシステムに適用するか選んでください。これはキーボード、マウス、Synapticsタッチパッド、Radeonビデオカードのシステムの例です。

root #emerge --pretend --verbose x11-base/xorg-drivers
 
These are the packages that would be merged, in order:
 
Calculating dependencies... done!
[ebuild   R   ]  x11-base/xorg-drivers-1.9  INPUT_DEVICES="evdev synaptics
-acecad -aiptek -elographics% -fpit% -joystick -keyboard -mouse -penmount -tslib
-virtualbox -vmmouse -void -wacom"
VIDEO_CARDS="radeon -apm -ark -ast -chips -cirrus -dummy -epson -fbdev -fglrx
(-geode) -glint -i128 (-i740) (-impact) -intel -mach64 -mga -neomagic (-newport)
-nouveau -nv -nvidia -r128 -rendition -s3 -s3virge -savage -siliconmotion -sis
-sisusb (-sunbw2) (-suncg14) (-suncg3) (-suncg6) (-sunffb) (-sunleo) (-suntcx)
-tdfx -tga -trident -tseng -v4l -vesa -via -virtualbox -vmware (-voodoo) (-xgi)"
0 kB

必須変数の設定後に、Xorgはインストールされます。

root #emerge --ask x11-base/xorg-server
Note
x11-base/xorg-x11 メタパッケージが、より軽量なx11-base/xorg-serverのかわりにインストール可能です。 機能の面からx11-base/xorg-x11x11-base/xorg-serverは同等ですが、x11-base/xorg-x11はシステムが必要としないであろうたくさんのパッケージを導入します。追加のパッケージは多言語fontsの巨大な詰め合わせ を含みます。これらはX11フレームワークの動作に必要ではありません。

インストールが終了したら、続ける前に、いくつか環境変数が再初期化のために必要です。このコマンドでプロファイルをsourceしましょう:

root #env-update
root #source /etc/profile

NVidia ユーザー

NVidiaユーザーには、選択したグラフィクスカードのために有効なxorg.confファイルを生成するためにnvidia-xconfigを実行することが有用でしょう。このステップなしにはxorg.confファイルは下に示すように手動で生成される必要があります。xorg.confファイルなしにはstartxの際に"No screens found"エラーに遭遇してしまうかも知れません。

さらに、NVidiaドライバは再起動の後にのみ有効です。従って、nvidia-xconfig実行後にシステムの再起動を忘れないでください。

root #nvidia-xconfig

OpenGLレンダラをソフトウェアレンダラの代わりにハードウェアにすることが推奨されています。

root #eselect opengl set nvidia

設定

X serverはXorgの設定ファイルを手動で編集することなく、そのまま使えるよう設計されています。マウスや、キーボードやディスプレイといったデバイスは検出され、設定される"べき"なのです。

startxの使用を設定ファイルの編集なしに試してみてください。Xorgがスタートしなかったり、なにか問題が発生した場合、Xorgの手動設定が必要です。これは次のセクションで説明されます。

Note
もしカーネルに変更を加えたら、新しくビルドされたカーネルを使うために、startx再起動することを忘れないでください。カーネルが新しいバージョンになったら、ブートローダの設定ファイルの更新も必要でしょう。

xorg.conf.d ディレクトリー

Important
xorg.conf.d中の設定ファイルは最後の頼みの綱であるべきです。可能な限り、Xorgをどんな特殊な設定なしに実行することが望ましいです。

Xorgの設定ファイルのほとんどは/etc/X11/xorg.conf.d/にあります。それぞれのファイルは一意な名前と.confで終わります。Xorg設定ディレクトリのなかのファイルの名前は英数字順に読み込まれます。たとえば、10-evdev.conf20-synaptics.confの前に読み込まれます。a-evdev.confb-synaptics.confなどの前に読み込まれるでしょう。このディレクトリ中のファイルはナンバリングされている必要はないですが、そのようにしておくと整理された状態を維持しやすいでしょう。それは欠陥のある設定ファイルをデバッグするときに便利です。

Note
Xorgは/usr/share/doc/xorg-server-${version}/xorg.conf.example.bz2に設定例を提供しています。これらは/etc/X11/xorg.conf.d/にカスタム設定ファイルをつくるのに使われるでしょう。例は十分にコメントがなされていますが、文法についてのドキュメントが必要ならばman xorg.confがいつでも使えます。他の例はこのセクションの終わりのOther resourcesにあります。

startx を用いる

X server起動のためにstartxを試しましょう。startxは(x11-apps/xinitによってインストールされた)スクリプトで、X セッションを実行します。XセッションはX serverを起動し、その上にグラフィカルアプリケーションを起動します。それはどのアプリケーションを起動するか、以下の論理に従って決定します:

  • もし、ファイル.xinitrcがホームディレクトリに存在するのなら、そこに列挙されたコマンドを実行します。
  • そうでなければ、/etc/env.d/90xsessionファイルの変数XSESSIONの値を読み、それに応じて関連したセッションを実行します。XSESSIONの値は/etc/X11/Sessions/に使用可能です。システムワイドなデフォルトセッションを設定するには:
root #echo XSESSION="Xfce4" > /etc/env.d/90xsession
これは90xsessionファイルをつくり、デフォルトXセッションをXfceに設定します。env-update90xsessionに変更を加えたあと実行することを覚えておきましょう。
user $startx

もしウィンドウマネージャがインストールされていなければ、黒い画面が現れるでしょう。これは何かがおかしいというサインでもあるので、 x11-wm/twmx11-terms/xtermはXをテストするためのみにインストール出来ます。

プログラムがインストールされたら、startxを再び実行しましょう。xtermウィンドウが現われ、X serverが動いているか検証するのが簡単になります。結果に満足したら、テストパッケージを削除するにはx11-wm/twmx11-terms/xtermをunmergeしましょう。これらは実際のデスクトップ環境を構築するのに必要ではありません。

(開始すべき)セッションはstartxの引数として与えられることも可能です:

user $startx /usr/bin/startfluxbox

二重ダッシュを頭につけることで、X11サーバーオプションを渡すことも可能です。

user $startx -- vt7

X の設定を調整する

画面の解像度を設定する

もし解像度がおかしいようであれば、xorg.conf.dの二つのセクションを調べる必要があります。まず、X serverが実行する解像度設定を列挙しているScreenセクションがあるはずです。このセクションは解像度全てを列挙しているわけではないでしょう。その場合、Xorgは次のセクションMonitorの情報に基づいて解像度を推定します。

さあ、解像度を変更しましょう。/etc/X11/xorg.conf.d/40-monitor.confからの次の例では、X serverがデフォルトで1440x900で開始するようPreferredModeを追加します。DeviceOptionセクションはxrandrの実行によって得られるモニタ名前(DVI-0)に一致しなければなりません。xrandrをインストール(emerge xrandr)し、情報を得ましょう。モニター名後の引数(Deviceセクション中)はMonitorセクションの中のIdentifierに一致する必要があります。

FILE /etc/X11/xorg.conf.d/40-monitor.conf
Section "Device"
  Identifier  "RadeonHD 4550"
  Option      "Monitor-DVI-0" "DVI screen"
EndSection
Section "Monitor"
  Identifier  "DVI screen"
  Option      "PreferredMode" "1440x900"
EndSection

Xを実行(startx)して設定通りの解像度か確かめましょう。

マルチディスプレイ

2つ以上のモニターは/etc/X11/xorg.conf.d/中に規定されます。それぞれのモニターに一意な識別子を与え、それからもうひとつのモニターに対してのといった物理的位置を列挙します。次の例はVGAモニターを右側スクリーンとして、DVIとVGAモニターの設定方法を示します。

FILE /etc/X11/xorg.conf.d/40-monitor.conf
Section "Device"
  Identifier "RadeonHD 4550"
  Option     "Monitor-DVI-0" "DVI screen"
  Option     "Monitor-VGA-0" "VGA screen"
EndSection
Section "Monitor"
  Identifier "DVI screen"
EndSection
Section "Monitor"
  Identifier "VGA screen"
  Option     "RightOf" "DVI screen"
EndSection

キーボードの設定

Xに多言語キーボードを使わせたい場合は、/etc/X11/xorg.conf.d/中に適切な設定ファイルをつくりましょう。この例はチェコ語キーボードレイアウトについて示します。

FILE /etc/X11/xorg.conf.d/30-keyboard.conf
Section "InputClass"
  Identifier "keyboard-all"
  Driver "evdev"
  Option "XkbLayout" "us,cz"
  Option "XkbModel" "logitech_g15"
  Option "XkbRules" "xorg"
  Option "XkbOptions" "grp:alt_shift_toggle,grp:switch,grp_led:scroll,compose:rwin,terminate:ctrl_alt_bksp"
  Option "XkbVariant" ",qwerty"
  MatchIsKeyboard "on"
EndSection

キーボードレイアウトの切り替え方法については、キーボードレイアウトの切替え記事を見てください。

"terminate"コマンド(terminate:ctrl_alt_bksp)はCtrl+Alt+Backspaceキー割り当てによってXセッションをキルすることが出来ます。これは、しかし、Xをみっともなく終了させます。これはユーザーにとって避けたいことでしょう。これはプログラミングが画面全体をフリーズさせてしまった時、Xorg環境を設定、調整したい時に便利です。この方法でデスクトップを終了するときには気をつけてください。大半のプログラムはこの方法での終了を好みません。全部ではないにせよ、いくつかのディスクに保存されていない情報("open documents"に保存された情報)は失われるでしょう。

仕上げ

startxを実行し、結果に満足しましょう。おめでとうございます。あなたは今や(うまくいけば)動作するXorgをもっています! 次のステップではKDE, GNOME, や Xfceのようなデスクトップ環境あるいは便利なウィンドウマネージャをインストールしましょう。これらデスクトップ環境のインストール情報はこのwikiで見つかるでしょう。

参照

  • Wayland - Linuxのための次世代のウィンドウプロトコル。
  • X (Security Handbook) - Xサーバーを堅牢に保つためのセキュリティハンドブック。

外部の情報

設定ファイルの作成と編集

man xorg.confman evdevが素早く、しかし完全な、これら設定ファイルに使われている文法について教えてくれるでしょう。Xorg設定ファイルを編集しているときは、これらをターミナル上で開いたままにしておきましょう!

/etc/X11/中の設定ファイルを編集するにあたって、多くのオンラインドキュメントがあります。ここにはそのほんの一部しか列挙できません。検索エンジンを使い探してみましょう。

その他の情報

様々なグラフィカルデスクトップ環境やアプリケーションの設定とインストールについての情報は我々のドキュメンテーションのセクションで見つかります。

xorg-server 1.9 以降へアップグレードするときには、 migration guideを忘れずに読んでください。

彼らの他のドキュメントに加え、X.orgはたくさんのFAQs を彼らのウェブサイトで提供しています。


This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Sven Vermeulen (SwifT),
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.