Intel 圖形處理器

出自 Arch Linux 中文维基
(重新導向自Intel graphics

由於 Intel 提供並維護開源驅動程序,因此 Intel 顯卡基本上是即插即用的。

有關 Intel GPU 型號以及相應晶片組和 CPU 的全面列表,請參閱 Wikipedia:list of Intel graphics processing unitsGentoo:Intel#Feature support

注意: 開源驅動不支持基於 PowerVR 架構的圖形卡 (比如GMA 3600 系列)

安裝[編輯 | 編輯原始碼]

安裝 以下任一軟件包,它提供用於3D加速的DRI驅動程序。

    • mesa 是最新的 Mesa 軟件包,其中包括用於 Intel 第 3 代及更高版本硬件的現代 Gallium3D 驅動程序。建議使用第 8 代及更高版本硬件的用戶選擇該軟件包。
    • mesa-amber 是舊版 Mesa 軟件包,包括用於第 2 代和更高版本硬件的經典(非 Gallium3D)驅動程序。此驅動程序對於第 7 代和較舊的硬件具有更好的性能和穩定性。

另請參見 硬件視頻加速.

注意: 有的文檔 (Debian & Ubuntu, Fedora, KDE) 推薦不安裝 xf86-video-intel 驅動程序,而是回落到給第四代及更新 GPU (2006年以來的GMA 3000及以上顯卡) 使用的 modesetting 驅動程序。請參考 [1][2], Xorg#安裝modesetting(4). 然而,modesetting 驅動程序可能導致比如 XFCE 上的屏幕撕裂和鼠標抖動切換Chromium中虛擬的桌面產生偽影mpv中的vsync抖動/視頻抖動 等問題

加載[編輯 | 編輯原始碼]

Intel 內核模塊應會在系統引導時自動加載。

如果它沒有自動加載,請嘗試:

  • 由於 Intel 需要內核模式設置,確保您沒有內核參數 中添加 nomodeset
  • 請同時確認您沒有在 /etc/modprobe.d//usr/lib/modprobe.d/ 中把 Intel 列入 modprobe 的黑名單導致禁用了 Intel。

啟用 KMS 早啟動[編輯 | 編輯原始碼]

使用 i915 DRM 以上驅動的 Intel 晶片組都強制支持 內核級顯示模式設置 (KMS) ,並且被默認啟用。

請參考 Kernel_mode_setting#KMS_早啟動 獲得有關如何在啟動過程中第一時間啟用KMS的說明。

啟用 GuC / HuC 固件加載[編輯 | 編輯原始碼]

本文或本章節的事實準確性存在爭議。

原因: 儘管 Intel 的文檔沒有說,但是 Tiger Lake 和 Rocket Lake GPU 可能實際上支持 enable_guc=3, 並且默認設置了 enable_guc=1.(在 Talk:Intel graphics#TGL/RKL GuC Submission 中討論)


從第九代英特爾處理器 (Skylake 及以後的架構) 開始, Intel GPU 都包含了一個用於提供以下功能的圖形微控制器 「Graphics micro (μ) Controller」 (GuC) [3]:

  • 安裝 intel-media-driver 軟件包來啟用硬件視頻加速後,能夠把一些多媒體解碼功能從 CPU 分載(offload)到 HEVC/H.265 微控制器 (micro (µ) Controller) (HuC) 上。該功能於第九代推出。
  • 使用GuC進行調度、上下文提交(context submission)和電源管理。該功能於 12 代 Alder Lake-P(移動端)推出。

為了使用這些功能,您必須加載 GuC 固件。對於 HuC 支持,一些視頻特性(如 SKL 低功耗編碼模式下的 CBR 速率控制)也需要加載 HuC 固件才能實現。 [4] GuC 和 HuC 的固件文件都包含在 linux-firmware 軟件包中。

GuC 功能由 i915.enable_guc 內核參數 控制,用法如下:

enable_guc 的值 GuC Submission HuC Firmware Loading 作為平台默認值 支持的平台
0 Tiger Lake, Rocket Lake, 和 Pre-Gen12 [5] All
1 Alder Lake-P (Mobile) 及更新
2 Alder Lake-S (Desktop) [6] [7] Gen9 及更新
3 Alder Lake-P (Mobile) 及更新

如果 GuC submission 或者 HuC 固件加載並未在您的 GPU 上默認啟用,您可以手動啟用它。

警告: 即使您的顯卡不支持相關功能,手動啟用 GuC/HuC 固件加載也可能會污染內核。此外,啟用GuC/HuC固件加載可能會導致某些系統出現問題;如果您遇到凍結(例如,從休眠恢復後),請禁用它。

首先確保您已經安裝linux-firmware 軟件包。

如果您的系統配置了 KMS 晚啟動 (默認值),您可以參考上文修改 i915.enable_guc 內核參數來啟用這些功能。

或者,如果您把 i915 模塊添加到了 initramfs 中(參考KMS早啟動),那您必須通過 /etc/modprobe.d/ 目錄中的配置文件來設置這些選項,比如:

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

然後 重建 initramfs.

在下一次啟動時您可以通過 dmesg 命令來確認 GuC 和 HuC 都已被啟用。

# dmesg
[30130.586970] i915 0000:00:02.0: [drm] GuC firmware i915/icl_guc_33.0.0.bin version 33.0 submission:disabled
[30130.586973] i915 0000:00:02.0: [drm] HuC firmware i915/icl_huc_9.0.0.bin version 9.0 authenticated:yes

如果您的顯卡不支持它們,你會看到:

# 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
注意: 從 Linux 4.20.11 起,當 GuC/HuC 被啟用時,不支持通過設置 enable_gvt=1 來使用 GVT-g 圖形虛擬化 功能。i915模塊將無法初始化,如系統日誌所示:
# journalctl
... kernel: [drm:intel_gvt_init [i915]] *ERROR* i915 GVT-g loading failed due to Graphics virtualization is not yet supported with GuC submission
... kernel: i915 0000:00:02.0: [drm:i915_driver_load [i915]] Device initialization failed (-5)
... kernel: i915: probe of 0000:00:02.0 failed with error -5
... kernel: snd_hda_intel 0000:00:1f.3: failed to add i915 component master (-19)

請注意相關警告並非致命,正如[8] 中解釋的那樣:

# journalctl -b 
... kernel: i915 0000:00:02.0: Direct firmware load for i915/gvt/vid_0x8086_did_0x5916_rid_0x02.golden_hw_state failed with error -2

Xorg 配置[編輯 | 編輯原始碼]

注意: 以下操作需要安裝 xf86-video-intel 軟件包。

您可能無需做任何配置就能運行 Xorg

但是如果 Xorg 未正常啟動,或者想要使用某些驅動程序選項,您可以創建一個與下述類似的 Xorg 配置文件:

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

您可以在 Driver "intel" 下方開新行添加額外的選項。請參考 intel(4) 手冊頁以獲得完整的選項列表。

注意: 您可能需要添加不止一段 device 配置,本文將在需要的地方指出。

AccelMethod[編輯 | 編輯原始碼]

創建配置文件時,您可能需要指定 Option "AccelMethod" 。傳統的選項包括 UXA, SNA (默認) 和 BLT.

如果您在使用默認選項 SNA 時遇到問題 (比如花屏、文字損壞等),嘗試改用UXA 。只需要在配置文件中添加如下一行即可:

Option      "AccelMethod"  "uxa"

另請參閱 intel(4) § CONFIGURATION DETAILS 手冊文件中的 AccelMethod 選項。

基於內核模塊參數的選項[編輯 | 編輯原始碼]

i915 內核模塊允許您通過內核模塊參數來配置選項。其中一些選項會影響到省電。

您可以使用以下命令生成所有選項的列表以及簡短說明和默認值:

$ modinfo -p i915

若要檢查當前啟用了哪些選項,請運行

# systool -m i915 -av

您將注意到,許多選項默認為 -1,說明晶片的省電狀態都為默認值。然而,您可以通過修改內核模塊參數來配置更積極的省電策略。

注意: Diverting from the defaults will mark the kernel as tainted from Linux 3.18 onwards. This basically implies using other options than the per-chip defaults is considered experimental and not supported by the developers.

Framebuffer 壓縮 (enable_fbc)[編輯 | 編輯原始碼]

啟用 Framebuffer 壓縮 (FBC) 功能能夠減少電源消耗,同時減少刷新屏幕所需的內存帶寬。

要啟用 FBC, 請在內核參數中添加 i915.enable_fbc=1 或在 /etc/modprobe.d/i915.conf 中進行如下配置:

/etc/modprobe.d/i915.conf
options i915 enable_fbc=1
注意: 在 Sandy Bridge (第6代)之前的幾代 Intel GPU 上,幀緩衝(Framebuffer)壓縮可能不可靠或不可用。 這導致系統日誌中可能會記錄類似如下信息:
kernel: drm: not enough stolen space for compressed buffer, disabling.

在Sandy Bridge之前的CPU上啟用幀緩衝區壓縮會導致無休止的錯誤消息:

# dmesg
[ 2360.475430] [drm] not enough stolen space for compressed buffer (need 4325376 bytes), disabling
[ 2360.475437] [drm] hint: you may be able to increase stolen memory size in the BIOS to avoid this
解決方案是禁用幀緩衝壓縮,這將增加些微功耗(約0.06W)。為了禁用它,請在內核參數中添加i915.enable_fbc=0 。 請參閱此處 了解更多關于禁用幀緩衝的影響。

Fastboot[編輯 | 編輯原始碼]

注意: Skylake 和更新的架構,會在默認情況下啟用此參數[9]。以及 Bay- 和 Cherry-Trail (VLV/CHV)[10] 自 Linux 5.1 版本以來也會啟用。[11]

Intel Fastboot 的目標是在 Xorg 啟動之前將幀緩衝區保留為 BIOS 或引導加載程序設置的內容,以避免出現屏閃。[12][13]

要在未默認啟用快速啟動的平台上強制啟用快速啟動,請設置 i915.fastboot=1 內核參數 ,或在 /etc/modprobe.d/i915.conf 裡作如下設置:

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

Intel GVT-g 圖形虛擬化支持[編輯 | 編輯原始碼]

請參考 Intel GVT-g 以了解詳細信息。

啟用性能支持[編輯 | 編輯原始碼]

這篇文章的某些內容需要擴充。

原因: What does Mesa actually do using the performance counters? What's the effect of this? Some report drastic performance increases on Intel Tiger Lake, attributing it to a support for Dynamic Tuning [14]. (在 Talk:Intel 圖形處理器#Potential performance gains via Observation Architecture 中討論)

從第六代處理器 (Sandy Bridge 及更新的架構) 開始,Intel GPU 提供性能計數器,用於向驅動程序提供內部性能數據。 驅動程序和硬件寄存器將此基礎結構稱為 Observation Architecture (內部稱為 "OA") [15],但英特爾的文檔一般普遍將此功能稱為 提供可觀測性能計數器(Observability Performance Counters)[16] [17].

默認情況下,只有使用 CAP_SYS_ADMIN(相當於root)或 CAP_PERFMON 能力(Capabilities)運行的程序才能使用 OA​ 。 大多數應用程式將在沒有這兩種情況下運行,從而導致以下警告:

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

若要在不使用能力(或 root)的情況下啟用性能支持,請按 sysctl 中的描述設置內核參數。

警告: perf_event_paranoid 系列選項默認為限制訪問,因為允許應用程式訪問性能數據存在風險 [18]。話雖如此, dev.i915.perf_stream_paranoid 只會影響對 GPU 性能計數器的訪問,這比訪問 CPU 架構執行上下文寄存器之類的帶來的風險要小。

如果在 /etc/sysctl.d/*.conf 文件中把值設置為 0,會導致啟動時出現如下錯誤:

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

您應該通過早啟動的方式加載 i915 模塊。

技巧和竅門[編輯 | 編輯原始碼]

設置縮放模式[編輯 | 編輯原始碼]

這對於某些全屏應用程式很有用:

$ xrandr --output LVDS1 --set PANEL_FITTING param

其中 param 可以為:

  • center: 解像度將完全保持原設置,不會進行縮放
  • full: 縮放解像度,以便使用整個屏幕
  • full_aspect: 將解像度縮放到可能的最大值,但保持縱橫比。

如果它不起作用,請嘗試:

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

其中 param 可以為 "Full""Center""Full aspect"

注意: 此選項目前不適用於外接顯示器 (比如 VGA, DVI, HDMI, DP). [19]

GMA 4500上的硬件加速 H.264 解碼[編輯 | 編輯原始碼]

對於某些 GMA 4500 系列的 GPU,libva-intel-driver 軟件包只提供對 MPEG-2 解碼的硬件加速,而並不包括 H.264 解碼。要檢查這是否對您的 GPU 有影響,請同時安裝驅動和 libva-utils 軟件包,並檢查 vainfo 命令的輸出結果中是否包含以 VAProfileH264 開頭的項目。

對於 H.264 的解碼支持是在另一個 g45-h264 分支中獨立維護的。您可以安裝 libva-intel-driver-g45-h264AUR 軟件包來使用它。然而,要注意該支持是實驗性的,並且其開發工作已被放棄。在GMA 4500系列GPU上使用VA-API與此驅動程序能夠幫助 CPU 分載(offload),但可能無法實現像非硬件加速那樣平滑的播放。使用 mplayer 進行的測試表明,使用 vaapi 播放 H.264編碼的1080p 視頻可以將 CPU 負載減半(與 XV overlay相比) ,但是播放非常卡頓,而720p 播放效果相當不錯 [20]。這與其他人的經歷相印證 [21]。在 BIOS 中將預先分配的視頻內存大小設置得更高,可以獲得更好的硬件解碼播放效果。這樣做了之後即使是1080p h264視頻也可以流暢播放[22]。同時使用 mpv-gitAURffmpeg-gitAURlibva-intel-driver-g45-h264AUR 也可以流暢播放(1080p/720p)視頻。通過 MPV 和 Firefox 插件「發送到 MPV 播放器」[23] ,可以觀看硬件加速的 YouTube 視頻。

舊 OpenGL 驅動 (i965)[編輯 | 編輯原始碼]

在Mesa 20.0中,新的 OpenGL 驅動程序 Iris 被提升為八代以上 GPU 的默認驅動程序。某些應用程式使用它運行得更快。在啟動任何OpenGL應用程式之前,您可以通過設置 MESA_LOADER_DRIVER_OVERRIDE=i965 環境變量來禁用它並恢復使用舊的 i965 驅動程序。此設置不會影響 Vulkan應用程式。

注意: 在此 報告有關 Iris 驅動程序的錯誤和倒退。

覆寫報告的 OpenGL 版本[編輯 | 編輯原始碼]

MESA_GL_VERSION_OVERRIDE 環境變量 可以為任何應用程式覆寫報告的 OpenGL 版本。比如,設置 MESA_GL_VERSION_OVERRIDE=4.5 環境變量將會把 OpenGL 版本報告為 4.5.

注意: 您可以使用此變量報告任何已知的 OpenGL 版本,即使 GPU 不支持它。一些應用程式可能不再崩潰,而一些可能反而開始崩潰。所以您可能不希望全局設置這個變量。

監控[編輯 | 編輯原始碼]

本文或本章節可能需要合併到Hardware video acceleration#Verification

附註: This overlaps the content at the previously linked page and would probably be a better fit in a generic page instead of this one dedicated to Intel GPUs. Otherwise, Hardware video acceleration#Verification should be modified to link to each dedicated page instead of duplicating content.(在 Talk:Intel 圖形處理器 中討論)
  • intel_gpu_top — 適用於 Intel GPU 的類似 top 命令的任務監視器。 (需要 root 權限)
https://gitlab.freedesktop.org/drm/igt-gpu-tools || intel-gpu-tools
  • nvtop — 適用於 AMD、Intel 和 NVIDIA 的 GPU 進程監視器(目前對 Intel GPU 僅有非常基礎的支持)
https://github.com/Syllo/nvtop || nvtop

設置亮度和伽瑪值[編輯 | 編輯原始碼]

參見 Backlight.

故障排除[編輯 | 編輯原始碼]

畫面撕裂[編輯 | 編輯原始碼]

SNA 加速方法在一些機器上引起撕裂。要解決這個問題,請在驅動程序中啟用 TearFree 選項,方法是在配置文件中添加以下內容:

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

參見 原始錯誤報告 以獲得更多信息。

注意:
  • SwapbuffersWaitfalse 時,該選項可能不工作
  • 此選項可能會顯著增加內存分配並降低性能。[24]
  • 對於對vsync定時非常挑剔的應用程式來說,這個選項是有問題的,比如 Super Meat Boy.
  • 此選項不適用於UXA加速方法,僅適用於SNA。
  • 對於 Intel UHD 620 或 630 顯卡,您需要添加 Option "TripleBuffer" "true" 選項才能使 TearFree 工作。

禁用垂直同步 (VSYNC)[編輯 | 編輯原始碼]

適用於以下情景:

  • 由於 GPU 的原因,Chomium/Chrome 有滯後和性能低下的問題,而在使用 --disable-gpu 選項啟動時能流暢運行。
  • glxgears 測試未顯示預期性能

Intel 驅動程序使用三重緩衝進行垂直同步;這允許充分的性能釋放並避免畫面撕裂。若要關閉垂直同步(例如用於基準測試),請在主目錄中使用如下 .drirc 文件:

~/.drirc
<device screen="0" driver="dri2">
	<application name="Default">
		<option name="vblank_mode" value="0"/>
	</application>
</device>
注意: 不要使用 driconfAUR 來創建此文件。它有問題,會設置錯誤的驅動程序。

DRI3 問題[編輯 | 編輯原始碼]

DRI3xf86-video-intel 中的默認 DRI 版本。在某些系統上,這可能會導致這樣的問題。要切換回 DRI2,請在配置文件中添加以下行:

Option "DRI" "2"

對於 modesetting 驅動程序,這種禁用 DRI3 的方法不起作用。所以我們可以設置環境變量 LIBGL_DRI3_DISABLE=1

GTK應用程式中的字體和屏顯損壞(掛起/恢復後缺少字形)[編輯 | 編輯原始碼]

如果您在 GTK 應用程式中遇到缺少字形的問題,以下解決方法可能會有所幫助。編輯 /etc/environment 並添加以下行:

/etc/environment
COGL_ATLAS_DEFAULT_BLIT_MODE=framebuffer

另請參考 FreeDesktop bug 88584.

啟動過程中加載模塊時顯示空白屏幕[編輯 | 編輯原始碼]

如果您使用 KMS 晚啟動,然後屏幕在加載模塊(Loading modules)時顯示為空白,您可以試着把 i915intel_agp 添加到 initramfs 中。請參考 內核級顯示模式設置#KMS_早啟動

另外,附加以下內核參數似乎也有效:

video=SVIDEO-1:d

如果您需要輸出到VGA,請嘗試以下操作:

video=VGA-1:1280x800

X 窗口系統在使用 Intel 驅動程序時凍結或崩潰[編輯 | 編輯原始碼]

一些關於 X 窗口系統崩潰、凍結或 GPU 掛起的問題,可以通過設置 NoAccel 選項禁用 GPU 來解決。請在配置文件中添加以下內容:

  Option "NoAccel" "True"

或者,嘗試通過設置 DRI 選項來只禁用 3D 加速:

  Option "DRI" "False"

添加未檢測到的解像度[編輯 | 編輯原始碼]

這個問題在 Xrandr 頁面 中有詳細的說明。

無法調節背光[編輯 | 編輯原始碼]

如果您的設備從掛起中恢復後,調整屏幕背光亮度的熱鍵失效,請根據 Backlight 一文檢查您的配置。

如果問題仍然存在,請嘗試如下任一內核參數:

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

還要確保您沒有使用 fastboot 模式 (i915.fastboot 內核參數) ,因為它會破壞背光控制

Chromium 和 Firefox 損壞或無響應[編輯 | 編輯原始碼]

如果您在 Chromium 和/或 Firefox 中遇到了損壞、無響應、性能滯後或緩慢的問題,一些可能的解決方案包括:

4.0+ 版本的內核會在使用 Broadwell 或 Core-M 晶片時崩潰[編輯 | 編輯原始碼]

X/Wayland 加載後幾秒鐘,機器將凍結,journalctl 將記錄內核崩潰並提到 Intel 顯卡:

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 選項可以解決這個問題。

屏幕閃爍[編輯 | 編輯原始碼]

面板自刷新 (PSR), 一種 Intel iGPU (核顯)使用的節能技術已知在某些情況下會導致閃爍 FS#49628 FS#49371 FS#50605. 臨時的解決辦法是通過設置 i915.enable_psr=0 內核參數來禁用該功能。

在 i915 驅動上使用 OpenGL 2.1[編輯 | 編輯原始碼]

正如這篇文章所說,把 mesa 從 13.x 版本更新到 17 可能會導致第三代 Intel GPU (如GMA3100,參閱這裏)上的 OpenGL 2.1 支持失效,並使其降級到 OpenGL 1.4。然而您可以通過配置 /etc/drirc~/.drirc 文件中的選項來手動恢復它:

/etc/drirc
<driconf>
...
    <device driver="i915">
        <application name="Default">
            <option name="stub_occlusion_query" value="true" />
            <option name="fragment_shader" value="true" />
        </application>
    </device>
...
</driconf>
注意: 作出該讓步的原因是 Chromium 和其他應用程式的糟糕體驗。如果有需要,您可以參考 此文 來對 drirc 文件作特定於應用程式的修改,比如專門針對 Chromium 禁用 gl2.1。

KMS 問題:終端只在很小的一塊區域中顯示[編輯 | 編輯原始碼]

其中一個低解像度視頻端口會在引導時啟用,這將導致終端僅能使用屏幕的一小塊區域。 要修復這個問題,在引導加載程序的內核命令行參數中,使用 i915 模塊參數 video=SVIDEO-1:d 來明確禁用該端口。有關詳細信息,請參閱內核參數

如果這不起作用,請嘗試禁用 TV1 或 VGA1,而不是 SVIDEO-1。視頻端口名稱可以用 xrandr 列出。

Haswell CPU 使用 HDMI 輸出時沒有聲音[編輯 | 編輯原始碼]

根據一個 Linux 內核問題,在設置 intel_iommu=on 參數時聲音不會通過 HDMI 端口輸出。要修復該問題,使用如下內核參數

intel_iommu=on,igfx_off

或者也可以禁用 IOMMU:

intel_iommu=off

低功耗 Intel CPU 會崩潰或凍結[編輯 | 編輯原始碼]

由於低功耗 Intel CPU 上電源管理功能的問題,低功耗 Intel 處理器和/或筆記本電腦處理器有隨機掛起或崩潰的傾向。如果發生此類崩潰,您將看不到任何報告此問題的日誌。添加以下內核參數可能有助於解決問題。

注意: 不建議同時使用以下三個內核參數
intel_idle.max_cstate=1 i915.enable_dc=0 ahci.mobile_lpm_policy=1

ahci.mobile_lpm_policy=1 能修復部分聯想筆記本電腦和一些宏碁筆記本電腦因 SATA 控制器電源管理問題而出現的掛起故障。該解決方法嚴格來說與 Intel 顯卡無關,但它確實解決了相關問題。添加此內核參數可以將鏈路電源管理(LPM)從固件默認值修改為最大性能,並且還可以解決當您在某些聯想機器上更改顯示器亮度時出現的掛起問題。但這麼做在現代超級本上會增加 1 至 1.5 W 的閒置功耗。有關更多信息,特別是有關其他狀態的信息,請參閱 Linux內核郵件列表Red Hat 文檔

i915.enable_dc=0 會禁用GPU電源管理。這確實解決了某些 Intel 系統上的隨機掛起問題,特別是 Goldmount 和 Kaby Lake Refresh 晶片。但使用此參數會提高筆記本電腦的功耗並縮短電池壽命。

intel_idle.max_cstate=1 會處理器的睡眠狀態,它防止處理器進入深度睡眠狀態。這絕對不是理想的做法,而且確實會導致更高的功率使用和更低的電池壽命。然而,它確實解決了許多 Intel 系統上的隨機掛起問題。如果您使用的是 Intel Baytrail 或 Kaby Lake Refresh 晶片,請使用此參數。Intel Baytrail 晶片由於一個硬件缺陷,在沒有這個內核參數的情況下會隨機掛起[25]。有關 max_cstate 參數的更多信息,請參見內核文檔以及 GitHub 上關於 cstates 的一篇文章。

如果您嘗試通過一次性添加 intel_idle.max_cstate=1 i915.enable_dc=0 ahci.mobile_lpm_policy=1 等三個參數來解決頻繁掛起的問題,然後成功了,那您應該用排除法找出真正解決問題的那個參數。因為如果實際的問題與 SATA 電源管理有關,並且 ahci.mobile_lpm_policy=1 參數解決了這個問題,那麼禁用 cstate 和顯示電源管理是不可取的。

參考 Linux Reviews 網站以獲取更多信息。

添加對 165Hz 顯示器的支持[編輯 | 編輯原始碼]

本文或本章節可能需要合併到內核級顯示模式設置#強制設置顯示模式與_EDID

附註: 這種技術似乎並不特定於 i915。在合併之前,請驗證安裝腳本是必需的,並且沒有更簡單的方法來將 EDID BIN 添加到 initramfs。(在 Talk:Intel 圖形處理器 中討論)

對於某些 165Hz 顯示器,xrandr 可能不會顯示165Hz選項,且 #添加未檢測到的解像度 中的方法並不能解決這一問題。在這種情況下,請參見 StackExchange 上的問答 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.

Alder Lake-P 處理器從睡眠/掛起中恢復時凍結[編輯 | 編輯原始碼]

這篇文章的某些內容需要擴充。

原因: What does "recent firmware" mean? See Help:Style#Language register. (在 Talk:Intel 圖形處理器 中討論)
注意: 截至2022年9月25日,這個問題已經通過 fwupd 最近的固件更新得到修復。對於其他沒有 BIOS 補丁的用戶來說,可能會有一個即將出現的內核補丁

來自不同供應商的 Alder Lake-P 第 12 代移動處理器筆記本電腦的用戶在從暫停狀態中醒來後,遇到了了凍結和黑屏。這是因為許多筆記本電腦供應商提供了錯誤的VBT(視頻BIOS表),錯誤地描述了連接到 iGPU 的實際端口。考慮到大多數供應商不會為運行正常的 Windows 作業系統的筆記本電腦發佈 BIOS 更新,Linux 用戶只能在內核端解決這個問題。您可以通過修補和重建內核作為臨時措施來緩解此問題:

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

如 freedesktop 問題 5531 6401 中所述,這些問題已經幾個月沒有解決。

在 Alder Lake/UHD 770 上的 Plasma 桌面中選擇 Qt 元素的問題[編輯 | 編輯原始碼]

本文或本章節的事實準確性存在爭議。

原因: Is this limited to the UHD770 alone? Is this limited to the Plasma Desktop or does it also happen on every Qt application regardless of the environment? Should we not recommend uninstalling xf86-video-intel instead? Is this bug reported somewhere?(在 Talk:Intel 圖形處理器 中討論)


使用較新的 12 代 IGP 的用戶可能會遇到 Plasma 桌面幾乎不能使用的問題。該問題似乎與使用硬件加速的項目有關。運行 glxgear 將報告較高的幀率,但是動畫將不會更新。一個可能的解決方案是更改 X 窗口系統下的驅動程序。

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

Arc GPU 內核支持[編輯 | 編輯原始碼]

由於 6.0 及以下版本的內核尚未正式支持 Arc 系列 GPU,因此需要強制加載驅動程序。

在您的引導加載程序中使用如下內核參數

i915.force_probe=pci_id

其中 PCI ID 可以通過執行如下命令獲得:

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

您還需要像下面這樣在 xorg.conf 中設置您的驅動程序:

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

"fbdev" 驅動程序也能工作。

沒有完整的驅動程序支持,3D 渲染不可用。

如需使用 硬件視頻加速,您必須安裝 intel-media-driver 並且禁用 CONFIG_DRM_I915_CAPTURE_ERROR

參閱[編輯 | 編輯原始碼]