Intel 圖形處理器
由於 Intel 提供並維護開源驅動程序,因此 Intel 顯卡基本上是即插即用的。
有關 Intel GPU 型號以及相應晶片組和 CPU 的全面列表,請參閱 Wikipedia:list of Intel graphics processing units 和 Gentoo:Intel#Feature support。
安裝[編輯 | 編輯原始碼]
- mesa包 是最新的 Mesa 軟件包,其中包括用於 Intel 第 3 代及更高版本硬件的現代 Gallium3D 驅動程序。建議使用第 8 代及更高版本硬件的用户選擇該軟件包。
- mesa-amber包 是舊版 Mesa 軟件包,包括用於第 2 代和更高版本硬件的經典(非 Gallium3D)驅動程序。此驅動程序對於第 7 代和較舊的硬件具有更好的性能和穩定性。
- 為支持32位程序,請同時從multilib倉庫中安裝lib32-mesa包或lib32-mesa-amber包軟件包。
- 對於 DDX 驅動支持(可提供對Xorg的2D加速),可以安裝xf86-video-intel包 軟件包。除此功能外,通常不建議使用此軟件包,請參見下面的註釋。
- 為支持 Vulkan (Ivy Bridge及以上架構),可以安裝 vulkan-intel包 或 amdvlk包 軟件包。
另請參見 硬件視頻加速.
加載[編輯 | 編輯原始碼]
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 固件加載[編輯 | 編輯原始碼]
從第九代英特爾處理器 (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 上默認啟用,您可以手動啟用它。
首先確保您已經安裝了 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
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 配置[編輯 | 編輯原始碼]
您可能無需做任何配置就能運行 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,説明晶片的省電狀態都為默認值。然而,您可以通過修改內核模塊參數來配置更積極的省電策略。
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
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[編輯 | 編輯原始碼]
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 以了解詳細信息。
啟用性能支持[編輯 | 編輯原始碼]
從第六代處理器 (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"
。
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-gitAUR 、ffmpeg-gitAUR 和 libva-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應用程式。
覆寫報吿的 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 僅有非常基礎的支持)
設置亮度和伽瑪值[編輯 | 編輯原始碼]
參見 Backlight.
故障排除[編輯 | 編輯原始碼]
畫面撕裂[編輯 | 編輯原始碼]
SNA 加速方法在一些機器上引起撕裂。要解決這個問題,請在驅動程序中啟用 TearFree
選項,方法是在配置文件中添加以下內容:
/etc/X11/xorg.conf.d/20-intel.conf
Section "Device" Identifier "Intel Graphics" Driver "intel" Option "TearFree" "true" EndSection
參見 原始錯誤報吿 以獲得更多信息。
- 當
SwapbuffersWait
為false
時,該選項可能不工作 - 此選項可能會顯著增加內存分配並降低性能。[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>
DRI3 問題[編輯 | 編輯原始碼]
DRI3 是 xf86-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)時顯示為空白,您可以試着把 i915
和 intel_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 中遇到了損壞、無響應、性能滯後或緩慢的問題,一些可能的解決方案包括:
- 把 AccelMethod 設置為 "uxa"
- 禁用垂直同步 (VSYNC)
- 啟用 TearFree 選項
- 禁用 DRI 和加速法 (在 Intel 第十代處理器 Iris 顯卡上測試過):
Option "NoAccel" "True" Option "DRI" "False"
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>
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 顯示器的支持[編輯 | 編輯原始碼]
對於某些 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 處理器從睡眠/掛起中恢復時凍結[編輯 | 編輯原始碼]
來自不同供應商的 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 元素的問題[編輯 | 編輯原始碼]
使用較新的 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
。
參閱[編輯 | 編輯原始碼]
- https://01.org/linuxgraphics/documentation (包括支持的硬件列表)