コンテンツにスキップ

「インテルグラフィックス」の版間の差分

提供: ArchWiki
削除された内容 追加された内容
編集の要約なし
 
AshMyzk (トーク | 投稿記録)
同期
 
(7人の利用者による、間の83版が非表示)
1行目: 1行目:
[[Category:グラフィック]]
[[Category:グラフィック]]
[[Category:X サーバー]]
[[Category:X サーバー]]
[[cs:Intel]]
[[de:Intel]]
[[de:Intel]]
[[en:Intel Graphics]]
[[en:Intel graphics]]
[[es:Intel]]
[[es:Intel graphics]]
[[fr:Intel]]
[[ru:Intel graphics]]
[[hu:Intel]]
[[zh-hans:Intel graphics]]
[[it:Intel]]
[[pl:Intel]]
[[ru:Intel]]
[[zh-CN:Intel]]
[[zh-TW:Intel]]
{{Related articles start}}
{{Related articles start}}
{{Related|Intel GMA3600}}
{{Related|Xorg}}
{{Related|カーネルモード設定}}
{{Related2|Poulsbo|Poulsbo}}
{{Related2|Xorg|Xorg}}
{{Related2|Kernel Mode Setting|カーネルモードセッティング}}
{{Related|Xrandr}}
{{Related|Xrandr}}
{{Related2|Hybrid graphics|ハイブリッドグラフィック}}
{{Related|ハイブリッドグラフィック}}
{{Related|Vulkan}}
{{Related|GPGPU}}
{{Related articles end}}
{{Related articles end}}


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


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 ベースのグラフィックカード ([[Poulsbo|GMA 500]] と [[Intel GMA3600|GMA 3600]] シリーズ) はオープンソースドライバではサポートされていません。}}
* PowerVR ベースのグラフィックカード (GMA 3600 シリーズ) はオープンソースドライバではサポートされていません。
* Intel 第 ''N'' 世代 (Gen ''N'') ハードウェアという記述は、CPU の世代を指すものではなく、[[Wikipedia:List of Intel graphics processing units|GPU の世代]]を指しています。これは CPU の世代とは異なります。
* あなたのカードを特定する方法については [[画像処理装置#インストール]] を参照してください。
}}


== インストール ==
== インストール ==


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


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


{{Note|1=<nowiki/>
古い GPU でのビデオデコーディングは DDX ドライバーと一緒に入っている [[XvMC|XvMC]] ドライバーによって提供されます。新しい GPU でのビデオデコーディング・エンコーディングのハードウェア・アクセラレーションを有効にするには、{{Pkg|libva-intel-driver}} と {{Pkg|libva}} として提供されている [[VA-API|VA-API]] ドライバをインストールしてください。
* 一部のディストリビューション ([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]。
}}


== 設定 ==
== ローディング ==


Intel カーネルモジュールは、システムの起動時に自動的に正常にロードされるはずです。
X.org を走らせるのに特別な設定は必要ありません ({{ic|xorg.conf}} は不要です、ただし、使うのなら正しく設定しなくてはなりません)。


正常にロードされない場合は:
設定の一覧を見るには、{{ic|$ man intel}} と入力してください。


* Intel は カーネルモード設定を必要とするので、[[カーネルパラメータ]] に {{ic|nomodeset}} を指定して '''いない''' ことを確認してください。
== KMS (Kernel Mode Setting) ==
* また、{{ic|/etc/modprobe.d/}} や {{ic|/usr/lib/modprobe.d/}} で modprobe ブラックリストを使って Intel を無効にしていないか確認してください。


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


[[カーネルモード設定]] (KMS) は {{ic|i915}} ドライバと {{ic|xe}} ドライバによってサポートされており、[[mkinitcpio]] v32 から {{ic|kms}} [[mkinitcpio#通常のフック|フック]]がデフォルトで使用されているため (ブートの) 早い段階で有効化されます。他の環境で KMS をブートプロセスのできるだけ早い段階で有効化する方法については [[カーネルモード設定#KMS の早期開始]] を見てください。
{{Note|{{ic|vga}} や {{ic|nomodeset}} といった既に使用されていないパラメータはブート設定から'''必ず'''削除してください。}}


=== GuC/HuC ファームウェアのロードを有効にする ===
起動中に KMS を有効にするには {{ic|/etc/mkinitcpio.conf}} の {{ic|MODULES}} 行に {{ic|i915}} モジュールを追加します:


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


* 一部のメディアデコード機能を CPU から ''HEVC/H.265 micro (µ) Controller'' (HuC) にオフロードする。[[ハードウェアビデオアクセラレーション]]に {{Pkg|intel-media-driver}} を使用する場合にのみ、適用可能です。第9世代から導入されました。
カスタムした EDID ファイルを使っている場合は、EDID ファイルも initramfs に入れる必要があります:
* GuC をスケジューリング、コンテキスト送信、電源管理に使用する。第12世代、Alder Lake-P (Mobile) で導入されました。


この機能を使うには、まず、{{Pkg|linux-firmware-intel}} が[[インストール]]されていることを確認してください。このパッケージは、GuC と HuC のファームウェアファイルを提供するからです。
{{hc|/etc/mkinitcpio.conf|
2=FILES="/lib/firmware/edid/your_edid.bin"}}


次に、GuC ファームウェアをロードする必要があります。HuC のサポートに関しては、一部のビデオ機能 (SKL 低電力エンコードモードでの CBR レート制御) が、HuC ファームウェアのロードも必要とします[https://github.com/intel/media-driver#known-issues-and-limitations]。
initramfs を再生成します:


[[#試験的な新しい Xe ドライバをテストする|新しい試験的な]] {{ic|xe}} ドライバは、GuC と HuC の機能がデフォルトで有効化されています。
# mkinitcpio -p linux


{{ic|i915}} ドライバに関しては、GuC の機能は {{ic|enable_guc}} [[カーネルモジュールパラメータ]]によって制御されています。これの使用方法は以下のとおりです:
そしてシステムを再起動してください。うまく機能するはずです。


{{Accuracy|Intel のドキュメントに反し、Tiger Lake と Rocket Lake の GPU は実際 {{ic|1=enable_guc=3}} をサポートし、{{ic|1=enable_guc=1}} がデフォルトとなっている場合があります。[[:en:Talk:Intel graphics#TGL/RKL GuC Submission]] }}
== モジュールによる省電力設定 ==


{| class="wikitable"
{{ic|i915}} カーネルモジュールは[[Kernel_modules#モジュールオプションを設定する|モジュールオプション]]によって設定ができます。モジュールオプションの中には省電力機能に関係するものもあります。
! 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 ファームウェアのロードを有効化すると、一部のシステムで問題が発生する可能性があります。(ハイバネートから復帰したあとなどに) フリーズが発生する場合は、無効化してください。}}
# systool -m i915 -av


{{ic|1=enable_guc=}} [[カーネルモジュールパラメータ]] を設定してください。例えば:
また、次のコマンドで全てのオプションのリストと、その簡単な説明・デフォルトの値を表示することができます:


{{hc|/etc/modprobe.d/i915.conf|2=
$ modinfo -p i915
options i915 enable_guc=3
}}


[[Initramfs を再生成する|Initramfs を再生成]] してください。次回の起動時に [[dmesg]] を使うことで GuC と HuC が両方有効化されていることを確認できます:
安全に有効にすることができる一般的なオプションは以下のようになります:


{{hc|# dmesg {{!}} grep -i -e 'huc' -e 'guc'|2=
{{hc|/etc/modprobe.d/i915.conf|<nowiki>
[30130.586970] i915 0000:00:02.0: [drm] GuC firmware i915/icl_guc_33.0.0.bin version 33.0 submission:disabled
options i915 enable_rc6=1 enable_fbc=1 lvds_downclock=1
[30130.586973] i915 0000:00:02.0: [drm] HuC firmware i915/icl_huc_9.0.0.bin version 9.0 authenticated:yes
</nowiki>}}
}}


あなたのグラフィックアダプタで GuC と HuC がサポートされていない場合、以下が出力されます
フレームバッファの圧縮は古い世代の Intel GPU では信頼性がありません。次のようなメッセージがないかシステムログをチェックしてください:
kernel: drm: not enough stolen space for compressed buffer, disabling.


{{hc|# dmesg {{!}} grep -i -e 'huc' -e 'guc'|2=
== Tips and tricks ==
[ 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!
}}


あるいは、以下で確認できます:
=== アクセラレーションメソッドの選択 ===
*UXA - (Unified Acceleration Architecture) は GEM ドライバーモデルを導入した成熟しているバックエンドです。
*SNA - (Sandybridge's New Acceleration) は高速で先進的なハードウェアサポートを提供します。


# less /sys/kernel/debug/dri/*/gt0/uc/guc_info
デフォルトのメソッドは SNA (2013-08-05[https://projects.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/xf86-video-intel&id=d03f5fb77df413017821f492aa81e5d68def7e48]) で、UXA よりも不安定ですが高速です。Phoronix によるベンチマーク [http://www.phoronix.com/scan.php?page=news_item&px=MTEzOTE] を見てください。[http://www.phoronix.com/scan.php?page=article&item=intel_glamor_first&num=1 Sandy Bridge のテスト] と [http://www.phoronix.com/scan.php?page=article&item=intel_ivy_glamor&num=1 Ivy Bridge のテスト] があります。SNA で問題が発生するなら、UXA は手堅い選択です。例えば、SNA ではフルスクリーンの Flash 動画を終了するときに黒画面になることがあります。
# less /sys/kernel/debug/dri/*/gt0/uc/huc_info


{{Note|1=GuC/HuC が有効化されている場合に {{ic|1=enable_gvt=1}} を設定して [[Intel GVT-g|GVT-g graphics virtualization]] を使用することは、Linux 4.20.11 現在ではサポートされていません。システムのジャーナルに出力される通り、i915 モジュールの初期化に失敗します。
古い UXA メソッドを使いたいならば、次の内容で {{ic|/etc/X11/xorg.conf.d/20-intel.conf}} を作って下さい:

{{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: 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)
}}

[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
}}
}}

== Xorg の設定 ==

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

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

=== modesetting ドライバを使う ===

{{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
Option "AccelMethod" "uxa"
}}
EndSection}}


=== Intel ドライバを使う ===
また、OpenGL で 2D グラフィックを支援する新しい Glamor モードをテストすることもできます。このモードを使うには、以下の内容で {{ic|/etc/X11/xorg.conf.d/20-intel.conf}} を作って下さい:

{{Note|以下は {{Pkg|xf86-video-intel}} が必要です。}}

以下のような Xorg 設定ファイルを作成してください:


{{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 "intel"
EndSection
Option "AccelMethod" "glamor"
}}
EndSection}}


その他のオプションは {{ic|Driver}} の下の新しい行にユーザが追加します。
=== 垂直同期 (VSYNC) を無効にする ===
オプションの完全なリストは {{man|4|intel}} の man ページを参照してください。


{{Note|上に挙げたものよりも多くの device セクションを追加する必要があるかもしれません。必要であれば示します。}}
垂直同期 (VSYNC) を無効にするには {{ic|/etc/X11/xorg.conf.d/20-intel.conf}} の {{ic|Section "Device"}} に {{ic|Option "SwapbuffersWait" "false"}} を加えて下さい。


==== AccelMethod ====
もしくは、{{ic|~/.drirc}} の {{ic|vblank_mode}} を {{ic|0}} に設定して、{{ic|driver}} を {{ic|dri2}} にセットします:


設定ファイルを作成する際に、{{ic|Option "AccelMethod"}} を指定する必要がある場合があります。古典的なオプションは、{{ic|UXA}}、{{ic|SNA}} (デフォルト)、{{ic|BLT}} です。
{{hc|~/.drirc|2=
<device screen="0" driver="dri2">
<application name="Default">
<option name="vblank_mode" value="0"/>
</application>
</device>}}


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


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


{{man|4|intel|CONFIGURATION DETAILS}} の "AccelMethod" オプションをご覧ください。
$ xrandr --output LVDS1 --set PANEL_FITTING param


==== 最近の GPU で Intel DDX ドライバを使用する ====
選べる {{ic|param}} は:


第8世代 (Broadwell) からの Intel GPU では、Iris Mesa ドライバが必要です:
* {{ic|center}}: 解像度は固定され、スケーリングは無効になります
* {{ic|full}}: 画面いっぱいまで解像度がスケールします
* {{ic|full_aspect}}: アスペクト比を維持したままスケールします


Option "DRI" "iris"
機能しない場合、次を試して下さい:


==== TearFree、TripleBuffer、SwapbuffersWait を無効化する ====
$ xrandr --output LVDS1 --set "scaling mode" param


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


Option "TearFree" "false"
=== KMS Issue: コンソールの画面が狭い ===
Option "TripleBuffer" "false"
Option "SwapbuffersWait" "false"


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


{{ic|i915}} カーネルモジュールにより、[[カーネルモジュール#モジュールオプションを設定する|モジュールオプション]] を介して設定できます。一部のモジュールオプションは、省電力に影響を与えます。
これが機能しない時は、SVIDEO-1 の代わりに TV1 か VGA1 を無効にするのを試してみて下さい。


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


$ modinfo -p i915
{{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]。


現在有効になっているオプションを確認するには、
=== ガンマ値と明るさの設定 ===


# systool -m i915 -av
ドライバのレベルでこれらを設定する方法はありませんが、幸運なことに {{ic|xgamma}} や {{ic|xrandr}} を使って設定することができます。


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


{{Note|1=Linux 3.18 以降、これらのデフォルトから逸脱すると、カーネルが [https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=fc9740cebc3ab7c65f3c5f6ce0caf3e4969013ca tainted] (汚染された) としてマークされます。これは基本的に、チップごとのデフォルト以外のオプションの使用は実験的なものと見なされ、開発者によってサポートされていないことを意味します。}}
$ xgamma -gamma 1.0


=== フレームバッファー圧縮 (enable_fbc) ===
もしくは:


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


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


{{hc|$ modinfo i915 {{!}} grep enable_fbc|
$ xrandr --output VGA1 --brightness 1.0
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=
=== Glxgears のパフォーマンスがでない ===
options i915 enable_fbc=1
}}


{{Note|
{{Note|{{ic|glxgears}} は複数のシステム間でのパフォーマンスを比較するためのベンチマークではありません。}}
フレームバッファー圧縮は、Sandy Bridge(第6世代)より前の Intel GPU 世代では信頼できないか、使用できない場合があります。これにより、次のようなメッセージがシステムジャーナルに記録されます:


[drm] not enough stolen space for compressed buffer (need 4325376 bytes), disabling
グラフィックパフォーマンスを調べるために {{ic|glxgears}} を動かした時、結果が 60 FPS を前後することに気づいたかもしれません。例えば:
[drm] hint: you may be able to increase stolen memory size in the BIOS to avoid this


解決策は、フレームバッファー圧縮を無効にすることです。これにより、消費電力僅かに増加します (+約 0.06 W)。無効にするには、[[カーネルパラメータ]] {{ic|1=i915.enable_fbc=0}} を追加します。[https://web.archive.org/web/20200228230053/https://kernel.ubuntu.com/~cking/power-benchmarking/background-colour-and-framebuffer-compression/]
[...]
}}
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
[...]


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


{{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]。その後、Linux 6.7 でこのパラメータは完全に削除され[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=58883680a8416661b48a800e5530e2efcea64a4a]、Linux 6.9 から fastboot は全ての GPU 世代 (Skylake よりも古い世代を含む) に対して有効化されました。[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1b923307a1b0067a302b394e73311aeaebc06f65]}}
環境変数 {{ic|1=vblank_mode=0}} を付けることで垂直同期を無効にして {{ic|glxgears}} を実行できます:


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]
$ vblank_mode=0 glxgears


fastboot がデフォルトでないプラットフォーム上で fastboot を有効にするには、{{ic|1=i915.fastboot=1}} を [[カーネルパラメータ]] として設定するか、{{ic|/etc/modprobe.d/i915.conf}} に以下を設定します:
=== 起動中 "Loading modules" するときに画面がブラックアウトする ===


{{hc|/etc/modprobe.d/i915.conf|2=
KMS の"遅いスタート"を使っているとき "Loading modules" で画面がブラックアウトする場合、initramfs に {{ic|i915}} と {{ic|intel_agp}} を加えると解決するかもしれません。[[#KMS (Kernel Mode Setting)|上記の]] KMS セクションを見て下さい。
options i915 fastboot=1
}}


=== Intel GVT-g グラフィック仮想化のサポート===
または、次の[[Kernel parameters|カーネルパラメータ]]を加えるとうまく動くかもしれません:


詳細については [[Intel GVT-g]] を参照してください。
video=SVIDEO-1:d


=== パフォーマンスサポートを有効化する ===
VGA に出力する必要があるときは次を使ってみて下さい:


第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]。
video=VGA-1:1280x800


デフォルトでは、[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]。ほとんどのアプリケーションはこれらのケイパビリティを持たずに実行されるため、以下の警告が出力されます:
=== ティアリングの解消 ===


MESA-INTEL: warning: Performance support disabled, consider sysctl dev.i915.perf_stream_paranoid=0
{{tip|[[GNOME|GNOME]] デスクトップ環境を使っている場合、よりシンプルでパフォーマンスへの影響が少ない修正方法が [[GNOME#Intel HD Graphics のティアリング解消|GNOME#Intel HD Graphics のティアリング解消]] に載っています。}}


これらのケイパビリティ (または root) を使わずにパフォーマンスサポートを有効化するには、[[sysctl]] で説明されているように、(上記の警告で示されている) カーネルパラメータを設定してください。
SNA アクセラレーションメソッドを使っている場合、ティアリングが発生することがあります。これを解消するには、ドライバーの {{ic|"TearFree"}} オプションを有効にしてください:


{{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 "TearFree" "true"
EndSection}}


== ヒントとテクニック ==
詳しくは[https://bugs.freedesktop.org/show_bug.cgi?id=37686 オリジナルのバグレポート]を見て下さい。


=== スケーリングモードを設定する ===
{{Note|

* {{ic|SwapbuffersWait}} が {{ic|false}} のときはこのオプションは機能しません。
* このオプションを使うと vsync タイミングがピーキーなアプリケーション ([[Wikipedia:Super Meat Boy|Super Meat Boy]] など) 問題が発生します。
フルスクリーンを使うアプリケーションで有用かもせん:

* このオプションは UXA アクセラレーションメソッドでは動作しません、SNA でしか使えません。
$ xrandr --output LVDS1 --set PANEL_FITTING ''param''

選べる {{ic|''param''}} は:

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

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

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

{{ic|''param''}} は {{ic|"Full"}}、{{ic|"Center"}}、{{ic|"Full aspect"}} のいずれかです。

{{Note|1=上記のオプションは外部ディスプレイは現在のところ機能しません (例: VGA, DVI, HDMI, DP) [https://bugs.freedesktop.org/show_bug.cgi?id=90989]。}}

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

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

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

=== モニタリング ===

[[ハードウェアビデオアクセラレーション#確認]] を見てください。

=== 明るさとガンマ値の設定 ===

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

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

(試験的な) [https://docs.kernel.org/gpu/xe/index.html 新しい Xe ドライバ]を試すには、以下が必要です:

* {{Pkg|linux}} 6.8 以上
* [[Wikipedia:ja:Tiger Lake|Tiger Lake]] 及びそれ以降の統合グラフィックス、またはディスクリートグラフィックカード。
* {{Pkg|mesa}}。

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

{{hc|$ lspci -nnd ::03xx|
00:02.0 VGA compatible controller [0300]: Intel Corporation TigerLake-LP GT2 [Iris Xe Graphics] [8086:'''9a49'''] (rev 01)
}}
}}


そして、適切な PCI ID を使って以下を[[カーネルパラメータ]]に追加してください:
=== Intel ドライバで X がフリーズ・クラッシュする ===


... i915.force_probe=!'''9a49''' xe.force_probe='''9a49'''
X のクラッシュや GPU のハングアップ、X のフリーズなどが起こる場合、{{ic|NoAccel}} オプションを使って GPU の使用を無効にすることで修復できます:

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

== トラブルシューティング ==

=== ティアリング ===

==== Intel ドライバを使う ====

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


{{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 "intel"
Option "NoAccel" "True"
Option "TearFree" "true"
EndSection}}
EndSection}}


詳細は[https://bugs.freedesktop.org/show_bug.cgi?id=37686 元のバグレポート]を見てください。
または、{{ic|DRI}} オプションを使って 3D アクセラレーションだけを無効にすることもできます:

{{Note|1=<nowiki/>
* このオプションは、{{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]。XWayland でないサーバーに対する最後のリリースは2021年のバージョン 21.1 ですが、このパッチはまだ安定リリースに至っていません。なので、安定化されるまで {{AUR|xorg-server-git}} を使う必要があります。

{{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"
Option "DRI" "False"
Option "TearFree" "true"
EndSection}}
EndSection}}


=== 垂直同期 (VSYNC) を無効化する ===
設定ファイルに以下のオプションを使うとクラッシュする場合は


以下のような場合に便利です:
Option "TearFree" "true"
Option "AccelMethod" "sna"


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


intel ドライバは垂直同期に [https://www.intel.com/support/graphics/sb/CS-004527.htm Triple Buffering] を使用します。これは、完全なパフォーマンスとティアリングの回避を可能にします。垂直同期をオフにするには (例えば、ベンチマークのために)、以下の {{ic|.drirc}} をホームディレクトリ内に追加してください:
i915.semaphores=1


{{hc|~/.drirc|2=
=== 認識されない解像度を追加する ===
<device screen="0" driver="dri2">
<application name="Default">
<option name="vblank_mode" value="0"/>
</application>
</device>
}}


=== DRI3 の問題 ===
この問題については [[Xrandr#Adding undetected resolutions|Xrandr のページ]]を参照してください。


{{Pkg|xf86-video-intel}} では DIR バージョンのデフォルトは ''DRI3'' です。一部の環境では DRI3 によって問題が発生することがあります [https://bugs.chromium.org/p/chromium/issues/detail?id=370022]。''DRI2'' を使うには[[#Xorg の設定|設定ファイル]]に以下の行を追加してください:
=== libGL 9 と Intel-DRI 9 にアップグレードすると遅くなる ===


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


{{ic|modesetting}} ドライバーでは上記の方法で DRI3 を無効化することはできません。代わりに {{ic|1=LIBGL_DRI3_DISABLE=1}} 環境変数を設定してください。
=== ビデオゲームでテクスチャが真っ黒 ===


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


GTK アプリケーションでフォントの文字が表示されなくなってしまう場合、以下の方法で直る可能性があります。{{ic|/etc/environment}} を[[編集]]して以下の行を追加してください:
この"問題"は[http://www.phoronix.com/scan.php?page=news_item&px=MTIwOTg 新しいドライバ]で修正される予定です。


{{hc|/etc/environment|output=
S3TC についての詳しい情報は:
COGL_ATLAS_DEFAULT_BLIT_MODE=framebuffer
http://dri.freedesktop.org/wiki/S3TC
}}
http://ja.wikipedia.org/wiki/DXTC


[https://bugs.freedesktop.org/show_bug.cgi?id=88584 FreeDesktop bug 88584] も参照。
この問題が起こるゲームのひとつは [http://www.phoronix.com/scan.php?page=article&item=unigine_oilrush_gold&num=2 Oil Rush] です。


=== グラフィックがおかしい、固まる ===
=== 色が風化する (色空間の問題) ===


一部のアプリケーションでグラフィックがおかしい/固まる問題が発生する場合は (アプリケーションのウィンドウがランダムな色で埋まる、ひどくぼやける、ラグが無いにも関わらず他のタスクを実行中にアプリケーションのグラフィックの更新が行われなくなるなど)、問題の起こるアプリケーションを [[Vulkan]] ではなく [[OpenGL]] で実行してみてください。このような問題は Intel Arc GPU の一部構成で起こります。
{{Note|この問題はカーネル 3.9 の変更に起因しています。カーネル 3.10 でもこの問題は存在します。}}
カーネル 3.9 には Intel ドライバーで簡単に RGB リミテッドレンジの設定ができる変更が含まれており、場合によってはこの変更によって色がおかしくなることがあります。"Broadcast RGB" プロパティの新しい "Automatic" モードに関係しています。
{{ic|xrandr --output <HDMI> --set "Broadcast RGB" "Full"}} ({{ic|<HDMI>}} は適切な出力デバイスに置き換えてください、{{ic|xrandr}} を実行することで確認できます) のようにしてモードを強制することが可能です。これを {{ic |.xprofile}} に追加して、グラフィカルモードが始まる前にコマンドが実行できるように実行可能属性を付けて下さい。
{{Note|TV によっては 16-255 の色しか表示できないため Full に設定すると 0-15 の領域の色が失われます。従って、カラースペースを TV に合わせて圧縮する必要があるかどうか自動的に検知する Automatic のままにしてください。}}


=== Intel ドライバで X がフリーズ/クラッシュする ===
また、GPU のレジスタを編集することで修正できる他の関連する問題も存在します。詳しくは [http://lists.freedesktop.org/archives/intel-gfx/2012-April/016217.html] や [http://github.com/OpenELEC/OpenELEC.tv/commit/09109e9259eb051f34f771929b6a02635806404c] を見て下さい。


X のクラッシュを伴う問題、GPU のハングアップ、X のフリーズに関する問題は、{{ic|NoAccel}} オプションを使って GPU の使用を無効化することで修復できる場合があります。以下の行を[[#Xorg の設定|設定ファイル]]に追加してください:
=== 復帰後、バックライトが一部調整できない、もしくは全く調整できない ===


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


あるいは、{{ic|DRI}} オプションを使って 3D アクセラレーションだけを無効化してみてください:
これで問題が解決されない場合、上のパラメータに加えて:


Option "DRI" "False"
acpi_osi=Linux


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


この問題は、[[Xrandr#検出されない解像度を追加する|Xrandr のページ]] で扱っています。

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

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

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

acpi_osi=Linux
acpi_osi="!Windows 2012"
acpi_osi="!Windows 2012"
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 の表示がおかしい/応答しない ===
また、カーネルバージョン 3.13 から、ユーザーによっては効果があるカーネルコマンドラインのパラメータがあります:
video.use_native_backlight=1


Chromium や Firefox で表示の乱れ、応答なし、ラグ、低パフォーマンスが発生する場合、以下のような解決策があります。
上記のどの方法を使っても問題が解決されない場合、以下の内容で {{ic|/etc/X11/xorg.conf.d/20-intel.conf}} を編集・作成してください:


* [[#AccelMethod|AccelMethod を "uxa" に設定する]]
{{hc|/etc/X11/xorg.conf.d/20-intel.conf|
* [[#垂直同期 (VSYNC) を無効化する|VSYNC を無効化する]]
Section "Device"
* [[#ティアリング|TearFree オプションを有効化する]]
Identifier "card0"
* "DRI" とアクセラレーションのメソッドを無効にする (第10世代でテスト済み): {{bc|<nowiki>
Driver "intel"
Option "Backlight" "intel_backlight"
Option "NoAccel" "True"
Option "DRI" "False"
BusID "PCI:0:2:0"
</nowiki>}}


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


X/Wayland がロードされた数秒後、マシンがフリーズして、[[journalctl]] に以下のようなインテルグラフィックスに関連するカーネルのクラッシュログが残ることがあります:
=== フレームバッファ圧縮の無効化 ===


Jun 16 17:54:03 hostname kernel: BUG: unable to handle kernel NULL pointer dereference at (null)
Intel Corporation Mobile 4 シリーズのチップセットなど、カードによってはフレームバッファ圧縮を有効にするとエラーメッセージが延々と表示されます:
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 からデフォルトに変更されました) を無効化することで解決します。以下の[[カーネルパラメータ]]を追加してください:
$ dmesg | tail
[ 2360.475430] [drm] not enough stolen space for compressed buffer (need 4325376 bytes), disabling
[ 2360.475437] [drm] hint: you may be able to increase stolen memory size in the BIOS to avoid this


i915.enable_execlists=0
解決方法はフレームバッファ圧縮を無効化することで、これによって少しだけ電力消費が増えます。無効化するには {{ic|i915.enable_fbc&#61;0}} をカーネルラインパラメータに追加してください。圧縮の無効化による効果については [http://zinc.canonical.com/~cking/power-benchmarking/background-colour-and-framebuffer-compression/results.txt ここ] に詳しい情報が載っています。


これは、カーネル 4.0.5 以上で壊れていることが知られています。
=== Chromium や Firefox が壊れる、応答しない ===


=== Windows をゲストとした場合にラグが発生する ===
Chromium や Firefox の表示がおかしくなったり、反応しなくなる場合は[[#アクセラレーションメソッドの選択|アクセラレーションメソッド]]を "uxa" に設定してみてください。

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

=== 画面がちらつく ===

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

この方法は、{{ic|[i915] *ERROR* CPU pipe A FIFO underrun}} のようなエラーメッセージを解決します。

=== i915 ドライバで OpenGL 2.1 ===

{{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=
<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 の問題: コンソールが小さい領域に制限される ===

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

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

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

[https://bugzilla.kernel.org/show_bug.cgi?id=60769 Linux カーネルの issue] によると、{{ic|1=intel_iommu=on}} を設定している場合には HDMI から音声が出力されないそうです。この問題を修正するには、以下の[[カーネルパラメータ]]を設定してください:

intel_iommu=on,igfx_off

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

intel_iommu=off

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

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

{{Note|以下のカーネルパラメータを3つすべて一緒に使用することは推奨されません。}}

intel_idle.max_cstate=1 i915.enable_dc=0 ahci.mobile_lpm_policy=1

{{ic|1=ahci.mobile_lpm_policy=1}} は、いくつかの Lenovo ノート PC や一部の Acer ノートブックにおける、SATA コントローラーの問題のある電源管理に起因するハングアップを修正します。この回避策はインテルグラフィックスと厳密には関連していませんが、関連する問題を解決します。このカーネルパラメータを追加すると、''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 ドキュメント]を見てください。

{{ic|1=i915.enable_dc=0}} は、GPU の電源管理を無効化します。これは、特定の Intel システム (特に、Goldmount と Kaby Lake Refresh チップ) におけるランダムなハングを解決します。このパラメータを使用すると、電力消費量が増え、ノート PC/notebook のバッテリー寿命が短くなります。これで問題が解決した場合は、DC 制限をより細かく設定してみてください ({{ic|1=modinfo i915 {{!}} grep enable_dc}} で設定可能な値を調べられます)。

{{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://gitlab.freedesktop.org/drm/i915/kernel/-/commit/a75d035fedbdecf83f86767aa2e4d05c8c4ffd95 2019-04-26] に修正されました。
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 やディスプレイの電源管理が無効化されている状態でマシンを走らせることは推奨されていません。

詳細は [https://linuxreviews.org/Intel_graphics#Kernel_Parameters Linux Reviews] を見てください。

==== 高い C ステートで S3 スリープから復帰しなくなってしまう ====

システムが低頻度で復帰後に黒画面になるが、たいていは正常に復帰できてジャーナルに {{ic|CPU pipe A FIFO underrun}} というメッセージ記録され、かつ {{ic|1=intel_idle.max_cstate=1}} で C ステートを制限すると正常に復帰できるようになる場合、[[電源管理/サスペンドとハイバネート#スリープフック|スリープフック]]と {{man|1|cpupower-idle-set}} を使えば、{{ic|-D0}} と {{ic|-E}} オプションでサスペンドサイクル中に C ステートを効果的に制御することができます。[https://bbs.archlinux.org/viewtopic.php?pid=2175597#p2175597] そうすることで、CPU を常に低い C ステートで動作させる必要がなくなります。

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

一部の 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] を見てください。

{{Note|{{ic|/etc/initramfs-tools/hooks/edid}} を作成する以外にも、[[mkinitcpio]] フックを作成する必要があります:

{{hc|/etc/initcpio/install/edid|
#!/bin/bash

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

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

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

{{hc|/etc/mkinitcpio.conf|2=
HOOKS=(... fsck edid)
}}

そして、[[Initramfs を再生成する|initramfs を再生成]]してください。
}}

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

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 エントリに関連しています。

ほとんどの製造者が、Windows が正しく動作するノート PC に向けて BIOS アップデートをリリース[https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7402 しない]ことを考えれば、この問題はカーネル側から対処するしかありません。この問題を防ぐ推奨される方法は、[https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7709 変更した VBT を読み込む]ことです。アイデアとしては、重複した eDP エントリを VBT から削除し、initramfs に変更した VBT を入れ、その VBT をカーネルパラメータ経由で i915 ドライバに渡します。

以下のコマンドの出力を解析して、重複した eDP エントリを特定する必要があります:

{{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)
}}

VBT をコピーし、16進数エディタで編集して、重複しているデバイスハンドルに対応するデバイスタイプを {{ic|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 を読み込むには、{{ic|/lib/firmware/i915/modified_vbt}} に VBT をコピーし、そのファイルを initramfs に入れてください。[[mkinitcpio]] の場合は、{{ic|/etc/mkinitcpio.conf}} 内の {{ic|FILES}} 配列を使うことができます:

FILES=(/lib/firmware/i195/modified_vbt)

[[Initramfs を再生成]]し、カーネルパラメータ {{ic|i915.vbt_firmware{{=}}i915/modified_vbt}} を使って新しいテーブルを i915 に渡してください。

=== 色が抜けた ===

デフォルトでは、一部のモニターは Intel GPU から適切に認識されず、フルレンジ RGB モードにならないため、色が抜けてしまうことがあります。

==== Wayland での色の問題を修正する ====

{{hc|/etc/udev/rules.d/80-i915.rules|2=
ACTION=="add", SUBSYSTEM=="module", KERNEL=="i915", RUN+="/usr/local/bin/intel-wayland-fix-full-color"
}}

{{hc|/usr/local/bin/intel-wayland-fix-full-color|<nowiki>
#!/bin/bash

readarray -t proptest_result <<<"$(/usr/bin/proptest -M i915 -D /dev/dri/card0 | grep -E 'Broadcast|Connector')"

for ((i = 0; i < ${#proptest_result[*]}; i += 2)); do
connector=$(echo ${proptest_result[i]} | awk '{print $2}')
connector_id=$(echo ${proptest_result[i + 1]} | awk '{print $1}')

/usr/bin/proptest -M i915 $connector connector $connector_id 1
done
</nowiki>}}

[[GNOME]] を使用している場合、{{ic|<rgbrange>full</rgbrange>}} を {{ic|~/.config/monitors.xml}} 設定ファイルに追加する[https://gitlab.gnome.org/GNOME/mutter/-/issues/1871#note_2090262 代替案]もあります。例:

{{hc|~/.config/monitors.xml|<nowiki>
<monitors version="2">
<configuration>
<layoutmode>logical</layoutmode>
<logicalmonitor>
<x>0</x>
<y>0</y>
<primary>yes</primary>
<monitor>
<monitorspec>
<connector>HDMI-1</connector>
<vendor>MetaProduct&apos;s Inc.</vendor>
<product>MetaMonitor</product>
<serial>0x123456</serial>
</monitorspec>
<mode>
<width>1920</width>
<height>1080</height>
<rate>60.000</rate>
</mode>
<rgbrange>full</rgbrange>
</monitor>
</logicalmonitor>
</configuration>
</monitors>
</nowiki>}}

{{Note|
* ディスプレイのレンジが変わったり、その他の方法でディスプレイの設定が変更されたりした場合、新しいレイアウトが {{ic|<rgbrange>full</rgbrange>}} タグ無しで {{ic|monitors.xml}} に追加されるかもしれません。異なるレイアウトでも RGB レンジを一貫して設定するために、論理モニタの全てのエントリにこのタグを追加することを検討してください。
* GDM ログイン画面がフル RGB レンジを使用していない場合、ユーザーの {{ic|monitors.xml}} を gdm のホームディレクトリにコピーしてください。[[GDM#デフォルトのモニター設定をセットアップする]] を参照してください。
}}

==== X11/Xorg での色の問題を修正する ====

# xrandr --output NAME_OF_YOUR_OUTPUT --set "Broadcast RGB" "Full"

=== B580 で "bus error" により一部のプログラムを実行できない ===

(vainfo、falkon、mpv など) 一部のプログラムを実行すると以下のようなエラーが発生する場合:

1234 bus error : vaapi

考えられる原因は、BIOS/UEFI で ReBar (Resizable BAR) が無効化されていることです。一部のマザーボードでは、レガシーサポートが無い場合、UEFI モードがアクティブであるときにしか ReBar を有効化できません。


== 参照 ==
== 参照 ==


* https://01.org/linuxgraphics/documentation (サポートされているハードウェア一覧など)
* https://01.org/linuxgraphics/documentation (サポートされているハードウェア一覧など)

* Arch Linux フォーラム: [https://bbs.archlinux.org/viewtopic.php?pid=522665#p522665 Intel 945GM, Xorg, Kernel - performance]
{{TranslationStatus|Intel graphics|2026-02-15|859434}}

2026年2月15日 (日) 14:18時点における最新版

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

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

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

インストール

  • 以下のパッケージのうち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 ドライバは、第3世代及びそれ以降のハードウェアにおいて推奨されます。これは、glamor モジュール経由で DRI ドライバを使用してアクセラレーションを提供します。
    • xf86-video-intel パッケージは、第2世代から第9世代までのハードウェアにおいてレガシーな Intel DDX ドライバを提供します。一般に、このパッケージを使用することは推奨されません。下記のノートを参照してください。
  • Vulkan サポート (Broadwell 及びそれ以降; それより古いチップにおけるサポートは不完全であるか存在しません) については、vulkan-intel パッケージをインストールしてください。32 ビット Vulkan サポートについては、lib32-vulkan-intel パッケージをインストールしてください。

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

ノート

ローディング

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

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

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

早期 KMS

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

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

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

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

この機能を使うには、まず、linux-firmware-intelインストールされていることを確認してください。このパッケージは、GuC と HuC のファームウェアファイルを提供するからです。

次に、GuC ファームウェアをロードする必要があります。HuC のサポートに関しては、一部のビデオ機能 (SKL 低電力エンコードモードでの CBR レート制御) が、HuC ファームウェアのロードも必要とします[6]

新しい試験的な xe ドライバは、GuC と HuC の機能がデフォルトで有効化されています。

i915 ドライバに関しては、GuC の機能は enable_guc カーネルモジュールパラメータによって制御されています。これの使用方法は以下のとおりです:

この記事またはセクションの正確性には問題があります。
理由: Intel のドキュメントに反し、Tiger Lake と Rocket Lake の GPU は実際 enable_guc=3 をサポートし、enable_guc=1 がデフォルトとなっている場合があります。en:Talk:Intel graphics#TGL/RKL GuC Submission (議論: トーク:インテルグラフィックス#)
enable_guc の値 GuC 送信 HuC ファームウェアのロード デフォルトとなっているプラットフォーム サポートされているプラットフォーム
0 No No Tiger Lake、Rocket Lake、Gen12 以前 [7] すべて
1 Yes No Alder Lake-P (Mobile) およびそれ以降
2 No Yes Alder Lake-S (Desktop) [8] [9] Gen9 およびそれ以降
3 Yes Yes Alder Lake-P (Mobile) 及びそれ以降 Gen 9.5 及びそれ以降 (一部個体ではこちらがより良い)

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

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

enable_guc= カーネルモジュールパラメータ を設定してください。例えば:

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

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

# dmesg | grep -i -e 'huc' -e 'guc'
[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 | grep -i -e 'huc' -e 'guc'
[    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!

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

# less /sys/kernel/debug/dri/*/gt0/uc/guc_info
# less /sys/kernel/debug/dri/*/gt0/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)

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

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

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

解決策は、フレームバッファー圧縮を無効にすることです。これにより、消費電力僅かに増加します (+約 0.06 W)。無効にするには、カーネルパラメータ i915.enable_fbc=0 を追加します。[11]

Fastboot

ノート Skylake およびそれ以降[12]、さらに Bay- と Cherry-Trail (VLV/CHV)[13] では、Linux 5.1 からこのパラメータがデフォルトで有効化されていました [14]。その後、Linux 6.7 でこのパラメータは完全に削除され[15]、Linux 6.9 から fastboot は全ての GPU 世代 (Skylake よりも古い世代を含む) に対して有効化されました。[16]

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

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

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

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

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

警告 アプリケーションにパフォーマンスデータへのアクセスを許してしまうなどのリスクが存在するため、perf_event_paranoid ファミリのオプションには制限的なデフォルトが存在します [24]。とはいえ、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) [25]

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

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

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

モニタリング

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

明るさとガンマ値の設定

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

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

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

  • linux 6.8 以上
  • Tiger Lake 及びそれ以降の統合グラフィックス、またはディスクリートグラフィックカード。
  • mesa

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

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

modesetting ドライバを使う

TearFree サポートが modesetting ドライバに追加されました [27][28]。XWayland でないサーバーに対する最後のリリースは2021年のバージョン 21.1 ですが、このパッチはまだ安定リリースに至っていません。なので、安定化されるまで 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>

DRI3 の問題

xf86-video-intel では DIR バージョンのデフォルトは DRI3 です。一部の環境では DRI3 によって問題が発生することがあります [29]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 も参照。

グラフィックがおかしい、固まる

一部のアプリケーションでグラフィックがおかしい/固まる問題が発生する場合は (アプリケーションのウィンドウがランダムな色で埋まる、ひどくぼやける、ラグが無いにも関わらず他のタスクを実行中にアプリケーションのグラフィックの更新が行われなくなるなど)、問題の起こるアプリケーションを Vulkan ではなく OpenGL で実行してみてください。このような問題は Intel Arc GPU の一部構成で起こります。

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 に以下のようなインテルグラフィックスに関連するカーネルのクラッシュログが残ることがあります:

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 または xe.enable_psr=0 を使ってこの機能を無効化することです。

この方法は、[i915] *ERROR* CPU pipe A FIFO underrun のようなエラーメッセージを解決します。

i915 ドライバで OpenGL 2.1

mesa-amber パッケージに含まれる第3世代 GPU 用の 古い mesa ドライバは、デフォルトでは OpenGL 2.0 が利用可能であると報告します。これは、対象のハードウェアが OpenGL 2.1 とは完全に互換性がないことが原因です。[30] 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 コントローラーの問題のある電源管理に起因するハングアップを修正します。この回避策はインテルグラフィックスと厳密には関連していませんが、関連する問題を解決します。このカーネルパラメータを追加すると、link power management をファームウェアのデフォルトから最大パフォーマンスに変更し、特定の Lenovo マシンでディスプレイ輝度を変更した際にハングする問題を解決しますが、modern ultrabook でアイドル時の電力消費量が 1~1.5W 増加します。詳細 (特に他の状態に関するもの) については、Linux カーネルメーリングリストRed Hat ドキュメントを見てください。

i915.enable_dc=0 は、GPU の電源管理を無効化します。これは、特定の Intel システム (特に、Goldmount と Kaby Lake Refresh チップ) におけるランダムなハングを解決します。このパラメータを使用すると、電力消費量が増え、ノート PC/notebook のバッテリー寿命が短くなります。これで問題が解決した場合は、DC 制限をより細かく設定してみてください (modinfo i915 | grep enable_dc で設定可能な値を調べられます)。

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 を見てください。

高い C ステートで S3 スリープから復帰しなくなってしまう

システムが低頻度で復帰後に黒画面になるが、たいていは正常に復帰できてジャーナルに CPU pipe A FIFO underrun というメッセージ記録され、かつ intel_idle.max_cstate=1 で C ステートを制限すると正常に復帰できるようになる場合、スリープフックcpupower-idle-set(1) を使えば、-D0-E オプションでサスペンドサイクル中に C ステートを効果的に制御することができます。[31] そうすることで、CPU を常に低い C ステートで動作させる必要がなくなります。

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 アップデートをリリースしないことを考えれば、この問題はカーネル側から対処するしかありません。この問題を防ぐ推奨される方法は、変更した VBT を読み込むことです。アイデアとしては、重複した eDP エントリを VBT から削除し、initramfs に変更した VBT を入れ、その VBT をカーネルパラメータ経由で i915 ドライバに渡します。

以下のコマンドの出力を解析して、重複した 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)

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/i915/modified_vbt に VBT をコピーし、そのファイルを initramfs に入れてください。mkinitcpio の場合は、/etc/mkinitcpio.conf 内の FILES 配列を使うことができます:

FILES=(/lib/firmware/i195/modified_vbt)

Initramfs を再生成し、カーネルパラメータ i915.vbt_firmware=i915/modified_vbt を使って新しいテーブルを i915 に渡してください。

色が抜けた

デフォルトでは、一部のモニターは Intel GPU から適切に認識されず、フルレンジ RGB モードにならないため、色が抜けてしまうことがあります。

Wayland での色の問題を修正する

/etc/udev/rules.d/80-i915.rules
ACTION=="add", SUBSYSTEM=="module", KERNEL=="i915", RUN+="/usr/local/bin/intel-wayland-fix-full-color"
/usr/local/bin/intel-wayland-fix-full-color
#!/bin/bash

readarray -t proptest_result <<<"$(/usr/bin/proptest -M i915 -D /dev/dri/card0 | grep -E 'Broadcast|Connector')"

for ((i = 0; i < ${#proptest_result[*]}; i += 2)); do
    connector=$(echo ${proptest_result[i]} | awk '{print $2}')
    connector_id=$(echo ${proptest_result[i + 1]} | awk '{print $1}')

    /usr/bin/proptest -M i915 $connector connector $connector_id 1
done

GNOME を使用している場合、<rgbrange>full</rgbrange>~/.config/monitors.xml 設定ファイルに追加する代替案もあります。例:

~/.config/monitors.xml
<monitors version="2">
  <configuration>
    <layoutmode>logical</layoutmode>
    <logicalmonitor>
      <x>0</x>
      <y>0</y>
      <primary>yes</primary>
      <monitor>
        <monitorspec>
          <connector>HDMI-1</connector>
          <vendor>MetaProduct's Inc.</vendor>
          <product>MetaMonitor</product>
          <serial>0x123456</serial>
        </monitorspec>
        <mode>
          <width>1920</width>
          <height>1080</height>
          <rate>60.000</rate>
        </mode>
        <rgbrange>full</rgbrange>
      </monitor>
    </logicalmonitor>
  </configuration>
</monitors>
ノート
  • ディスプレイのレンジが変わったり、その他の方法でディスプレイの設定が変更されたりした場合、新しいレイアウトが <rgbrange>full</rgbrange> タグ無しで monitors.xml に追加されるかもしれません。異なるレイアウトでも RGB レンジを一貫して設定するために、論理モニタの全てのエントリにこのタグを追加することを検討してください。
  • GDM ログイン画面がフル RGB レンジを使用していない場合、ユーザーの monitors.xml を gdm のホームディレクトリにコピーしてください。GDM#デフォルトのモニター設定をセットアップする を参照してください。

X11/Xorg での色の問題を修正する

# xrandr --output NAME_OF_YOUR_OUTPUT --set "Broadcast RGB" "Full"

B580 で "bus error" により一部のプログラムを実行できない

(vainfo、falkon、mpv など) 一部のプログラムを実行すると以下のようなエラーが発生する場合:

1234 bus error : vaapi

考えられる原因は、BIOS/UEFI で ReBar (Resizable BAR) が無効化されていることです。一部のマザーボードでは、レガシーサポートが無い場合、UEFI モードがアクティブであるときにしか ReBar を有効化できません。

参照

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