「Intel graphics」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(同期)
 
(3人の利用者による、間の40版が非表示)
1行目: 1行目:
 
[[Category:グラフィック]]
 
[[Category:グラフィック]]
 
[[Category:X サーバー]]
 
[[Category:X サーバー]]
[[cs:Intel graphics]]
 
 
[[de:Intel]]
 
[[de:Intel]]
 
[[en:Intel graphics]]
 
[[en:Intel graphics]]
 
[[es:Intel graphics]]
 
[[es:Intel graphics]]
[[fr:Intel]]
 
[[hu:Intel graphics]]
 
[[it:Intel graphics]]
 
[[pl:Intel graphics]]
 
 
[[ru:Intel graphics]]
 
[[ru:Intel graphics]]
 
[[zh-hans:Intel graphics]]
 
[[zh-hans:Intel graphics]]
[[zh-hant:Intel graphics]]
 
 
{{Related articles start}}
 
{{Related articles start}}
 
{{Related|Intel GMA 3600}}
 
{{Related|Intel GMA 3600}}
 
{{Related|Xorg}}
 
{{Related|Xorg}}
{{Related|Kernel Mode Setting}}
+
{{Related|カーネルモード設定}}
 
{{Related|Xrandr}}
 
{{Related|Xrandr}}
 
{{Related|ハイブリッドグラフィック}}
 
{{Related|ハイブリッドグラフィック}}
22行目: 16行目:
 
{{Related articles end}}
 
{{Related articles end}}
   
Intel はオープンソースドライバの提供とサポートを行なっているので、今日 Intel のグラフィックカード原則的にプラグアンドプレイです。
+
Intel はオープンソースドライバの提供とサポートを行なっているので、Intel graphics 基本的にプラグアンドプレイです。
   
Intel GPU モデル関連するチップセットCPU の一覧 [[Wikipedia:Comparison of Intel graphics processing units|Wikipedia の比較]]を見てさい。
+
Intel GPU モデル関連するチップセットCPU の包括的なリスト[[Wikipedia:Intel Graphics Technology]] [[Gentoo:Intel#Feature support]] を見てください。
   
  +
{{Note|
{{Note|PowerVR ベースのグラフィックカード ([[Intel GMA 3600|GMA 3600]] シリーズ) はオープンソースドライバではサポートされていません。}}
 
  +
* PowerVR ベースのグラフィックカード ([[Intel GMA 3600|GMA 3600]] シリーズ) はオープンソースドライバではサポートされていません。
  +
* Intel 第 ''N'' 世代 (Gen ''N'') ハードウェアという記述は、CPU の世代を指すものではなく、[[Wikipedia:List of Intel graphics processing units|GPU の世代]]を指しています。これは CPU の世代とは異なります。
  +
* あなたのカードを特定する方法については [[Xorg#ドライバーのインストール]] を参照してください。
  +
}}
   
 
== インストール ==
 
== インストール ==
 
{{Pkg|mesa}} パッケージを[[インストール]]してください。3D アクセラレーションのための DRI ドライバーが含まれています。
 
   
  +
* 以下のパッケージのうち1つを[[インストール]]してください。これらは、3D アクセラレーションのための [[wikipedia:ja:ダイレクト・レンダリング・インフラストラクチャ|DRI]] ドライバを提供します。
* 32ビットのサポートが必要な場合は [[multilib]] リポジトリから {{Pkg|lib32-mesa}} パッケージもインストールしてください。
 
  +
** {{Pkg|mesa}} は、第3世代ハードウェアおよびそれ以降用のモダンな Gallium3D ドライバを含む最新の [[Mesa]] パッケージです。これを使うことが推奨されます。
* ([[Xorg]] で 2D アクセラレーションを得るための) DDX ドライバーが必要な場合は {{Pkg|xf86-video-intel}} パッケージを[[インストール]]してください (推奨されません、下のノートを見てください)。
 
  +
** {{Pkg|mesa-amber}} は、第2世代から第11世代までのハードウェア用のクラシックドライバ (Gallium3d でない) です。このドライバは、第7世代及びそれ以前のハードウェアにおいて高いパフォーマンスや安定性をもたらすかもしれませんが、メンテナンスされていません。
* [[Vulkan]] のサポートが必要な場合 (''Ivy Bridge'' 以降)、{{Pkg|vulkan-intel}} パッケージをインストールしてください。
 
  +
* 32ビットアプリケーションのサポートは、[[multilib]] リポジトリから {{Pkg|lib32-mesa}} か {{Pkg|lib32-mesa-amber}} パッケージもインストールしてください。
  +
* [[Xorg]] で 2D アクセラレーションを提供する [[wikipedia:X.Org_Server#DDX|DDX]] ドライバに関しては、以下のうち1つを使ってください:
  +
** {{Pkg|xorg-server}} パッケージに含まれる ''modesetting'' ドライバは、第4世代及びそれ以降のハードウェアにおいて推奨されます。これは、''glamor'' モジュール経由で DRI ドライバを使用してアクセラレーションを提供します。
  +
** {{Pkg|xf86-video-intel}} パッケージは、第2世代から第9世代までのハードウェアにおいてレガシーな Intel DDX ドライバを提供します。一般に、このパッケージを使用することは推奨されません。下記のノートを参照してください。
  +
* [[Vulkan]] サポート (Haswell 及びそれ以降; それより古いチップにおけるサポートは[https://gitlab.freedesktop.org/mesa/mesa/-/issues/8249#note_1758622 不完全であるか存在しません]) については、{{Pkg|vulkan-intel}} パッケージをインストールしてください。32 ビット [[Vulkan]] サポートについては、{{Pkg|lib32-vulkan-intel}} パッケージをインストールしてください。
   
 
[[ハードウェアビデオアクセラレーション]]も見てください。
 
[[ハードウェアビデオアクセラレーション]]も見てください。
   
  +
{{Note|1=<nowiki/>
{{Note|1=複数のディストリビューション ([https://www.phoronix.com/scan.php?page=news_item&px=Ubuntu-Debian-Abandon-Intel-DDX Debian & Ubuntu], [https://www.phoronix.com/scan.php?page=news_item&px=Fedora-Xorg-Intel-DDX-Switch Fedora], [https://community.kde.org/Plasma/5.9_Errata#Intel_GPUs KDE]) から {{Pkg|xf86-video-intel}} ドライバーのインストールは非推奨とされており、第4世代以上の (2006年の GMA 3000 よりも新しい) GPU では代わりに modesetting ドライバーを使うことが推奨されています。[https://www.reddit.com/r/archlinux/comments/4cojj9/it_is_probably_time_to_ditch_xf86videointel/], [https://www.phoronix.com/scan.php?page=article&item=intel-modesetting-2017&num=1], [[Xorg#インストール]], {{man|4|modesetting}} などを見てください。ただし、modesetting ドライバーは [https://bugs.chromium.org/p/chromium/issues/detail?id=370022 Chromium Issue 370022] などの問題を引き起こす可能性があります。また、modesetting ドライバーでは Intel GuC/HuC/DMC ファームウェアの恩恵を受けられません。}}
 
  +
* 一部のディストリビューション ([https://www.phoronix.com/scan.php?page=news_item&px=Ubuntu-Debian-Abandon-Intel-DDX Debian & Ubuntu]、[https://www.phoronix.com/scan.php?page=news_item&px=Fedora-Xorg-Intel-DDX-Switch Fedora]、[https://community.kde.org/Plasma/5.9_Errata#Intel_GPUs KDE]) では、{{Pkg|xf86-video-intel}} ドライバのインストールが推奨されておらず、代わりに modesetting ドライバにフォールバックさせることが推奨されています。[https://web.archive.org/web/20160714232204/https://www.reddit.com/r/archlinux/comments/4cojj9/it_is_probably_time_to_ditch_xf86videointel/]、[https://www.phoronix.com/scan.php?page=article&item=intel-modesetting-2017&num=1]、[[Xorg#インストール]]、{{man|4|modesetting}} を参照してください。しかし、modesetting ドライバは次のような問題を引き起こす可能性があります: [https://gitlab.freedesktop.org/xorg/xserver/-/issues/1364 XFCE での画面のチラツキやマウスのジッタリング]、[https://bugs.chromium.org/p/chromium/issues/detail?id=370022 仮想デスクトップの切り替えを行ったときに Chromium でアーティファクトが発生する]、[https://gitlab.freedesktop.org/xorg/xserver/-/issues/928 vsync のジッタリング、mpv での動画のスタッタリング]。
  +
* {{Pkg|xf86-video-intel}} ドライバには、第11世代及びそれ以降のハードウェアに対する適切なサポートがありません。それによって、アクセラレーションが提供されなかったり、レンダリングの問題が発生したりし、その結果として Plasma Desktop がほぼ利用不能な状態になります。[https://gitlab.freedesktop.org/xorg/driver/xf86-video-intel/-/commit/7181c5a41c3f00eaf996caa156523c708a18081e] を参照してください。
  +
* {{Pkg|xf86-video-intel}} がインストールされている場合、グラフィックススタック全体がハードフリーズし、({{ic|Ctrl+Alt+F''n''}} を押して) 他の仮想コンソールに切り替えることすらできなくなり、[[SysRq]] でユーザプロセスを kill することしかできなくなるという問題が2件報告されています [https://bbs.archlinux.org/viewtopic.php?id=263323] [https://github.com/qutebrowser/qutebrowser/issues/4641]。
  +
}}
   
 
== ローディング ==
 
== ローディング ==
44行目: 49行目:
 
Intel カーネルモジュールは、システムの起動時に自動的に正常にロードされるはずです。
 
Intel カーネルモジュールは、システムの起動時に自動的に正常にロードされるはずです。
   
が起こらない場合は:
+
正常にロードされない場合は:
   
* Intel は kernel mode-setting を必要とするので、[[カーネルパラメータ]] に {{ic|nomodeset}} や {{ic|1=vga=}} を指定して'''いない'''ことを確認してください。
+
* Intel は カーネルモード設定を必要とするので、[[カーネルパラメータ]] に {{ic|nomodeset}} を指定して '''いない''' ことを確認してください。
* また、{{ic|/etc/modprobe.d/}} や {{ic|/usr/lib/modprobe.d/}} にある modprobe ブラックリストを使って Intel を無効にしていないか確認してください。
+
* また、{{ic|/etc/modprobe.d/}} や {{ic|/usr/lib/modprobe.d/}} modprobe ブラックリストを使って Intel を無効にしていないか確認してください。
   
=== 早い段階で KMS を有効にする ===
+
=== 早 KMS ===
   
  +
[[カーネルモード設定]] (KMS) は {{ic|i915}} ドライバによってサポートされており、[[mkinitcpio]] v32 から {{ic|kms}} フックがデフォルトで使用差rているため (ブートの) 早い段階で有効化されます。他の環境で KMS をブートプロセスのできるだけ早い段階で有効化する方法については [[カーネルモード設定#KMS の早期開始]] を見てください。
[[Kernel Mode Setting|Kernel mode setting]] (KMS) は、i915 DRM ドライバーを使用するインテルチップセットで、必須であり、デフォルトで有効になっています。
 
 
起動プロセスでできるだけ早く KMS を有効にする方法については、 [https://wiki.archlinux.jp/index.php/Kernel_Mode_Setting#Early_KMS_start Early KMS start] を参照してください。
 
   
 
=== GuC/HuC ファームウェアのロードを有効にする ===
 
=== GuC/HuC ファームウェアのロードを有効にする ===
   
  +
{{Accuracy|Intel のドキュメントに反し、Tiger Lake と Rocket Lake の GPU は実際 {{ic|1=enable_guc=3}} をサポートし、{{ic|1=enable_guc=1}} がデフォルトとなっている場合があります。}}
サポートされている Skylake 以降のプロセッサでは、一部のビデオ機能 (例:SKL 低電力符号化モードにおける CBR レート制御) でアップデートされた GPU ファームウェア [https://github.com/intel/media-driver#known-issues-and-limitations] の使用が必要になる場合があります。これは Linux 11 以降の Gen 5.4+ハードウェアでのみデフォルトでロードされます。 [https://patchwork.freedesktop.org/patch/317523/] GuC/HuC ファームウェアのロードを有効にすると、一部のシステムで問題が発生する可能性があります。フリーズした場合は無効にしてください (たとえば、休止状態から再開した後など)。
 
   
  +
第9世代から (Skylake およびそれ以降)、Intel GPU には以下の機能を提供する ''Graphics micro (μ) Controller'' (GuC) が搭載されています [https://01.org/linuxgraphics/downloads/firmware]{{Dead link|2023|04|23|status=403}}:
{{Note|インテル・プロセッサーの世代の概要については、 [https://wiki.gentoo.org/wiki/Intel#Feature_support Gentoo:Intel#Feature support] を参照してください。}}
 
  +
* 一部のメディアデコード機能を CPU から ''HEVC/H.265 micro (µ) Controller'' (HuC) にオフロードする。[[ハードウェアビデオアクセラレーション]]に {{Pkg|intel-media-driver}} を使用する場合にのみ、適用可能です。第9世代から導入されました。
  +
* GuC をスケジューリング、コンテキスト送信、電源管理に使用する。第12世代、Alder Lake-P (Mobile) で導入されました。
   
  +
この機能を使うには、GuC ファームウェアがロードされていなければなりません。HuC のサポートに関して、一部のビデオ機能 (例: SKL 低電力符号化モードにおける CBR レート制御) は HuC ファームウェアもロードされている必要があります [https://github.com/intel/media-driver#known-issues-and-limitations]。GuC と HuC ファームウェアのファイルは両方 {{Pkg|linux-firmware}} によって提供されています。
Gen 11 より前のプロセッサーの場合は、{{ic|1=i 915.enable_guc=2}} を [[カーネルパラメータ]] に追加して、GuC と HuC の両方のファームウェアロードを有効にする必要があります。または、 ([https://wiki.archlinux.jp/index.php/Kernel_Mode_Setting#Early_KMS_start KMSの初期起動] を参照してください。) [[initramfs]] にすでに {{ic|i 915}} モジュールが含まれている場合は、 {{ic|/etc/modprobe.d/}} 内のファイルを使用してこれらのオプションを設定できます。たとえば、次のようになります。
 
  +
  +
GuC の機能は {{ic|1=i915.enable_guc}} [[カーネルパラメータ]] によって制御されます。このパラメータの使用法は次のとおりです。:
  +
  +
{| class="wikitable"
  +
! enable_guc の値 !! GuC 送信 !! HuC ファームウェアのロード !! デフォルトとなっているプラットフォーム !! サポートされているプラットフォーム
  +
|-
  +
|0 || {{No}} || {{No}} || Tiger Lake、Rocket Lake、Gen12 以前 [https://github.com/torvalds/linux/blob/b3454ce0b2c8a56e760e6baa88ed10278585072b/drivers/gpu/drm/i915/gt/uc/intel_uc.c#L26-L36] || すべて
  +
|-
  +
|1 || {{Yes}} || {{No}} || {{-}} || Alder Lake-P (Mobile) およびそれ以降
  +
|-
  +
|2 || {{No}} || {{Yes}} || Alder Lake-S (Desktop) [https://github.com/torvalds/linux/blob/b3454ce0b2c8a56e760e6baa88ed10278585072b/drivers/gpu/drm/i915/gt/uc/intel_uc.c#L38-L42] [https://lore.kernel.org/all/87ee6wit2r.fsf@intel.com/T/] || Gen9 およびそれ以降
  +
|-
  +
|3 || {{Yes}} || {{Yes}} || Alder Lake-P (Mobile) 及びそれ以降 || Gen 9.5 及びそれ以降 (一部個体ではこちらがより良い)
  +
|}
  +
  +
GuC 送信や HuC ファームウェアのロードがあなたの GPU ではデフォルトで有効になっていない場合、手動で有効化できます。
  +
  +
{{Warning|1=GuC / HuC ファームウェアのロードを手動で有効化すると、[https://bugs.freedesktop.org/show_bug.cgi?id=111918 たとえその機能がサポートされていない場合でも]、カーネルに汚染マークが付きます。さらに、GuC/HuC ファームウェアのロードを有効化すると、一部のシステムで問題が発生する可能性があります。(ハイバネートから復帰したあとなどに) フリーズが発生する場合は、無効化してください。}}
  +
  +
まず、{{Pkg|linux-firmware}} が[[インストール]] されていることを確認してください。
  +
  +
{{ic|1=i915.enable_guc}} [[カーネルパラメータ]] を設定してください。例えば:
   
 
{{hc|/etc/modprobe.d/i915.conf|2=
 
{{hc|/etc/modprobe.d/i915.conf|2=
67行目: 94行目:
 
}}
 
}}
   
  +
[[Initramfs を再生成する|Initramfs を再生成]] してください。次回の起動時に [[dmesg]] を使うことで GuC と HuC が両方有効化されていることを確認できます:
そして [[Mkinitcpio#Manual_generation|initramfs を再構築します]]
 
   
  +
{{hc|# dmesg|2=
{{Note|1=GuC/HuC ファームウェアのロードを手動で有効にすると、カーネルに影響があります [https://bugs.freedesktop.org/show_bug.cgi?id=111918 機能がサポートされていない場合でも]}}
 
{{Note|GuC の送信は、パフォーマンスを低下させバグを引き起こすため、カーネル5.4 以降では [https://patchwork.kernel.org/patch/10904591 完全に無効] にされています。 {{ic|1=enable_guc=3}} を設定しても効果はありません。}}
 
 
次のブート時に、GuC と HuC の両方が有効になっていることを [[dmesg]] を使って確認できます。
 
 
{{hc|$ dmesg|2=
 
 
[30130.586970] i915 0000:00:02.0: [drm] GuC firmware i915/icl_guc_33.0.0.bin version 33.0 submission:disabled
 
[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
 
[30130.586973] i915 0000:00:02.0: [drm] HuC firmware i915/icl_huc_9.0.0.bin version 9.0 authenticated:yes
 
}}
 
}}
   
お使いのグラフィックアダプタでサポートされていない場合次のメッセージ表示されます
+
あなたのグラフィックアダプタで GuC と HuC がサポートされていない場合、以下出力されます
   
{{hc|$ dmesg|2=
+
{{hc|# dmesg|2=
 
[ 0.571339] i915 0000:00:02.0: [drm] Incompatible option enable_guc=2 - GuC is not supported!
 
[ 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!
 
[ 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/guc_info
 
# cat /sys/kernel/debug/dri/0/gt/uc/huc_info
 
# cat /sys/kernel/debug/dri/0/gt/uc/huc_info
   
{{Warning|1=[[Intel GVT-g|GVT-g graphics virtualization]] の設定 {{ic|1=enable_gvt=1}} は、GuC/HuC も有効になっている場合、Linux 4.20.11 ではサポートされません。システムジャーナルにされていように i915 モジュール初期化に失敗します。
+
{{Note|1=GuC/HuC が有効化されている場合に {{ic|1=enable_gvt=1}} を設定して [[Intel GVT-g|GVT-g graphics virtualization]] を使用することは、linux 4.20.11 現在ではサポートされていません。システムジャーナルに出力される通り、i915 モジュール初期化に失敗します。
  +
{{hc|$ journalctl|
 
  +
{{hc|# 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: [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 0000:00:02.0: [drm:i915_driver_load [i915]] Device initialization failed (-5)
97行目: 121行目:
 
... kernel: snd_hda_intel 0000:00:1f.3: failed to add i915 component master (-19)
 
... kernel: snd_hda_intel 0000:00:1f.3: failed to add i915 component master (-19)
 
}}
 
}}
  +
{{hc|$ journalctl -b |
 
  +
[https://github.com/intel/gvt-linux/issues/77#issuecomment-707541069] で説明されているように、関連する警告は深刻なものではないことに注意してください:
  +
  +
{{hc|# 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
 
... 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 の設定 ==
   
[[Xorg]] を走らせ特別な設定は必要ありません。
+
たいてい、[[Xorg]] を実行すために設定は特に必要ありません。
   
  +
しかし、ドライバのオプションを活用したい場合や、[[Xorg]] が起動しない場合などは、Xorg の設定ファイルを作成することができます。
{{Note|最新世代の内蔵 GPU (Skylake/HD 530 など) は特別な設定が必要です。[[#Skylake サポート]]を参照。}}
 
   
  +
=== modesetting ドライバを使う ===
ただし、ドライバーのオプションを変更するには、以下のような Xorg 設定ファイルを作成する必要があります:
 
  +
  +
{{Pkg|xf86-video-intel}} をインストールしたが、DDX ドライバを優先させずに modesetting ドライバを明示的にロードさせたい場合 (DDX ドライバと modesetting ドライバを比較したい場合など) は、以下のような設定ファイルを使用できます:
   
 
{{hc|/etc/X11/xorg.conf.d/20-intel.conf|
 
{{hc|/etc/X11/xorg.conf.d/20-intel.conf|
 
Section "Device"
 
Section "Device"
Identifier "Intel Graphics"
+
Identifier "Intel Graphics"
Driver "intel"
+
Driver "modesetting"
EndSection}}
+
EndSection
  +
}}
   
  +
=== Intel ドライバを使う ===
オプションを追加するときは {{ic|Driver}} の下に追加します。
 
   
  +
{{Note|以下は {{Pkg|xf86-video-intel}} が必要です。}}
{{Note|
 
*設定ファイルを作成するときは {{ic|Option "AccelMethod"}} を必ず設定する必要があります。たとえデフォルトのメソッド (現在は {{ic|"sna"}}) を使用する場合でも設定は必要です。設定がないと X はクラッシュします。
 
*上記の他に、必要に応じて他のデバイスセクションも追加してください。}}
 
   
設定の一覧見るには、{{ic|$ man intel}} と入力してください
+
以下のような Xorg 設定ファイル作成してください:
   
  +
{{hc|/etc/X11/xorg.conf.d/20-intel.conf|
== モジュールベースオプション ==
 
  +
Section "Device"
  +
Identifier "Intel Graphics"
  +
Driver "intel"
  +
EndSection
  +
}}
   
  +
その他のオプションは {{ic|Driver}} の下の新しい行にユーザが追加します。
{{ic|i915}} カーネルモジュールでは、[https://wiki.archlinux.jp/index.php/%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB#.E3.83.A2.E3.82.B8.E3.83.A5.E3.83.BC.E3.83.AB.E3.82.AA.E3.83.97.E3.82.B7.E3.83.A7.E3.83.B3.E3.82.92.E8.A8.AD.E5.AE.9A.E3.81.99.E3.82.8B モジュールオプション] を介して構成できます。一部のモジュールオプションは、省電力に影響を与えます。
 
  +
オプションの完全なリストは {{man|4|intel}} の man ページを参照してください。
   
  +
{{Note|上に挙げたものよりも多くの device セクションを追加する必要があるかもしれません。これは必要なところに表示されます。}}
次のコマンドを使用して、すべてのオプションのリストと簡単な説明およびデフォルト値を生成できます。
 
   
  +
==== AccelMethod ====
$ modinfo -p i915
 
   
  +
設定ファイルを作成する際に、{{ic|Option "AccelMethod"}} を指定する必要がある場合があります。古典的なオプションは、{{ic|UXA}}、{{ic|SNA}} (デフォルト)、{{ic|BLT}} です。
現在有効になっているオプションを確認するには、
 
   
  +
デフォルトの {{ic|SNA}} で問題が発生した場合。(例: ピクセル化したグラフィック、壊れたテキストなど)、代わりに {{ic|UXA}} を使ってみてください、これは [[#Xorg の設定|Xorg 設定ファイル]] に次の行を追加することで可能です:
# systool -m i915 -av
 
   
  +
Option "AccelMethod" "uxa"
多くのオプションのデフォルトは-1であるため、チップごとの省電力のデフォルトになります。ただし、[[カーネルモジュール#設定モジュールオプション|モジュールオプション]] を使用して、より積極的な省電力を構成することは可能です。
 
   
  +
{{man|4|intel|CONFIGURATION DETAILS}} の "AccelMethod" オプションをご覧ください。
{{Warning|1=デフォルトから逸脱すると、カーネルは Linux の [https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=fc9740cebc3ab7c65f3c5f6ce0caf3e4969013catanted]としてマークされます。 3.18以降。これは基本的に、チップごとのデフォルト以外のオプションの使用は実験的なものと見なされ、開発者によってサポートされていないことを意味します。}}
 
   
  +
==== 最近の GPU で Intel DDX ドライバを使用する ====
=== フレームバッファー圧縮 (enable_fbc) ===
 
   
  +
第8世代 (Broadwell) からの Intel GPU では、Iris Mesa ドライバが必要です:
フレームバッファー圧縮(FBC)を利用すると、画面の更新に必要なメモリ帯域幅を削減しながら、消費電力を削減できます。
 
   
  +
Option "DRI" "iris"
FBC を有効にするには、 {{ic|1=i915.enable_fbc=1}} を [[カーネルパラメータ]] として使用するか、 {{ic|/etc/modprobe.d/i915.conf}}に設定します。
 
   
  +
==== TearFree、TripleBuffer、SwapbuffersWait を無効化する ====
{{hc|/etc/modprobe.d/i915.conf|2=
 
options i915 enable_fbc=1
 
}}
 
   
  +
コンポジタを使用している場合 (GNOME、KDE Plasma、Xfce などの最近のデスクトップ環境ではデフォルトです)、通常、TearFree、TripleBuffer、SwapbuffersWait を無効化することでパフォーマンスを向上させ、電力消費量を削減することができます。
{{Note|フレームバッファー圧縮は、Sandy Bridge(第6世代)より前の Intel GPU 世代では信頼できないか、使用できない場合があります。これにより、次のようなメッセージがシステムジャーナルに記録されます。
 
   
  +
Option "TearFree" "false"
ernel: drm: not enough stolen space for compressed buffer, disabling.
 
  +
Option "TripleBuffer" "false"
  +
Option "SwapbuffersWait" "false"
   
  +
== モジュールベースのオプション ==
Sandy Bridge 以前の CPU でフレームバッファー圧縮を有効にすると、次のようなエラーメッセージが表示されます。
 
   
  +
{{ic|i915}} カーネルモジュールにより、[[カーネルモジュール#モジュールオプションを設定する|モジュールオプション]] を介して設定できます。一部のモジュールオプションは、省電力に影響を与えます。
{{hc|$ 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)。無効にするには、カーネルラインパラメータに {{ic|1=i915.enable_fbc=0}} を追加します。無効化された圧縮の結果の詳細については、 [http://kernel.ubuntu.com/~cking/power-benchmarking/background-colour-and-framebuffer-compression/ こちら] を参照してください。}}
 
   
  +
$ modinfo -p i915
=== Fastboot ===
 
   
  +
現在有効になっているオプションを確認するには、
Intel Fastboot の目標は、BIOS または [https://wiki.archlinux.jp/index.php/Arch_%E3%83%96%E3%83%BC%E3%83%88%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9#.E3.83.96.E3.83.BC.E3.83.88.E3.83.AD.E3.83.BC.E3.83.80.E3.83.BC ブートローダー] によってセットアップされたフレームバッファーを保持して、 [[Xorg]] が開始されるまでちらつきを回避することです [https://www.phoronix.com/scan.php?page=news_item&px=MTEwNzc]
 
   
  +
# systool -m i915 -av
fastboot を有効にするには、{{ic|1=i915.fastboot=1}} を [[カーネルパラメータ]] として設定するか、{{ic|/etc/modprobe.d/i915.conf}} に設定します。
 
   
  +
多くのオプションのデフォルトは-1であるため、チップごとの省電力のデフォルトになります。ただし、[[カーネルモジュール#モジュールオプションを設定する|モジュールオプション]] を使用して、より積極的な省電力を構成することも可能です。
{{hc|/etc/modprobe.d/i915.conf|2=
 
options i915 fastboot=1
 
}}
 
   
  +
{{Note|1=Linux 3.18 以降、これらのデフォルトから逸脱すると、カーネルが [https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=fc9740cebc3ab7c65f3c5f6ce0caf3e4969013ca tainted] (汚染された) としてマークされます。これは基本的に、チップごとのデフォルト以外のオプションの使用は実験的なものと見なされ、開発者によってサポートされていないことを意味します。}}
{{Warning|1=このパラメータはデフォルトでは有効になっておらず、一部の古い (Skylake以前の) システムで問題が発生する可能性があります。[https://www.phoronix.com/scan.php?page=news_item&px=Intel-Fastboot-Default-2019-Try]}}
 
   
  +
=== フレームバッファー圧縮 (enable_fbc) ===
=== IntelGVT-gグラフィック仮想化のサポート===
 
   
  +
フレームバッファ圧縮 (FBC) は、スクリーンのリフレッシュ中の電力消費量とメモリの帯域幅の使用量を削減できる機能です。
詳細については、 [[Intel GVT-g]] を参照してください。
 
   
  +
この機能は、ハードウェアによってサポートされている場合、自動的に有効化されます。以下のコマンドを実行することで、この機能が有効化されているかどうか確認できます:
=== モジュールによる省電力設定 ===
 
   
  +
{{hc|$ modinfo i915 {{!}} grep enable_fbc|
{{ic|i915}} カーネルモジュールは[[カーネルモジュール#モジュールオプションを設定する|モジュールオプション]]によって設定ができます。モジュールオプションの中には省電力機能に関係するものもあります。
 
  +
parm: enable_fbc:Enable frame buffer compression for power savings (default: -1 (use per-chip default)) (int)
  +
}}
   
  +
parm が {{ic|-1}} に設定されている場合、何もする必要はありません。{{ic|-1}} でない場合、{{ic|1=i915.enable_fbc=1}} を[[カーネルパラメータ]]に追加するか、以下の内容で {{ic|/etc/modprobe.d/i915.conf}} を作成することで、FBC を強制的に有効化できます:
次のコマンドを使うことで全てのオプションとその説明、デフォルト値のリストが出力されます:
 
   
  +
{{hc|/etc/modprobe.d/i915.conf|2=
$ modinfo -p i915
 
  +
options i915 enable_fbc=1
  +
}}
   
  +
{{Note|フレームバッファー圧縮は、Sandy Bridge(第6世代)より前の Intel GPU 世代では信頼できないか、使用できない場合があります。これにより、次のようなメッセージがシステムジャーナルに記録されます:
現在有効になっているオプションを確認するには、次を実行して下さい:
 
   
  +
kernel: drm: not enough stolen space for compressed buffer, disabling.
# systool -m i915 -av
 
   
  +
Sandy Bridge 以前の CPU でフレームバッファー圧縮を有効にすると、次のようなエラーメッセージが表示されます。
多くのオプションはデフォルトで -1 になっており、チップのデフォルトの省電力設定が使われます。ただし、[[カーネルモジュール#モジュールオプションを設定する|モジュールオプション]]を使うことでより強力な省電力設定をすることができます。
 
   
  +
{{hc|# dmesg|
{{Warning|1=Linux 3.18 から、デフォルト以外の設定をするとカーネルが [https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=fc9740cebc3ab7c65f3c5f6ce0caf3e4969013ca tainted] になります。基本的に、デフォルト以外の設定オプションは実験的なものであり、開発者によるサポートはありません。}}
 
  +
[ 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)。無効にするには、カーネルラインパラメータに {{ic|1=i915.enable_fbc=0}} を追加します。無効化された圧縮の結果の詳細については、[https://web.archive.org/web/20200228230053/https://kernel.ubuntu.com/~cking/power-benchmarking/background-colour-and-framebuffer-compression/ こちら] を参照してください。}}
安全に有効にすることができる一般的なオプションは以下のようになります:
 
   
  +
=== Fastboot ===
{{hc|/etc/modprobe.d/i915.conf|<nowiki>
 
options i915 enable_rc6=1 enable_fbc=1 semaphores=1
 
</nowiki>}}
 
   
  +
{{Note|1=Skylake およびそれ以降[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3d6535cbed4a4b029602ff83efb2adec7cb8d28b]、さらに Bay- と Cherry-Trail (VLV/CHV)[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7360c9f6b857e22a48e545f4e99c79630994e932] では、Linux 5.1 からこのパラメータがデフォルトで有効化されています。[https://kernelnewbies.org/Linux_5.1#Graphics]}}
=== RC6 スリープモード (enable_rc6) ===
 
   
  +
Intel Fastboot の目標は、BIOS または [[ブートローダー]] によってセットアップされたフレームバッファーを保持して、 [[Xorg]] が開始されるまでちらつきを回避することです。[https://lists.freedesktop.org/archives/intel-gfx/2012-May/017653.html][https://www.phoronix.com/scan.php?page=news_item&px=MTEwNzc]
{{ic|enable_rc6}} には 1 よりも大きい値が設定できますが、使用している GPU がオプションをサポートしていなかったり他のオプションを有効にできるなくなる可能性があります [https://wiki.archlinux.org/index.php?title=Talk:Intel_Graphics&oldid=327547#Kernel_Module_options]。
 
   
  +
fastboot がデフォルトでないプラットフォーム上で fastboot を有効にするには、{{ic|1=i915.fastboot=1}} を [[カーネルパラメータ]] として設定するか、{{ic|/etc/modprobe.d/i915.conf}} に以下を設定します:
{{ic|enable_rc6}} に設定できる値は 1 (RC6), 2 (RC6p), 4 (RC6pp) のビットマスクです [https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/gpu/drm/i915/intel_pm.c#n34]。"RC6p" や "RC6pp" は電力消費がより少ないステートになります。
 
   
  +
{{hc|/etc/modprobe.d/i915.conf|2=
現在の RC6 レベルを確認するには、sysfs を見てください:
 
  +
options i915 fastboot=1
  +
}}
   
  +
=== Intel GVT-g グラフィック仮想化のサポート===
# cat /sys/class/drm/card0/power/rc6_enable
 
   
  +
詳細については [[Intel GVT-g]] を参照してください。
出力された数字が低い場合、おそらく他の RC6 レベルがサポートされていません。{{ic|1=drm.debug=0xe}} を使うことで DRM のデバッグ情報をカーネルログに追加することができます:
 
   
  +
=== パフォーマンスサポートを有効化する ===
[drm:sanitize_rc6_option] Adjusting RC6 mask to 1 (requested 7, valid 1)
 
   
  +
第6世代から (Sandy Bridge およびそれ以降) Intel GPU は、内部のパフォーマンスデータをドライバに公開するために使用されるパフォーマンスカウンタを提供しています。ドライバとハードウェアレジスタではこのインフラを ''Observation Architecture'' (内部的には "OA") と呼んでいますが [https://www.phoronix.com/scan.php?page=news_item&px=Intel-HSW-Observation-Arch]、Intel のドキュメントではこの機能をより一般的に ''Observability Performance Counters'' を提供するものとしています [https://01.org/sites/default/files/documentation/observability_performance_counters_haswell.pdf] [https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-skl-vol14-observability.pdf]。
== ヒントとテクニック ==
 
   
  +
デフォルトでは、[https://lwn.net/Articles/486306/ CAP_SYS_ADMIN] (root と等価です) や [https://lwn.net/Articles/812719/ CAP_PERFMON] [[ケイパビリティ]]で実行されているプログラムのみが observation architecture を利用できます [https://github.com/torvalds/linux/blob/b14ffae378aa1db993e62b01392e70d1e585fb23/drivers/gpu/drm/i915/i915_perf.c#L267] [https://github.com/torvalds/linux/blob/b14ffae378aa1db993e62b01392e70d1e585fb23/drivers/gpu/drm/i915/i915_perf.c#L3481-L3484]。ほとんどのアプリケーションはこれらのケイパビリティを持たずに実行されるため、以下の警告が出力されます:
=== アクセラレーションメソッドの選択 ===
 
*UXA - (Unified Acceleration Architecture) は GEM ドライバーモデルを導入した成熟しているバックエンドです。
 
*SNA - (Sandybridge's New Acceleration) は高速で先進的なハードウェアサポートを提供します。
 
   
  +
MESA-INTEL: warning: Performance support disabled, consider sysctl dev.i915.perf_stream_paranoid=0
デフォルトのメソッドは SNA (2013-08-05[https://projects.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/xf86-video-intel&id=d03f5fb77df413017821f492aa81e5d68def7e48]) で、UXA よりも不安定ですが高速です。Phoronix によるベンチマーク [https://www.phoronix.com/scan.php?page=news_item&px=MTEzOTE] を見てください。[https://www.phoronix.com/scan.php?page=article&item=intel_glamor_first&num=1 Sandy Bridge のテスト] と [https://www.phoronix.com/scan.php?page=article&item=intel_ivy_glamor&num=1 Ivy Bridge のテスト] があります。SNA で問題が発生するなら、UXA は手堅い選択です。例えば、SNA ではフルスクリーンの Flash 動画を終了するときに黒画面になることがあります。
 
   
  +
これらのケイパビリティ (または root) を使わずにパフォーマンスサポートを有効化するには、[[sysctl]] で説明されているように、(上記の警告で示されている) カーネルパラメータを設定してください。
古い UXA メソッドを使いたいならば、次の内容で {{ic|/etc/X11/xorg.conf.d/20-intel.conf}} を作って下さい:
 
   
  +
{{Warning|アプリケーションにパフォーマンスデータへのアクセスを許してしまうなどのリスクが存在するため、{{ic|perf_event_paranoid}} ファミリのオプションには制限的なデフォルトが存在します [https://docs.kernel.org/admin-guide/perf-security.html]。とはいえ、{{ic|dev.i915.perf_stream_paranoid}} は GPU パフォーマンスカウンタへのアクセスにしか影響せず、CPU アーキテクチャ実行コンテキストレジスタなどと比べれば低リスクです。}}
{{hc|/etc/X11/xorg.conf.d/20-intel.conf|
 
Section "Device"
 
Identifier "Intel Graphics"
 
Driver "intel"
 
Option "AccelMethod" "uxa"
 
EndSection}}
 
   
  +
== ヒントとテクニック ==
=== Glamor アクセラレーションメソッドの有効化 ===
 
   
  +
=== スケーリングモードを設定する ===
[https://wiki.freedesktop.org/www/Software/Glamor/ Glamor] は Intel の実験的な OpenGL 2D アクセラレーションメソッドで、man ページには記載がありません。Glamor を使用するには、以下の行を[[#設定|設定ファイル]]に追加してください:
 
Option "AccelMethod" "glamor"
 
 
{{Note|このアクセラレーションメソッドは実験的であり安定して動作するとは限りません。}}
 
 
=== 垂直同期 (VSYNC) を無効にする ===
 
 
垂直同期 (VSYNC) を無効にするには {{ic|/etc/X11/xorg.conf.d/20-intel.conf}} の {{ic|Section "Device"}} に {{ic|Option "SwapbuffersWait" "false"}} を加えて下さい。
 
 
もしくは、{{ic|~/.drirc}} の {{ic|vblank_mode}} を {{ic|0}} に設定して、{{ic|driver}} を {{ic|dri2}} にセットします:
 
 
{{hc|~/.drirc|2=
 
<device screen="0" driver="dri2">
 
<application name="Default">
 
<option name="vblank_mode" value="0"/>
 
</application>
 
</device>}}
 
 
=== スケーリングモードの設定 ===
 
   
 
フルスクリーンを使うアプリケーションで有用かもしれません:
 
フルスクリーンを使うアプリケーションで有用かもしれません:
   
$ xrandr --output LVDS1 --set PANEL_FITTING param
+
$ xrandr --output LVDS1 --set PANEL_FITTING ''param''
   
選べる {{ic|param}} は:
+
選べる {{ic|''param''}} は:
   
* {{ic|center}}: 解像度は固定され、スケーリングは無効になります
+
* {{ic|center}}: 解像度は定義した通りに固定され、スケーリングは無効になります
 
* {{ic|full}}: 画面いっぱいまで解像度がスケールします
 
* {{ic|full}}: 画面いっぱいまで解像度がスケールします
* {{ic|full_aspect}}: アスペクト比を維持したままスケールします
+
* {{ic|full_aspect}}: アスペクト比を維持したまま解像度を可能な限り最大までスケールします
   
機能しない場合、を試してさい:
+
うまく行かない場合以下を試してみてください:
   
$ xrandr --output LVDS1 --set "scaling mode" param
+
$ xrandr --output LVDS1 --set "scaling mode" ''param''
   
{{ic|param}} は {{ic|"Full"}}, {{ic|"Center"}} , {{ic|"Full aspect"}} のいずれかです。
+
{{ic|''param''}} は {{ic|"Full"}}{{ic|"Center"}}{{ic|"Full aspect"}} のいずれかです。
   
 
{{Note|1=上記のオプションは外部ディスプレイは現在のところ機能しません (例: VGA, DVI, HDMI, DP) [https://bugs.freedesktop.org/show_bug.cgi?id=90989]。}}
 
{{Note|1=上記のオプションは外部ディスプレイは現在のところ機能しません (例: VGA, DVI, HDMI, DP) [https://bugs.freedesktop.org/show_bug.cgi?id=90989]。}}
   
  +
=== GMA 4500 での H.264 デコードのハードウェアアクセラレーション ===
=== KMS Issue: コンソールの画面が狭い ===
 
   
  +
{{Pkg|libva-intel-driver}} パッケージは、一部の GMA 4500 シリーズ GPU での MPEG-2 デコードのハードウェアアクセラレーションのみを提供します (H.264 デコードは提供しません)。あなたの GPU も関係しているどうかを確かめるには、そのドライバと {{Pkg|libva-utils}} パッケージの両方をインストールしてください。そして、{{ic|vainfo}} ツールの出力を見て、{{ic|VAProfileH264}} で始まるエントリがどれだけあるかを見てください。
起動中に低解像度のビデオが転送されると、ターミナルが使える画面が小さくなることがあります。修正するには、i915 ブートローダのカーネルのコマンドラインパラメータに {{ic|1=video=SVIDEO-1:d}} を加えてはっきりと転送を無効にするよう i915 モジュールを設定してください。詳しい情報は[[カーネルパラメータ]]を見て下さい。
 
   
  +
H.264 デコードのサポートは、枝分かれた g45-h264 ブランチでメンテナンスされており、{{AUR|libva-intel-driver-g45-h264}} パッケージをインストールすることで使用できます。しかし、このサポートは実験的で、開発は放棄されていることに注意してください。GMA 4500 シリーズの GPU 上でこのドライバと共にVA-API を使うことで CPU の負荷を減らすことができますが、動画の再生がアクセラレートされていない状態ほどスムーズに再生できないかもしれません。mplayer を使ったテストでは H.264 でエンコードされた 1080p のビデオを vaapi を使って再生したところ (XV オーバーレイに比べて) CPU の負担は下がりましたが、途切れ途切れの再生になりました。一方 720p はうまく動きました [https://bbs.archlinux.org/viewtopic.php?id=150550]。他の報告も同じようなものでした [https://web.archive.org/web/20160325142959/http://www.emmolution.org/?p=192&cpage=1#comment-12292]。BIOS で割当済みビデオ RAM のサイズを高く設定すると、より質の高いハードウェアデコード再生が可能です。これを行うと、1080p h264 でもうまく行きます [https://lists.libreplanet.org/archive/html/guix-patches/2019-11/msg00652.html]。スムーズな再生 (1080p/720p) は、{{AUR|mpv-git}}、{{AUR|ffmpeg-git}}、{{AUR|libva-intel-driver-g45-h264}} を組み合わせて使うことでもうまく行きます。MPV と Firefox のプラグイン "Send to MPV player"[https://addons.mozilla.org/firefox/addon/send-to-mpv-player/] を用いることで、ハードウェアによりアクセラレートされた YouTube ビデオの再生が可能です。
これが機能しない時は、SVIDEO-1 の代わりに TV1 か VGA1 を無効にするのを試してみて下さい。
 
   
  +
=== 報告される OpenGL のバージョンを上書き ===
==== 有効なビデオ端子を確認する ====
 
   
  +
{{ic|MESA_GL_VERSION_OVERRIDE}} [[環境変数]]を使うことで、アプリケーションに報告される OpenGL のバージョンを上書きできます。例えば、{{ic|1=MESA_GL_VERSION_OVERRIDE=4.5}} と設定することで OpenGL 4.5 と報告されるようになります。
video カーネルパラメータで無効化したいビデオ端子を識別するには、sysfs でダイレクトレンダリングマネージャモジュールを確認してください:
 
   
  +
{{Note|上記の変数を使って既知の OpenGL バージョンなら、たとえ GPU によってサポートされていないバージョンでも使うこともできます。設定することで、アプリケーションによってクラッシュがなおったり、あるいはクラッシュが増えたりする可能性があります。全てのアプリケーションで同じ変数を使わない方が良いでしょう。}}
$ ls -l /sys/class/drm/
 
total 0
 
lrwxrwxrwx 1 root root 0 May 17 11:03 card0 -> ../../devices/pci0000:00/0000:00:02.0/drm/card0
 
lrwxrwxrwx 1 root root 0 May 17 11:03 card0-DP-1 -> ../../devices/pci0000:00/0000:00:02.0/drm/card0/card0-DP-1
 
lrwxrwxrwx 1 root root 0 May 17 11:03 card0-DP-2 -> ../../devices/pci0000:00/0000:00:02.0/drm/card0/card0-DP-2
 
lrwxrwxrwx 1 root root 0 May 17 11:03 card0-eDP-1 -> ../../devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1
 
lrwxrwxrwx 1 root root 0 May 17 11:03 card0-HDMI-A-1 -> ../../devices/pci0000:00/0000:00:02.0/drm/card0/card0-HDMI-A-1
 
lrwxrwxrwx 1 root root 0 May 17 11:03 card0-HDMI-A-2 -> ../../devices/pci0000:00/0000:00:02.0/drm/card0/card0-HDMI-A-2
 
lrwxrwxrwx 1 root root 0 May 17 11:03 card0-HDMI-A-3 -> ../../devices/pci0000:00/0000:00:02.0/drm/card0/card0-HDMI-A-3
 
lrwxrwxrwx 1 root root 0 May 17 11:03 controlD64 -> ../../devices/pci0000:00/0000:00:02.0/drm/controlD64
 
lrwxrwxrwx 1 root root 0 May 17 11:03 renderD128 -> ../../devices/pci0000:00/0000:00:02.0/drm/renderD128
 
-r--r--r-- 1 root root 4096 May 17 11:03 version
 
   
  +
=== モニタリング ===
各々の端子の状態を確認するには:
 
$ grep . /sys/class/drm/card?-*/status
 
/sys/class/drm/card0-DP-1/status:disconnected
 
/sys/class/drm/card0-DP-2/status:disconnected
 
/sys/class/drm/card0-eDP-1/status:disconnected
 
/sys/class/drm/card0-HDMI-A-1/status:disconnected
 
/sys/class/drm/card0-HDMI-A-2/status:disconnected
 
/sys/class/drm/card0-HDMI-A-3/status:connected
 
   
  +
* {{App|intel_gpu_top|Intel GPU のための top ライクなタスクモニタ (root 権限が必要)|https://gitlab.freedesktop.org/drm/igt-gpu-tools|{{Pkg|intel-gpu-tools}}}}
使用したくないビデオ端子が接続済みになっている場合、上記の {{ic|1=video=}} パラメータで無効化してください ({{ic|1=cardN-}} の後ろの部分が識別子です)。例えば上の例で HDMI-A-3 端子を無効化するには {{ic|1=video=HDMI-A-3:d}} とします。
 
  +
* {{App|nvtop|AMD、Intel、NVIDIA のための GPU プロセスモニタリング (現在、Intel GPU に対しては非常に基本的なサポートしかありません)。|https://github.com/Syllo/nvtop|{{Pkg|nvtop}}}}
   
  +
=== 明るさとガンマ値の設定 ===
=== GMA 4500 での H.264 デコーディング ===
 
   
  +
[[バックライト]] を見てください。
{{Pkg|libva-intel-driver}} パッケージは GMA 4500 シリーズの GPU だけに MPEG-2 デコーディングを提供します。H.264 デコーディングのサポートは枝分かれした g45-h264 ブランチで維持されていて、[[Arch User Repository|AUR]] の {{AUR|libva-intel-driver-g45-h264}} パッケージをインストールすることで使えます。しかしながらこのサポートは実験的なものであり現在活発には開発されていないことに注意して下さい。GMA 4500 シリーズ GPU のドライバと VA-API を使うことは CPU の負担を下げますが、アクセラレーションが効いていないのと同じで、スムーズに再生できるようにはならないかもしれません。mplayer を使ったテストでは H.264 でエンコードされた 1080p のビデオを vaapi を使って再生したところ (XV オーバーレイに比べて) CPU の負担は下がりましたが、途切れ途切れの再生になりました。一方 720p はうまく動きました [https://bbs.archlinux.org/viewtopic.php?id=150550]。他の報告も同じようなものでした [http://www.emmolution.org/?p=192&cpage=1#comment-12292]。
 
   
  +
=== 試験的な新しい Xe ドライバをテストする ===
{{AUR|ffmpeg-git}} や {{AUR|libva-intel-driver-g45-h264}} と {{AUR|mpv-git}} を組み合わせることで (1080p/720p の動画を) スムーズに再生できます。Firefox の "Watch with MPV" [https://addons.mozilla.org/ja/firefox/addon/watch-with-mpv/] プラグインと MPV を使うことで YouTube の動画を視聴するときにハードウェア支援が活用できます。
 
   
  +
(試験的な) [https://www.kernel.org/doc/html//next/gpu/rfc/xe.html 新しい Xe ドライバ]を試すには、以下が必要です:
=== 代替 OpenGL ドライバー (Iris) ===
 
   
  +
* {{Pkg|linux}} 6.8 以上
Mesa 19.2 より、新しい OpenGL ドライバーの Iris がテスト用に利用可能となっています。特定のアプリケーションでは Iris によって高速に動作します。OpenGL アプリケーションを起動する前に {{ic|1=MESA_LOADER_DRIVER_OVERRIDE=iris}} [[環境変数]]を設定することで実験的に有効化できます。Vulkan アプリケーションに影響はありません。
 
  +
* [[Wikipedia:ja:Tiger Lake|Tiger Lake]] 及びそれ以降の統合グラフィックス、またはディスクリートグラフィックカード。
  +
* 公式リポジトリの {{Pkg|mesa}}。または、{{ic|1=-D intel-xe-kmd=enabled}} でビルドされた mesa。
   
  +
以下のコマンドで PCI ID を確認してください:
{{Warning|1=Iris はまだ実験的です。アプリケーションがクラッシュしたりレンダリングがおかしくなる可能性があります。使用するときは注意して [https://gitlab.freedesktop.org/groups/mesa/-/issues バグを発見したら報告してください]。}}
 
   
  +
{{hc|lspci -nn {{!}} grep VGA|
=== 報告される OpenGL のバージョンを上書き ===
 
  +
00:02.0 VGA compatible controller [0300]: Intel Corporation TigerLake-LP GT2 [Iris Xe Graphics] [8086:'''9a49'''] (rev 01)
  +
}}
   
  +
そして、適切な PCI ID を使って以下を[[カーネルパラメータ]]に追加してください:
{{ic|MESA_GL_VERSION_OVERRIDE}} [[環境変数]]を使うことでアプリケーションに報告される OpenGL のバージョンを上書きできます。例えば、{{ic|1=MESA_GL_VERSION_OVERRIDE=4.5}} と設定することで OpenGL 4.5 と報告されるようになります。
 
   
  +
... i915.force_probe=!'''9a49''' xe.force_probe='''9a49'''
{{Warning|上記の変数を使って既知の OpenGL バージョンなら、たとえ GPU によってサポートされていないバージョンでも使うこともできます。設定することで、アプリケーションによってクラッシュがなおったり、あるいはクラッシュが増えたりする可能性があります。全てのアプリケーションで同じ変数を使わない方が良いでしょう。}}
 
   
  +
必要なときに元に戻すためのブート手段を確保しておいてください。
=== ガンマ値と明るさの設定 ===
 
   
  +
== トラブルシューティング ==
ドライバのレベルでこれらを設定する方法はありませんが、幸運なことに {{ic|xgamma}} や {{ic|xrandr}} を使って設定することができます。
 
   
  +
=== ティアリング ===
ガンマ値を設定するには:
 
   
  +
==== Intel ドライバを使う ====
$ xgamma -gamma 1.0
 
   
  +
SNA アクセラレーションメソッドを取っている場合、一部のマシン上でティアリングが発生します。これを修正するには、以下の行を[[#Xorg の設定|設定ファイル]]に追加して {{Pkg|xf86-video-intel}} ドライバの {{ic|TearFree}} オプションを有効化してください:
もしくは:
 
   
  +
{{hc|/etc/X11/xorg.conf.d/20-intel.conf|
$ xrandr --output VGA1 --gamma 1.0:1.0:1.0
 
  +
Section "Device"
  +
Identifier "Intel Graphics"
  +
Driver "intel"
  +
Option "TearFree" "true"
  +
EndSection}}
   
  +
詳細は[https://bugs.freedesktop.org/show_bug.cgi?id=37686 元のバグレポート]を見てください。
明るさを設定するには:
 
   
  +
{{Note|1=<nowiki/>
$ xrandr --output VGA1 --brightness 1.0
 
  +
* このオプションは、{{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"}} を追加する必要があります。
  +
}}
   
  +
==== modesetting ドライバを使う ====
== トラブルシューティング ==
 
   
  +
最近、TearFree サポートが modesetting ドライバに[https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1006 追加されました] [https://www.phoronix.com/news/xf86-video-modesetting-TearFree][https://www.phoronix.com/news/Modesetting-TearFree-Merged]。2023年11月の時点では、このパッチはまだ安定化されていません。なので、安定化されるまで {{AUR|xorg-server-git}} を使用する必要があります。
=== Glxgears のパフォーマンスがでない ===
 
   
  +
{{hc|/etc/X11/xorg.conf.d/20-intel.conf|
{{Note|{{ic|glxgears}} は複数のシステム間でのパフォーマンスを比較するためのベンチマークではありません。}}
 
  +
Section "Device"
  +
Identifier "Intel Graphics"
  +
Driver "modesetting"
  +
Option "TearFree" "true"
  +
EndSection}}
   
  +
=== 垂直同期 (VSYNC) を無効化する ===
グラフィックパフォーマンスを調べるために {{ic|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
 
[...]
 
   
  +
* Chromium/Chrome が、GPU のせいでラグくパフォーマンスが悪く、--disable-gpu スイッチを使うとスムーズに動作する場合。
これはパフォーマンスの欠落によるものではありません。ディスプレイのリフレッシュレートにあわせて、[[Wikipedia:Analog television#Vertical synchronization|垂直同期]]を行なっているためです。
 
  +
* glxgears テストが期待するほどのパフォーマンスを発揮してくれない場合。
   
  +
intel ドライバは垂直同期に [https://www.intel.com/support/graphics/sb/CS-004527.htm Triple Buffering] を使用します。これは、完全なパフォーマンスとティアリングの回避を可能にします。垂直同期をオフにするには (例えば、ベンチマークのために)、以下の {{ic|.drirc}} をホームディレクトリ内に追加してください:
環境変数 {{ic|1=vblank_mode=0}} を付けることで垂直同期を無効にして {{ic|glxgears}} を実行できます:
 
   
  +
{{hc|~/.drirc|2=
$ vblank_mode=0 glxgears
 
  +
<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=
375行目: 395行目:
 
}}
 
}}
   
詳しくは [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 を加えると解決するかもしれません。[[カーネルモード設定#KMS の早期開始]]を見てください。
   
または、次の[[カーネルパラメータ]]を加えるとうまく動くかもしれません:
+
または、次の[[カーネルパラメータ]]を加えるとうまく動くかもしれません:
   
 
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
 
   
  +
{{Pkg|mesa-amber}} パッケージに含まれる第3世代 GPU 用の 古い mesa ドライバは、デフォルトでは OpenGL 2.0 が利用可能であると報告します。これは、対象のハードウェアが OpenGL 2.1 とは完全に互換性がないことが原因です。[https://www.phoronix.com/scan.php?page=news_item&px=Mesa-i915-OpenGL-2-Drop] OpenGL 2.1 のサポートは、{{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 ファイルを編集して特定のアプリケーションに対して OpenGL 2.1 を {{ic|chromium}} 実行ファイルなどで無効化することもできます ([https://dri.freedesktop.org/wiki/ConfigurationInfrastructure/ 参照])。
  +
* {{Pkg|mesa}} パッケージに含まれる新しい Gallium ベースの i915 ドライバは、常に OpenGL 2.1 が利用可能であると報告します。なので、このドライバに対しては上記の設定は不要です。
  +
}}
   
  +
=== 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 でクラッシュ/フリーズ ===
=== フレームバッファ圧縮の無効化 ===
 
   
  +
低消費電力 Intel プロセッサやノート PC プロセッサは、低消費電力 Intel チップで使用されている電源管理機能に関する問題によりランダムにハングアップ/クラッシュする傾向にあります。そのようなクラッシュが発生する場合、この問題を報告するログは見られないでしょう。以下の[[カーネルパラメータ]]を追加することで、この問題を解決できるかもしれません。
Intel Corporation Mobile 4 シリーズのチップセットなど、Sandy Bridge 以前のカードでフレームバッファ圧縮を有効にするとエラーメッセージが延々と表示されます:
 
   
  +
{{Note|以下のカーネルパラメータを3つすべて一緒に使用することは推奨されません。}}
$ 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}} は、いくつかの Lenovo ノート PC や一部の Acer ノートブックにおける、SATA コントローラーの問題のある電源管理に起因するハングアップを修正します。この回避策は Intel Graphics と厳密には関連していませんが、関連する問題を解決します。このカーネルパラメータを追加すると、''l''ink ''p''ower ''m''anagement をファームウェアのデフォルトから最大パフォーマンスに変更し、特定の Lenovo マシンでディスプレイ輝度を変更した際にハングする問題を解決しますが、modern ultrabook でアイドル時の電力消費量が 1~1.5W 増加します。詳細 (特に他の状態に関するもの) については、[https://lore.kernel.org/lkml/20171211165216.5604-1-hdegoede@redhat.com/ Linux カーネルメーリングリスト]や [https://access.redhat.com/documentation/en-en/red_hat_enterprise_linux/6/html/power_management_guide/alpm Red Hat ドキュメント]を見てください。
=== Chromium や Firefox が壊れる、応答しない ===
 
   
  +
{{ic|1=i915.enable_dc=0}} は、GPU の電源管理を無効化します。これは、特定の Intel システム (特に、Goldmount と Kaby Lake Refresh チップ) におけるランダムなハングを解決します。このパラメータを使用すると、電力消費量が増え、ノート PC/notebook のバッテリー寿命が短くなります。
Chromium や Firefox の表示がおかしくなったり、反応しなくなる場合は[[#アクセラレーションメソッドの選択|アクセラレーションメソッド]]を "uxa" に設定してみてください。
 
   
  +
{{ic|1=intel_idle.max_cstate=1}} は、プロセッサのスリープ状態を制限し、プロセッサがディープスリープ状態に移行するのを防ぎます。これは絶対に理想的ではなく、電力消費量の増加とバッテリーの短命化を招きます。しかし、多くの Intel システムでランダムなハングを解決します。Intel Baytrail や Kaby Lake Refresh チップを使用している場合は、このパラメータを使用してください。Intel "Baytrail" チップは、このカーネルパラメータを使用しないと、[https://bugzilla.kernel.org/show_bug.cgi?id=109051#c752 ファームウェアの欠陥]によりランダムにハングしてしまうことが知られていましたが、理論的には [https://cgit.freedesktop.org/drm-intel/commit/?id=a75d035fedbdecf83f86767aa2e4d05c8c4ffd95 2019-04-26] に修正されました。
=== TTY を切り替えた時に垂直同期がされなくなる ===
 
  +
max_cstate パラメータに関する詳細は[https://docs.kernel.org/admin-guide/pm/intel_idle.html#kernel-command-line-options-and-module-parameters カーネルドキュメント]で、cstate に関する一般的な情報は [https://gist.github.com/wmealing/2dd2b543c4d3cff6cab7 GitHub 上の記事]で見られます。
   
  +
頻繁にハングする問題を解決するために {{ic|1=intel_idle.max_cstate=1 i915.enable_dc=0 ahci.mobile_lpm_policy=1}} を追加して問題が解決した場合は、その後パラメータを一つずつ取り除いて、どのパラメータが実際に問題の解決になっているかを確かめるべきです。実際の問題が SATA の電源管理に関係していて、問題を実際に解決するパラメータが {{ic|1=ahci.mobile_lpm_policy=1}} である場合、cstate やディスプレイの電源管理が無効化されている状態でマシンを走らせることは推奨されていません。
カーネル 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 で修正が入っています。
 
   
  +
詳細は [https://linuxreviews.org/Intel_graphics#Kernel_Parameters Linux Reviews] を見てください。
=== ビデオやウェブカメラの出力にピンクと緑のゴミが入る ===
 
   
  +
=== 165Hz モニタのサポートを追加する ===
Broadwell のマシンで ''xv''出力や Intel Textured Video を使用するアプリケーション (Skype や VLC) を使うと、ビデオストリームにピンクと緑の乱れが入ることがあります。これは Broadwell のビデオの問題で、上流では2015年4月16日に修正されています [https://bugs.freedesktop.org/show_bug.cgi?id=89807]。{{pkg|xf86-video-intel}} をアップデートすると修正されます。
 
   
  +
一部の 165Hz モニタで、''xrandr'' が 165Hz のオプションを表示しない場合があり、さらに [[#認識されない解像度を追加する]] の方法ではこれを解決できません。この場合、[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|{{ic|/etc/initramfs-tools/hooks/edid}} を作成する以外にも、[[mkinitcpio]] フックを作成する必要があります:
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
  +
}
  +
}}
   
  +
そして、{{ic|/etc/mkinitcpio.conf}} の HOOKS 配列に ''edid'' を末尾に追加してください。以下のように:
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
 
 
}}
 
}}
   
  +
そして、[[Initramfs を再生成する|initramfs を再生成]]してください。
もしくは、Chromium や Firefox ブラウザなどアプリケーションごとにハードウェアレンダリングを無効化するように直接設定することも可能です。
 
  +
}}
   
  +
=== Raptor Lake と Alder Lake-P 上でスリープ/サスペンドから復帰するとフリーズする ===
{{ic|1=i915.enable_rc6=0}} カーネルブートパラメータを追加することで問題が解決すると報告しているユーザーもいます。このパラメータを使用すると CPU/GPU のハイパワーモードが解除されなくなりますが、GPU のハングアップやシステムのフリーズが解消するようです。
 
   
  +
Raptor Lake 及び Alder Lake-P の 12 世代モバイルプロセッサを搭載する、様々な製造者のノート PC は、サスペンドからの復帰後にフリーズや黒画面が発生すると報告されています。これは、多くのノート PC 製造者が、iGPU に接続されているポートが間違って記述されている、不適切な VBT (Video BIOS Table) を使用しているからです (freedesktop のイシュー [https://gitlab.freedesktop.org/drm/intel/-/issues/5531 5531] [https://gitlab.freedesktop.org/drm/intel/-/issues/6401 6401] で説明されています)。この場合、ドキュメント化されているケースは全て、重複した eDP エントリに関連しています。
{{Note|"Loading Initial Ramdisk" の後にシステムがフリーズする場合、BIOS で IGD aperture size が 4GB よりも小さくなっていることを確認してください。}}
 
   
  +
ほとんどの製造者が、Windows が正しく動作するノート PC に向けて BIOS アップデートをリリース[https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7402 しない]ことを考えれば、この問題はカーネル側から対処するしかありません。重複した eDP エントリがカーネルに悪影響を与えるのを防ぐ方法は2つ、[https://bbs.archlinux.org/viewtopic.php?id=284176 カーネルにパッチを当てる]か、[https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7709 修正した VBT をロードする]かです。
=== Windows をゲストとした場合にラグが発生する ===
 
   
  +
カーネルにパッチを当てるには、以下のコマンドの出力を解析して、重複した eDP エントリを特定する必要があります:
VirtualBox でホスト側から(マウスカーソルを動かすなどして)画面を更新しないと Windows ゲストのビデオ出力が止まってしまうことがあります。{{ic|1=enable_fbc=1}} オプションを削除すれば問題は解決します。
 
   
  +
{{hc|# intel_vbt_decode /sys/kernel/debug/dri/1/i915_vbt|
=== 画面がちらつく ===
 
  +
Child device info:
  +
Device handle: 0x0008 (LFP 1 (eDP))
  +
Device type: 0x1806 (unknown)
  +
...
  +
Child device info:
  +
Device handle: 0x0080 (LFP 2 (eDP))
  +
Device type: 0x1806 (unknown)
  +
}}
   
  +
この出力からは、重複している eDP エントリが実際に存在しており、カーネルは2つめのエントリを無視するであろうことがわかります。とはいえ、一応チェックしておくべきでしょう。次に、重複した画面のインデックスを必要に応じて {{ic|1=ignoreEntry = 1}} に置き換える以下のカーネルパッチで、この問題を解決できます。
Intel の iGPU によって使われている省電力機能の中にはちらつきを発生させるものがあります。適切な[[カーネルパラメータ]]オプションを使って無効化することで解決できます:
 
   
  +
--- a/drivers/gpu/drm/i915/display/intel_bios.c
*Rc6 スリープモード ([[#RC6 スリープモード (enable_rc6)]] を参照) は {{ic|1=i915.enable_rc6=0}} で無効化できます。
 
  +
+++ b/drivers/gpu/drm/i915/display/intel_bios.c
  +
@@ -3632,6 +3624,14 @@
  +
{
  +
struct intel_bios_encoder_data *devdata;
  +
  +
+ int ignoreEntry = 0;
  +
+
  +
list_for_each_entry(devdata, &i915- >display.vbt.display_devices, node)
  +
- func(i915, devdata);
  +
+ {
  +
+ if (ignoreEntry != 1)
  +
+ {
  +
+ func(i915, devdata);
  +
+ ignoreEntry++;
  +
+ }
  +
+ }
  +
}
   
  +
第2の解決方法は、[https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7709 VBT から重複したエントリを直接削除する]ことです。
*カーネルのバージョン 4.6 からパネルセルフリフレッシュ (PSR) はデフォルトで有効になります ({{Bug|49628}} {{Bug|49371}} {{Bug|50605}})。無効化するには {{ic|1=i915.enable_psr=0}} オプションを使ってください。
 
   
  +
VBT をコピーし、16進数エディタで編集して、重複しているデバイスハンドルに対応するデバイスタイプを {{ic|00 00}} に変更します:
=== 色が風化する (色空間の問題) ===
 
   
  +
$ cat /sys/kernel/debug/dri/0/i915_vbt > vbt
{{Note|この問題はカーネル 3.9 の変更に起因しています [https://lists.freedesktop.org/archives/dri-devel/2013-January/033576.html]。カーネル 4.1 でもこの問題は存在します。}}
 
カーネル 3.9 には Intel ドライバーで簡単に RGB リミテッドレンジの設定ができる変更が含まれており、場合によってはこの変更によって色がおかしくなることがあります。"Broadcast RGB" プロパティの新しい "Automatic" モードに関係しています。
 
   
  +
--- vbt
{{ic|xrandr --output <HDMI> --set "Broadcast RGB" "Full"}} ({{ic|<HDMI>}} は適切な出力デバイスに置き換えてください、{{ic|xrandr}} を実行することで確認できます) のようにしてモードを強制することが可能です。これを {{ic |.xprofile}} に追加して、グラフィカルモードが始まる前にコマンドが実行できるように実行可能属性を付けて下さい。
 
  +
+++ modified_vbt
  +
@@ -22,10 +22,10 @@
  +
00000150 00 08 00 20 00 08 00 10 00 08 00 02 00 08 00 01 |... ............|
  +
00000160 00 08 00 00 01 08 00 00 00 04 00 00 00 40 00 00 |.............@..|
  +
00000170 00 20 00 00 00 10 00 00 00 02 00 00 00 01 00 00 |. ..............|
  +
-00000180 00 00 01 00 00 02 8b 01 02 04 00 00 27 08 00 06 |............'...|
  +
-00000190 18 00 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 |................|
  +
+00000180 00 00 01 00 00 02 8b 01 02 04 00 00 27 08 00 00 |............'...|
  +
+00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 |................|
  +
000001a0 03 00 00 00 c0 00 40 00 20 00 00 00 00 00 00 00 |......@. .......|
  +
-000001b0 00 00 20 00 80 00 06 18 00 00 00 00 00 00 00 00 |.. .............|
  +
+000001b0 00 00 20 00 80 00 00 00 00 00 00 00 00 00 00 00 |.. .............|
  +
000001c0 00 00 00 00 07 00 00 00 00 00 00 c0 00 10 00 20 |............... |
  +
000001d0 00 00 00 00 00 00 00 00 00 20 00 04 00 d2 60 00 |......... ....`.|
  +
000001e0 10 10 00 23 21 10 00 00 00 00 00 07 00 00 02 00 |...#!...........|
   
  +
修正後の VBT は、{{ic|/lib/firmware/modified_vbt}} にコピーして、{{ic|1=i915.vbt_firmware=modified_vbt}} カーネルパラメータを使用し、必要であれば [[initramfs を再生成する]]ことで、ロードすることができます。
{{Note|TV によっては 16-255 の色しか表示できないため Full に設定すると 0-15 の領域の色が失われます。従って、カラースペースを TV に合わせて圧縮する必要があるかどうか自動的に検知する Automatic のままにしてください。}}
 
   
  +
=== Arc GPU のハードウェアビデオアクセラレーション ===
また、GPU のレジスタを編集することで修正できる他の関連する問題も存在します。詳しくは [https://lists.freedesktop.org/archives/intel-gfx/2012-April/016217.html] や [https://github.com/OpenELEC/OpenELEC.tv/commit/09109e9259eb051f34f771929b6a02635806404c] を見て下さい。
 
  +
  +
ハードウェアビデオアクセラレーションは、バージョン 6.2 未満のカーネルでは利用できません。必要な HuC/GuC ファームウェアブロブの読み込みと初期化に失敗してしまいます。
  +
  +
{{hc|# dmesg|2=
  +
[drm] Incompatible option enable_guc=3 - HuC is not supported!
  +
}}
  +
  +
{{Accuracy|{{ic|CONFIG_DRM_I915_CAPTURE_ERROR}} を無効化する必要性に関する説明も参照も与えられていない。このフラグは 2022-12-05 の時点で {{Pkg|linux}} 内で [https://github.com/archlinux/svntogit-packages/blob/227caf8f1a66e00e3a4ecf9bc8e7a98d4d257c11/trunk/config#L6579 有効に設定されている]。}}
  +
  +
[[ハードウェアビデオアクセラレーション]]を行うには、{{Pkg|intel-media-driver}} をインストールし、{{ic|CONFIG_DRM_I915_CAPTURE_ERROR}} を無効化したカーネルを使用しなければなりません。
   
 
== 参照 ==
 
== 参照 ==
   
 
* https://01.org/linuxgraphics/documentation (サポートされているハードウェア一覧など)
 
* https://01.org/linuxgraphics/documentation (サポートされているハードウェア一覧など)
  +
  +
{{TranslationStatus|Intel graphics|2024-04-27|806798}}

2024年4月27日 (土) 01:01時点における最新版

関連記事

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

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

ノート:
  • PowerVR ベースのグラフィックカード (GMA 3600 シリーズ) はオープンソースドライバではサポートされていません。
  • Intel 第 N 世代 (Gen N) ハードウェアという記述は、CPU の世代を指すものではなく、GPU の世代を指しています。これは CPU の世代とは異なります。
  • あなたのカードを特定する方法については Xorg#ドライバーのインストール を参照してください。

目次

インストール

  • 以下のパッケージのうち1つをインストールしてください。これらは、3D アクセラレーションのための DRI ドライバを提供します。
    • mesa は、第3世代ハードウェアおよびそれ以降用のモダンな Gallium3D ドライバを含む最新の Mesa パッケージです。これを使うことが推奨されます。
    • mesa-amber は、第2世代から第11世代までのハードウェア用のクラシックドライバ (Gallium3d でない) です。このドライバは、第7世代及びそれ以前のハードウェアにおいて高いパフォーマンスや安定性をもたらすかもしれませんが、メンテナンスされていません。
  • 32ビットアプリケーションのサポートは、multilib リポジトリから lib32-mesalib32-mesa-amber パッケージもインストールしてください。
  • Xorg で 2D アクセラレーションを提供する DDX ドライバに関しては、以下のうち1つを使ってください:
    • xorg-server パッケージに含まれる modesetting ドライバは、第4世代及びそれ以降のハードウェアにおいて推奨されます。これは、glamor モジュール経由で DRI ドライバを使用してアクセラレーションを提供します。
    • xf86-video-intel パッケージは、第2世代から第9世代までのハードウェアにおいてレガシーな Intel DDX ドライバを提供します。一般に、このパッケージを使用することは推奨されません。下記のノートを参照してください。
  • Vulkan サポート (Haswell 及びそれ以降; それより古いチップにおけるサポートは不完全であるか存在しません) については、vulkan-intel パッケージをインストールしてください。32 ビット Vulkan サポートについては、lib32-vulkan-intel パッケージをインストールしてください。

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

ノート:

ローディング

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

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

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

早期 KMS

カーネルモード設定 (KMS) は i915 ドライバによってサポートされており、mkinitcpio v32 から kms フックがデフォルトで使用差rているため (ブートの) 早い段階で有効化されます。他の環境で KMS をブートプロセスのできるだけ早い段階で有効化する方法については カーネルモード設定#KMS の早期開始 を見てください。

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

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

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

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

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

GuC の機能は i915.enable_guc カーネルパラメータ によって制御されます。このパラメータの使用法は次のとおりです。:

enable_guc の値 GuC 送信 HuC ファームウェアのロード デフォルトとなっているプラットフォーム サポートされているプラットフォーム
0 No No Tiger Lake、Rocket Lake、Gen12 以前 [8] すべて
1 Yes No Alder Lake-P (Mobile) およびそれ以降
2 No Yes Alder Lake-S (Desktop) [9] [10] Gen9 およびそれ以降
3 Yes Yes Alder Lake-P (Mobile) 及びそれ以降 Gen 9.5 及びそれ以降 (一部個体ではこちらがより良い)

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

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

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

i915.enable_guc カーネルパラメータ を設定してください。例えば:

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

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

# 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 の設定

たいてい、Xorg を実行するために設定は特に必要ありません。

しかし、ドライバのオプションを活用したい場合や、Xorg が起動しない場合などは、Xorg の設定ファイルを作成することができます。

modesetting ドライバを使う

xf86-video-intel をインストールしたが、DDX ドライバを優先させずに modesetting ドライバを明示的にロードさせたい場合 (DDX ドライバと modesetting ドライバを比較したい場合など) は、以下のような設定ファイルを使用できます:

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

Intel ドライバを使う

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

以下のような 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" オプションをご覧ください。

最近の GPU で Intel DDX ドライバを使用する

第8世代 (Broadwell) からの Intel GPU では、Iris Mesa ドライバが必要です:

Option      "DRI"  "iris"

TearFree、TripleBuffer、SwapbuffersWait を無効化する

コンポジタを使用している場合 (GNOME、KDE Plasma、Xfce などの最近のデスクトップ環境ではデフォルトです)、通常、TearFree、TripleBuffer、SwapbuffersWait を無効化することでパフォーマンスを向上させ、電力消費量を削減することができます。

Option      "TearFree"        "false"
Option      "TripleBuffer"    "false"
Option      "SwapbuffersWait" "false"

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

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

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

$ modinfo -p i915

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

# systool -m i915 -av

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

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

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

フレームバッファ圧縮 (FBC) は、スクリーンのリフレッシュ中の電力消費量とメモリの帯域幅の使用量を削減できる機能です。

この機能は、ハードウェアによってサポートされている場合、自動的に有効化されます。以下のコマンドを実行することで、この機能が有効化されているかどうか確認できます:

$ modinfo i915 | grep enable_fbc
parm:           enable_fbc:Enable frame buffer compression for power savings (default: -1 (use per-chip default)) (int)

parm が -1 に設定されている場合、何もする必要はありません。-1 でない場合、i915.enable_fbc=1カーネルパラメータに追加するか、以下の内容で /etc/modprobe.d/i915.conf を作成することで、FBC を強制的に有効化できます:

/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 およびそれ以降[12]、さらに Bay- と Cherry-Trail (VLV/CHV)[13] では、Linux 5.1 からこのパラメータがデフォルトで有効化されています。[14]

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

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") と呼んでいますが [17]、Intel のドキュメントではこの機能をより一般的に Observability Performance Counters を提供するものとしています [18] [19]

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

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

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

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

ヒントとテクニック

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

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

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

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

報告される 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

明るさとガンマ値の設定

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

試験的な新しい Xe ドライバをテストする

(試験的な) 新しい Xe ドライバを試すには、以下が必要です:

  • linux 6.8 以上
  • Tiger Lake 及びそれ以降の統合グラフィックス、またはディスクリートグラフィックカード。
  • 公式リポジトリの mesa。または、-D intel-xe-kmd=enabled でビルドされた mesa。

以下のコマンドで PCI ID を確認してください:

lspci -nn | grep VGA
00:02.0 VGA compatible controller [0300]: Intel Corporation TigerLake-LP GT2 [Iris Xe Graphics] [8086:9a49] (rev 01)

そして、適切な PCI ID を使って以下をカーネルパラメータに追加してください:

... i915.force_probe=!9a49 xe.force_probe=9a49

必要なときに元に戻すためのブート手段を確保しておいてください。

トラブルシューティング

ティアリング

Intel ドライバを使う

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

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

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

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

modesetting ドライバを使う

最近、TearFree サポートが modesetting ドライバに追加されました [29][30]。2023年11月の時点では、このパッチはまだ安定化されていません。なので、安定化されるまで xorg-server-gitAUR を使用する必要があります。

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

垂直同期 (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 によって問題が発生することがあります [31]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 を加えると解決するかもしれません。カーネルモード設定#KMS の早期開始を見てください。

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

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

mesa-amber パッケージに含まれる第3世代 GPU 用の 古い mesa ドライバは、デフォルトでは OpenGL 2.0 が利用可能であると報告します。これは、対象のハードウェアが OpenGL 2.1 とは完全に互換性がないことが原因です。[32] OpenGL 2.1 のサポートは、/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 ファイルを編集して特定のアプリケーションに対して OpenGL 2.1 を chromium 実行ファイルなどで無効化することもできます (参照)。
  • mesa パッケージに含まれる新しい Gallium ベースの i915 ドライバは、常に OpenGL 2.1 が利用可能であると報告します。なので、このドライバに対しては上記の設定は不要です。

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 でクラッシュ/フリーズ

低消費電力 Intel プロセッサやノート PC プロセッサは、低消費電力 Intel チップで使用されている電源管理機能に関する問題によりランダムにハングアップ/クラッシュする傾向にあります。そのようなクラッシュが発生する場合、この問題を報告するログは見られないでしょう。以下のカーネルパラメータを追加することで、この問題を解決できるかもしれません。

ノート: 以下のカーネルパラメータを3つすべて一緒に使用することは推奨されません。
intel_idle.max_cstate=1 i915.enable_dc=0 ahci.mobile_lpm_policy=1

ahci.mobile_lpm_policy=1 は、いくつかの Lenovo ノート PC や一部の Acer ノートブックにおける、SATA コントローラーの問題のある電源管理に起因するハングアップを修正します。この回避策は Intel Graphics と厳密には関連していませんが、関連する問題を解決します。このカーネルパラメータを追加すると、link power management をファームウェアのデフォルトから最大パフォーマンスに変更し、特定の Lenovo マシンでディスプレイ輝度を変更した際にハングする問題を解決しますが、modern ultrabook でアイドル時の電力消費量が 1~1.5W 増加します。詳細 (特に他の状態に関するもの) については、Linux カーネルメーリングリストRed Hat ドキュメントを見てください。

i915.enable_dc=0 は、GPU の電源管理を無効化します。これは、特定の Intel システム (特に、Goldmount と Kaby Lake Refresh チップ) におけるランダムなハングを解決します。このパラメータを使用すると、電力消費量が増え、ノート PC/notebook のバッテリー寿命が短くなります。

intel_idle.max_cstate=1 は、プロセッサのスリープ状態を制限し、プロセッサがディープスリープ状態に移行するのを防ぎます。これは絶対に理想的ではなく、電力消費量の増加とバッテリーの短命化を招きます。しかし、多くの Intel システムでランダムなハングを解決します。Intel Baytrail や Kaby Lake Refresh チップを使用している場合は、このパラメータを使用してください。Intel "Baytrail" チップは、このカーネルパラメータを使用しないと、ファームウェアの欠陥によりランダムにハングしてしまうことが知られていましたが、理論的には 2019-04-26 に修正されました。 max_cstate パラメータに関する詳細はカーネルドキュメントで、cstate に関する一般的な情報は GitHub 上の記事で見られます。

頻繁にハングする問題を解決するために intel_idle.max_cstate=1 i915.enable_dc=0 ahci.mobile_lpm_policy=1 を追加して問題が解決した場合は、その後パラメータを一つずつ取り除いて、どのパラメータが実際に問題の解決になっているかを確かめるべきです。実際の問題が SATA の電源管理に関係していて、問題を実際に解決するパラメータが ahci.mobile_lpm_policy=1 である場合、cstate やディスプレイの電源管理が無効化されている状態でマシンを走らせることは推奨されていません。

詳細は Linux Reviews を見てください。

165Hz モニタのサポートを追加する

一部の 165Hz モニタで、xrandr が 165Hz のオプションを表示しない場合があり、さらに #認識されない解像度を追加する の方法ではこれを解決できません。この場合、i915-driver-stuck-at-40hz-on-165hz-screen を見てください。

ノート: /etc/initramfs-tools/hooks/edid を作成する以外にも、mkinitcpio フックを作成する必要があります:
/etc/initcpio/install/edid
#!/bin/bash

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

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

そして、/etc/mkinitcpio.conf の HOOKS 配列に edid を末尾に追加してください。以下のように:

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

そして、initramfs を再生成してください。

Raptor Lake と Alder Lake-P 上でスリープ/サスペンドから復帰するとフリーズする

Raptor Lake 及び Alder Lake-P の 12 世代モバイルプロセッサを搭載する、様々な製造者のノート PC は、サスペンドからの復帰後にフリーズや黒画面が発生すると報告されています。これは、多くのノート PC 製造者が、iGPU に接続されているポートが間違って記述されている、不適切な VBT (Video BIOS Table) を使用しているからです (freedesktop のイシュー 5531 6401 で説明されています)。この場合、ドキュメント化されているケースは全て、重複した eDP エントリに関連しています。

ほとんどの製造者が、Windows が正しく動作するノート PC に向けて BIOS アップデートをリリースしないことを考えれば、この問題はカーネル側から対処するしかありません。重複した eDP エントリがカーネルに悪影響を与えるのを防ぐ方法は2つ、カーネルにパッチを当てるか、修正した VBT をロードするかです。

カーネルにパッチを当てるには、以下のコマンドの出力を解析して、重複した eDP エントリを特定する必要があります:

# intel_vbt_decode /sys/kernel/debug/dri/1/i915_vbt
 Child device info:
        Device handle: 0x0008 (LFP 1 (eDP))
        Device type: 0x1806 (unknown)
 ...
 Child device info:
        Device handle: 0x0080 (LFP 2 (eDP))
        Device type: 0x1806 (unknown)

この出力からは、重複している eDP エントリが実際に存在しており、カーネルは2つめのエントリを無視するであろうことがわかります。とはいえ、一応チェックしておくべきでしょう。次に、重複した画面のインデックスを必要に応じて ignoreEntry = 1 に置き換える以下のカーネルパッチで、この問題を解決できます。

--- a/drivers/gpu/drm/i915/display/intel_bios.c
+++ b/drivers/gpu/drm/i915/display/intel_bios.c
@@ -3632,6 +3624,14 @@
{
       struct intel_bios_encoder_data *devdata;

+       int ignoreEntry = 0;
+
       list_for_each_entry(devdata, &i915- >display.vbt.display_devices, node)
-               func(i915, devdata);
+       {
+               if (ignoreEntry != 1)
+               {
+                       func(i915, devdata);
+                       ignoreEntry++;
+               }
+       }
}

第2の解決方法は、VBT から重複したエントリを直接削除することです。

VBT をコピーし、16進数エディタで編集して、重複しているデバイスハンドルに対応するデバイスタイプを 00 00 に変更します:

$ cat /sys/kernel/debug/dri/0/i915_vbt > vbt
--- vbt
+++ modified_vbt
@@ -22,10 +22,10 @@
 00000150  00 08 00 20 00 08 00 10  00 08 00 02 00 08 00 01  |... ............|
 00000160  00 08 00 00 01 08 00 00  00 04 00 00 00 40 00 00  |.............@..|
 00000170  00 20 00 00 00 10 00 00  00 02 00 00 00 01 00 00  |. ..............|
-00000180  00 00 01 00 00 02 8b 01  02 04 00 00 27 08 00 06  |............'...|
-00000190  18 00 00 00 00 00 00 00  00 00 00 00 00 0a 00 00  |................|
+00000180  00 00 01 00 00 02 8b 01  02 04 00 00 27 08 00 00  |............'...|
+00000190  00 00 00 00 00 00 00 00  00 00 00 00 00 0a 00 00  |................|
 000001a0  03 00 00 00 c0 00 40 00  20 00 00 00 00 00 00 00  |......@. .......|
-000001b0  00 00 20 00 80 00 06 18  00 00 00 00 00 00 00 00  |.. .............|
+000001b0  00 00 20 00 80 00 00 00  00 00 00 00 00 00 00 00  |.. .............|
 000001c0  00 00 00 00 07 00 00 00  00 00 00 c0 00 10 00 20  |............... |
 000001d0  00 00 00 00 00 00 00 00  00 20 00 04 00 d2 60 00  |......... ....`.|
 000001e0  10 10 00 23 21 10 00 00  00 00 00 07 00 00 02 00  |...#!...........|

修正後の VBT は、/lib/firmware/modified_vbt にコピーして、i915.vbt_firmware=modified_vbt カーネルパラメータを使用し、必要であれば initramfs を再生成することで、ロードすることができます。

Arc GPU のハードウェアビデオアクセラレーション

ハードウェアビデオアクセラレーションは、バージョン 6.2 未満のカーネルでは利用できません。必要な HuC/GuC ファームウェアブロブの読み込みと初期化に失敗してしまいます。

# dmesg
[drm] Incompatible option enable_guc=3 - HuC is not supported!
この記事またはセクションの正確性には問題があります。
理由: CONFIG_DRM_I915_CAPTURE_ERROR を無効化する必要性に関する説明も参照も与えられていない。このフラグは 2022-12-05 の時点で linux 内で 有効に設定されている。 (議論: トーク:Intel graphics#)

ハードウェアビデオアクセラレーションを行うには、intel-media-driver をインストールし、CONFIG_DRM_I915_CAPTURE_ERROR を無効化したカーネルを使用しなければなりません。

参照

翻訳ステータス: このページは en:Intel graphics の翻訳バージョンです。最後の翻訳日は 2024-04-27 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。