Xorg / ガイド

From Gentoo Wiki
< Xorg
Jump to:navigation Jump to:search
This page is a translated version of the page Xorg/Guide and the translation is 91% complete.
Outdated translations are marked like this.
Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎polski • ‎svenska • ‎русский • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어

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

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

GUI vs CLI

平均的なユーザは、コマンドラインインターフェース(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 は古いフレームバッファドライバと競合するので、フレームバッファドライバはカーネル設定で無効化されている必要があります。

まず、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はよくあるカードなので、下に示したカード毎のコードに従ってください。

Intel

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

NVIDIA

nVidiaカード:

In addition to the kernel driver, certain cards require closed source firmware to be built-in to the Linux kernel. Depending on the selected driver, readers should visit each respective article to check to see if firmware (from the sys-kernel/linux-firmware is necessary for their specific card.

KERNEL NVIDIA カーネル
Device Drivers --->
   Graphics support --->
      <M/*>  Nouveau (NVIDIA) cards

AMD/ATI

新しい AMD/ATI カード (RadeonHD 2000 以降) については emerge sys-kernel/linux-firmware を実行してください (このパッケージに radeon と amdgpu ドライバのためのファームウェアが含まれています)。これらパッケージがインストールされたら、Radeon ドライバーをカーネルのモジュールにするか、あるいは Radeon の記事の firmware 節や新しい AMD グラフィックカード (GCN1.1 以上) に関する AMDGPU の記事の firmware 節に詳解されているようにカーネルを設定してください。

古いカード:

KERNEL AMD/ATI Radeon の設定
## (Setup the kernel to use the radeon-ucode firmware, optional if "ATI Radeon" below is M)
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/*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI 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, optional if "AMD GPU" below is M)
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
x86/amd64 では、古い radeon カード (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の準備をします。

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

Make.conf

Portage knows the USE=X USE flag for enabling support for X in other packages (default in all desktop profiles). Make sure this USE flag is added to the USE flag list to ensure X compatibility system wide:

FILE /etc/portage/make.conf
USE="X"

最初の変数は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.20-r1::gentoo  INPUT_DEVICES="libinput synaptics -elographics -evdev -joystick -keyboard -mouse -vmmouse -void -wacom" VIDEO_CARDS="nouveau radeon -amdgpu -ast -dummy -fbdev (-freedreno) (-geode) -glint -i915 -i965 -intel -mga -nv -nvidia (-omap) -qxl -r128 -radeonsi -siliconmotion (-tegra) (-vc4) -vesa -via -virtualbox -vmware" 0 KiB

The USE flags have the following meaning:

USE flags for x11-base/xorg-server X.Org X servers

debug Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces
elogind Use elogind to get control over framebuffer when running as regular user
minimal Install a very minimal build (disables, for example, plugins, fonts, most drivers, non-critical features)
selinux !!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur
suid Enable setuid root program(s)
systemd Enable use of systemd-specific libraries and features like socket activation or session tracking
test Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently)
udev Enable virtual/udev integration (device discovery, power and storage device support, etc)
unwind Enable libunwind usage for backtraces
xcsecurity Build Security extension
xephyr Build the Xephyr server
xnest Build the Xnest server
xorg Build the Xorg X server (HIGHLY RECOMMENDED)
xvfb Build the Xvfb server

Note
By default the suid USE flag is disabled, which is fine when, as per recommendation, X runs under a logind provider like elogind, or systemd. The suid USE flag should however be enabled in /etc/portage/package.use/xorg-server in case no logind provider is used and X is run under a normal user account, e.g. started with startx. Please see also this repository news article. Setting suid would then prevent permission errors on /dev/tty0, or on virtual console 7.

Emerge

必要な変数と USE フラグを設定したら、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

設定

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

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

To run Xorg with a non root user, see Non root 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を depclean しましょう。これらは実際のデスクトップ環境を構築するのに必要ではありません。

(開始すべき)セッションは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"に保存された情報)は失われるでしょう。

For more information about XkbModel and XkbOptions, consult /usr/share/X11/xkb/rules/base.lst and man xkeyboard-config.

仕上げ

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

参照

  • Wayland — a simpler and modern replacement for X display server.
  • X (Security Handbook) - Xサーバーを堅牢に保つためのセキュリティハンドブック。

外部の情報

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

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

Example configurations can be found at /usr/share/doc/xorg-server-*/xorg.conf.example.bz2.

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