首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Debian 11的屏幕问题

Debian 11的屏幕问题
EN

Unix & Linux用户
提问于 2021-11-19 12:41:19
回答 1查看 1.6K关注 0票数 1

我面临一个问题,屏幕闪烁随机出现,几次每小时不间断的工作。鼠标拖动后,它就消失了,但我对这种行为的原因感到困扰。

一段时间前,除了这个问题,一个透明的斑点出现在显示器的边缘附近。

我有一个Nvidia G960M显卡,下面是nvidia-smi命令的输出:

当前设置的窗口系统是X11:

显示管理器是GNOME。

我的显示器的分辨率是1920x1080。refresh频率为60.02Hz (虽然我对120.02Hz、59.xHz进行了相当长时间的实验)。此外,我还使用了night light显示功能,温度设置为1800。

最近,我在显示器上发现了一个transparent blob。首先,它是一个单一的点,然后细分为两个,现在又是一个单一的斑点,就像以前一样。

我尝试了几种基于对类似问题的答案的方法,但都没有奏效。

我的问题是如何解决Debian 11中屏幕闪烁的问题?这与最近出现的透明斑点有关吗?

更新

链接提供的/var/log/Xorg.0.log的内容

来自<#>xrandr --列表提供者命令的输出:

代码语言:javascript
复制
❯ xrandr --listproviders
Providers: number : 1
Provider 0: id: 0x44 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 3 outputs: 2 associated providers: 0 name:modesetting
EN

回答 1

Unix & Linux用户

发布于 2021-11-19 13:52:54

Nvidia G 960M将建议一台笔记本电脑,因此它可能有两个GPU :一个离散的Nvidia GPU和一个更节能的iGPU集成到主CPU上。这被称为“擎天柱”配置与Nvidia。在Linux中,特别是在Debian中,这些组件处理起来有些尴尬,但幸运的是,Debian 11拥有足够多的新组件,因此Optimus支持现在应该相当流畅。

您的Xorg.0.log确认您确实有两个GPU:

代码语言:javascript
复制
[ 10944.179] (II) modeset(0): glamor X acceleration enabled on Mesa Intel(R) HD Graphics 530 (SKL GT2)
...
[ 10944.204] (II) NVIDIA(G0): NVIDIA GPU NVIDIA GeForce GTX 960M (GM107-A) at PCI:1:0:0

但是目前只有Intel的modeset驱动程序正在检测到一个连接的显示器。

代码语言:javascript
复制
[ 10944.189] (II) modeset(0): EDID for output eDP-1
...
[ 10944.190] (II) modeset(0):  LG Display
[ 10944.190] (II) modeset(0):  LP156WF6-SPK1
...
[ 10944.195] (II) modeset(0): Output eDP-1 connected
...
[ 10944.195] (II) modeset(0): Output eDP-1 using initial mode 1920x1080 +0+0

Nvidia驱动程序找不到任何连接到Nvidia GPU的显示,默认为640x480的虚拟屏幕大小:

代码语言:javascript
复制
[ 10944.204] (II) NVIDIA(G0): Validated MetaModes:
[ 10944.204] (II) NVIDIA(G0):     "NULL"
[ 10944.204] (II) NVIDIA(G0): Virtual screen size determined to be 640 x 480
[ 10944.204] (WW) NVIDIA(G0): Unable to get display device for DPI computation.

根据我的经验,如果您的配置使用的是旧的intel iGPU驱动程序,而不是用于iGPU的新的基于内核的modesetting驱动程序,那么使用屏幕调光的一些窗口管理器效果可能会导致闪烁。但是,由于日志显示您已经在使用modesetting X11驱动程序,所以这不是闪烁问题的根源。

您的活动GPU目前是英特尔高清图形530,其中包括一些微控制器组件与他们自己的可加载固件文件。这些微控制器被称为:

  • DMC( Display MicroController ),负责在低功耗和正常状态之间转换时保存和恢复显示引擎状态.
  • 图形微控制器(GuC),也涉及电源管理和快速GPU上下文切换。
  • HEVC/H.265单片机(HuC),专用于HEVC/H.265视频编解码器操作。

闪烁使我认为,可能与GPU电源管理或上下文切换相关的事情发生得不够快,这可能是由于缺少DMC或GuC固件造成的。确保安装了Debian 11存储库的non-free部分的D16包:它包含了英特尔iGPU所需的所有固件文件。

为了确保实际下载固件,您可能需要为驱动Intel iGPU的i915模块添加几个模块参数。创建具有以下内容的文件/etc/modprobe.d/i915.conf

代码语言:javascript
复制
options i915 modeset=1 enable_guc=2

由于在Linux中使用GuC微控制器还有些实验性,这些选项指示驱动程序只使用一组最小的已知安全操作。

添加此配置片段后,运行update-initramfs -u,以便将添加的选项包含在initramfs中,因为i915驱动程序通常在引导过程的早期就加载。

如果膝上型电脑硬件不包括在GPU之间切换输出的多路复用器(称为无muxless Optimus),那么每个显示连接将被硬连接到特定的GPU。在这种配置中,您仍然可以使用两个GPU,但显示数据有时必须从一个GPU传输到另一个GPU(根据传输方向被称为"PRIME呈现卸载“或”反向PRIME“)。

关于Debian的更多细节:https://wiki.debian.org/NVIDIA%20Optimus#PRIMEOffload

如果您的笔记本电脑的硬件确实包括多路复用器,那么使用Linux的VGA Switcheroo子系统它应该是可控的。在无多功能系统上,当您知道不需要Nvidia GPU和/或需要最小化电池功耗时,也可以使用它来完全关闭Nvidia GPU。

通常在无多路Optimus硬件设置的笔记本电脑上,笔记本电脑的集成显示器将被硬连接到iGPU上,以便在没有外部显示器连接且不需要高性能3D图形的情况下,最大限度地减少电池电量的使用。

我的笔记本电脑的配置与你的非常相似,所以这里有一些关于擎天柱在Debian 11上使用的技巧。

这与闪烁的问题无关,但为了使X11服务器能够在PRIME或反向PRIME配置中同时使用GPU,您可能需要添加一个配置片段作为/etc/X11/xorg.conf.d/20-optimus.conf

代码语言:javascript
复制
Section "Screen"
    Identifier "DefaultScreen"
    GPUDevice "Nvidia dGPU"
    Device "Intel iGPU"
EndSection
Section "Device"
    Identifier "Intel iGPU"
    Driver "modesetting"
    BusID "PCI:0:2:0"
EndSection
Section "Device"
    Identifier "Nvidia dGPU"
    Driver "nvidia"
    BusID "PCI:1:0:0"
EndSection

添加之后(并重新启动X11服务器或重新启动),您的xrandr --listproviders应该列出两个提供程序(即两个GPU驱动程序),并且您的配置应该已经准备好进行PRIME或反向PRIME操作。

对于PRIME (即笔记本电脑内部屏幕上的Nvidia增强图形),只需为任何需要高性能图形的程序设置以下两个环境变量:

代码语言:javascript
复制
__NV_PRIME_RENDER_OFFLOAD=1
__GLX_VENDOR_LIBRARY_NAME=nvidia

对于反向-PRIME(使用通过Nvidia GPU连接的显示器来扩展当前的桌面配置),您需要运行两个命令:

代码语言:javascript
复制
xrandr --setprovideroutputsource 1 0   # tell Nvidia to accept display data from Intel
xrandr --auto   # autodetect displays on now-available Nvidia display outputs

(请不要发布文本图像,除非问题是文本的显示呈现:对于有视力问题的人来说,这类图像可能有问题,并且通常不会在复制和粘贴实际文本时添加代码块格式提供更多信息。)

一个“透明的斑点”听起来可能是一个在隐私保护下的气泡,防眩光电影或类似的东西。如果是这样,那将是一个物理问题,将与GPU或其驱动程序无关。如果您使用桌面环境的屏幕截图工具,它是否捕获blob?

如果blob在屏幕截图中不可见,那么它可能是显示表面膜下的气泡或实际显示面板中的其他物理问题。如果它是可见的,它可能表示GPU驱动程序错误或显示内存中负责blob位置的错误。

票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/678255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档