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 (包括支持的硬件列表)