「インテルグラフィックス」の版間の差分
→Xorg の設定: 同期 |
同期 |
||
| (4人の利用者による、間の41版が非表示) | |||
| 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]] |
||
{{Related articles start}} |
{{Related articles start}} |
||
{{Related|Intel GMA 3600}} |
|||
{{Related|Xorg}} |
{{Related|Xorg}} |
||
{{Related| |
{{Related|カーネルモード設定}} |
||
{{Related|Xrandr}} |
{{Related|Xrandr}} |
||
{{Related|ハイブリッドグラフィック}} |
{{Related|ハイブリッドグラフィック}} |
||
| 17行目: | 15行目: | ||
{{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 ベースのグラフィックカード (GMA 3600 シリーズ) はオープンソースドライバではサポートされていません。 |
|||
* Intel 第 ''N'' 世代 (Gen ''N'') ハードウェアという記述は、CPU の世代を指すものではなく、[[Wikipedia:List of Intel graphics processing units|GPU の世代]]を指しています。これは CPU の世代とは異なります。 |
|||
* あなたのカードを特定する方法については [[画像処理装置#インストール]] を参照してください。 |
|||
}} |
|||
== インストール == |
== インストール == |
||
* 以下のパッケージのうち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'' ドライバは、第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}} パッケージをインストールしてください。 |
|||
[[ハードウェアビデオアクセラレーション]]も見てください。 |
[[ハードウェアビデオアクセラレーション]]も見てください。 |
||
{{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行目: | 50行目: | ||
正常にロードされない場合は: |
正常にロードされない場合は: |
||
* 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}} ドライバと {{ic|xe}} ドライバによってサポートされており、[[mkinitcpio]] v32 から {{ic|kms}} [[mkinitcpio#通常のフック|フック]]がデフォルトで使用されているため (ブートの) 早い段階で有効化されます。他の環境で KMS をブートプロセスのできるだけ早い段階で有効化する方法については [[カーネルモード設定#KMS の早期開始]] を見てください。 |
|||
[[Kernel Mode Setting]] (KMS) は、i915 DRM ドライバーを使用するインテルチップセットでサポートされています。KMS は必須であり、デフォルトで有効になっています。 |
|||
起動プロセスにおいてできるだけ早く KMS を有効にする方法については、[[Kernel Mode Setting#Early KMS start]] を参照してください。 |
|||
=== GuC/HuC ファームウェアのロードを有効にする === |
=== GuC/HuC ファームウェアのロードを有効にする === |
||
第9世代から (Skylake およびそれ以降)、Intel GPU には以下の機能を提供する ''Graphics micro (μ) Controller'' (GuC) が搭載されています: |
|||
{{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]: |
|||
* 一部のメディアデコード機能を 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) で導入されました。 |
||
この機能を使うには、 |
この機能を使うには、まず、{{Pkg|linux-firmware-intel}} が[[インストール]]されていることを確認してください。このパッケージは、GuC と HuC のファームウェアファイルを提供するからです。 |
||
次に、GuC ファームウェアをロードする必要があります。HuC のサポートに関しては、一部のビデオ機能 (SKL 低電力エンコードモードでの CBR レート制御) が、HuC ファームウェアのロードも必要とします[https://github.com/intel/media-driver#known-issues-and-limitations]。 |
|||
GuC の機能は {{ic|1=i915.enable_guc}} [[カーネルパラメータ]] によって制御されます。このパラメータのし予報は以下の通りです: |
|||
[[#試験的な新しい Xe ドライバをテストする|新しい試験的な]] {{ic|xe}} ドライバは、GuC と HuC の機能がデフォルトで有効化されています。 |
|||
{{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" |
{| class="wikitable" |
||
| 71行目: | 83行目: | ||
|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行目: | 90行目: | ||
{{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 ファームウェアのロードを有効化すると、一部のシステムで問題が発生する可能性があります。(ハイバネートから復帰したあとなどに) フリーズが発生する場合は、無効化してください。}} |
||
{{ic|1=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= |
||
options i915 enable_guc= |
options i915 enable_guc=3 |
||
}} |
}} |
||
[[Initramfs を再生成する|Initramfs を再生成]] してください。次回の起動時に [[dmesg]] を使うことで GuC と HuC が両方有効化されていることを確認できます: |
|||
そして、[[mkinitcpio#手動生成|initramfs を再ビルド]]してください。 |
|||
{{hc|# dmesg {{!}} grep -i -e 'huc' -e 'guc'|2= |
|||
次回の起動時に [[dmesg]] を使うことで GuC と HuC が両方有効化されていることを確認できます: |
|||
{{hc|# dmesg|2= |
|||
[30130.586970] i915 0000:00:02.0: [drm] GuC firmware i915/icl_guc_33.0.0.bin version 33.0 submission:disabled |
[30130.586970] i915 0000:00:02.0: [drm] GuC firmware i915/icl_guc_33.0.0.bin version 33.0 submission:disabled |
||
[30130.586973] i915 0000:00:02.0: [drm] HuC firmware i915/icl_huc_9.0.0.bin version 9.0 authenticated:yes |
[30130.586973] i915 0000:00:02.0: [drm] HuC firmware i915/icl_huc_9.0.0.bin version 9.0 authenticated:yes |
||
| 99行目: | 105行目: | ||
あなたのグラフィックアダプタで GuC と HuC がサポートされていない場合、以下が出力されます |
あなたのグラフィックアダプタで GuC と HuC がサポートされていない場合、以下が出力されます |
||
{{hc|# dmesg|2= |
{{hc|# dmesg {{!}} grep -i -e 'huc' -e 'guc'|2= |
||
[ 0.571339] i915 0000:00:02.0: [drm] Incompatible option enable_guc=2 - GuC is not supported! |
[ 0.571339] i915 0000:00:02.0: [drm] Incompatible option enable_guc=2 - GuC is not supported! |
||
[ 0.571340] i915 0000:00:02.0: [drm] Incompatible option enable_guc=2 - HuC is not supported! |
[ 0.571340] i915 0000:00:02.0: [drm] Incompatible option enable_guc=2 - HuC is not supported! |
||
| 106行目: | 112行目: | ||
あるいは、以下で確認できます: |
あるいは、以下で確認できます: |
||
# |
# less /sys/kernel/debug/dri/*/gt0/uc/guc_info |
||
# |
# 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]] を使用することは、 |
{{Note|1=GuC/HuC が有効化されている場合に {{ic|1=enable_gvt=1}} を設定して [[Intel GVT-g|GVT-g graphics virtualization]] を使用することは、Linux 4.20.11 現在ではサポートされていません。システムのジャーナルに出力される通り、i915 モジュールの初期化に失敗します。 |
||
{{hc|# journalctl| |
{{hc|# journalctl| |
||
| 127行目: | 133行目: | ||
== Xorg の設定 == |
== Xorg の設定 == |
||
たいてい、[[Xorg]] を実行するために設定は特に必要ありません。 |
|||
{{Note|以下は {{Pkg|xf86-video-intel}} が必要です。}} |
|||
しかし、ドライバのオプションを活用したい場合や、[[Xorg]] が起動しない場合などは、Xorg の設定ファイルを作成することができます。 |
|||
[[Xorg]] を実行するのに設定は必要ないかもしれません。 |
|||
=== modesetting ドライバを使う === |
|||
{{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行目: | 164行目: | ||
オプションの完全なリストは {{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}} です。 |
||
| 155行目: | 176行目: | ||
{{man|4|intel|CONFIGURATION DETAILS}} の "AccelMethod" オプションをご覧ください。 |
{{man|4|intel|CONFIGURATION DETAILS}} の "AccelMethod" オプションをご覧ください。 |
||
==== 最近の GPU で Intel DDX ドライバを使用する ==== |
|||
== モジュールベースオプション == |
|||
第8世代 (Broadwell) からの Intel GPU では、Iris Mesa ドライバが必要です: |
|||
{{ic|i915}} カーネルモジュールでは、[https://wiki.archlinux.jp/index.php/%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB#.E3.83.A2.E3.82.B8.E3.83.A5.E3.83.BC.E3.83.AB.E3.82.AA.E3.83.97.E3.82.B7.E3.83.A7.E3.83.B3.E3.82.92.E8.A8.AD.E5.AE.9A.E3.81.99.E3.82.8B モジュールオプション] を介して構成できます。一部のモジュールオプションは、省電力に影響を与えます。 |
|||
Option "DRI" "iris" |
|||
次のコマンドを使用して、すべてのオプションのリストと簡単な説明およびデフォルト値を生成できます。 |
|||
==== TearFree、TripleBuffer、SwapbuffersWait を無効化する ==== |
|||
コンポジタを使用している場合 (GNOME、KDE Plasma、Xfce などの最近のデスクトップ環境ではデフォルトです)、通常、TearFree、TripleBuffer、SwapbuffersWait を無効化することでパフォーマンスを向上させ、電力消費量を削減することができます。 |
|||
Option "TearFree" "false" |
|||
Option "TripleBuffer" "false" |
|||
Option "SwapbuffersWait" "false" |
|||
== モジュールベースのオプション == |
|||
{{ic|i915}} カーネルモジュールにより、[[カーネルモジュール#モジュールオプションを設定する|モジュールオプション]] を介して設定できます。一部のモジュールオプションは、省電力に影響を与えます。 |
|||
次のコマンドを使用して、すべてのオプションのリストと簡単な説明およびデフォルト値を生成できます: |
|||
$ modinfo -p i915 |
$ modinfo -p i915 |
||
| 167行目: | 202行目: | ||
# systool -m i915 -av |
# systool -m i915 -av |
||
多くのオプションのデフォルトは-1であるため、チップごとの省電力のデフォルトになります。ただし、[[カーネルモジュール# |
多くのオプションのデフォルトは-1であるため、チップごとの省電力のデフォルトになります。ただし、[[カーネルモジュール#モジュールオプションを設定する|モジュールオプション]] を使用して、より積極的な省電力を構成することも可能です。 |
||
{{ |
{{Note|1=Linux 3.18 以降、これらのデフォルトから逸脱すると、カーネルが [https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=fc9740cebc3ab7c65f3c5f6ce0caf3e4969013ca tainted] (汚染された) としてマークされます。これは基本的に、チップごとのデフォルト以外のオプションの使用は実験的なものと見なされ、開発者によってサポートされていないことを意味します。}} |
||
=== フレームバッファー圧縮 (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= |
||
| 181行目: | 222行目: | ||
}} |
}} |
||
{{Note| |
|||
{{Note|フレームバッファー圧縮は、Sandy Bridge(第6世代)より前の Intel GPU 世代では信頼できないか、使用できない場合があります。これにより、次のようなメッセージがシステムジャーナルに記録されます。 |
|||
フレームバッファー圧縮は、Sandy Bridge(第6世代)より前の Intel GPU 世代では信頼できないか、使用できない場合があります。これにより、次のようなメッセージがシステムジャーナルに記録されます: |
|||
ernel: drm: not enough stolen space for compressed buffer, disabling. |
|||
[drm] not enough stolen space for compressed buffer (need 4325376 bytes), disabling |
|||
Sandy Bridge 以前の CPU でフレームバッファー圧縮を有効にすると、次のようなエラーメッセージが表示されます。 |
|||
[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/] |
|||
{{hc|$ dmesg| |
|||
[ 2360.475430] [drm] not enough stolen space for compressed buffer (need 4325376 bytes), disabling |
|||
[ 2360.475437] [drm] hint: you may be able to increase stolen memory size in the BIOS to avoid this |
|||
}} |
}} |
||
解決策は、フレームバッファー圧縮を無効にすることです。これにより、消費電力がいつの間にか増加します(約0.06W)。無効にするには、カーネルラインパラメータに {{ic|1=i915.enable_fbc=0}} を追加します。無効化された圧縮の結果の詳細については、 [http://kernel.ubuntu.com/~cking/power-benchmarking/background-colour-and-framebuffer-compression/ こちら] を参照してください。}} |
|||
=== 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 からこのパラメータがデフォルトで有効化されていました [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 または [https://wiki.archlinux.jp/index.php/Arch_%E3%83%96%E3%83%BC%E3%83%88%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9#.E3.83.96.E3.83.BC.E3.83.88.E3.83.AD.E3.83.BC.E3.83.80.E3.83.BC ブートローダー] によってセットアップされたフレームバッファーを保持して、 [[Xorg]] が開始されるまでちらつきを回避することです [https://www.phoronix.com/scan.php?page=news_item&px=MTEwNzc] |
|||
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] |
|||
fastboot を有効にするには、{{ic|1=i915.fastboot=1}} を [[カーネルパラメータ]] として設定するか、{{ic|/etc/modprobe.d/i915.conf}} に設定します。 |
|||
fastboot がデフォルトでないプラットフォーム上で fastboot を有効にするには、{{ic|1=i915.fastboot=1}} を [[カーネルパラメータ]] として設定するか、{{ic|/etc/modprobe.d/i915.conf}} に以下を設定します: |
|||
{{hc|/etc/modprobe.d/i915.conf|2= |
{{hc|/etc/modprobe.d/i915.conf|2= |
||
| 204行目: | 243行目: | ||
}} |
}} |
||
=== Intel GVT-g グラフィック仮想化のサポート=== |
|||
{{Warning|1=このパラメータはデフォルトでは有効になっておらず、一部の古い (Skylake以前の) システムで問題が発生する可能性があります。[https://www.phoronix.com/scan.php?page=news_item&px=Intel-Fastboot-Default-2019-Try]}} |
|||
=== IntelGVT-gグラフィック仮想化のサポート=== |
|||
詳細については、 [[Intel GVT-g]] を参照してください。 |
|||
=== モジュールによる省電力設定 === |
|||
{{ic|i915}} カーネルモジュールは[[カーネルモジュール#モジュールオプションを設定する|モジュールオプション]]によって設定ができます。モジュールオプションの中には省電力機能に関係するものもあります。 |
|||
次のコマンドを使うことで全てのオプションとその説明、デフォルト値のリストが出力されます: |
|||
$ modinfo -p i915 |
|||
現在有効になっているオプションを確認するには、次を実行して下さい: |
|||
# systool -m i915 -av |
|||
多くのオプションはデフォルトで -1 になっており、チップのデフォルトの省電力設定が使われます。ただし、[[カーネルモジュール#モジュールオプションを設定する|モジュールオプション]]を使うことでより強力な省電力設定をすることができます。 |
|||
{{Warning|1=Linux 3.18 から、デフォルト以外の設定をするとカーネルが [https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=fc9740cebc3ab7c65f3c5f6ce0caf3e4969013ca tainted] になります。基本的に、デフォルト以外の設定オプションは実験的なものであり、開発者によるサポートはありません。}} |
|||
安全に有効にすることができる一般的なオプションは以下のようになります: |
|||
{{hc|/etc/modprobe.d/i915.conf|<nowiki> |
|||
options i915 enable_rc6=1 enable_fbc=1 semaphores=1 |
|||
</nowiki>}} |
|||
詳細については [[Intel GVT-g]] を参照してください。 |
|||
=== RC6 スリープモード (enable_rc6) === |
|||
=== パフォーマンスサポートを有効化する === |
|||
{{ic|enable_rc6}} には 1 よりも大きい値が設定できますが、使用している GPU がオプションをサポートしていなかったり他のオプションを有効にできるなくなる可能性があります [https://wiki.archlinux.org/index.php?title=Talk:Intel_Graphics&oldid=327547#Kernel_Module_options]。 |
|||
第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]。 |
|||
{{ic|enable_rc6}} に設定できる値は 1 (RC6), 2 (RC6p), 4 (RC6pp) のビットマスクです [https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/gpu/drm/i915/intel_pm.c#n34]。"RC6p" や "RC6pp" は電力消費がより少ないステートになります。 |
|||
デフォルトでは、[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]。ほとんどのアプリケーションはこれらのケイパビリティを持たずに実行されるため、以下の警告が出力されます: |
|||
現在の RC6 レベルを確認するには、sysfs を見てください: |
|||
MESA-INTEL: warning: Performance support disabled, consider sysctl dev.i915.perf_stream_paranoid=0 |
|||
# cat /sys/class/drm/card0/power/rc6_enable |
|||
これらのケイパビリティ (または root) を使わずにパフォーマンスサポートを有効化するには、[[sysctl]] で説明されているように、(上記の警告で示されている) カーネルパラメータを設定してください。 |
|||
出力された数字が低い場合、おそらく他の RC6 レベルがサポートされていません。{{ic|1=drm.debug=0xe}} を使うことで DRM のデバッグ情報をカーネルログに追加することができます: |
|||
{{Warning|アプリケーションにパフォーマンスデータへのアクセスを許してしまうなどのリスクが存在するため、{{ic|perf_event_paranoid}} ファミリのオプションには制限的なデフォルトが存在します [https://docs.kernel.org/admin-guide/perf-security.html]。とはいえ、{{ic|dev.i915.perf_stream_paranoid}} は GPU パフォーマンスカウンタへのアクセスにしか影響せず、CPU アーキテクチャ実行コンテキストレジスタなどと比べれば低リスクです。}} |
|||
[drm:sanitize_rc6_option] Adjusting RC6 mask to 1 (requested 7, valid 1) |
|||
== ヒントとテクニック == |
== ヒントとテクニック == |
||
| 267行目: | 280行目: | ||
{{Note|1=上記のオプションは外部ディスプレイは現在のところ機能しません (例: VGA, DVI, HDMI, DP) [https://bugs.freedesktop.org/show_bug.cgi?id=90989]。}} |
{{Note|1=上記のオプションは外部ディスプレイは現在のところ機能しません (例: VGA, DVI, HDMI, DP) [https://bugs.freedesktop.org/show_bug.cgi?id=90989]。}} |
||
=== GMA 4500 での H.264 デコードのハードウェアアクセラレーション === |
|||
{{Pkg|libva-intel-driver}} パッケージは、一部の GMA 4500 シリーズ GPU での MPEG-2 デコードのハードウェアアクセラレーションのみを提供します (H.264 デコードは提供しません)。あなたの GPU も関係しているどうかを確かめるには、そのドライバと {{Pkg|libva-utils}} パッケージの両方をインストールしてください。そして、{{ic|vainfo}} ツールの出力を見て、{{ic|VAProfileH264}} で始まるエントリがどれだけあるかを見てください。 |
|||
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 のバージョンを上書き === |
||
| 288行目: | 289行目: | ||
=== モニタリング === |
=== モニタリング === |
||
[[ハードウェアビデオアクセラレーション#確認]] を見てください。 |
|||
* {{App|intel_gpu_top|Intel GPU のための top ライクなタスクモニタ (root 権限が必要)|https://gitlab.freedesktop.org/drm/igt-gpu-tools|{{Pkg|intel-gpu-tools}}}} |
|||
* {{App|nvtop|AMD、Intel、NVIDIA のための GPU プロセスモニタリング (現在、Intel GPU に対しては非常に基本的なサポートしかありません)。|https://github.com/Syllo/nvtop|{{Pkg|nvtop}}}} |
|||
=== 明るさとガンマ値の設定 === |
=== 明るさとガンマ値の設定 === |
||
| 295行目: | 295行目: | ||
[[バックライト]] を見てください。 |
[[バックライト]] を見てください。 |
||
=== 試験的な新しい Xe ドライバをテストする === |
|||
== トラブルシューティング == |
|||
(試験的な) [https://docs.kernel.org/gpu/xe/index.html 新しい Xe ドライバ]を試すには、以下が必要です: |
|||
=== Glxgears のパフォーマンスがでない === |
|||
* {{Pkg|linux}} 6.8 以上 |
|||
{{Note|{{ic|glxgears}} は複数のシステム間でのパフォーマンスを比較するためのベンチマークではありません。}} |
|||
* [[Wikipedia:ja:Tiger Lake|Tiger Lake]] 及びそれ以降の統合グラフィックス、またはディスクリートグラフィックカード。 |
|||
* {{Pkg|mesa}}。 |
|||
以下のコマンドで PCI ID を確認してください: |
|||
グラフィックパフォーマンスを調べるために {{ic|glxgears}} を動かした時、結果が 60 FPS を前後することに気づいたかもしれません。例えば: |
|||
{{hc|$ lspci -nnd ::03xx| |
|||
[...] |
|||
00:02.0 VGA compatible controller [0300]: Intel Corporation TigerLake-LP GT2 [Iris Xe Graphics] [8086:'''9a49'''] (rev 01) |
|||
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 |
|||
[...] |
|||
これはパフォーマンスの欠落によるものではありません。ディスプレイのリフレッシュレートにあわせて、[[Wikipedia:Analog television#Vertical synchronization|垂直同期]]を行なっているためです。 |
|||
環境変数 {{ic|1=vblank_mode=0}} を付けることで垂直同期を無効にして {{ic|glxgears}} を実行できます: |
|||
$ vblank_mode=0 glxgears |
|||
=== DRI3 の問題 === |
|||
{{Pkg|xf86-video-intel}} ではデフォルトで ''DRI3'' が使われます。一部の環境では DRI3 によって問題が発生することがあります [https://bugs.chromium.org/p/chromium/issues/detail?id=370022]。''DRI2'' を使うには[[#設定|設定ファイル]]に以下の行を追加してください: |
|||
Option "DRI" "2" |
|||
{{ic|modesetting}} ドライバーでは上記の方法では DRI3 を無効化することはできません。代わりに {{ic|1=LIBGL_DRI3_DISABLE=1}} 環境変数を設定してください。 |
|||
=== GTK+ アプリケーションでフォントや画面の表示がおかしい (サスペンド・復帰後に文字が表示されない) === |
|||
GTK+ アプリケーションでフォントの文字が表示されなくなってしまう場合、以下の方法で直る可能性があります。{{ic|/etc/environment}} を[[ヘルプ:読み方#追加, 作成, 編集 そして source|編集]]して以下の行を追加してください: |
|||
{{hc|/etc/environment|output= |
|||
COGL_ATLAS_DEFAULT_BLIT_MODE=framebuffer |
|||
}} |
}} |
||
そして、適切な PCI ID を使って以下を[[カーネルパラメータ]]に追加してください: |
|||
詳しくは [https://bugs.freedesktop.org/show_bug.cgi?id=88584 FreeDesktop bug 88584] を参照。 |
|||
... i915.force_probe=!'''9a49''' xe.force_probe='''9a49''' |
|||
=== 起動中 "Loading modules" するときに画面がブラックアウトする === |
|||
必要なときに元に戻すためのブート手段を確保しておいてください。 |
|||
KMS の"遅いスタート"を使っているとき "Loading modules" で画面がブラックアウトする場合、initramfs に {{ic|i915}} と {{ic|intel_agp}} を加えると解決するかもしれません。[[#KMS (Kernel Mode Setting)|上記の]] KMS セクションを見て下さい。 |
|||
== トラブルシューティング == |
|||
または、次の[[カーネルパラメータ]]を加えるとうまく動くかもしれません: |
|||
video=SVIDEO-1:d |
|||
=== ティアリング === |
|||
VGA に出力する必要があるときは次を使ってみて下さい: |
|||
==== Intel ドライバを使う ==== |
|||
video=VGA-1:1280x800 |
|||
SNA アクセラレーションメソッドを取っている場合、一部のマシン上でティアリングが発生します。これを修正するには、以下の行を[[#Xorg の設定|設定ファイル]]に追加して {{Pkg|xf86-video-intel}} ドライバの {{ic|TearFree}} オプションを有効化してください: |
|||
=== ティアリングの解消 === |
|||
SNA アクセラレーションメソッドを使っている場合、ティアリングが発生することがあります。これを解消するには、ドライバーの {{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" |
|||
Driver "intel" |
|||
Option "TearFree" "true" |
|||
EndSection}} |
EndSection}} |
||
詳 |
詳細は[https://bugs.freedesktop.org/show_bug.cgi?id=37686 元のバグレポート]を見てください。 |
||
{{Note| |
{{Note|1=<nowiki/> |
||
* {{ic|SwapbuffersWait}} が {{ic|false}} のとき |
* このオプションは、{{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}} を使う必要があります。 |
|||
X のクラッシュや GPU のハングアップ、X のフリーズなどが起こる場合、{{ic|NoAccel}} オプションを使って GPU の使用を無効にすることで修復できます: |
|||
{{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" |
|||
Driver "modesetting" |
|||
Option "TearFree" "true" |
|||
EndSection}} |
EndSection}} |
||
=== 垂直同期 (VSYNC) を無効化する === |
|||
または、{{ic|DRI}} オプションを使って 3D アクセラレーションだけを無効にすることもできます: |
|||
{{hc|/etc/X11/xorg.conf.d/20-intel.conf| |
|||
Section "Device" |
|||
Identifier "Intel Graphics" |
|||
Driver "intel" |
|||
Option "DRI" "False" |
|||
EndSection}} |
|||
以下のような場合に便利です: |
|||
設定ファイルに以下のオプションを使うとクラッシュする場合は: |
|||
* Chromium/Chrome が、GPU のせいでラグくパフォーマンスが悪く、--disable-gpu スイッチを使うとスムーズに動作する場合。 |
|||
Option "TearFree" "true" |
|||
* glxgears テストが期待するほどのパフォーマンスを発揮してくれない場合。 |
|||
Option "AccelMethod" "sna" |
|||
intel ドライバは垂直同期に [https://www.intel.com/support/graphics/sb/CS-004527.htm Triple Buffering] を使用します。これは、完全なパフォーマンスとティアリングの回避を可能にします。垂直同期をオフにするには (例えば、ベンチマークのために)、以下の {{ic|.drirc}} をホームディレクトリ内に追加してください: |
|||
ブートパラメータに次を追加すると修正できます: |
|||
{{hc|~/.drirc|2= |
|||
i915.semaphores=1 |
|||
<device screen="0" driver="dri2"> |
|||
<application name="Default"> |
|||
<option name="vblank_mode" value="0"/> |
|||
</application> |
|||
</device> |
|||
}} |
|||
=== DRI3 の問題 === |
|||
カーネル 4.0.x 以上で Baytrail アーキテクチャを利用している場合にシステムが何度もフリーズする (特に動画を見たり GFX を集中使用したときに発生する) ようなときは、以下のカーネルオプションを追加することで解決します。詳しくは [https://bugzilla.kernel.org/show_bug.cgi?id=109051 こちら] を参照してください。 |
|||
{{Pkg|xf86-video-intel}} では DIR バージョンのデフォルトは ''DRI3'' です。一部の環境では DRI3 によって問題が発生することがあります [https://bugs.chromium.org/p/chromium/issues/detail?id=370022]。''DRI2'' を使うには[[#Xorg の設定|設定ファイル]]に以下の行を追加してください: |
|||
intel_idle.max_cstate=1 |
|||
Option "DRI" "2" |
|||
=== 認識されない解像度を追加する === |
|||
{{ic|modesetting}} ドライバーでは上記の方法で DRI3 を無効化することはできません。代わりに {{ic|1=LIBGL_DRI3_DISABLE=1}} 環境変数を設定してください。 |
|||
この問題については [[Xrandr#検出されない解像度を追加する|Xrandr のページ]]を参照してください。 |
|||
=== |
=== GTK アプリケーションでグリフが表示されない === |
||
GTK アプリケーションでフォントの文字が表示されなくなってしまう場合、以下の方法で直る可能性があります。{{ic|/etc/environment}} を[[編集]]して以下の行を追加してください: |
|||
Intel-DRI 8 と libGL 8 に[[ダウングレード]]してください。 |
|||
{{hc|/etc/environment|output= |
|||
=== ビデオゲームでテクスチャが真っ黒 === |
|||
COGL_ATLAS_DEFAULT_BLIT_MODE=framebuffer |
|||
}} |
|||
[https://bugs.freedesktop.org/show_bug.cgi?id=88584 FreeDesktop bug 88584] も参照。 |
|||
ビデオゲームでテクスチャが黒くなる場合、S3TC テクスチャコンプレッションのサポートを有効にすることで解決できます。{{AUR|driconf}} を使って有効にするか、 {{AUR|libtxc_dxtn}} をインストールしてください。 |
|||
=== グラフィックがおかしい、固まる === |
|||
この"問題"は[https://www.phoronix.com/scan.php?page=news_item&px=MTIwOTg 新しいドライバ]で修正される予定です。 |
|||
一部のアプリケーションでグラフィックがおかしい/固まる問題が発生する場合は (アプリケーションのウィンドウがランダムな色で埋まる、ひどくぼやける、ラグが無いにも関わらず他のタスクを実行中にアプリケーションのグラフィックの更新が行われなくなるなど)、問題の起こるアプリケーションを [[Vulkan]] ではなく [[OpenGL]] で実行してみてください。このような問題は Intel Arc GPU の一部構成で起こります。 |
|||
S3TC についての詳しい情報は: |
|||
http://dri.freedesktop.org/wiki/S3TC |
|||
http://ja.wikipedia.org/wiki/DXTC |
|||
=== Intel ドライバで X がフリーズ/クラッシュする === |
|||
この問題が起こるゲームのひとつは [https://www.phoronix.com/scan.php?page=article&item=unigine_oilrush_gold&num=2 Oil Rush] です。 |
|||
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 のページ]] で扱っています。 |
|||
acpi_osi="!Windows 2012" |
|||
=== バックライトを調整できない === |
|||
または: |
|||
サスペンドから復帰したあとにホットキーを使用してスクリーンの輝度を変更できない場合、[[バックライト]]の記事を見てあなたの設定ファイルをチェックしてみてください。 |
|||
acpi_osi= |
|||
問題が解消されない場合は、以下の[[カーネルパラメータ]]のうち1つを試してください: |
|||
を使うことで解決できるかもしれません。 |
|||
acpi_osi=Linux |
|||
また、カーネルバージョン 3.13 から、ユーザーによっては効果があるカーネルコマンドラインのパラメータがあります: |
|||
acpi_osi="!Windows 2012" |
|||
video.use_native_backlight=1 |
|||
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 知られています]。 |
|||
上記のどの方法を使っても問題が解決されない場合、以下の内容で {{ic|/etc/X11/xorg.conf.d/20-intel.conf}} を編集・作成してください: |
|||
=== Chromium や Firefox の表示がおかしい/応答しない === |
|||
{{hc|/etc/X11/xorg.conf.d/20-intel.conf| |
|||
Section "Device" |
|||
Identifier "card0" |
|||
Driver "intel" |
|||
Option "Backlight" "intel_backlight" |
|||
BusID "PCI:0:2:0" |
|||
Chromium や Firefox で表示の乱れ、応答なし、ラグ、低パフォーマンスが発生する場合、以下のような解決策があります。 |
|||
EndSection}} |
|||
* [[#AccelMethod|AccelMethod を "uxa" に設定する]] |
|||
=== フレームバッファ圧縮の無効化 === |
|||
* [[#垂直同期 (VSYNC) を無効化する|VSYNC を無効化する]] |
|||
* [[#ティアリング|TearFree オプションを有効化する]] |
|||
Intel Corporation Mobile 4 シリーズのチップセットなど、Sandy Bridge 以前のカードでフレームバッファ圧縮を有効にするとエラーメッセージが延々と表示されます: |
|||
* "DRI" とアクセラレーションのメソッドを無効にする (第10世代でテスト済み): {{bc|<nowiki> |
|||
Option "NoAccel" "True" |
|||
$ dmesg | tail |
|||
Option "DRI" "False" |
|||
[ 2360.475430] [drm] not enough stolen space for compressed buffer (need 4325376 bytes), disabling |
|||
</nowiki>}} |
|||
[ 2360.475437] [drm] hint: you may be able to increase stolen memory size in the BIOS to avoid this |
|||
解決方法はフレームバッファ圧縮を無効化することで、これによって少しだけ電力消費が増えます。無効化するには {{ic|i915.enable_fbc=0}} をカーネルラインパラメータに追加してください。圧縮の無効化による効果については [http://zinc.canonical.com/~cking/power-benchmarking/background-colour-and-framebuffer-compression/results.txt ここ] に詳しい情報が載っています。 |
|||
=== Chromium や Firefox が壊れる、応答しない === |
|||
Chromium や Firefox の表示がおかしくなったり、反応しなくなる場合は[[#アクセラレーションメソッドの選択|アクセラレーションメソッド]]を "uxa" に設定してみてください。 |
|||
=== TTY を切り替えた時に垂直同期がされなくなる === |
|||
カーネル 3.19.3 以降にはリグレッションが存在し (古いカーネルにも存在する可能性あり)、Broadwell のマシンで TTY を切り替えると垂直同期が消失します [https://bugzilla.kernel.org/show_bug.cgi?id=95741]。修正するには、カーネルコマンドラインに {{ic|<nowiki>i915.enable_ips=0</nowiki>}} を追加するか、カーネル 4.1 を使っている場合、[https://cgit.freedesktop.org/drm-intel/commit/?id=184e4c49484501f3061ae9b267af818c6894fea9 こちら] のパッチを使ってカーネルを再ビルドします。メインラインカーネルには 4.2-rc1 で修正が入っています。 |
|||
=== ビデオやウェブカメラの出力にピンクと緑のゴミが入る === |
|||
Broadwell のマシンで ''xv''出力や Intel Textured Video を使用するアプリケーション (Skype や VLC) を使うと、ビデオストリームにピンクと緑の乱れが入ることがあります。これは Broadwell のビデオの問題で、上流では2015年4月16日に修正されています [https://bugs.freedesktop.org/show_bug.cgi?id=89807]。{{pkg|xf86-video-intel}} をアップデートすると修正されます。 |
|||
=== Broadwell/Core-M チップでカーネル 4.0 以上を使っている場合にクラッシュする === |
=== Broadwell/Core-M チップでカーネル 4.0 以上を使っている場合にクラッシュする === |
||
X/Wayland がロードされた数秒 |
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) |
||
| 498行目: | 454行目: | ||
Jun 16 17:54:03 hostname kernel: RIP [< (null)>] (null) |
Jun 16 17:54:03 hostname kernel: RIP [< (null)>] (null) |
||
この問題は execlist のサポート (カーネル 4.0 からデフォルトに変更されました) を無効化することで解決します。以下の[[カーネルパラメータ]]を追加してください: |
この問題は execlist のサポート (カーネル 4.0 からデフォルトに変更されました) を無効化することで解決します。以下の[[カーネルパラメータ]]を追加してください: |
||
i915.enable_execlists=0 |
i915.enable_execlists=0 |
||
これは、カーネル 4.0.5 以上で壊れていることが知られています。 |
|||
===Skylake サポート=== |
|||
=== Windows をゲストとした場合にラグが発生する === |
|||
i915 DRM ドライバーは様々な GPU のハングアップやクラッシュ、あるいはシステムの完全なフリーズを引き起こすことが知られています。問題を回避するにはハードウェアアクセラレーションを無効化する必要があるかもしれません。解決方法として以下の Xorg 設定を使う方法があります: |
|||
VirtualBox でホスト側から(マウスカーソルを動かすなどして)画面を更新しないと Windows ゲストのビデオ出力が止まってしまうことがあります。{{ic|1=enable_fbc=1}} オプションを削除すれば問題は解決します。 |
|||
{{hc|/etc/X11/xorg.conf.d/20-intel.conf| |
|||
Section "Device" |
|||
=== 画面がちらつく === |
|||
Identifier "Intel Graphics" |
|||
Driver "intel" |
|||
Intel iGPU で使用される省電力機能 Panel Self Refresh (PSR) は、一部の例でちらつきを発生させることが知られています {{Bug|49628}} {{Bug|49371}} {{Bug|50605}}。一時的な解決策は、[[カーネルパラメータ]] {{ic|1=i915.enable_psr=0}} または {{ic|1=xe.enable_psr=0}} を使ってこの機能を無効化することです。 |
|||
Option "DRI" "false" |
|||
EndSection |
|||
この方法は、{{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| |
|||
もしくは、Chromium や Firefox ブラウザなどアプリケーションごとにハードウェアレンダリングを無効化するように直接設定することも可能です。 |
|||
* OpenGL のバージョンが戻ってしまう理由は、Chromium と他のアプリケーションでエクスペリエンスが悪化するためでした。必要であれば、drirc ファイルを編集して特定のアプリケーションに対して OpenGL 2.1 を {{ic|chromium}} 実行ファイルなどで無効化することもできます ([https://dri.freedesktop.org/wiki/ConfigurationInfrastructure/ 参照])。 |
|||
* {{Pkg|mesa}} パッケージに含まれる新しい Gallium ベースの i915 ドライバは、常に OpenGL 2.1 が利用可能であると報告します。なので、このドライバに対しては上記の設定は不要です。 |
|||
}} |
|||
=== KMS の問題: コンソールが小さい領域に制限される === |
|||
{{ic|1=i915.enable_rc6=0}} カーネルブートパラメータを追加することで問題が解決すると報告しているユーザーもいます。このパラメータを使用すると CPU/GPU のハイパワーモードが解除されなくなりますが、GPU のハングアップやシステムのフリーズが解消するようです。 |
|||
低解像度のビデオポートの1つが起動時に有効になっていて、そのせいでターミナルがスクリーンの小さい領域を使っているのかもしれません。修正するには、ブートローダーでカーネルコマンドラインパラメータの {{ic|1=video=SVIDEO-1:d}} を使って i915 モジュールの設定でそのポートを明示的に無効化してください。詳細は [[カーネルパラメータ]] を見てください。 |
|||
{{Note|"Loading Initial Ramdisk" の後にシステムがフリーズする場合、BIOS で IGD aperture size が 4GB よりも小さくなっていることを確認してください。}} |
|||
これでうまく行かない場合、SVIDEO-1 ではなく TV1 か VGA1 を無効化してみてください。ビデオポートの名前は [[xrandr]] でリストアップできます。 |
|||
=== Windows をゲストとした場合にラグが発生する === |
|||
=== Haswell CPU で HDMI 経由で音声が出ない === |
|||
VirtualBox でホスト側から(マウスカーソルを動かすなどして)画面を更新しないと Windows ゲストのビデオ出力が止まってしまうことがあります。{{ic|1=enable_fbc=1}} オプションを削除すれば問題は解決します。 |
|||
[https://bugzilla.kernel.org/show_bug.cgi?id=60769 Linux カーネルの issue] によると、{{ic|1=intel_iommu=on}} を設定している場合には HDMI から音声が出力されないそうです。この問題を修正するには、以下の[[カーネルパラメータ]]を設定してください: |
|||
=== 画面がちらつく === |
|||
intel_iommu=on,igfx_off |
|||
Intel の iGPU によって使われている省電力機能の中にはちらつきを発生させるものがあります。適切な[[カーネルパラメータ]]オプションを使って無効化することで解決できます: |
|||
あるいは、IOMMU を無効化してください: |
|||
*Rc6 スリープモード ([[#RC6 スリープモード (enable_rc6)]] を参照) は {{ic|1=i915.enable_rc6=0}} で無効化できます。 |
|||
intel_iommu=off |
|||
*カーネルのバージョン 4.6 からパネルセルフリフレッシュ (PSR) はデフォルトで有効になります ({{Bug|49628}} {{Bug|49371}} {{Bug|50605}})。無効化するには {{ic|1=i915.enable_psr=0}} オプションを使ってください。 |
|||
=== 低消費電力 Intel CPU でクラッシュ/フリーズ === |
|||
=== 色が風化する (色空間の問題) === |
|||
低消費電力 Intel プロセッサやノート PC プロセッサは、低消費電力 Intel チップで使用されている電源管理機能に関する問題によりランダムにハングアップ/クラッシュする傾向にあります。そのようなクラッシュが発生する場合、この問題を報告するログは見られないでしょう。以下の[[カーネルパラメータ]]を追加することで、この問題を解決できるかもしれません。 |
|||
{{Note|この問題はカーネル 3.9 の変更に起因しています [https://lists.freedesktop.org/archives/dri-devel/2013-January/033576.html]。カーネル 4.1 でもこの問題は存在します。}} |
|||
カーネル 3.9 には Intel ドライバーで簡単に RGB リミテッドレンジの設定ができる変更が含まれており、場合によってはこの変更によって色がおかしくなることがあります。"Broadcast RGB" プロパティの新しい "Automatic" モードに関係しています。 |
|||
{{Note|以下のカーネルパラメータを3つすべて一緒に使用することは推奨されません。}} |
|||
{{ic|xrandr --output <HDMI> --set "Broadcast RGB" "Full"}} ({{ic|<HDMI>}} は適切な出力デバイスに置き換えてください、{{ic|xrandr}} を実行することで確認できます) のようにしてモードを強制することが可能です。これを {{ic |.xprofile}} に追加して、グラフィカルモードが始まる前にコマンドが実行できるように実行可能属性を付けて下さい。 |
|||
intel_idle.max_cstate=1 i915.enable_dc=0 ahci.mobile_lpm_policy=1 |
|||
{{Note|TV によっては 16-255 の色しか表示できないため Full に設定すると 0-15 の領域の色が失われます。従って、カラースペースを TV に合わせて圧縮する必要があるかどうか自動的に検知する Automatic のままにしてください。}} |
|||
{{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 ドキュメント]を見てください。 |
|||
また、GPU のレジスタを編集することで修正できる他の関連する問題も存在します。詳しくは [https://lists.freedesktop.org/archives/intel-gfx/2012-April/016217.html] や [https://github.com/OpenELEC/OpenELEC.tv/commit/09109e9259eb051f34f771929b6a02635806404c] を見て下さい。 |
|||
{{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'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 (サポートされているハードウェア一覧など) |
||
{{TranslationStatus|Intel graphics|2026-02-15|859434}} |
|||
2026年2月15日 (日) 14:18時点における最新版
Intel はオープンソースドライバの提供とサポートを行なっているので、インテルグラフィックスは基本的にプラグアンドプレイです。
Intel GPU のモデルや関連するチップセットと CPU の包括的なリストは、Wikipedia:Intel Graphics Technology と Gentoo: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-mesa か lib32-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 パッケージをインストールしてください。
ハードウェアビデオアクセラレーションも見てください。
- 一部のディストリビューション (Debian & Ubuntu、Fedora、KDE) では、xf86-video-intel ドライバのインストールが推奨されておらず、代わりに modesetting ドライバにフォールバックさせることが推奨されています。[1]、[2]、Xorg#インストール、modesetting(4) を参照してください。しかし、modesetting ドライバは次のような問題を引き起こす可能性があります: XFCE での画面のチラツキやマウスのジッタリング、仮想デスクトップの切り替えを行ったときに Chromium でアーティファクトが発生する、vsync のジッタリング、mpv での動画のスタッタリング。
- xf86-video-intel ドライバには、第11世代及びそれ以降のハードウェアに対する適切なサポートがありません。それによって、アクセラレーションが提供されなかったり、レンダリングの問題が発生したりし、その結果として Plasma Desktop がほぼ利用不能な状態になります。[3] を参照してください。
- xf86-video-intel がインストールされている場合、グラフィックススタック全体がハードフリーズし、(
Ctrl+Alt+Fnを押して) 他の仮想コンソールに切り替えることすらできなくなり、SysRq でユーザプロセスを kill することしかできなくなるという問題が2件報告されています [4] [5]。
ローディング
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 カーネルモジュールパラメータによって制御されています。これの使用方法は以下のとおりです:
| 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 ではデフォルトで有効になっていない場合、手動で有効化できます。
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
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 ドライバを使う
以下のような 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
フレームバッファー圧縮は、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
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" のいずれかです。
報告される OpenGL のバージョンを上書き
MESA_GL_VERSION_OVERRIDE 環境変数を使うことで、アプリケーションに報告される OpenGL のバージョンを上書きできます。例えば、MESA_GL_VERSION_OVERRIDE=4.5 と設定することで OpenGL 4.5 と報告されるようになります。
モニタリング
ハードウェアビデオアクセラレーション#確認 を見てください。
明るさとガンマ値の設定
バックライト を見てください。
試験的な新しい 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
詳細は元のバグレポートを見てください。
- このオプションは、
SwapbuffersWaitがfalseのときに動作しない場合があります。 - このオプションはメモリアロケーションを増加させ、パフォーマンスが低下する場合があります。[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
グラフィックがおかしい、固まる
一部のアプリケーションでグラフィックがおかしい/固まる問題が発生する場合は (アプリケーションのウィンドウがランダムな色で埋まる、ひどくぼやける、ラグが無いにも関わらず他のタスクを実行中にアプリケーションのグラフィックの更新が行われなくなるなど)、問題の起こるアプリケーションを 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 で表示の乱れ、応答なし、ラグ、低パフォーマンスが発生する場合、以下のような解決策があります。
- AccelMethod を "uxa" に設定する
- VSYNC を無効化する
- TearFree オプションを有効化する
- "DRI" とアクセラレーションのメソッドを無効にする (第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 または 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>
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 のバッテリー寿命が短くなります。これで問題が解決した場合は、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 を有効化できません。
参照
- https://01.org/linuxgraphics/documentation (サポートされているハードウェア一覧など)