「Intel graphics」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎モジュールベースオプション: セクション名を変更)
(→‎トラブルシューティング: 同期 (一部翻訳))
279行目: 279行目:
 
== トラブルシューティング ==
 
== トラブルシューティング ==
   
=== Glxgears のパフォーマスがでない ===
+
=== ティアリ ===
   
  +
SNA アクセラレーションメソッドを取っている場合、一部のマシン上でティアリングが発生します。これを修正するには、以下の行を[[#Xorg の設定|設定ファイル]]に追加してドライバの {{ic|TearFree}} オプションを有効化してください:
{{Note|{{ic|glxgears}} は複数のシステム間でのパフォーマンスを比較するためのベンチマークではありません。}}
 
   
  +
{{hc|/etc/X11/xorg.conf.d/20-intel.conf|
グラフィックパフォーマンスを調べるために {{ic|glxgears}} を動かした時、結果が 60 FPS を前後することに気づいたかもしれません。例えば:
 
  +
Section "Device"
  +
Identifier "Intel Graphics"
  +
Driver "intel"
  +
Option "TearFree" "true"
  +
EndSection}}
   
  +
詳細は[https://bugs.freedesktop.org/show_bug.cgi?id=37686 元のバグレポート]を見てください。
[...]
 
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
 
[...]
 
   
  +
{{Note|1=<nowiki/>
これはパフォーマンスの欠落によるものではありません。ディスプレイのリフレッシュレートにあわせて、[[Wikipedia:Analog television#Vertical synchronization|垂直同期]]を行なっているためです。
 
  +
* このオプションは、{{ic|SwapbuffersWait}} が {{ic|false}} のときに動作しない場合があります。
  +
* このオプションはメモリアロケーションを増加させ、パフォーマンスが低下する場合があります。[https://bugs.freedesktop.org/show_bug.cgi?id=37686#c123]
  +
* このオプションは、vsync のタイミングに厳しいアプリケーション (例えば、[[Wikipedia:Super Meat Boy|Super Meat Boy]]) において問題が発生する場合があります。
  +
* このオプションはUXA アクセラレーションメソッドでは動作しません。SNA でしか使えません。
  +
* Intel UHD 620 または 430 では、{{ic|TearFree}} を動作させるために {{ic|Option "TripleBuffer" "true"}} を追加する必要があります。
  +
}}
   
  +
=== 垂直同期 (VSYNC) を無効化する ===
環境変数 {{ic|1=vblank_mode=0}} を付けることで垂直同期を無効にして {{ic|glxgears}} を実行できます:
 
   
  +
以下のような場合に便利です:
$ vblank_mode=0 glxgears
 
  +
  +
* Chromium/Chrome が、GPU のせいでラグくパフォーマンスが悪く、--disable-gpu スイッチを使うとスムーズに動作する場合。
  +
* glxgears テストが期待するほどのパフォーマンスを発揮してくれない場合。
  +
  +
intel ドライバは垂直同期に [https://www.intel.com/support/graphics/sb/CS-004527.htm Triple Buffering] を使用します。これは、完全なパフォーマンスとティアリングの回避を可能にします。垂直同期をオフにするには (例えば、ベンチマークのために)、以下の {{ic|.drirc}} をホームディレクトリ内に追加してください:
  +
  +
{{hc|~/.drirc|2=
  +
<device screen="0" driver="dri2">
  +
<application name="Default">
  +
<option name="vblank_mode" value="0"/>
  +
</application>
  +
</device>
  +
}}
  +
  +
{{Note|このファイルを作成するために {{AUR|driconf}} を使用しないでください。このツールにはバグがあり、間違ったドライバを設定してしまいます。}}
   
 
=== DRI3 の問題 ===
 
=== DRI3 の問題 ===
   
{{Pkg|xf86-video-intel}} ではデフォルト ''DRI3'' が使われます。一部の環境では DRI3 によって問題が発生することがあります [https://bugs.chromium.org/p/chromium/issues/detail?id=370022]。''DRI2'' を使うには[[#設定|設定ファイル]]に以下の行を追加してください:
+
{{Pkg|xf86-video-intel}} では DIR バージョンのデフォルト ''DRI3'' す。一部の環境では DRI3 によって問題が発生することがあります [https://bugs.chromium.org/p/chromium/issues/detail?id=370022]。''DRI2'' を使うには[[#Xorg の設定|設定ファイル]]に以下の行を追加してください:
  +
 
Option "DRI" "2"
 
Option "DRI" "2"
   
{{ic|modesetting}} ドライバーでは上記の方法で DRI3 を無効化することはできません。代わりに {{ic|1=LIBGL_DRI3_DISABLE=1}} 環境変数を設定してください。
+
{{ic|modesetting}} ドライバーでは上記の方法で DRI3 を無効化することはできません。代わりに {{ic|1=LIBGL_DRI3_DISABLE=1}} 環境変数を設定してください。
   
=== GTK+ アプリケーションでフォントや画面の表示がおかしい (サスペンド・復帰後に文字が表示されない) ===
+
=== GTK アプリケーションでフォントや画面の表示がおかしい (サスペンド・復帰後に文字が表示されない) ===
   
GTK+ アプリケーションでフォントの文字が表示されなくなってしまう場合、以下の方法で直る可能性があります。{{ic|/etc/environment}} を[[ヘルプ:読み方#追加, 作成, 編集 そして source|編集]]して以下の行を追加してください:
+
GTK アプリケーションでフォントの文字が表示されなくなってしまう場合、以下の方法で直る可能性があります。{{ic|/etc/environment}} を[[編集]]して以下の行を追加してください:
   
 
{{hc|/etc/environment|output=
 
{{hc|/etc/environment|output=
312行目: 335行目:
 
}}
 
}}
   
詳しくは [https://bugs.freedesktop.org/show_bug.cgi?id=88584 FreeDesktop bug 88584] 参照。
+
[https://bugs.freedesktop.org/show_bug.cgi?id=88584 FreeDesktop bug 88584] 参照。
   
 
=== 起動中 "Loading modules" するときに画面がブラックアウトする ===
 
=== 起動中 "Loading modules" するときに画面がブラックアウトする ===
   
KMS の"遅いスタート"を使っているとき "Loading modules" で画面がブラックアウトする場合、initramfs に {{ic|i915}}{{ic|intel_agp}} を加えると解決するかもしれません。[[#KMS (Kernel Mode Setting)|上記の]] KMS セクションを見てさい。
+
"late start" KMS を使っているとき "Loading modules" で画面がブラックアウトする場合、initramfs に i915 と intel_agp を加えると解決するかもしれません。[[Kernel Mode Setting#Early KMS start]] を見てください。
   
または、次の[[カーネルパラメータ]]を加えるとうまく動くかもしれません:
+
または、次の[[カーネルパラメータ]]を加えるとうまく動くかもしれません:
   
 
video=SVIDEO-1:d
 
video=SVIDEO-1:d
   
VGA に出力する必要があるときは次を使ってみて下さい:
+
VGA に出力する必要があるときは次を使ってみて下さい:
   
 
video=VGA-1:1280x800
 
video=VGA-1:1280x800
   
  +
=== Intel ドライバで X がフリーズ/クラッシュする ===
=== ティアリングの解消 ===
 
   
SNA レーションメソ使っている場合ティアリングが発生することがあります。これを解消するには、ドライバーの {{ic|"TearFree"}} オプションを効にしてください:
+
X クラッシュ伴う問題GPU のハングアップ、X のフリーズに関する問題は、{{ic|NoAccel}} オプションを使って GPU の使用を無化することで修復できる場合があります。以下の行を[[#Xorg の設定|設定ファイル]]追加してください:
   
  +
Option "NoAccel" "True"
{{hc|/etc/X11/xorg.conf.d/20-intel.conf|
 
Section "Device"
 
Identifier "Intel Graphics"
 
Driver "intel"
 
Option "TearFree" "true"
 
EndSection}}
 
   
  +
あるいは、{{ic|DRI}} オプションを使って 3D アクセラレーションだけを無効化してみてください:
詳しくは [https://bugs.freedesktop.org/show_bug.cgi?id=37686 オリジナルのバグレポート] を見て下さい。
 
   
  +
Option "DRI" "False"
{{Note|
 
* {{ic|SwapbuffersWait}} が {{ic|false}} のときはこのオプションは機能しません。
 
* オプションを有効にするとメモリの消費量が増えてパフォーマンスが劣化する可能性があります [https://bugs.freedesktop.org/show_bug.cgi?id&#61;37686#c123]。
 
* このオプションを使うと vsync タイミングがピーキーなアプリケーション ([[Wikipedia:Super Meat Boy|Super Meat Boy]] など) で問題が発生します。
 
* このオプションは UXA アクセラレーションメソッドでは動作しません、SNA でしか使えません。
 
}}
 
   
  +
=== 認識されない解像度を追加する ===
=== Intel ドライバで X がフリーズ・クラッシュする ===
 
   
  +
この問題は、[[Xrandr#検出されない解像度を追加する|Xrandr のページ]] で扱っています。
X のクラッシュや GPU のハングアップ、X のフリーズなどが起こる場合、{{ic|NoAccel}} オプションを使って GPU の使用を無効にすることで修復できます:
 
   
  +
=== バックライトを調整できない ===
{{hc|/etc/X11/xorg.conf.d/20-intel.conf|
 
Section "Device"
 
Identifier "Intel Graphics"
 
Driver "intel"
 
Option "NoAccel" "True"
 
EndSection}}
 
   
  +
サスペンドから復帰したあとにホットキーを使用してスクリーンの輝度を変更できない場合、[[バックライト]]の記事を見てあなたの設定ファイルをチェックしてみてください。
または、{{ic|DRI}} オプションを使って 3D アクセラレーションだけを無効にすることもできます:
 
{{hc|/etc/X11/xorg.conf.d/20-intel.conf|
 
Section "Device"
 
Identifier "Intel Graphics"
 
Driver "intel"
 
Option "DRI" "False"
 
EndSection}}
 
   
  +
問題が解消されない場合は、以下の[[カーネルパラメータ]]のうち1つを試してください:
設定ファイルに以下のオプションを使うとクラッシュする場合は:
 
   
  +
acpi_osi=Linux
Option "TearFree" "true"
 
  +
acpi_osi="!Windows 2012"
Option "AccelMethod" "sna"
 
  +
acpi_osi=
   
  +
また、fastboot モード ({{ic|i915.fastboot}} カーネルパラメータ) を使用していないことを確認してください。これは、バックライト制御を破壊することが[https://www.phoronix.com/forums/forum/software/mobile-linux/1066447-arch-linux-users-with-intel-graphics-can-begin-enjoying-a-flicker-free-boot 知られています]。
ブートパラメータに次を追加すると修正できます:
 
   
  +
=== Chromium や Firefox が壊れる/応答しない ===
i915.semaphores=1
 
   
  +
Chromium や Firefox でアーティファクト、応答なし、ラグ、低パフォーマンスが発生する場合、解決策としてはいかがあります:
カーネル 4.0.x 以上で Baytrail アーキテクチャを利用している場合にシステムが何度もフリーズする (特に動画を見たり GFX を集中使用したときに発生する) ようなときは、以下のカーネルオプションを追加することで解決します。詳しくは [https://bugzilla.kernel.org/show_bug.cgi?id=109051 こちら] を参照してください。
 
   
  +
* [[#AccelMethod|AccelMethod を "uxa" に設定する]]
intel_idle.max_cstate=1
 
  +
* [[#垂直同期 (VSYNC) を無効化する|VSYNC を無効化する]]
  +
* [[#ティアリング|TearFree オプションを有効化する]]
  +
* "DRI" とアクセラレーションのメソッドを無効にする (Intel Iris 第10世代でテスト済み): {{bc|<nowiki>
  +
Option "NoAccel" "True"
  +
Option "DRI" "False"
  +
</nowiki>}}
   
  +
=== Broadwell/Core-M チップでカーネル 4.0 以上を使っている場合にクラッシュする ===
=== 認識されない解像度を追加する ===
 
   
  +
X/Wayland がロードされた数秒後、マシンがフリーズして、[[journalctl]] に以下のような Intel Graphics に関連するカーネルのクラッシュログが残ることがあります:
この問題については [[Xrandr#検出されない解像度を追加する|Xrandr のページ]]を参照してください。
 
   
  +
Jun 16 17:54:03 hostname kernel: BUG: unable to handle kernel NULL pointer dereference at (null)
=== libGL 9 と Intel-DRI 9 にアップグレードすると遅くなる ===
 
  +
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 からデフォルトに変更されました) を無効化することで解決します。以下の[[カーネルパラメータ]]を追加してください:
Intel-DRI 8 と libGL 8 に[[ダウングレード]]してください。
 
   
  +
i915.enable_execlists=0
=== ビデオゲームでテクスチャが真っ黒 ===
 
   
  +
これは、カーネル 4.0.5 以上で壊れていることが知られています。
ビデオゲームでテクスチャが黒くなる場合、S3TC テクスチャコンプレッションのサポートを有効にすることで解決できます。{{AUR|driconf}} を使って有効にするか、 {{AUR|libtxc_dxtn}} をインストールしてください。
 
   
  +
=== Windows をゲストとした場合にラグが発生する ===
この"問題"は[https://www.phoronix.com/scan.php?page=news_item&px=MTIwOTg 新しいドライバ]で修正される予定です。
 
   
  +
VirtualBox でホスト側から(マウスカーソルを動かすなどして)画面を更新しないと Windows ゲストのビデオ出力が止まってしまうことがあります。{{ic|1=enable_fbc=1}} オプションを削除すれば問題は解決します。
S3TC についての詳しい情報は:
 
http://dri.freedesktop.org/wiki/S3TC
 
http://ja.wikipedia.org/wiki/DXTC
 
   
  +
=== 画面がちらつく ===
この問題が起こるゲームのひとつは [https://www.phoronix.com/scan.php?page=article&item=unigine_oilrush_gold&num=2 Oil Rush] です。
 
   
  +
Intel iGPU で使用される省電力機能 Panel Self Refresh (PSR) は、一部の例でちらつきを発生させることが知られています {{Bug|49628}} {{Bug|49371}} {{Bug|50605}}。一時的な解決策は、[[カーネルパラメータ]] {{ic|1=i915.enable_psr=0}} を使ってこの機能を無効化することです。
=== 復帰後、バックライトが一部調整できない、もしくは全く調整できない ===
 
   
  +
=== i915 ドライバで OpenGL 2.1 ===
Intel graphics を使っていて製造者によるホットキーで画面の明るさを変えられない場合、次のカーネルパラメータを使って起動してみて下さい:
 
 
acpi_backlight=vendor
 
   
  +
バージョン 13.x から 17 への {{Pkg|mesa}} のアップデートにより、第3世代 Intel GPU (GMA3100、[[wikipedia:List_of_Intel_graphics_processing_units#Third_generation|参照]]) で OpenGL 2.1 のサポートが壊れてしまう場合があり、[https://www.phoronix.com/scan.php?page=news_item&px=Mesa-i915-OpenGL-2-Drop この記事]で説明されているように、OpenGL 1.4 に戻ってしまいます。しかし、これは手動で {{ic|/etc/drirc}} または {{ic|~/.drirc}} のオプションを設定することで、修正できます:
これで問題が解決されない場合、上のパラメータに加えて:
 
   
  +
{{hc|/etc/drirc|output=
acpi_osi=Linux
 
  +
<driconf>
  +
...
  +
<device driver="i915">
  +
<application name="Default">
  +
<option name="'''stub_occlusion_query'''" value="'''true'''" />
  +
<option name="'''fragment_shader'''" value="'''true'''" />
  +
</application>
  +
</device>
  +
...
  +
</driconf>
  +
}}
   
  +
{{Note|OpenGL のバージョンが戻ってしまう理由は、Chromium と他のアプリケーションでエクスペリエンスが悪化するためでした。必要であれば、drirc ファイルを編集して特定のアプリケーションに対して gl2.1 を chromium 実行ファイルなどで無効化することもできます ([https://dri.freedesktop.org/wiki/ConfigurationInfrastructure/ 参照])。}}
または:
 
   
  +
=== KMS の問題: コンソールが小さい領域に制限される ===
acpi_osi="!Windows 2012"
 
   
  +
低解像度のビデオポートの1つが起動時に有効になっていて、そのせいでターミナルがスクリーンの小さい領域を使っているのかもしれません。修正するには、ブートローダーでカーネルコマンドラインパラメータの {{ic|1=video=SVIDEO-1:d}} を使って i915 モジュールの設定でそのポートを明示的に無効化してください。詳細は [[カーネルパラメータ]] を見てください。
または:
 
   
  +
これでうまく行かない場合、SVIDEO-1 ではなく TV1 か VGA1 を無効化してみてください。ビデオポートの名前は [[xrandr]] でリストアップできます。
acpi_osi=
 
   
  +
=== Haswell CPU で HDMI 経由で音声が出ない ===
を使うことで解決できるかもしれません。
 
   
  +
[https://bugzilla.kernel.org/show_bug.cgi?id=60769 Linux カーネルの issue] によると、{{ic|1=intel_iommu=on}} を設定している場合には HDMI から音声が出力されないそうです。この問題を修正するには、以下の[[カーネルパラメータ]]を設定してください:
また、カーネルバージョン 3.13 から、ユーザーによっては効果があるカーネルコマンドラインのパラメータがあります:
 
video.use_native_backlight=1
 
   
  +
intel_iommu=on,igfx_off
上記のどの方法を使っても問題が解決されない場合、以下の内容で {{ic|/etc/X11/xorg.conf.d/20-intel.conf}} を編集・作成してください:
 
   
  +
あるいは、IOMMU を無効化してください:
{{hc|/etc/X11/xorg.conf.d/20-intel.conf|
 
Section "Device"
 
Identifier "card0"
 
Driver "intel"
 
Option "Backlight" "intel_backlight"
 
BusID "PCI:0:2:0"
 
   
  +
intel_iommu=off
EndSection}}
 
   
  +
=== 低電力 Intel CPU でクラッシュ/フリーズ ===
=== フレームバッファ圧縮の無効化 ===
 
   
  +
Low-powered Intel processors and/or laptop processors have a tendency to randomly hang or crash due to the problems with the power management features found in low-power Intel chips. If such a crash happens, you will not see any logs reporting this problem. Adding the following [[Kernel parameters]] may help to resolve the problem.
Intel Corporation Mobile 4 シリーズのチップセットなど、Sandy Bridge 以前のカードでフレームバッファ圧縮を有効にするとエラーメッセージが延々と表示されます:
 
   
  +
{{Note|It is not advised to use all three of the below kernel parameters together.}}
$ 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
 
   
  +
intel_idle.max_cstate=1 i915.enable_dc=0 ahci.mobile_lpm_policy=1
解決方法はフレームバッファ圧縮を無効化することで、これによって少しだけ電力消費が増えます。無効化するには {{ic|i915.enable_fbc&#61;0}} をカーネルラインパラメータに追加してください。圧縮の無効化による効果については [http://zinc.canonical.com/~cking/power-benchmarking/background-colour-and-framebuffer-compression/results.txt ここ] に詳しい情報が載っています。
 
   
  +
{{ic|1=ahci.mobile_lpm_policy=1}} fixes a hang on several Lenovo laptops and some Acer notebooks due to problematic SATA controller power management. That workaround is strictly not related to Intel graphics but it does solve related issues. Adding this kernel parameter sets the ''l''ink ''p''ower ''m''anagement from firmware default to maximum performance and will also solve hangs when you change display brightness on certain Lenovo machines but increases idle power consumption by 1-1.5 W on modern ultrabooks. For further information, especially about the other states, see the [https://lore.kernel.org/lkml/20171211165216.5604-1-hdegoede@redhat.com/ Linux kernel mailing list] and [https://access.redhat.com/documentation/en-en/red_hat_enterprise_linux/6/html/power_management_guide/alpm Red Hat documentation].
=== Chromium や Firefox が壊れる、応答しない ===
 
   
  +
{{ic|1=i915.enable_dc=0}} disables GPU power management. This does solve random hangs on certain Intel systems, notably Goldmount and Kaby Lake Refresh chips. Using this parameter does result in higher power use and shorter battery life on laptops/notebooks.
Chromium や Firefox の表示がおかしくなったり、反応しなくなる場合は[[#アクセラレーションメソッドの選択|アクセラレーションメソッド]]を "uxa" に設定してみてください。
 
   
  +
{{ic|1=intel_idle.max_cstate=1}} limits the processors sleep states, it prevents the processor from going into deep sleep states. That is absolutely not ideal and does result in higher power use and lower battery life. However, it does solve random hangs on many Intel systems. Use this if you have a Intel Baytrail or a Kaby Lake Refresh chip. Intel "Baytrail" chips are known to randomly hang without this kernel parameter due to a hardware flaw[https://bugzilla.kernel.org/show_bug.cgi?id=109051#c752].
=== TTY を切り替えた時に垂直同期がされなくなる ===
 
  +
More information about the max_cstate parameter can be found in the [https://docs.kernel.org/admin-guide/pm/intel_idle.html#kernel-command-line-options-and-module-parameters kernel documentation] and about the cstates in general on a [https://gist.github.com/wmealing/2dd2b543c4d3cff6cab7 writeup on GitHub].
   
  +
If you try adding {{ic|1=intel_idle.max_cstate=1 i915.enable_dc=0 ahci.mobile_lpm_policy=1}} in the hope of fixing frequent hangs and that solves the issue you should later remove one by one to see which of them actually helped you solve the issue. Running with cstates and display power management disabled is not advisable if the actual problem is related to SATA power management and {{ic|1=ahci.mobile_lpm_policy=1}} is the one that actually solves it.
カーネル 3.19.3 以降にはリグレッションが存在し (古いカーネルにも存在する可能性あり)、Broadwell のマシンで TTY を切り替えると垂直同期が消失します [https://bugzilla.kernel.org/show_bug.cgi?id=95741]。修正するには、カーネルコマンドラインに {{ic|<nowiki>i915.enable_ips=0</nowiki>}} を追加するか、カーネル 4.1 を使っている場合、[https://cgit.freedesktop.org/drm-intel/commit/?id=184e4c49484501f3061ae9b267af818c6894fea9 こちら] のパッチを使ってカーネルを再ビルドします。メインラインカーネルには 4.2-rc1 で修正が入っています。
 
   
  +
Check [https://linuxreviews.org/Intel_graphics#Kernel_Parameters Linux Reviews] for more details.
=== ビデオやウェブカメラの出力にピンクと緑のゴミが入る ===
 
   
  +
=== Add support for 165Hz monitor ===
Broadwell のマシンで ''xv''出力や Intel Textured Video を使用するアプリケーション (Skype や VLC) を使うと、ビデオストリームにピンクと緑の乱れが入ることがあります。これは Broadwell のビデオの問題で、上流では2015年4月16日に修正されています [https://bugs.freedesktop.org/show_bug.cgi?id=89807]。{{pkg|xf86-video-intel}} をアップデートすると修正されます。
 
   
  +
For some 165Hz monitors, ''xrandr'' might not display the 165Hz option, and the fix in [[#Adding undetected resolutions]] does not solve this. In this case, see [https://unix.stackexchange.com/questions/680356/i915-driver-stuck-at-40hz-on-165hz-screen i915-driver-stuck-at-40hz-on-165hz-screen].
=== Broadwell/Core-M チップでカーネル 4.0 以上を使っている場合にクラッシュする ===
 
   
  +
{{Note|Other than creating {{ic|/etc/initramfs-tools/hooks/edid}}, a [[mkinitcpio]] hook should be made:
X/Wayland がロードされた数秒間、マシンがフリーズして、journalctl に以下のような Intel Graphics に関連するカーネルのクラッシュログが残ることがあります:
 
   
  +
{{hc|/etc/initcpio/install/edid|
Jun 16 17:54:03 hostname kernel: BUG: unable to handle kernel NULL pointer dereference at (null)
 
  +
#!/bin/bash
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)
 
   
  +
build() {
この問題は execlist のサポート (カーネル 4.0 からデフォルトに変更されました) を無効化することで解決します。以下の[[カーネルパラメータ]]を追加してください:
 
  +
add_file /lib/firmware/edid/edid.bin
i915.enable_execlists=0
 
  +
}
   
  +
help() {
===Skylake サポート===
 
  +
cat <<HELPEOF
  +
This hook add support for 165Hz
  +
HELPEOF
  +
}
  +
}}
   
  +
Then append ''edid'' in HOOKS of {{ic|/etc/mkinitcpio.conf}}, Just like this:
i915 DRM ドライバーは様々な GPU のハングアップやクラッシュ、あるいはシステムの完全なフリーズを引き起こすことが知られています。問題を回避するにはハードウェアアクセラレーションを無効化する必要があるかもしれません。解決方法として以下の Xorg 設定を使う方法があります:
 
   
{{hc|/etc/X11/xorg.conf.d/20-intel.conf|
+
{{hc|/etc/mkinitcpio.conf|2=
  +
HOOKS=(... fsck edid)
Section "Device"
 
Identifier "Intel Graphics"
 
Driver "intel"
 
Option "DRI" "false"
 
EndSection
 
 
}}
 
}}
   
  +
Then [[regenerate the initramfs]].
もしくは、Chromium や Firefox ブラウザなどアプリケーションごとにハードウェアレンダリングを無効化するように直接設定することも可能です。
 
  +
}}
   
  +
=== Freeze after wake from sleep/suspend with Alder Lake-P ===
{{ic|1=i915.enable_rc6=0}} カーネルブートパラメータを追加することで問題が解決すると報告しているユーザーもいます。このパラメータを使用すると CPU/GPU のハイパワーモードが解除されなくなりますが、GPU のハングアップやシステムのフリーズが解消するようです。
 
   
  +
Users with Alder Lake-P 12th gen mobile processor laptops from various vendors experienced freeze and black-screen after waking up from suspending. It is because many laptop vendors ship an incorrect VBT (Video BIOS Table) that wrongly describe the actual ports connected to the iGPU. Considering most vendors will not publish a BIOS update for a laptop with a properly working Windows OS, Linux users could only address the issue on the kernel side. You can mitigate the issue by patching and rebuilding the kernel as a temporary remedy:
{{Note|"Loading Initial Ramdisk" の後にシステムがフリーズする場合、BIOS で IGD aperture size が 4GB よりも小さくなっていることを確認してください。}}
 
   
  +
{{hc|drivers/gpu/drm/i915/display/intel_display.c.patch|<nowiki>
=== Windows をゲストとした場合にラグが発生する ===
 
  +
--- a/drivers/gpu/drm/i915/display/intel_display.c
  +
+++ b/drivers/gpu/drm/i915/display/intel_display.c
  +
@@ -8835,7 +8835,7 @@ static void intel_setup_outputs(struct drm_i915_private *dev_priv)
  +
intel_ddi_init(dev_priv, PORT_TC1);
  +
} else if (IS_ALDERLAKE_P(dev_priv)) {
  +
intel_ddi_init(dev_priv, PORT_A);
  +
- intel_ddi_init(dev_priv, PORT_B);
  +
+ // intel_ddi_init(dev_priv, PORT_B);
  +
intel_ddi_init(dev_priv, PORT_TC1);
  +
intel_ddi_init(dev_priv, PORT_TC2);
  +
intel_ddi_init(dev_priv, PORT_TC3);
   
  +
</nowiki>}}
VirtualBox でホスト側から(マウスカーソルを動かすなどして)画面を更新しないと Windows ゲストのビデオ出力が止まってしまうことがあります。{{ic|1=enable_fbc=1}} オプションを削除すれば問題は解決します。
 
   
  +
as described in freedesktop issues [https://gitlab.freedesktop.org/drm/intel/-/issues/5531 5531] [https://gitlab.freedesktop.org/drm/intel/-/issues/6401 6401] which have not been solved for months.
=== 画面がちらつく ===
 
   
  +
=== Alder Lake/UHD 770 で Plasma Desktop 内で Qt エレメントの選択に問題が発生する ===
Intel の iGPU によって使われている省電力機能の中にはちらつきを発生させるものがあります。適切な[[カーネルパラメータ]]オプションを使って無効化することで解決できます:
 
   
  +
{{Accuracy|Is this limited to the UHD770 alone? Is this limited to the Plasma Desktop or does it also happen on every Qt application regardless of the environment? Should we not recommend uninstalling {{Pkg|xf86-video-intel}} instead? Is this bug reported somewhere?}}
*Rc6 スリープモード ([[#RC6 スリープモード (enable_rc6)]] を参照) は {{ic|1=i915.enable_rc6=0}} で無効化できます。
 
   
  +
新しい第12世代あたりの IGP では、Plasma Desktop がほとんど使用不可になるほどの問題が発生する場合があります。アクセラレートされたアイテムの問題であるようです。''glxgears'' を実行すると高フレームレートが報告されますが、アニメーションはアップデートされません。
*カーネルのバージョン 4.6 からパネルセルフリフレッシュ (PSR) はデフォルトで有効になります ({{Bug|49628}} {{Bug|49371}} {{Bug|50605}})。無効化するには {{ic|1=i915.enable_psr=0}} オプションを使ってください。
 
  +
ここでの解決策は、X 下でのドライバを変更することです。
   
  +
{{hc|/etc/X11/xorg.conf.d/20-intel.conf|
=== 色が風化する (色空間の問題) ===
 
  +
Section "Device"
  +
Identifier "Intel Graphics"
  +
Driver "modesetting"
  +
EndSection
  +
}}
   
  +
=== Arc GPU のカーネルサポート ===
{{Note|この問題はカーネル 3.9 の変更に起因しています [https://lists.freedesktop.org/archives/dri-devel/2013-January/033576.html]。カーネル 4.1 でもこの問題は存在します。}}
 
カーネル 3.9 には Intel ドライバーで簡単に RGB リミテッドレンジの設定ができる変更が含まれており、場合によってはこの変更によって色がおかしくなることがあります。"Broadcast RGB" プロパティの新しい "Automatic" モードに関係しています。
 
   
  +
カーネル 6.0 およびそれ以前は、公式には Arc GPU ファミリをまだサポートしていないので、ドライバのロードを強制する必要があります。
{{ic|xrandr --output <HDMI> --set "Broadcast RGB" "Full"}} ({{ic|<HDMI>}} は適切な出力デバイスに置き換えてください、{{ic|xrandr}} を実行することで確認できます) のようにしてモードを強制することが可能です。これを {{ic |.xprofile}} に追加して、グラフィカルモードが始まる前にコマンドが実行できるように実行可能属性を付けて下さい。
 
  +
  +
ブートローダーで以下の[[カーネルパラメータ]]を設定してください:
  +
  +
i915.force_probe=''pci_id''
  +
  +
PCI ID は以下のコマンドの出力です:
  +
  +
$ <nowiki>lspci -nn | grep VGA | sed -n "s/^.\+\[8086:\([[:alnum:]]\{4\}\)\].\+$/\1/p"</nowiki>
  +
  +
さらに、以下のように {{ic|xorg.conf}} でドライバを設定する必要があります:
  +
  +
{{hc|/etc/X11/xorg.conf.d/20-intel.conf|
  +
Section "Device"
  +
Identifier "Intel Graphics"
  +
Driver "modesetting"
  +
EndSection
  +
}}
   
  +
"fbdev" ドライバも機能します。
{{Note|TV によっては 16-255 の色しか表示できないため Full に設定すると 0-15 の領域の色が失われます。従って、カラースペースを TV に合わせて圧縮する必要があるかどうか自動的に検知する Automatic のままにしてください。}}
 
   
  +
完全なドライバサポートが無い場合、3D レンダリングは利用できません。
また、GPU のレジスタを編集することで修正できる他の関連する問題も存在します。詳しくは [https://lists.freedesktop.org/archives/intel-gfx/2012-April/016217.html] や [https://github.com/OpenELEC/OpenELEC.tv/commit/09109e9259eb051f34f771929b6a02635806404c] を見て下さい。
 
   
 
== 参照 ==
 
== 参照 ==

2022年11月28日 (月) 16:45時点における版

関連記事

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 ページを参照してください。

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

AccelMethod

設定ファイルを作成する際に、Option "AccelMethod" を指定する必要がある場合があります。古典的なオプションは、UXASNA (デフォルト)、BLT です。

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

Option      "AccelMethod"  "uxa"

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

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

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

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

$ modinfo -p i915

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

# systool -m i915 -av

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

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

フレームバッファー圧縮 (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 世代では信頼できないか、使用できない場合があります。これにより、次のようなメッセージがシステムジャーナルに記録されます:
kernel: 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

ノート: Skylake およびそれ以降[9]、さらに Bay- と Cherry-Trail (VLV/CHV)[10] では、Linux 5.1 からこのパラメータがデフォルトで有効化されています。[11]

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

fastboot がデフォルトでないプラットフォーム上で fastboot を有効にするには、i915.fastboot=1カーネルパラメータ として設定するか、/etc/modprobe.d/i915.conf に以下を設定します:

/etc/modprobe.d/i915.conf
options i915 fastboot=1

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

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

パフォーマンスサポートを有効化する

第6世代から (Sandy Bridge およびそれ以降) Intel GPU は、内部のパフォーマンスデータをドライバに公開するために使用されるパフォーマンスカウンタを提供しています。ドライバとハードウェアレジスタではこのインフラを Observation Architecture (内部的には "OA") と呼んでいますが [14]、Intel のドキュメントではこの機能をより一般的に Observability Performance Counters を提供するものとしています [15] [16]

デフォルトでは、CAP_SYS_ADMIN (root と等価です) や CAP_PERFMON ケイパビリティで実行されているプログラムのみが observation architecture を利用できます [17] [18]。ほとんどのアプリケーションはこれらのケイパビリティを持たずに実行されるため、以下の警告が出力されます:

MESA-INTEL: warning: Performance support disabled, consider sysctl dev.i915.perf_stream_paranoid=0

これらのケイパビリティ (または root) を使わずにパフォーマンスサポートを有効化するには、sysctl で説明されているように、(上記の警告で示されている) カーネルパラメータを設定してください。

警告: アプリケーションにパフォーマンスデータへのアクセスを許してしまうなどのリスクが存在するため、perf_event_paranoid ファミリのオプションには制限的なデフォルトが存在します [19]。とはいえ、dev.i915.perf_stream_paranoid は GPU パフォーマンスカウンタへのアクセスにしか影響せず、CPU アーキテクチャ実行コンテキストレジスタなどと比べれば低リスクです。

/etc/sysctl.d/*.conf ファイルで先のカーネルパラメータの値に0を設定すると、以下のエラーが実行時に発生します:

sysctl: cannot stat /proc/sys/dev/i915/perf_stream_paranoid: No such file or directory

i915 モジュールをKMS で早い段階でロードする必要があります。

ヒントとテクニック

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

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

$ 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) [20]

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 はうまく動きました [21]。他の報告も同じようなものでした [22]。BIOS で割当済みビデオ RAM のサイズを高く設定すると、より質の高いハードウェアデコード再生が可能です。これを行うと、1080p h264 でもうまく行きます [23]。スムーズな再生 (1080p/720p) は、mpv-gitAURffmpeg-gitAURlibva-intel-driver-g45-h264AUR を組み合わせて使うことでもうまく行きます。MPV と Firefox のプラグイン "Send to MPV player"[24] を用いることで、ハードウェアによりアクセラレートされた 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

明るさとガンマ値の設定

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

トラブルシューティング

ティアリング

SNA アクセラレーションメソッドを取っている場合、一部のマシン上でティアリングが発生します。これを修正するには、以下の行を設定ファイルに追加してドライバの TearFree オプションを有効化してください:

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

詳細は元のバグレポートを見てください。

ノート:
  • このオプションは、SwapbuffersWaitfalse のときに動作しない場合があります。
  • このオプションはメモリアロケーションを増加させ、パフォーマンスが低下する場合があります。[25]
  • このオプションは、vsync のタイミングに厳しいアプリケーション (例えば、Super Meat Boy) において問題が発生する場合があります。
  • このオプションはUXA アクセラレーションメソッドでは動作しません。SNA でしか使えません。
  • Intel UHD 620 または 430 では、TearFree を動作させるために Option "TripleBuffer" "true" を追加する必要があります。

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

以下のような場合に便利です:

  • Chromium/Chrome が、GPU のせいでラグくパフォーマンスが悪く、--disable-gpu スイッチを使うとスムーズに動作する場合。
  • glxgears テストが期待するほどのパフォーマンスを発揮してくれない場合。

intel ドライバは垂直同期に Triple Buffering を使用します。これは、完全なパフォーマンスとティアリングの回避を可能にします。垂直同期をオフにするには (例えば、ベンチマークのために)、以下の .drirc をホームディレクトリ内に追加してください:

~/.drirc
<device screen="0" driver="dri2">
	<application name="Default">
		<option name="vblank_mode" value="0"/>
	</application>
</device>
ノート: このファイルを作成するために driconfAUR を使用しないでください。このツールにはバグがあり、間違ったドライバを設定してしまいます。

DRI3 の問題

xf86-video-intel では DIR バージョンのデフォルトは DRI3 です。一部の環境では DRI3 によって問題が発生することがあります [26]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" するときに画面がブラックアウトする

"late start" KMS を使っているとき "Loading modules" で画面がブラックアウトする場合、initramfs に i915 と intel_agp を加えると解決するかもしれません。Kernel Mode Setting#Early KMS start を見てください。

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

video=SVIDEO-1:d

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

video=VGA-1:1280x800

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

X のクラッシュを伴う問題、GPU のハングアップ、X のフリーズに関する問題は、NoAccel オプションを使って GPU の使用を無効化することで修復できる場合があります。以下の行を設定ファイルに追加してください:

  Option "NoAccel" "True"

あるいは、DRI オプションを使って 3D アクセラレーションだけを無効化してみてください:

  Option "DRI" "False"

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

この問題は、Xrandr のページ で扱っています。

バックライトを調整できない

サスペンドから復帰したあとにホットキーを使用してスクリーンの輝度を変更できない場合、バックライトの記事を見てあなたの設定ファイルをチェックしてみてください。

問題が解消されない場合は、以下のカーネルパラメータのうち1つを試してください:

acpi_osi=Linux
acpi_osi="!Windows 2012"
acpi_osi=

また、fastboot モード (i915.fastboot カーネルパラメータ) を使用していないことを確認してください。これは、バックライト制御を破壊することが知られています

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

Chromium や Firefox でアーティファクト、応答なし、ラグ、低パフォーマンスが発生する場合、解決策としてはいかがあります:

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

これは、カーネル 4.0.5 以上で壊れていることが知られています。

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

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

画面がちらつく

Intel iGPU で使用される省電力機能 Panel Self Refresh (PSR) は、一部の例でちらつきを発生させることが知られています FS#49628 FS#49371 FS#50605。一時的な解決策は、カーネルパラメータ i915.enable_psr=0 を使ってこの機能を無効化することです。

i915 ドライバで OpenGL 2.1

バージョン 13.x から 17 への mesa のアップデートにより、第3世代 Intel GPU (GMA3100、参照) で OpenGL 2.1 のサポートが壊れてしまう場合があり、この記事で説明されているように、OpenGL 1.4 に戻ってしまいます。しかし、これは手動で /etc/drirc または ~/.drirc のオプションを設定することで、修正できます:

/etc/drirc
<driconf>
...
    <device driver="i915">
        <application name="Default">
            <option name="stub_occlusion_query" value="true" />
            <option name="fragment_shader" value="true" />
        </application>
    </device>
...
</driconf>
ノート: OpenGL のバージョンが戻ってしまう理由は、Chromium と他のアプリケーションでエクスペリエンスが悪化するためでした。必要であれば、drirc ファイルを編集して特定のアプリケーションに対して gl2.1 を chromium 実行ファイルなどで無効化することもできます (参照)。

KMS の問題: コンソールが小さい領域に制限される

低解像度のビデオポートの1つが起動時に有効になっていて、そのせいでターミナルがスクリーンの小さい領域を使っているのかもしれません。修正するには、ブートローダーでカーネルコマンドラインパラメータの video=SVIDEO-1:d を使って i915 モジュールの設定でそのポートを明示的に無効化してください。詳細は カーネルパラメータ を見てください。

これでうまく行かない場合、SVIDEO-1 ではなく TV1 か VGA1 を無効化してみてください。ビデオポートの名前は xrandr でリストアップできます。

Haswell CPU で HDMI 経由で音声が出ない

Linux カーネルの issue によると、intel_iommu=on を設定している場合には HDMI から音声が出力されないそうです。この問題を修正するには、以下のカーネルパラメータを設定してください:

intel_iommu=on,igfx_off

あるいは、IOMMU を無効化してください:

intel_iommu=off

低電力 Intel CPU でクラッシュ/フリーズ

Low-powered Intel processors and/or laptop processors have a tendency to randomly hang or crash due to the problems with the power management features found in low-power Intel chips. If such a crash happens, you will not see any logs reporting this problem. Adding the following Kernel parameters may help to resolve the problem.

ノート: It is not advised to use all three of the below kernel parameters together.
intel_idle.max_cstate=1 i915.enable_dc=0 ahci.mobile_lpm_policy=1

ahci.mobile_lpm_policy=1 fixes a hang on several Lenovo laptops and some Acer notebooks due to problematic SATA controller power management. That workaround is strictly not related to Intel graphics but it does solve related issues. Adding this kernel parameter sets the link power management from firmware default to maximum performance and will also solve hangs when you change display brightness on certain Lenovo machines but increases idle power consumption by 1-1.5 W on modern ultrabooks. For further information, especially about the other states, see the Linux kernel mailing list and Red Hat documentation.

i915.enable_dc=0 disables GPU power management. This does solve random hangs on certain Intel systems, notably Goldmount and Kaby Lake Refresh chips. Using this parameter does result in higher power use and shorter battery life on laptops/notebooks.

intel_idle.max_cstate=1 limits the processors sleep states, it prevents the processor from going into deep sleep states. That is absolutely not ideal and does result in higher power use and lower battery life. However, it does solve random hangs on many Intel systems. Use this if you have a Intel Baytrail or a Kaby Lake Refresh chip. Intel "Baytrail" chips are known to randomly hang without this kernel parameter due to a hardware flaw[27]. More information about the max_cstate parameter can be found in the kernel documentation and about the cstates in general on a writeup on GitHub.

If you try adding intel_idle.max_cstate=1 i915.enable_dc=0 ahci.mobile_lpm_policy=1 in the hope of fixing frequent hangs and that solves the issue you should later remove one by one to see which of them actually helped you solve the issue. Running with cstates and display power management disabled is not advisable if the actual problem is related to SATA power management and ahci.mobile_lpm_policy=1 is the one that actually solves it.

Check Linux Reviews for more details.

Add support for 165Hz monitor

For some 165Hz monitors, xrandr might not display the 165Hz option, and the fix in #Adding undetected resolutions does not solve this. In this case, see i915-driver-stuck-at-40hz-on-165hz-screen.

ノート: Other than creating /etc/initramfs-tools/hooks/edid, a mkinitcpio hook should be made:
/etc/initcpio/install/edid
#!/bin/bash

build() {
    add_file /lib/firmware/edid/edid.bin
}

help() {
    cat <<HELPEOF
This hook add support for 165Hz
HELPEOF
}

Then append edid in HOOKS of /etc/mkinitcpio.conf, Just like this:

/etc/mkinitcpio.conf
HOOKS=(... fsck edid)

Then regenerate the initramfs.

Freeze after wake from sleep/suspend with Alder Lake-P

Users with Alder Lake-P 12th gen mobile processor laptops from various vendors experienced freeze and black-screen after waking up from suspending. It is because many laptop vendors ship an incorrect VBT (Video BIOS Table) that wrongly describe the actual ports connected to the iGPU. Considering most vendors will not publish a BIOS update for a laptop with a properly working Windows OS, Linux users could only address the issue on the kernel side. You can mitigate the issue by patching and rebuilding the kernel as a temporary remedy:

drivers/gpu/drm/i915/display/intel_display.c.patch
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -8835,7 +8835,7 @@ static void intel_setup_outputs(struct drm_i915_private *dev_priv)
                intel_ddi_init(dev_priv, PORT_TC1);
        } else if (IS_ALDERLAKE_P(dev_priv)) {
                intel_ddi_init(dev_priv, PORT_A);
-               intel_ddi_init(dev_priv, PORT_B);
+               // intel_ddi_init(dev_priv, PORT_B);
                intel_ddi_init(dev_priv, PORT_TC1);
                intel_ddi_init(dev_priv, PORT_TC2);
                intel_ddi_init(dev_priv, PORT_TC3);

as described in freedesktop issues 5531 6401 which have not been solved for months.

Alder Lake/UHD 770 で Plasma Desktop 内で Qt エレメントの選択に問題が発生する

この記事またはセクションの正確性には問題があります。
理由: Is this limited to the UHD770 alone? Is this limited to the Plasma Desktop or does it also happen on every Qt application regardless of the environment? Should we not recommend uninstalling xf86-video-intel instead? Is this bug reported somewhere? (議論: トーク:Intel graphics#)

新しい第12世代あたりの IGP では、Plasma Desktop がほとんど使用不可になるほどの問題が発生する場合があります。アクセラレートされたアイテムの問題であるようです。glxgears を実行すると高フレームレートが報告されますが、アニメーションはアップデートされません。 ここでの解決策は、X 下でのドライバを変更することです。

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

Arc GPU のカーネルサポート

カーネル 6.0 およびそれ以前は、公式には Arc GPU ファミリをまだサポートしていないので、ドライバのロードを強制する必要があります。

ブートローダーで以下のカーネルパラメータを設定してください:

i915.force_probe=pci_id

PCI ID は以下のコマンドの出力です:

$ lspci -nn | grep VGA | sed -n "s/^.\+\[8086:\([[:alnum:]]\{4\}\)\].\+$/\1/p"

さらに、以下のように xorg.conf でドライバを設定する必要があります:

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

"fbdev" ドライバも機能します。

完全なドライバサポートが無い場合、3D レンダリングは利用できません。

参照