Intel graphics

提供: ArchWiki
2022年11月27日 (日) 12:24時点におけるAshMyzk (トーク | 投稿記録)による版 (→‎ヒントとテクニック: 同期)
ナビゲーションに移動 検索に移動

関連記事

Intel はオープンソースドライバの提供とサポートを行なっているので、Intel Graphics は基本的にプラグアンドプレイです。

Intel GPU のモデルや関連するチップセットと CPU の包括的なリストは、Wikipedia:List of Intel graphics processing unitsGentoo:Intel#Feature support を見てください。

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

目次

インストール

mesa パッケージをインストールしてください。3D アクセラレーションのための DRI ドライバーが含まれています。

  • 32ビットアプリケーションのサポートは、multilib リポジトリから lib32-mesa パッケージもインストールしてください。
  • Xorg で 2D アクセラレーションを提供する DDX ドライバーは、xf86-video-intel パッケージをインストールしてください。この機能にもかかわらず、このパッケージは一般には推奨されていません。下記のノートを見てください。
  • Vulkan のサポート (Ivy Bridge およびそれ以降) は、vulkan-intel パッケージをインストールしてください。

ハードウェアビデオアクセラレーションも見てください。

ノート: 一部のディストリビューション (Debian & UbuntuFedoraKDE) では、xf86-video-intel ドライバのインストールが推奨されておらず、第4世代以上の (2006年の GMA 3000 よりも新しい) GPU では代わりに modesetting ドライバにフォールバックさせることが推奨されています。[1][2]Xorg#インストールmodesetting(4) を参照してください。しかし、modesetting ドライバは次のような問題を引き起こす可能性があります: XFCE での画面のチラツキやマウスのジッタリングChromium で仮想デスクトップの切り替えを行ったときにアーティファクトが発生するvsync のジッタリング、mpv での動画のスタッタリング

ローディング

Intel カーネルモジュールは、システムの起動時に自動的に正常にロードされるはずです。

正常にロードされない場合は:

  • Intel は kernel mode-setting を必要とするので、カーネルパラメータnomodeset を指定して いない ことを確認してください。
  • また、/etc/modprobe.d//usr/lib/modprobe.d/ で modprobe ブラックリストを使って Intel を無効にしていないか確認してください。

早い段階で KMS を有効にする

Kernel Mode Setting (KMS) は、i915 DRM ドライバーを使用するインテルチップセットでサポートされています。KMS は必須であり、デフォルトで有効になっています。

起動プロセスにおいてできるだけ早く KMS を有効にする方法については、Kernel Mode Setting#Early KMS start を参照してください。

GuC/HuC ファームウェアのロードを有効にする

この記事またはセクションの正確性には問題があります。
理由: Intel のドキュメントに反し、Tiger Lake と Rocket Lake の GPU は実際 enable_guc=3 をサポートし、enable_guc=1 がデフォルトとなっている場合があります。 (議論: トーク:Intel graphics#)

第9世代から (Skylake およびそれ以降)、Intel GPU には以下の機能を提供する Graphics micro (μ) Controller (GuC) が搭載されています [3]:

  • 一部のメディアデコード機能を CPU から HEVC/H.265 micro (µ) Controller (HuC) にオフロードする。ハードウェアビデオアクセラレーションintel-media-driver を使用する場合にのみ、適用可能です。第9世代から導入されました。
  • GuC をスケジューリング、コンテキスト送信、電源管理に使用する。第12世代、Alder Lake-P (Mobile) で導入されました。

この機能を使うには、GuC ファームウェアがロードされていなければなりません。HuC のサポートに関して、一部のビデオ機能 (例: SKL 低電力符号化モードにおける CBR レート制御) は HuC ファームウェアもロードされている必要があります [4]。GuC と HuC ファームウェアのファイルは両方 linux-firmware によって提供されています。

GuC の機能は i915.enable_guc カーネルパラメータ によって制御されます。このパラメータのし予報は以下の通りです:

enable_guc の値 GuC 送信 HuC ファームウェアのロード デフォルトとなっているプラットフォーム サポートされているプラットフォーム
0 No No Tiger Lake、Rocket Lake、Gen12 以前 [5] すべて
1 Yes No Alder Lake-P (Mobile) およびそれ以降
2 No Yes Alder Lake-S (Desktop) [6] [7] Gen9 およびそれ以降
3 Yes Yes Alder Lake-P (Mobile) およびそれ以降

GuC 送信や HuC ファームウェアのロードがあなたの GPU ではデフォルトで有効になっていない場合、手動で有効化できます。

警告: GuC / HuC ファームウェアのロードを手動で有効化すると、たとえその機能がサポートされていない場合でも、カーネルに汚染マークが付きます。さらに、GuC/HuC ファームウェアのロードを有効化すると、一部のシステムで問題が発生する可能性があります。(ハイバネートから復帰したあとなどに) フリーズが発生する場合は、無効化してください。

まず、linux-firmwareインストールされていることを確認してください。

あなたのシステムで late KMS start が設定されている場合 (これはデフォルトです)、カーネルパラメータで説明されているように i915.enable_guc を設定することで手動で以下の機能を有効化できます。

i915 モジュール (Kernel Mode Setting#Early KMS start を参照) を initramfs に追加している場合は、これらのオプションを代わりに /etc/modprobe.d/ 内のファイルで設定しなければなりません。例えば:

/etc/modprobe.d/i915.conf
options i915 enable_guc=2

そして、initramfs を再ビルドしてください。

次回の起動時に dmesg を使うことで GuC と HuC が両方有効化されていることを確認できます:

# dmesg
[30130.586970] i915 0000:00:02.0: [drm] GuC firmware i915/icl_guc_33.0.0.bin version 33.0 submission:disabled
[30130.586973] i915 0000:00:02.0: [drm] HuC firmware i915/icl_huc_9.0.0.bin version 9.0 authenticated:yes

あなたのグラフィックアダプタで GuC と HuC がサポートされていない場合、以下が出力されます

# dmesg
[    0.571339] i915 0000:00:02.0: [drm] Incompatible option enable_guc=2 - GuC is not supported!
[    0.571340] i915 0000:00:02.0: [drm] Incompatible option enable_guc=2 - HuC is not supported!

あるいは、以下で確認できます:

# cat /sys/kernel/debug/dri/0/gt/uc/guc_info
# cat /sys/kernel/debug/dri/0/gt/uc/huc_info
ノート: GuC/HuC が有効化されている場合に enable_gvt=1 を設定して GVT-g graphics virtualization を使用することは、linux 4.20.11 現在ではサポートされていません。システムのジャーナルに出力される通り、i915 モジュールの初期化に失敗します。
# journalctl
... kernel: [drm:intel_gvt_init [i915]] *ERROR* i915 GVT-g loading failed due to Graphics virtualization is not yet supported with GuC submission
... kernel: i915 0000:00:02.0: [drm:i915_driver_load [i915]] Device initialization failed (-5)
... kernel: i915: probe of 0000:00:02.0 failed with error -5
... kernel: snd_hda_intel 0000:00:1f.3: failed to add i915 component master (-19)

[8] で説明されているように、関連する警告は深刻なものではないことに注意してください:

# journalctl -b 
... kernel: i915 0000:00:02.0: Direct firmware load for i915/gvt/vid_0x8086_did_0x5916_rid_0x02.golden_hw_state failed with error -2

Xorg の設定

ノート: 以下は xf86-video-intel が必要です。

Xorg を実行するのに設定は必要ないかもしれません。

しかし、Xorg が起動しない場合は、いくつかのドライバオプションを利用するために、以下のような Xorg 設定ファイルを作成することができます。

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

その他のオプションは Driver の下の新しい行にユーザが追加します。 オプションの完全なリストは intel(4) の man ページを参照してください。

ノート: 上に挙げたものよりも多くのデバイスセクションを追加する必要があるかもしれません。これは必要なところに表示されます。

AccelMethod

設定ファイルを作成する際に、Option "AccelMethod" を指定する必要がある場合があります。(default) と BLT です。

デフォルトの SNA で問題が発生した場合。(例: ピクセル化したグラフィック、壊れたテキストなど)、代わりに UXA を使ってみてください、これは Xorg 設定ファイル に次の行を追加することで可能です。

Option      "AccelMethod"  "uxa"

intel(4) § CONFIGURATION DETAILS の "AccelMethod" オプションをご覧ください。

モジュールベースオプション

i915 カーネルモジュールでは、モジュールオプション を介して構成できます。一部のモジュールオプションは、省電力に影響を与えます。

次のコマンドを使用して、すべてのオプションのリストと簡単な説明およびデフォルト値を生成できます。

$ modinfo -p i915

現在有効になっているオプションを確認するには、

# systool -m i915 -av

多くのオプションのデフォルトは-1であるため、チップごとの省電力のデフォルトになります。ただし、モジュールオプション を使用して、より積極的な省電力を構成することは可能です。

警告: デフォルトから逸脱すると、カーネルは Linux の [9]としてマークされます。 3.18以降。これは基本的に、チップごとのデフォルト以外のオプションの使用は実験的なものと見なされ、開発者によってサポートされていないことを意味します。

フレームバッファー圧縮 (enable_fbc)

フレームバッファー圧縮(FBC)を利用すると、画面の更新に必要なメモリ帯域幅を削減しながら、消費電力を削減できます。

FBC を有効にするには、 i915.enable_fbc=1カーネルパラメータ として使用するか、 /etc/modprobe.d/i915.confに設定します。

/etc/modprobe.d/i915.conf
options i915 enable_fbc=1
ノート: フレームバッファー圧縮は、Sandy Bridge(第6世代)より前の Intel GPU 世代では信頼できないか、使用できない場合があります。これにより、次のようなメッセージがシステムジャーナルに記録されます。
ernel: drm: not enough stolen space for compressed buffer, disabling.

Sandy Bridge 以前の CPU でフレームバッファー圧縮を有効にすると、次のようなエラーメッセージが表示されます。

$ dmesg
[ 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
解決策は、フレームバッファー圧縮を無効にすることです。これにより、消費電力がいつの間にか増加します(約0.06W)。無効にするには、カーネルラインパラメータに i915.enable_fbc=0 を追加します。無効化された圧縮の結果の詳細については、 こちら を参照してください。

Fastboot

Intel Fastboot の目標は、BIOS または ブートローダー によってセットアップされたフレームバッファーを保持して、 Xorg が開始されるまでちらつきを回避することです [10]

fastboot を有効にするには、i915.fastboot=1カーネルパラメータ として設定するか、/etc/modprobe.d/i915.conf に設定します。

/etc/modprobe.d/i915.conf
options i915 fastboot=1
警告: このパラメータはデフォルトでは有効になっておらず、一部の古い (Skylake以前の) システムで問題が発生する可能性があります。[11]

IntelGVT-gグラフィック仮想化のサポート

詳細については、 Intel GVT-g を参照してください。

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

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

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

$ modinfo -p i915

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

# systool -m i915 -av

多くのオプションはデフォルトで -1 になっており、チップのデフォルトの省電力設定が使われます。ただし、モジュールオプションを使うことでより強力な省電力設定をすることができます。

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

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

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

RC6 スリープモード (enable_rc6)

enable_rc6 には 1 よりも大きい値が設定できますが、使用している GPU がオプションをサポートしていなかったり他のオプションを有効にできるなくなる可能性があります [12]

enable_rc6 に設定できる値は 1 (RC6), 2 (RC6p), 4 (RC6pp) のビットマスクです [13]。"RC6p" や "RC6pp" は電力消費がより少ないステートになります。

現在の RC6 レベルを確認するには、sysfs を見てください:

# cat /sys/class/drm/card0/power/rc6_enable

出力された数字が低い場合、おそらく他の RC6 レベルがサポートされていません。drm.debug=0xe を使うことで DRM のデバッグ情報をカーネルログに追加することができます:

[drm:sanitize_rc6_option] Adjusting RC6 mask to 1 (requested 7, valid 1)

ヒントとテクニック

スケーリングモードを設定する

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

$ xrandr --output LVDS1 --set PANEL_FITTING param

選べる param は:

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

うまく行かない場合は、以下を試してみてください:

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

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

ノート: 上記のオプションは外部ディスプレイは現在のところ機能しません (例: VGA, DVI, HDMI, DP) [14]

GMA 4500 での H.264 デコードのハードウェアアクセラレーション

libva-intel-driver パッケージは、一部の GMA 4500 シリーズ GPU での MPEG-2 デコードのハードウェアアクセラレーションのみを提供します (H.264 デコードは提供しません)。あなたの GPU も関係しているどうかを確かめるには、そのドライバと libva-utils パッケージの両方をインストールしてください。そして、vainfo ツールの出力を見て、VAProfileH264 で始まるエントリがどれだけあるかを見てください。

H.264 デコードのサポートは、枝分かれた g45-h264 ブランチでメンテナンスされており、libva-intel-driver-g45-h264AUR パッケージをインストールすることで使用できます。しかし、このサポートは実験的で、開発は放棄されていることに注意してください。GMA 4500 シリーズの GPU 上でこのドライバと共にVA-API を使うことで CPU の負荷を減らすことができますが、動画の再生がアクセラレートされていない状態ほどスムーズに再生できないかもしれません。mplayer を使ったテストでは H.264 でエンコードされた 1080p のビデオを vaapi を使って再生したところ (XV オーバーレイに比べて) CPU の負担は下がりましたが、途切れ途切れの再生になりました。一方 720p はうまく動きました [15]。他の報告も同じようなものでした [16]。BIOS で割当済みビデオ RAM のサイズを高く設定すると、より質の高いハードウェアデコード再生が可能です。これを行うと、1080p h264 でもうまく行きます [17]。スムーズな再生 (1080p/720p) は、mpv-gitAURffmpeg-gitAURlibva-intel-driver-g45-h264AUR を組み合わせて使うことでもうまく行きます。MPV と Firefox のプラグイン "Send to MPV player"[18] を用いることで、ハードウェアによりアクセラレートされた YouTube ビデオの再生が可能です。

古い OpenGL ドライバ (i965)

Mesa 20.0 では、新しい OpenGL ドライバ "Iris" が第8世代以上でデフォルトとなりました。一部のアプリケーションはこのドライバによりより高速に動作します。MESA_LOADER_DRIVER_OVERRIDE=i965 環境変数を OpenGL アプリケーションの起動前に設定することで、Iris を無効化し、古い i965 ドライバに戻すことができます。この設定は Vulkan アプリケーションには影響しません。

ノート: Iris ドライバに関するバグやリグレッションはここに報告してください。

報告される OpenGL のバージョンを上書き

MESA_GL_VERSION_OVERRIDE 環境変数を使うことで、アプリケーションに報告される OpenGL のバージョンを上書きできます。例えば、MESA_GL_VERSION_OVERRIDE=4.5 と設定することで OpenGL 4.5 と報告されるようになります。

ノート: 上記の変数を使って既知の OpenGL バージョンなら、たとえ GPU によってサポートされていないバージョンでも使うこともできます。設定することで、アプリケーションによってクラッシュがなおったり、あるいはクラッシュが増えたりする可能性があります。全てのアプリケーションで同じ変数を使わない方が良いでしょう。

モニタリング

  • intel_gpu_top — Intel GPU のための top ライクなタスクモニタ (root 権限が必要)
https://gitlab.freedesktop.org/drm/igt-gpu-tools || intel-gpu-tools
  • nvtop — AMD、Intel、NVIDIA のための GPU プロセスモニタリング (現在、Intel GPU に対しては非常に基本的なサポートしかありません)。
https://github.com/Syllo/nvtop || nvtop

明るさとガンマ値の設定

バックライト を見てください。

トラブルシューティング

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

DRI3 の問題

xf86-video-intel ではデフォルトで DRI3 が使われます。一部の環境では DRI3 によって問題が発生することがあります [19]DRI2 を使うには設定ファイルに以下の行を追加してください:

Option "DRI" "2"

modesetting ドライバーでは上記の方法では DRI3 を無効化することはできません。代わりに LIBGL_DRI3_DISABLE=1 環境変数を設定してください。

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 のときはこのオプションは機能しません。
  • オプションを有効にするとメモリの消費量が増えてパフォーマンスが劣化する可能性があります [20]
  • このオプションを使うと 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 テクスチャコンプレッションのサポートを有効にすることで解決できます。driconfAUR を使って有効にするか、 libtxc_dxtnAUR をインストールしてください。

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

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

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

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

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 を切り替えると垂直同期が消失します [21]。修正するには、カーネルコマンドラインに i915.enable_ips=0 を追加するか、カーネル 4.1 を使っている場合、こちら のパッチを使ってカーネルを再ビルドします。メインラインカーネルには 4.2-rc1 で修正が入っています。

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

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

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 オプションを削除すれば問題は解決します。

画面がちらつく

Intel の iGPU によって使われている省電力機能の中にはちらつきを発生させるものがあります。適切なカーネルパラメータオプションを使って無効化することで解決できます:

  • カーネルのバージョン 4.6 からパネルセルフリフレッシュ (PSR) はデフォルトで有効になります (FS#49628 FS#49371 FS#50605)。無効化するには i915.enable_psr=0 オプションを使ってください。

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

ノート: この問題はカーネル 3.9 の変更に起因しています [23]。カーネル 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 のレジスタを編集することで修正できる他の関連する問題も存在します。詳しくは [24][25] を見て下さい。

参照