Intel Graphics

提供: ArchWiki
移動先: 案内検索

Intel はオープンソースドライバの提供とサポートを行なっているので、今日 Intel のグラフィックカードは原則的にプラグアンドプレイです。

Intel の GPU モデル と関連するチップセット・CPU の一覧は Wikipedia の比較を見て下さい。

ノート: PowerVR ベースのグラフィックカード (GMA 500GMA 3600 シリーズ) はオープンソースドライバではサポートされていません。

目次

インストール

公式リポジトリから xf86-video-intel パッケージをインストールします。このパッケージには 2D アクセラレーションのための DDX ドライバが含まれています。また、mesa が依存パッケージとしてインストールされますが、これは 3D アクセラレーションのための DRI ドライバです。

OpenGL のサポートを有効にするには、mesa-libgl もインストールしてください。64ビット環境において、32ビットのプログラムの 3D アクセラレーションをするには multilib リポジトリから lib32-mesa-dri のインストールが必要です。

古い GPU でのビデオデコーディングは DDX ドライバーと一緒に入っている XvMC ドライバーによって提供されます。新しい GPU でのビデオデコーディング・エンコーディングのハードウェア・アクセラレーションを有効にするには、libva-intel-driverlibva として提供されている VA-API ドライバをインストールしてください。

Ivy-Bridge 以降の GPU で Vulkan のサポートが必要な場合は、vulkan-intel をインストールしてください。

設定

Xorg を走らせるのに特別な設定は必要ありません。

ノート: 最新世代の内蔵 GPU (Skylake/HD 530 など) は特別な設定が必要です。#Skylake サポートを参照。

ただし、ドライバーのオプションを変更するには、以下のような Xorg 設定ファイルを作成する必要があります:

/etc/X11/xorg.conf.d/20-intel.conf
Section "Device"
   Identifier  "Intel Graphics"
   Driver      "intel"
EndSection

オプションを追加するときは Driver の下に追加します。

ノート:
  • 設定ファイルを作成するときは Option "AccelMethod" を必ず設定する必要があります。たとえデフォルトのメソッド (現在は "sna") を使用する場合でも設定は必要です。設定がないと X はクラッシュします。
  • 上記の他に、必要に応じて他のデバイスセクションも追加してください。

設定の一覧を見るには、$ man intel と入力してください。

KMS (Kernel Mode Setting)

X を走らせたり GNOME, KDE, Xfce, LXDE などのデスクトップ環境を使うには KMS が必要です。KMS は i915 DRM ドライバを使う Intel チップセットによりサポートされておりカーネル v2.6.32 よりデフォルトで有効にされています。xf86-video-intel ドライバのバージョン 2.10 からは UMS のサポートは打ち切られ (非常に古い 810 チップセットファミリーは例外)、KMS の使用が必須になっています[1]。KMS は基本的にカーネルが起動してから初期化されますが、起動中に KMS を有効にして、全てのブートプロセスを最大解像度で実行することもできます。

ノート: vganomodeset といった既に使用されていないパラメータはブート設定から必ず削除してください。

起動中に KMS を有効にするには /etc/mkinitcpio.confMODULES 行に i915 モジュールを追加します:

MODULES="... i915 ..."
ヒント: 場合によって ACPI のエラーを発生させないように i915 の前に intel_agp を加える必要があることがあります。モジュールの順番は意味があるので気をつけて下さい。

カスタムした EDID ファイルを使っている場合は、EDID ファイルも initramfs に入れる必要があります:

/etc/mkinitcpio.conf
FILES="/lib/firmware/edid/your_edid.bin"

initramfs を再生成します:

# mkinitcpio -p linux

そしてシステムを再起動してください。うまく機能するはずです。

モジュールによる省電力設定

i915 カーネルモジュールはモジュールオプションによって設定ができます。モジュールオプションの中には省電力機能に関係するものもあります。

次のコマンドを使うことで全てのオプションとその説明、デフォルト値のリストが出力されます:

$ modinfo -p i915

現在有効になっているオプションを確認するには、次を実行して下さい:

# systool -m i915 -av

i915.powersave オプションはデフォルトで省電力機能や fbc、ダウンクロックを有効にして、チップの電力消費を抑えます。ただし、モジュールオプションを使うことでより強力な省電力設定をすることができます。

警告: Linux 3.18 から、デフォルト以外の設定をするとカーネルが tainted になります。基本的に、デフォルト以外の設定オプションは実験的なものであり、開発者によるサポートはありません。

安全に有効にすることができる一般的なオプションは以下のようになります:

/etc/modprobe.d/i915.conf
options i915 enable_rc6=1 enable_fbc=1 lvds_downclock=1 semaphores=1

フレームバッファの圧縮は古い世代の Intel GPU では信頼性がありません。次のようなメッセージがないかシステムログをチェックしてください:

kernel: drm: not enough stolen space for compressed buffer, disabling.

Tips and tricks

アクセラレーションメソッドの選択

  • UXA - (Unified Acceleration Architecture) は GEM ドライバーモデルを導入した成熟しているバックエンドです。
  • SNA - (Sandybridge's New Acceleration) は高速で先進的なハードウェアサポートを提供します。

デフォルトのメソッドは SNA (2013-08-05[2]) で、UXA よりも不安定ですが高速です。Phoronix によるベンチマーク [3] を見てください。Sandy Bridge のテストIvy Bridge のテスト があります。SNA で問題が発生するなら、UXA は手堅い選択です。例えば、SNA ではフルスクリーンの Flash 動画を終了するときに黒画面になることがあります。

古い UXA メソッドを使いたいならば、次の内容で /etc/X11/xorg.conf.d/20-intel.conf を作って下さい:

/etc/X11/xorg.conf.d/20-intel.conf
Section "Device"
   Identifier  "Intel Graphics"
   Driver      "intel"
   Option      "AccelMethod"  "uxa"
EndSection

Glamor アクセラレーションメソッドの有効化

Glamor は Intel の実験的な OpenGL 2D アクセラレーションメソッドで、man ページには記載がありません。Glamor を使用するには、以下の行を設定ファイルに追加してください:

Option      "AccelMethod"  "glamor"
ノート: このアクセラレーションメソッドは実験的であり安定して動作するとは限りません。

Direct Rendering Infrastructure 3 (DRI3)

デフォルトでは Direct Rendering Infrastructure 2 (DRI2) が使われます。次世代の DRI である DRI3 を有効にするには、以下の行を設定ファイルに追加してください:

Option      "DRI"    "3"

DRI3 が有効になっているかどうかは再起動したあとに Xorg のログファイルをチェックすることで確認できます。

垂直同期 (VSYNC) を無効にする

垂直同期 (VSYNC) を無効にするには /etc/X11/xorg.conf.d/20-intel.confSection "Device" に Option "SwapbuffersWait" "false" を加えて下さい。

もしくは、~/.drircvblank_mode0 に設定して、driverdri2 にセットします:

~/.drirc
<device screen="0" driver="dri2">
   <application name="Default">
   <option name="vblank_mode" value="0"/>
   </application>
</device>

スケーリングモードの設定

フルスクリーンを使うアプリケーションで有用かもしれません:

$ xrandr --output LVDS1 --set PANEL_FITTING param

選べる param は:

  • center: 解像度は固定され、スケーリングは無効になります
  • full: 画面いっぱいまで解像度がスケールします
  • full_aspect: アスペクト比を維持したままスケールします

機能しない場合、次を試して下さい:

$ xrandr --output LVDS1 --set "scaling mode" param

param"Full", "Center" , "Full aspect" のいずれかです。

KMS Issue: コンソールの画面が狭い

起動中に低解像度のビデオが転送されると、ターミナルが使える画面が小さくなることがあります。修正するには、i915 ブートローダのカーネルのコマンドラインパラメータに video=SVIDEO-1:d を加えてはっきりと転送を無効にするよう i915 モジュールを設定してください。詳しい情報はカーネルパラメータを見て下さい。

これが機能しない時は、SVIDEO-1 の代わりに TV1 か VGA1 を無効にするのを試してみて下さい。

GMA 4500 での H.264 デコーディング

libva-intel-driver パッケージは GMA 4500 シリーズの GPU だけに MPEG-2 デコーディングを提供します。H.264 デコーディングのサポートは枝分かれした g45-h264 ブランチで維持されていて、AURlibva-intel-driver-g45-h264AUR パッケージをインストールすることで使えます。しかしながらこのサポートは実験的なものであり現在活発には開発されていないことに注意して下さい。GMA 4500 シリーズ GPU のドライバと VA-API を使うことは CPU の負担を下げますが、アクセラレーションが効いていないのと同じで、スムーズに再生できるようにはならないかもしれません。mplayer を使ったテストでは H.264 でエンコードされた 1080p のビデオを vaapi を使って再生したところ (XV オーバーレイに比べて) CPU の負担は下がりましたが、途切れ途切れの再生になりました。一方 720p はうまく動きました [4]。他の報告も同じようなものでした [5]

ガンマ値と明るさの設定

ドライバのレベルでこれらを設定する方法はありませんが、幸運なことに xgammaxrandr を使って設定することができます。

ガンマ値を設定するには:

$ xgamma -gamma 1.0

もしくは:

$ xrandr --output VGA1 --gamma 1.0:1.0:1.0

明るさを設定するには:

$ xrandr --output VGA1 --brightness 1.0

トラブルシューティング

Glxgears のパフォーマンスがでない

ノート: glxgears は複数のシステム間でのパフォーマンスを比較するためのベンチマークではありません。

グラフィックパフォーマンスを調べるために glxgears を動かした時、結果が 60 FPS を前後することに気づいたかもしれません。例えば:

[...]
311 frames in 5.0 seconds = 61.973 FPS
311 frames in 5.0 seconds = 62.064 FPS
311 frames in 5.0 seconds = 62.026 FPS
[...]

これはパフォーマンスの欠落によるものではありません。ディスプレイのリフレッシュレートにあわせて、垂直同期を行なっているためです。

環境変数 vblank_mode=0 を付けることで垂直同期を無効にして glxgears を実行できます:

$ vblank_mode=0 glxgears

GTK+ アプリケーションでフォントや画面の表示がおかしい (サスペンド・復帰後に文字が表示されない)

GTK+ アプリケーションでフォントの文字が表示されなくなってしまう場合、以下の方法で直る可能性があります。/etc/environment編集して以下の行を追加してください:

/etc/environment
COGL_ATLAS_DEFAULT_BLIT_MODE=framebuffer

詳しくは FreeDesktop bug 88584 を参照。

起動中 "Loading modules" するときに画面がブラックアウトする

KMS の"遅いスタート"を使っているとき "Loading modules" で画面がブラックアウトする場合、initramfs に i915intel_agp を加えると解決するかもしれません。上記の KMS セクションを見て下さい。

または、次のカーネルパラメータを加えるとうまく動くかもしれません:

video=SVIDEO-1:d

VGA に出力する必要があるときは次を使ってみて下さい:

video=VGA-1:1280x800

ティアリングの解消

SNA アクセラレーションメソッドを使っている場合、ティアリングが発生することがあります。これを解消するには、ドライバーの "TearFree" オプションを有効にしてください:

/etc/X11/xorg.conf.d/20-intel.conf
Section "Device"
   Identifier  "Intel Graphics"
   Driver      "intel"
   Option      "TearFree"    "true"
EndSection

詳しくは オリジナルのバグレポート を見て下さい。

ノート:
  • SwapbuffersWaitfalse のときはこのオプションは機能しません。
  • このオプションを使うと vsync タイミングがピーキーなアプリケーション (Super Meat Boy など) で問題が発生します。
  • このオプションは UXA アクセラレーションメソッドでは動作しません、SNA でしか使えません。

Intel ドライバで X がフリーズ・クラッシュする

X のクラッシュや GPU のハングアップ、X のフリーズなどが起こる場合、NoAccel オプションを使って GPU の使用を無効にすることで修復できます:

/etc/X11/xorg.conf.d/20-intel.conf
Section "Device"
   Identifier "Intel Graphics"
   Driver "intel"
   Option "NoAccel" "True"
EndSection

または、DRI オプションを使って 3D アクセラレーションだけを無効にすることもできます:

/etc/X11/xorg.conf.d/20-intel.conf
Section "Device"
   Identifier "Intel Graphics"
   Driver "intel"
   Option "DRI" "False"
EndSection

設定ファイルに以下のオプションを使うとクラッシュする場合は:

Option "TearFree" "true"
Option "AccelMethod" "sna"

ブートパラメータに次を追加すると修正できます:

i915.semaphores=1

カーネル 4.0.x 以上で Baytrail アーキテクチャを利用している場合にシステムが何度もフリーズする (特に動画を見たり GFX を集中使用したときに発生する) ようなときは、以下のカーネルオプションを追加することで解決します。詳しくは こちら を参照してください。

intel_idle.max_cstate=1

認識されない解像度を追加する

この問題については Xrandr のページを参照してください。

libGL 9 と Intel-DRI 9 にアップグレードすると遅くなる

Intel-DRI 8 と libGL 8 にダウングレードしてください。

ビデオゲームでテクスチャが真っ黒

ビデオゲームでテクスチャが黒くなる場合、S3TC テクスチャコンプレッションのサポートを有効にすることで解決できます。driconf を使って有効にするか、 libtxc_dxtn をインストールしてください。

この"問題"は新しいドライバで修正される予定です。

S3TC についての詳しい情報は: http://dri.freedesktop.org/wiki/S3TC http://ja.wikipedia.org/wiki/DXTC

この問題が起こるゲームのひとつは Oil Rush です。

色が風化する (色空間の問題)

ノート: この問題はカーネル 3.9 の変更に起因しています [6]。カーネル 4.1 でもこの問題は存在します。

カーネル 3.9 には Intel ドライバーで簡単に RGB リミテッドレンジの設定ができる変更が含まれており、場合によってはこの変更によって色がおかしくなることがあります。"Broadcast RGB" プロパティの新しい "Automatic" モードに関係しています。

xrandr --output <HDMI> --set "Broadcast RGB" "Full" (<HDMI> は適切な出力デバイスに置き換えてください、xrandr を実行することで確認できます) のようにしてモードを強制することが可能です。これを .xprofile に追加して、グラフィカルモードが始まる前にコマンドが実行できるように実行可能属性を付けて下さい。

ノート: TV によっては 16-255 の色しか表示できないため Full に設定すると 0-15 の領域の色が失われます。従って、カラースペースを TV に合わせて圧縮する必要があるかどうか自動的に検知する Automatic のままにしてください。

また、GPU のレジスタを編集することで修正できる他の関連する問題も存在します。詳しくは [7][8] を見て下さい。

復帰後、バックライトが一部調整できない、もしくは全く調整できない

Intel graphics を使っていて製造者によるホットキーで画面の明るさを変えられない場合、次のカーネルパラメータを使って起動してみて下さい:

acpi_backlight=vendor

これで問題が解決されない場合、上のパラメータに加えて:

acpi_osi=Linux

または:

acpi_osi="!Windows 2012"

または:

acpi_osi=

を使うことで解決できるかもしれません。

また、カーネルバージョン 3.13 から、ユーザーによっては効果があるカーネルコマンドラインのパラメータがあります:

video.use_native_backlight=1

上記のどの方法を使っても問題が解決されない場合、以下の内容で /etc/X11/xorg.conf.d/20-intel.conf を編集・作成してください:

/etc/X11/xorg.conf.d/20-intel.conf
Section "Device"
        Identifier  "card0"
        Driver      "intel"
        Option      "Backlight"  "intel_backlight"
        BusID       "PCI:0:2:0"

EndSection

フレームバッファ圧縮の無効化

Intel Corporation Mobile 4 シリーズのチップセットなど、Sandy Bridge 以前のカードでフレームバッファ圧縮を有効にするとエラーメッセージが延々と表示されます:

$ dmesg | tail 
[ 2360.475430] [drm] not enough stolen space for compressed buffer (need 4325376 bytes), disabling
[ 2360.475437] [drm] hint: you may be able to increase stolen memory size in the BIOS to avoid this

解決方法はフレームバッファ圧縮を無効化することで、これによって少しだけ電力消費が増えます。無効化するには i915.enable_fbc=0 をカーネルラインパラメータに追加してください。圧縮の無効化による効果については ここ に詳しい情報が載っています。

Chromium や Firefox が壊れる、応答しない

Chromium や Firefox の表示がおかしくなったり、反応しなくなる場合はアクセラレーションメソッドを "uxa" に設定してみてください。

TTY を切り替えた時に垂直同期がされなくなる

カーネル 3.19.3 以降にはリグレッションが存在し (古いカーネルにも存在する可能性あり)、Broadwell のマシンで TTY を切り替えると垂直同期が消失します [9]。修正するには、カーネルコマンドラインに i915.enable_ips=0 を追加するか、カーネル 4.1 を使っている場合、こちら のパッチを使ってカーネルを再ビルドします。メインラインカーネルには 4.2-rc1 で修正が入っています。

ビデオやウェブカメラの出力にピンクと緑のゴミが入る

Broadwell のマシンで xv出力や Intel Textured Video を使用するアプリケーション (Skype や VLC) を使うと、ビデオストリームにピンクと緑の乱れが入ることがあります。これは Broadwell のビデオの問題で、上流では2015年4月16日に修正されています [10]xf86-video-intel をアップデートすると修正されます。

Broadwell/Core-M チップでカーネル 4.0 以上を使っている場合にクラッシュする

X/Wayland がロードされた数秒間、マシンがフリーズして、journalctl に以下のような Intel Graphics に関連するカーネルのクラッシュログが残ることがあります:

Jun 16 17:54:03 hostname kernel: BUG: unable to handle kernel NULL pointer dereference at           (null)
Jun 16 17:54:03 hostname kernel: IP: [<          (null)>]           (null)
...
Jun 16 17:54:03 hostname kernel: CPU: 0 PID: 733 Comm: gnome-shell Tainted: G     U     O    4.0.5-1-ARCH #1
...
Jun 16 17:54:03 hostname kernel: Call Trace:
Jun 16 17:54:03 hostname kernel:  [<ffffffffa055cc27>] ? i915_gem_object_sync+0xe7/0x190 [i915]
Jun 16 17:54:03 hostname kernel:  [<ffffffffa0579634>] intel_execlists_submission+0x294/0x4c0 [i915]
Jun 16 17:54:03 hostname kernel:  [<ffffffffa05539fc>] i915_gem_do_execbuffer.isra.12+0xabc/0x1230 [i915]
Jun 16 17:54:03 hostname kernel:  [<ffffffffa055d349>] ? i915_gem_object_set_to_cpu_domain+0xa9/0x1f0 [i915]
Jun 16 17:54:03 hostname kernel:  [<ffffffff811ba2ae>] ? __kmalloc+0x2e/0x2a0
Jun 16 17:54:03 hostname kernel:  [<ffffffffa0555471>] i915_gem_execbuffer2+0x141/0x2b0 [i915]
Jun 16 17:54:03 hostname kernel:  [<ffffffffa042fcab>] drm_ioctl+0x1db/0x640 [drm]
Jun 16 17:54:03 hostname kernel:  [<ffffffffa0555330>] ? i915_gem_execbuffer+0x450/0x450 [i915]
Jun 16 17:54:03 hostname kernel:  [<ffffffff8122339b>] ? eventfd_ctx_read+0x16b/0x200
Jun 16 17:54:03 hostname kernel:  [<ffffffff811ebc36>] do_vfs_ioctl+0x2c6/0x4d0
Jun 16 17:54:03 hostname kernel:  [<ffffffff811f6452>] ? __fget+0x72/0xb0
Jun 16 17:54:03 hostname kernel:  [<ffffffff811ebec1>] SyS_ioctl+0x81/0xa0
Jun 16 17:54:03 hostname kernel:  [<ffffffff8157a589>] system_call_fastpath+0x12/0x17
Jun 16 17:54:03 hostname kernel: Code:  Bad RIP value.
Jun 16 17:54:03 hostname kernel: RIP  [<          (null)>]           (null)

この問題は execlist のサポート (カーネル 4.0 からデフォルトに変更されました) を無効化することで解決します。以下のカーネルパラメータを追加してください:

i915.enable_execlists=0

Skylake サポート

4.3.x よりも古い Linux カーネルでは、新しい Intel Skylake (第6世代) の GPU でドライバーを動作させるのに i915.preliminary_hw_support=1 をブートパラメータに追加する必要があります。4.3.x 以上のカーネルを使っている最新システムでは、この設定は不要です。

i915 DRM ドライバーは様々な GPU のハングアップやクラッシュ、あるいはシステムの完全なフリーズを引き起こすことが知られています。問題を回避するにはハードウェアアクセラレーションを無効化する必要があるかもしれません。解決方法として以下の Xorg 設定を使う方法があります:

/etc/X11/xorg.conf.d/20-intel.conf
Section "Device"
	Identifier  "Intel Graphics"
	Driver      "intel"
	Option	    "DRI"	"false"
EndSection

もしくは、Chromium や Firefox ブラウザなどアプリケーションごとにハードウェアレンダリングを無効化するように直接設定することも可能です。

i915.enable_rc6=0 カーネルブートパラメータを追加することで問題が解決すると報告しているユーザーもいます。このパラメータを使用すると CPU/GPU のハイパワーモードが解除されなくなりますが、GPU のハングアップやシステムのフリーズが解消するようです。

ノート: "Loading Initial Ramdisk" の後にシステムがフリーズする場合、BIOS で IGD aperture size が 4GB よりも小さくなっていることを確認してください。

Windows をゲストとした場合にラグが発生する

VirtualBox でホスト側から(マウスカーソルを動かすなどして)画面を更新しないと Windows ゲストのビデオ出力が止まってしまうことがあります。enable_fbc=1 オプションを削除すれば問題は解決します。

参照