「インテルグラフィックス」の版間の差分
Kusanaginoturugi (トーク | 投稿記録) (カテゴリを修正) |
|||
(4人の利用者による、間の32版が非表示) | |||
1行目: | 1行目: | ||
− | [[Category:グラフィック]] |
+ | [[Category:グラフィックス]] |
[[Category:X サーバー]] |
[[Category:X サーバー]] |
||
[[de:Intel]] |
[[de:Intel]] |
||
[[en:Intel graphics]] |
[[en:Intel graphics]] |
||
[[es:Intel graphics]] |
[[es:Intel graphics]] |
||
− | [[fr:Intel graphics]] |
||
[[ru:Intel graphics]] |
[[ru:Intel graphics]] |
||
[[zh-hans:Intel graphics]] |
[[zh-hans:Intel graphics]] |
||
10行目: | 9行目: | ||
{{Related|Intel GMA 3600}} |
{{Related|Intel GMA 3600}} |
||
{{Related|Xorg}} |
{{Related|Xorg}} |
||
− | {{Related| |
+ | {{Related|カーネルモード設定}} |
{{Related|Xrandr}} |
{{Related|Xrandr}} |
||
{{Related|ハイブリッドグラフィック}} |
{{Related|ハイブリッドグラフィック}} |
||
17行目: | 16行目: | ||
{{Related articles end}} |
{{Related articles end}} |
||
− | Intel はオープンソースドライバの提供とサポートを行なっているので、 |
+ | Intel はオープンソースドライバの提供とサポートを行なっているので、インテルグラフィックスは基本的にプラグアンドプレイです。 |
− | Intel GPU のモデルや関連するチップセットと CPU の包括的なリストは、[[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#ドライバーのインストール]] を参照してください。 |
||
+ | }} |
||
== インストール == |
== インストール == |
||
− | + | * 以下のパッケージのうち1つを[[インストール]]してください。これらは、3D アクセラレーションのための [[wikipedia:ja:ダイレクト・レンダリング・インフラストラクチャ|DRI]] ドライバを提供します。 |
|
+ | ** {{Pkg|mesa}} は、第3世代ハードウェアおよびそれ以降用のモダンな Gallium3D ドライバを含む最新の [[Mesa]] パッケージです。これを使うことが推奨されます。 |
||
− | |||
+ | ** {{Pkg|mesa-amber}} は、第2世代から第11世代までのハードウェア用のクラシックドライバ (Gallium3d でない) です。このドライバは、第7世代及びそれ以前のハードウェアにおいて高いパフォーマンスや安定性をもたらすかもしれませんが、メンテナンスされていません。 |
||
− | * 32ビットアプリケーションのサポートは、[[multilib]] リポジトリから {{Pkg|lib32-mesa}} パッケージもインストールしてください。 |
||
− | * |
+ | * 32ビットアプリケーションのサポートは、[[multilib]] リポジトリから {{Pkg|lib32-mesa}} か {{Pkg|lib32-mesa-amber}} パッケージもインストールしてください。 |
+ | * [[Xorg]] で 2D アクセラレーションを提供する [[wikipedia:X.Org_Server#DDX|DDX]] ドライバに関しては、以下のうち1つを使ってください: |
||
− | * [[Vulkan]] のサポート (''Ivy Bridge'' およびそれ以降) は、{{Pkg|vulkan-intel}} パッケージをインストールしてください。 |
||
+ | ** {{Pkg|xorg-server}} パッケージに含まれる ''modesetting'' ドライバは、第4世代及びそれ以降のハードウェアにおいて推奨されます。これは、''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}} パッケージをインストールしてください。 |
||
[[ハードウェアビデオアクセラレーション]]も見てください。 |
[[ハードウェアビデオアクセラレーション]]も見てください。 |
||
+ | {{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://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 での動画のスタッタリング]。}} |
||
+ | * 一部のディストリビューション ([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]。 |
||
+ | }} |
||
== ローディング == |
== ローディング == |
||
41行目: | 51行目: | ||
正常にロードされない場合は: |
正常にロードされない場合は: |
||
− | * Intel は |
+ | * 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) は {{ic|i915}} ドライバによってサポートされており、[[mkinitcpio]] v32 から {{ic|kms}} フックがデフォルトで使用されているため (ブートの) 早い段階で有効化されます。他の環境で KMS をブートプロセスのできるだけ早い段階で有効化する方法については [[カーネルモード設定#KMS の早期開始]] を見てください。 |
||
− | [[Kernel Mode Setting]] (KMS) は、i915 DRM ドライバーを使用するインテルチップセットでサポートされています。KMS は必須であり、デフォルトで有効になっています。 |
||
− | |||
− | 起動プロセスにおいてできるだけ早く KMS を有効にする方法については、[[Kernel Mode Setting#Early KMS start]] を参照してください。 |
||
=== GuC/HuC ファームウェアのロードを有効にする === |
=== GuC/HuC ファームウェアのロードを有効にする === |
||
54行目: | 62行目: | ||
{{Accuracy|Intel のドキュメントに反し、Tiger Lake と Rocket Lake の GPU は実際 {{ic|1=enable_guc=3}} をサポートし、{{ic|1=enable_guc=1}} がデフォルトとなっている場合があります。}} |
{{Accuracy|Intel のドキュメントに反し、Tiger Lake と Rocket Lake の GPU は実際 {{ic|1=enable_guc=3}} をサポートし、{{ic|1=enable_guc=1}} がデフォルトとなっている場合があります。}} |
||
− | 第9世代から (Skylake およびそれ以降)、Intel GPU には以下の機能を提供する ''Graphics micro (μ) Controller'' (GuC) が搭載されています [https://01.org/linuxgraphics/downloads/firmware]: |
+ | 第9世代から (Skylake およびそれ以降)、Intel GPU には以下の機能を提供する ''Graphics micro (μ) Controller'' (GuC) が搭載されています [https://01.org/linuxgraphics/downloads/firmware]{{Dead link|2023|04|23|status=403}}: |
* 一部のメディアデコード機能を CPU から ''HEVC/H.265 micro (µ) Controller'' (HuC) にオフロードする。[[ハードウェアビデオアクセラレーション]]に {{Pkg|intel-media-driver}} を使用する場合にのみ、適用可能です。第9世代から導入されました。 |
* 一部のメディアデコード機能を CPU から ''HEVC/H.265 micro (µ) Controller'' (HuC) にオフロードする。[[ハードウェアビデオアクセラレーション]]に {{Pkg|intel-media-driver}} を使用する場合にのみ、適用可能です。第9世代から導入されました。 |
||
* GuC をスケジューリング、コンテキスト送信、電源管理に使用する。第12世代、Alder Lake-P (Mobile) で導入されました。 |
* GuC をスケジューリング、コンテキスト送信、電源管理に使用する。第12世代、Alder Lake-P (Mobile) で導入されました。 |
||
60行目: | 68行目: | ||
この機能を使うには、GuC ファームウェアがロードされていなければなりません。HuC のサポートに関して、一部のビデオ機能 (例: SKL 低電力符号化モードにおける CBR レート制御) は HuC ファームウェアもロードされている必要があります [https://github.com/intel/media-driver#known-issues-and-limitations]。GuC と HuC ファームウェアのファイルは両方 {{Pkg|linux-firmware}} によって提供されています。 |
この機能を使うには、GuC ファームウェアがロードされていなければなりません。HuC のサポートに関して、一部のビデオ機能 (例: SKL 低電力符号化モードにおける CBR レート制御) は HuC ファームウェアもロードされている必要があります [https://github.com/intel/media-driver#known-issues-and-limitations]。GuC と HuC ファームウェアのファイルは両方 {{Pkg|linux-firmware}} によって提供されています。 |
||
− | GuC の機能は {{ic|1=i915.enable_guc}} [[カーネルパラメータ]] によって制御されます。このパラメータの |
+ | GuC の機能は {{ic|1=i915.enable_guc}} [[カーネルパラメータ]] によって制御されます。このパラメータの使用法は次のとおりです。: |
{| class="wikitable" |
{| class="wikitable" |
||
71行目: | 79行目: | ||
|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 およびそれ以降 |
|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}} || |
+ | |3 || {{Yes}} || {{Yes}} || Alder Lake-P (Mobile) 及びそれ以降 || Gen 9.5 及びそれ以降 (一部個体ではこちらがより良い) |
|} |
|} |
||
78行目: | 86行目: | ||
{{Warning|1=GuC / HuC ファームウェアのロードを手動で有効化すると、[https://bugs.freedesktop.org/show_bug.cgi?id=111918 たとえその機能がサポートされていない場合でも]、カーネルに汚染マークが付きます。さらに、GuC/HuC ファームウェアのロードを有効化すると、一部のシステムで問題が発生する可能性があります。(ハイバネートから復帰したあとなどに) フリーズが発生する場合は、無効化してください。}} |
{{Warning|1=GuC / HuC ファームウェアのロードを手動で有効化すると、[https://bugs.freedesktop.org/show_bug.cgi?id=111918 たとえその機能がサポートされていない場合でも]、カーネルに汚染マークが付きます。さらに、GuC/HuC ファームウェアのロードを有効化すると、一部のシステムで問題が発生する可能性があります。(ハイバネートから復帰したあとなどに) フリーズが発生する場合は、無効化してください。}} |
||
− | まず、{{Pkg|linux-firmware}} が[[インストール]]されていることを確認してください。 |
+ | まず、{{Pkg|linux-firmware}} が[[インストール]] されていることを確認してください。 |
+ | {{ic|1=i915.enable_guc}} [[カーネルパラメータ]] を設定してください。例えば: |
||
− | あなたのシステムで late KMS start が設定されている場合 (これはデフォルトです)、[[カーネルパラメータ]]で説明されているように {{ic|1=i915.enable_guc}} を設定することで手動で以下の機能を有効化できます。 |
||
− | |||
− | {{ic|i915}} モジュール ([[Kernel Mode Setting#Early KMS start]] を参照) を [[initramfs]] に追加している場合は、これらのオプションを代わりに {{ic|/etc/modprobe.d/}} 内のファイルで設定しなければなりません。例えば: |
||
{{hc|/etc/modprobe.d/i915.conf|2= |
{{hc|/etc/modprobe.d/i915.conf|2= |
||
88行目: | 94行目: | ||
}} |
}} |
||
+ | [[Initramfs を再生成する|Initramfs を再生成]] してください。次回の起動時に [[dmesg]] を使うことで GuC と HuC が両方有効化されていることを確認できます: |
||
− | そして、[[mkinitcpio#手動生成|initramfs を再ビルド]]してください。 |
||
− | |||
− | 次回の起動時に [[dmesg]] を使うことで GuC と HuC が両方有効化されていることを確認できます: |
||
{{hc|# dmesg|2= |
{{hc|# dmesg|2= |
||
127行目: | 131行目: | ||
== Xorg の設定 == |
== Xorg の設定 == |
||
+ | たいてい、[[Xorg]] を実行するために設定は特に必要ありません。 |
||
− | {{Note|以下は {{Pkg|xf86-video-intel}} が必要です。}} |
||
+ | しかし、ドライバのオプションを活用したい場合や、[[Xorg]] が起動しない場合などは、Xorg の設定ファイルを作成することができます。 |
||
− | [[Xorg]] を実行するのに設定は必要ないかもしれません。 |
||
+ | === modesetting ドライバを使う === |
||
− | しかし、[[Xorg]] が起動しない場合は、いくつかのドライバオプションを利用するために、以下のような Xorg 設定ファイルを作成することができます: |
||
+ | |||
+ | {{Pkg|xf86-video-intel}} をインストールしたが、DDX ドライバを優先させずに modesetting ドライバを明示的にロードさせたい場合 (DDX ドライバと modesetting ドライバを比較したい場合など) は、以下のような設定ファイルを使用できます: |
||
+ | |||
+ | {{hc|/etc/X11/xorg.conf.d/20-intel.conf| |
||
+ | Section "Device" |
||
+ | Identifier "Intel Graphics" |
||
+ | Driver "modesetting" |
||
+ | EndSection |
||
+ | }} |
||
+ | |||
+ | === Intel ドライバを使う === |
||
+ | |||
+ | {{Note|以下は {{Pkg|xf86-video-intel}} が必要です。}} |
||
+ | |||
+ | 以下のような Xorg 設定ファイルを作成してください: |
||
{{hc|/etc/X11/xorg.conf.d/20-intel.conf| |
{{hc|/etc/X11/xorg.conf.d/20-intel.conf| |
||
143行目: | 162行目: | ||
オプションの完全なリストは {{man|4|intel}} の man ページを参照してください。 |
オプションの完全なリストは {{man|4|intel}} の man ページを参照してください。 |
||
− | {{Note|上に挙げたものよりも多くの device セクションを追加する必要があるかもしれません。 |
+ | {{Note|上に挙げたものよりも多くの device セクションを追加する必要があるかもしれません。必要であれば示します。}} |
− | === AccelMethod === |
+ | ==== AccelMethod ==== |
設定ファイルを作成する際に、{{ic|Option "AccelMethod"}} を指定する必要がある場合があります。古典的なオプションは、{{ic|UXA}}、{{ic|SNA}} (デフォルト)、{{ic|BLT}} です。 |
設定ファイルを作成する際に、{{ic|Option "AccelMethod"}} を指定する必要がある場合があります。古典的なオプションは、{{ic|UXA}}、{{ic|SNA}} (デフォルト)、{{ic|BLT}} です。 |
||
154行目: | 173行目: | ||
{{man|4|intel|CONFIGURATION DETAILS}} の "AccelMethod" オプションをご覧ください。 |
{{man|4|intel|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" |
||
== モジュールベースのオプション == |
== モジュールベースのオプション == |
||
173行目: | 206行目: | ||
=== フレームバッファー圧縮 (enable_fbc) === |
=== フレームバッファー圧縮 (enable_fbc) === |
||
− | フレームバッファ |
+ | フレームバッファ圧縮 (FBC) は、スクリーンのリフレッシュ中の電力消費量とメモリの帯域幅の使用量を削減できる機能です。 |
+ | この機能は、ハードウェアによってサポートされている場合、自動的に有効化されます。以下のコマンドを実行することで、この機能が有効化されているかどうか確認できます: |
||
− | FBC を有効にするには、 {{ic|1=i915.enable_fbc=1}} を [[カーネルパラメータ]] として使用するか、 {{ic|/etc/modprobe.d/i915.conf}} に設定します: |
||
+ | |||
+ | {{hc|$ modinfo i915 {{!}} grep enable_fbc| |
||
+ | 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= |
{{hc|/etc/modprobe.d/i915.conf|2= |
||
192行目: | 231行目: | ||
}} |
}} |
||
− | 解決策は、フレームバッファー圧縮を無効にすることです。これにより、消費電力がいつの間にか増加します(約0. |
+ | 解決策は、フレームバッファー圧縮を無効にすることです。これにより、消費電力がいつの間にか増加します (約 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/ こちら] を参照してください。}} |
=== Fastboot === |
=== Fastboot === |
||
− | {{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 からこのパラメータがデフォルトで有効化されていま |
+ | {{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]}} |
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] |
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] |
||
221行目: | 260行目: | ||
{{Warning|アプリケーションにパフォーマンスデータへのアクセスを許してしまうなどのリスクが存在するため、{{ic|perf_event_paranoid}} ファミリのオプションには制限的なデフォルトが存在します [https://docs.kernel.org/admin-guide/perf-security.html]。とはいえ、{{ic|dev.i915.perf_stream_paranoid}} は GPU パフォーマンスカウンタへのアクセスにしか影響せず、CPU アーキテクチャ実行コンテキストレジスタなどと比べれば低リスクです。}} |
{{Warning|アプリケーションにパフォーマンスデータへのアクセスを許してしまうなどのリスクが存在するため、{{ic|perf_event_paranoid}} ファミリのオプションには制限的なデフォルトが存在します [https://docs.kernel.org/admin-guide/perf-security.html]。とはいえ、{{ic|dev.i915.perf_stream_paranoid}} は GPU パフォーマンスカウンタへのアクセスにしか影響せず、CPU アーキテクチャ実行コンテキストレジスタなどと比べれば低リスクです。}} |
||
− | |||
− | {{ic|/etc/sysctl.d/*.conf}} ファイルで先のカーネルパラメータの値に0を設定すると、以下のエラーが実行時に発生します: |
||
− | |||
− | sysctl: cannot stat /proc/sys/dev/i915/perf_stream_paranoid: No such file or directory |
||
− | |||
− | {{ic|i915}} モジュールを[[#早い段階で KMS を有効にする|KMS で早い段階で]]ロードする必要があります。 |
||
== ヒントとテクニック == |
== ヒントとテクニック == |
||
255行目: | 288行目: | ||
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 ビデオの再生が可能です。 |
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 ビデオの再生が可能です。 |
||
− | |||
− | === 古い OpenGL ドライバ (i965) === |
||
− | |||
− | Mesa 20.0 では、新しい OpenGL ドライバ "Iris" が第8世代以上でデフォルトとなりました。一部のアプリケーションはこのドライバによりより高速に動作します。{{ic|1=MESA_LOADER_DRIVER_OVERRIDE=i965}} [[環境変数]]を OpenGL アプリケーションの起動前に設定することで、Iris を無効化し、古い i965 ドライバに戻すことができます。この設定は Vulkan アプリケーションには影響しません。 |
||
− | |||
− | {{Note|1=Iris ドライバに関するバグやリグレッションは[https://gitlab.freedesktop.org/mesa/mesa/issues ここ]に報告してください。}} |
||
=== 報告される OpenGL のバージョンを上書き === |
=== 報告される OpenGL のバージョンを上書き === |
||
276行目: | 303行目: | ||
[[バックライト]] を見てください。 |
[[バックライト]] を見てください。 |
||
+ | |||
+ | === 試験的な新しい Xe ドライバをテストする === |
||
+ | |||
+ | (試験的な) [https://www.kernel.org/doc/html//next/gpu/rfc/xe.html 新しい Xe ドライバ]を試すには、以下が必要です: |
||
+ | |||
+ | * {{Pkg|linux}} 6.8 以上 |
||
+ | * [[Wikipedia:ja:Tiger Lake|Tiger Lake]] 及びそれ以降の統合グラフィックス、またはディスクリートグラフィックカード。 |
||
+ | * 公式リポジトリの {{Pkg|mesa}}。または、{{ic|1=-D intel-xe-kmd=enabled}} でビルドされた mesa。 |
||
+ | |||
+ | 以下のコマンドで PCI ID を確認してください: |
||
+ | |||
+ | {{hc|$ 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''' |
||
+ | |||
+ | 必要なときに元に戻すためのブート手段を確保しておいてください。 |
||
== トラブルシューティング == |
== トラブルシューティング == |
||
281行目: | 328行目: | ||
=== ティアリング === |
=== ティアリング === |
||
+ | ==== Intel ドライバを使う ==== |
||
− | SNA アクセラレーションメソッドを取っている場合、一部のマシン上でティアリングが発生します。これを修正するには、以下の行を[[#Xorg の設定|設定ファイル]]に追加してドライバの {{ic|TearFree}} オプションを有効化してください: |
||
+ | |||
+ | 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| |
||
299行目: | 348行目: | ||
* Intel UHD 620 または 430 では、{{ic|TearFree}} を動作させるために {{ic|Option "TripleBuffer" "true"}} を追加する必要があります。 |
* 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| |
||
+ | Section "Device" |
||
+ | Identifier "Intel Graphics" |
||
+ | Driver "modesetting" |
||
+ | Option "TearFree" "true" |
||
+ | EndSection}} |
||
=== 垂直同期 (VSYNC) を無効化する === |
=== 垂直同期 (VSYNC) を無効化する === |
||
336行目: | 396行目: | ||
[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" するときに画面がブラックアウトする === |
||
− | |||
− | "late start" KMS を使っているとき "Loading modules" で画面がブラックアウトする場合、initramfs に i915 と intel_agp を加えると解決するかもしれません。[[Kernel Mode Setting#Early KMS start]] を見てください。 |
||
− | |||
− | または、次の[[カーネルパラメータ]]を加えるとうまく動くかもしれません: |
||
− | |||
− | video=SVIDEO-1:d |
||
− | |||
− | VGA に出力する必要があるときは次を使ってみて下さい: |
||
− | |||
− | video=VGA-1:1280x800 |
||
=== Intel ドライバで X がフリーズ/クラッシュする === |
=== Intel ドライバで X がフリーズ/クラッシュする === |
||
375行目: | 423行目: | ||
また、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 知られています]。 |
また、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 が |
+ | === Chromium や Firefox の表示がおかしい/応答しない === |
− | Chromium や Firefox で |
+ | Chromium や Firefox で表示の乱れ、応答なし、ラグ、低パフォーマンスが発生する場合、以下のような解決策があります。 |
* [[#AccelMethod|AccelMethod を "uxa" に設定する]] |
* [[#AccelMethod|AccelMethod を "uxa" に設定する]] |
||
389行目: | 437行目: | ||
=== Broadwell/Core-M チップでカーネル 4.0 以上を使っている場合にクラッシュする === |
=== Broadwell/Core-M チップでカーネル 4.0 以上を使っている場合にクラッシュする === |
||
− | X/Wayland がロードされた数秒後、マシンがフリーズして、[[journalctl]] に以下のような |
+ | 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: BUG: unable to handle kernel NULL pointer dereference at (null) |
||
429行目: | 477行目: | ||
=== i915 ドライバで OpenGL 2.1 === |
=== 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= |
{{hc|/etc/drirc|output= |
||
444行目: | 492行目: | ||
}} |
}} |
||
+ | {{Note| |
||
− | {{Note|OpenGL のバージョンが戻ってしまう理由は、Chromium と他のアプリケーションでエクスペリエンスが悪化するためでした。必要であれば、drirc ファイルを編集して特定のアプリケーションに対して gl2.1 を chromium 実行ファイルなどで無効化することもできます ([https://dri.freedesktop.org/wiki/ConfigurationInfrastructure/ 参照])。}} |
||
+ | * OpenGL のバージョンが戻ってしまう理由は、Chromium と他のアプリケーションでエクスペリエンスが悪化するためでした。必要であれば、drirc ファイルを編集して特定のアプリケーションに対して OpenGL 2.1 を {{ic|chromium}} 実行ファイルなどで無効化することもできます ([https://dri.freedesktop.org/wiki/ConfigurationInfrastructure/ 参照])。 |
||
+ | * {{Pkg|mesa}} パッケージに含まれる新しい Gallium ベースの i915 ドライバは、常に OpenGL 2.1 が利用可能であると報告します。なので、このドライバに対しては上記の設定は不要です。 |
||
+ | }} |
||
=== KMS の問題: コンソールが小さい領域に制限される === |
=== KMS の問題: コンソールが小さい領域に制限される === |
||
462行目: | 513行目: | ||
intel_iommu=off |
intel_iommu=off |
||
− | === 低電力 Intel CPU でクラッシュ/フリーズ === |
+ | === 低消費電力 Intel CPU でクラッシュ/フリーズ === |
+ | 低消費電力 Intel プロセッサやノート PC プロセッサは、低消費電力 Intel チップで使用されている電源管理機能に関する問題によりランダムにハングアップ/クラッシュする傾向にあります。そのようなクラッシュが発生する場合、この問題を報告するログは見られないでしょう。以下の[[カーネルパラメータ]]を追加することで、この問題を解決できるかもしれません。 |
||
− | Low-powered Intel processors and/or laptop processors have a tendency to randomly hang or crash due to the problems with the power management features found in low-power Intel chips. If such a crash happens, you will not see any logs reporting this problem. Adding the following [[Kernel parameters]] may help to resolve the problem. |
||
+ | {{Note|以下のカーネルパラメータを3つすべて一緒に使用することは推奨されません。}} |
||
− | {{Note|It is not advised to use all three of the below kernel parameters together.}} |
||
intel_idle.max_cstate=1 i915.enable_dc=0 ahci.mobile_lpm_policy=1 |
intel_idle.max_cstate=1 i915.enable_dc=0 ahci.mobile_lpm_policy=1 |
||
− | {{ic|1=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 のバッテリー寿命が短くなります。 |
||
+ | |||
+ | {{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] に修正されました。 |
||
+ | 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 やディスプレイの電源管理が無効化されている状態でマシンを走らせることは推奨されていません。 |
||
− | {{ic|1=i915.enable_dc=0}} disables GPU power management. This does solve random hangs on certain Intel systems, notably Goldmount and Kaby Lake Refresh chips. Using this parameter does result in higher power use and shorter battery life on laptops/notebooks. |
||
+ | 詳細は [https://linuxreviews.org/Intel_graphics#Kernel_Parameters Linux Reviews] を見てください。 |
||
− | {{ic|1=intel_idle.max_cstate=1}} limits the processors sleep states, it prevents the processor from going into deep sleep states. That is absolutely not ideal and does result in higher power use and lower battery life. However, it does solve random hangs on many Intel systems. Use this if you have a Intel Baytrail or a Kaby Lake Refresh chip. Intel "Baytrail" chips are known to randomly hang without this kernel parameter due to a hardware flaw[https://bugzilla.kernel.org/show_bug.cgi?id=109051#c752]. |
||
− | More information about the max_cstate parameter can be found in the [https://docs.kernel.org/admin-guide/pm/intel_idle.html#kernel-command-line-options-and-module-parameters kernel documentation] and about the cstates in general on a [https://gist.github.com/wmealing/2dd2b543c4d3cff6cab7 writeup on GitHub]. |
||
+ | ==== 高い C ステートで S3 スリープから復帰しなくなってしまう ==== |
||
− | If you try adding {{ic|1=intel_idle.max_cstate=1 i915.enable_dc=0 ahci.mobile_lpm_policy=1}} in the hope of fixing frequent hangs and that solves the issue you should later remove one by one to see which of them actually helped you solve the issue. Running with cstates and display power management disabled is not advisable if the actual problem is related to SATA power management and {{ic|1=ahci.mobile_lpm_policy=1}} is the one that actually solves it. |
||
+ | システムが低頻度で復帰後に黒画面になるが、たいていは正常に復帰できてジャーナルに {{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 ステートで動作させる必要がなくなります。 |
||
− | Check [https://linuxreviews.org/Intel_graphics#Kernel_Parameters Linux Reviews] for more details. |
||
=== 165Hz モニタのサポートを追加する === |
=== 165Hz モニタのサポートを追加する === |
||
510行目: | 565行目: | ||
}} |
}} |
||
+ | === Raptor Lake と Alder Lake-P 上でスリープ/サスペンドから復帰するとフリーズする === |
||
− | === Freeze after wake from sleep/suspend with 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 エントリに関連しています。 |
||
− | Users with Alder Lake-P 12th gen mobile processor laptops from various vendors experienced freeze and black-screen after waking up from suspending. It is because many laptop vendors ship an incorrect VBT (Video BIOS Table) that wrongly describe the actual ports connected to the iGPU. Considering most vendors will not publish a BIOS update for a laptop with a properly working Windows OS, Linux users could only address the issue on the kernel side. You can mitigate the issue by patching and rebuilding the kernel as a temporary remedy: |
||
+ | ほとんどの製造者が、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 をロードする]かです。 |
||
− | {{hc|drivers/gpu/drm/i915/display/intel_display.c.patch|<nowiki> |
||
− | --- a/drivers/gpu/drm/i915/display/intel_display.c |
||
− | +++ b/drivers/gpu/drm/i915/display/intel_display.c |
||
− | @@ -8835,7 +8835,7 @@ static void intel_setup_outputs(struct drm_i915_private *dev_priv) |
||
− | intel_ddi_init(dev_priv, PORT_TC1); |
||
− | } else if (IS_ALDERLAKE_P(dev_priv)) { |
||
− | intel_ddi_init(dev_priv, PORT_A); |
||
− | - intel_ddi_init(dev_priv, PORT_B); |
||
− | + // intel_ddi_init(dev_priv, PORT_B); |
||
− | intel_ddi_init(dev_priv, PORT_TC1); |
||
− | intel_ddi_init(dev_priv, PORT_TC2); |
||
− | intel_ddi_init(dev_priv, PORT_TC3); |
||
+ | カーネルにパッチを当てるには、以下のコマンドの出力を解析して、重複した eDP エントリを特定する必要があります: |
||
− | </nowiki>}} |
||
+ | {{hc|# intel_vbt_decode /sys/kernel/debug/dri/1/i915_vbt| |
||
− | as described in freedesktop issues [https://gitlab.freedesktop.org/drm/intel/-/issues/5531 5531] [https://gitlab.freedesktop.org/drm/intel/-/issues/6401 6401] which have not been solved for months. |
||
+ | 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}} に置き換える以下のカーネルパッチで、この問題を解決できます。 |
||
− | === Alder Lake/UHD 770 で Plasma Desktop 内で Qt エレメントの選択に問題が発生する === |
||
+ | --- a/drivers/gpu/drm/i915/display/intel_bios.c |
||
− | {{Accuracy|Is this limited to the UHD770 alone? Is this limited to the Plasma Desktop or does it also happen on every Qt application regardless of the environment? Should we not recommend uninstalling {{Pkg|xf86-video-intel}} instead? Is this bug reported somewhere?}} |
||
+ | +++ b/drivers/gpu/drm/i915/display/intel_bios.c |
||
+ | @@ -3688,6 +3688,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 から重複したエントリを直接削除する]ことです。 |
||
− | 新しい第12世代あたりの IGP では、Plasma Desktop がほとんど使用不可になるほどの問題が発生する場合があります。アクセラレートされたアイテムの問題であるようです。''glxgears'' を実行すると高フレームレートが報告されますが、アニメーションはアップデートされません。 |
||
− | ここでの解決策は、X 下でのドライバを変更することです。 |
||
+ | VBT をコピーし、16進数エディタで編集して、重複しているデバイスハンドルに対応するデバイスタイプを {{ic|00 00}} に変更します: |
||
− | {{hc|/etc/X11/xorg.conf.d/20-intel.conf| |
||
− | Section "Device" |
||
− | Identifier "Intel Graphics" |
||
− | Driver "modesetting" |
||
− | EndSection |
||
− | }} |
||
+ | $ cat /sys/kernel/debug/dri/0/i915_vbt > vbt |
||
− | === Arc GPU のカーネルサポート === |
||
+ | --- vbt |
||
− | カーネル 6.0 およびそれ以前は、公式には Arc GPU ファミリをまだサポートしていないので、ドライバのロードを強制する必要があります。 |
||
+ | +++ 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 を再生成する]]ことで、ロードすることができます。 |
||
− | ブートローダーで以下の[[カーネルパラメータ]]を設定してください: |
||
− | i915.force_probe=''pci_id'' |
||
+ | === 色が抜けた === |
||
− | PCI ID は以下のコマンドの出力です: |
||
+ | デフォルトでは、一部のモニターは Intel GPU から適切に認識されず、RGB の全範囲が使われないため、色が抜けてしまうことがあります。 |
||
− | $ <nowiki>lspci -nn | grep VGA | sed -n "s/^.\+\[8086:\([[:alnum:]]\{4\}\)\].\+$/\1/p"</nowiki> |
||
+ | ==== Wayland での色の問題を修正する ==== |
||
− | さらに、以下のように {{ic|xorg.conf}} でドライバを設定する必要があります: |
||
− | {{hc|/etc/ |
+ | {{hc|/etc/udev/rules.d/80-i915.rules|2= |
+ | ACTION=="add", SUBSYSTEM=="module", KERNEL=="i915", RUN+="/usr/local/bin/intel-wayland-fix-full-color" |
||
− | Section "Device" |
||
− | Identifier "Intel Graphics" |
||
− | Driver "modesetting" |
||
− | EndSection |
||
}} |
}} |
||
+ | {{hc|/usr/local/bin/intel-wayland-fix-full-color| |
||
− | "fbdev" ドライバも機能します。 |
||
+ | #!/bin/bash |
||
+ | readarray -t proptest_result <<<"$(/usr/bin/proptest -M i915 -D /dev/dri/card0 | grep -E 'Broadcast|Connector')" |
||
− | 完全なドライバサポートが無い場合、3D レンダリングは利用できません。 |
||
+ | |||
+ | 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 |
||
+ | }} |
||
+ | |||
+ | ==== X11/Xorg での色の問題を修正する ==== |
||
+ | |||
+ | # xrandr --output NAME_OF_YOUR_OUTPUT --set "Broadcast RGB" "Full" |
||
== 参照 == |
== 参照 == |
||
* https://01.org/linuxgraphics/documentation (サポートされているハードウェア一覧など) |
* https://01.org/linuxgraphics/documentation (サポートされているハードウェア一覧など) |
||
+ | |||
+ | {{TranslationStatus|Intel graphics|2024-08-24|814986}} |
2024年9月3日 (火) 22:42時点における最新版
Intel はオープンソースドライバの提供とサポートを行なっているので、インテルグラフィックスは基本的にプラグアンドプレイです。
Intel GPU のモデルや関連するチップセットと CPU の包括的なリストは、Wikipedia:Intel Graphics Technology と Gentoo:Intel#Feature support を見てください。
目次
- 1 インストール
- 2 ローディング
- 3 Xorg の設定
- 4 モジュールベースのオプション
- 5 ヒントとテクニック
- 6 トラブルシューティング
- 6.1 ティアリング
- 6.2 垂直同期 (VSYNC) を無効化する
- 6.3 DRI3 の問題
- 6.4 GTK アプリケーションでフォントや画面の表示がおかしい (サスペンド・復帰後に文字が表示されない)
- 6.5 Intel ドライバで X がフリーズ/クラッシュする
- 6.6 認識されない解像度を追加する
- 6.7 バックライトを調整できない
- 6.8 Chromium や Firefox の表示がおかしい/応答しない
- 6.9 Broadwell/Core-M チップでカーネル 4.0 以上を使っている場合にクラッシュする
- 6.10 Windows をゲストとした場合にラグが発生する
- 6.11 画面がちらつく
- 6.12 i915 ドライバで OpenGL 2.1
- 6.13 KMS の問題: コンソールが小さい領域に制限される
- 6.14 Haswell CPU で HDMI 経由で音声が出ない
- 6.15 低消費電力 Intel CPU でクラッシュ/フリーズ
- 6.16 165Hz モニタのサポートを追加する
- 6.17 Raptor Lake と Alder Lake-P 上でスリープ/サスペンドから復帰するとフリーズする
- 6.18 色が抜けた
- 7 参照
インストール
- 以下のパッケージのうち1つをインストールしてください。これらは、3D アクセラレーションのための DRI ドライバを提供します。
- mesa は、第3世代ハードウェアおよびそれ以降用のモダンな Gallium3D ドライバを含む最新の Mesa パッケージです。これを使うことが推奨されます。
- mesa-amber は、第2世代から第11世代までのハードウェア用のクラシックドライバ (Gallium3d でない) です。このドライバは、第7世代及びそれ以前のハードウェアにおいて高いパフォーマンスや安定性をもたらすかもしれませんが、メンテナンスされていません。
- 32ビットアプリケーションのサポートは、multilib リポジトリから lib32-mesa か lib32-mesa-amber パッケージもインストールしてください。
- Xorg で 2D アクセラレーションを提供する DDX ドライバに関しては、以下のうち1つを使ってください:
- xorg-server パッケージに含まれる modesetting ドライバは、第4世代及びそれ以降のハードウェアにおいて推奨されます。これは、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
ドライバによってサポートされており、mkinitcpio v32 から kms
フックがデフォルトで使用されているため (ブートの) 早い段階で有効化されます。他の環境で KMS をブートプロセスのできるだけ早い段階で有効化する方法については カーネルモード設定#KMS の早期開始 を見てください。
GuC/HuC ファームウェアのロードを有効にする
第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 ではデフォルトで有効になっていない場合、手動で有効化できます。
まず、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
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 ドライバを使う
以下のような Xorg 設定ファイルを作成してください:
/etc/X11/xorg.conf.d/20-intel.conf
Section "Device" Identifier "Intel Graphics" Driver "intel" EndSection
その他のオプションは Driver
の下の新しい行にユーザが追加します。
オプションの完全なリストは intel(4) の man ページを参照してください。
AccelMethod
設定ファイルを作成する際に、Option "AccelMethod"
を指定する必要がある場合があります。古典的なオプションは、UXA
、SNA
(デフォルト)、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であるため、チップごとの省電力のデフォルトになります。ただし、モジュールオプション を使用して、より積極的な省電力を構成することも可能です。
フレームバッファー圧縮 (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
Fastboot
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 で説明されているように、(上記の警告で示されている) カーネルパラメータを設定してください。
ヒントとテクニック
スケーリングモードを設定する
フルスクリーンを使うアプリケーションで有用かもしれません:
$ xrandr --output LVDS1 --set PANEL_FITTING param
選べる param
は:
center
: 解像度は定義した通りに固定され、スケーリングは無効になりますfull
: 画面いっぱいまで解像度がスケールしますfull_aspect
: アスペクト比を維持したまま解像度を可能な限り最大までスケールします
うまく行かない場合は、以下を試してみてください:
$ xrandr --output LVDS1 --set "scaling mode" param
param
は "Full"
、"Center"
、"Full aspect"
のいずれかです。
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 はうまく動きました [26]。他の報告も同じようなものでした [27]。BIOS で割当済みビデオ RAM のサイズを高く設定すると、より質の高いハードウェアデコード再生が可能です。これを行うと、1080p h264 でもうまく行きます [28]。スムーズな再生 (1080p/720p) は、mpv-gitAUR、ffmpeg-gitAUR、libva-intel-driver-g45-h264AUR を組み合わせて使うことでもうまく行きます。MPV と Firefox のプラグイン "Send to MPV player"[29] を用いることで、ハードウェアによりアクセラレートされた YouTube ビデオの再生が可能です。
報告される OpenGL のバージョンを上書き
MESA_GL_VERSION_OVERRIDE
環境変数を使うことで、アプリケーションに報告される OpenGL のバージョンを上書きできます。例えば、MESA_GL_VERSION_OVERRIDE=4.5
と設定することで OpenGL 4.5 と報告されるようになります。
モニタリング
- intel_gpu_top — Intel GPU のための top ライクなタスクモニタ (root 権限が必要)
- nvtop — AMD、Intel、NVIDIA のための GPU プロセスモニタリング (現在、Intel GPU に対しては非常に基本的なサポートしかありません)。
明るさとガンマ値の設定
バックライト を見てください。
試験的な新しい 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
詳細は元のバグレポートを見てください。
modesetting ドライバを使う
TearFree サポートが modesetting ドライバに追加されました [31][32]。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 によって問題が発生することがあります [33]。DRI2 を使うには設定ファイルに以下の行を追加してください:
Option "DRI" "2"
modesetting
ドライバーでは上記の方法で DRI3 を無効化することはできません。代わりに LIBGL_DRI3_DISABLE=1
環境変数を設定してください。
GTK アプリケーションでフォントや画面の表示がおかしい (サスペンド・復帰後に文字が表示されない)
GTK アプリケーションでフォントの文字が表示されなくなってしまう場合、以下の方法で直る可能性があります。/etc/environment
を編集して以下の行を追加してください:
/etc/environment
COGL_ATLAS_DEFAULT_BLIT_MODE=framebuffer
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 で表示の乱れ、応答なし、ラグ、低パフォーマンスが発生する場合、以下のような解決策があります。
- AccelMethod を "uxa" に設定する
- VSYNC を無効化する
- TearFree オプションを有効化する
- "DRI" とアクセラレーションのメソッドを無効にする (Intel Iris 第10世代でテスト済み):
Option "NoAccel" "True" Option "DRI" "False"
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
を使ってこの機能を無効化することです。
i915 ドライバで OpenGL 2.1
mesa-amber パッケージに含まれる第3世代 GPU 用の 古い mesa ドライバは、デフォルトでは OpenGL 2.0 が利用可能であると報告します。これは、対象のハードウェアが OpenGL 2.1 とは完全に互換性がないことが原因です。[34] 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>
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 チップで使用されている電源管理機能に関する問題によりランダムにハングアップ/クラッシュする傾向にあります。そのようなクラッシュが発生する場合、この問題を報告するログは見られないでしょう。以下のカーネルパラメータを追加することで、この問題を解決できるかもしれません。
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 のバッテリー寿命が短くなります。
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 ステートを効果的に制御することができます。[35] そうすることで、CPU を常に低い C ステートで動作させる必要がなくなります。
165Hz モニタのサポートを追加する
一部の 165Hz モニタで、xrandr が 165Hz のオプションを表示しない場合があり、さらに #認識されない解像度を追加する の方法ではこれを解決できません。この場合、i915-driver-stuck-at-40hz-on-165hz-screen を見てください。
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 @@ -3688,6 +3688,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 を再生成することで、ロードすることができます。
色が抜けた
デフォルトでは、一部のモニターは 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
X11/Xorg での色の問題を修正する
# xrandr --output NAME_OF_YOUR_OUTPUT --set "Broadcast RGB" "Full"
参照
- https://01.org/linuxgraphics/documentation (サポートされているハードウェア一覧など)