更新(有帮助)

更新(有帮助)

我的 HDMI 端口有问题HP ProDesk 400 G3 台式迷你商务电脑在 Linux 上使用英特尔第 7 代显卡 i5 时使用双显示器模式,用正常英语来说就是:我使用两个屏幕,一个在 HDMI 插槽,另一个在 DualMode DisplayPort(DP++)。

机器

上面链接中的模型详细信息:

在此处输入图片描述

(6.)双状态电源按钮

在此处输入图片描述

(6.)双模 DisplayPort™(DP++)

(8.)端口选择(DisplayPort™、HDMI、VGA 或串行),就我而言,HDMI 端口的标准图像是错误的,而是显示 DP

(12.) 电源连接器

问题列表

使用 HDMI 端口的显示器可能会出现黑屏:

  • 进入睡眠模式一段时间后(不只是单击“暂停”后不久,而是几分钟后)
  • 或者在稍微移动硬件/移动插槽处的电缆后,这与以下内容大致相同:
  • 如果您随机插入和拔出电缆。
  • 通常,只要你抬起机器并稍微移动一下,HDMI 连接的显示器就会变黑。因此,更换电缆只是更强烈的变化,但意味着相同的过程。你通常不会让变黑的显示器恢复原状。

这些问题大多发生在 HDMI 端口上,很少也发生在 DP 端口上。根据经验,如果你进一步抬起并移动机器一段时间,你可能会幸运地找回两个显示器,但更常见的情况是,你无法再找回变黑的显示器,你甚至会失去 DP 显示器。

显示器端口被编程为,如果您移动其电缆,端口会短暂变黑,这是正常现象,只是预期的自动检测,我猜它会在大约 1 秒内发生,可能与 100 毫秒的检测时间有关(请参阅下面的补丁)。因此,短暂的黑屏不是问题,但似乎如果计算机期望显示器比实际需要稳定的时间更早“恢复”,并且如果图形驱动程序在显示器之前恢复,它就会崩溃并保持黑屏(这是我根据下面的研究猜测的)。

我在 Linux 启动时看到一条错误消息(制作了启动时的屏幕视频,我没有查看日志):

错误LSPCON 模式更改超时

这似乎表明适配器无法在给定的时间内稳定下来,引用下面的补丁段落:

100 毫秒不足以让英特尔 NUC 设备上的 LSPCON 适配器稳定下来。

强制重启后,两个监视器都会再次被找到,唯一的问题是有时在启动时直接发生:

  • 两个显示器中的一个无法提供高屏幕分辨率,而是提供非常低的分辨率(1024x768 和 800x600),并且这种情况只发生在 HDMI 端口上(至少在最近的 20 个测试案例中,之前的任何情况都太久远了,无法确定)。

后一个错误目前没有问题,因为它在重启后就会消失,但这种情况很少发生。

研究类似的错误和模型

现在来看看这个问题可能更有说服力的部分,研究对类似的模型提出了非常相似的错误描述。

根本检测不到 HDMI 显示器

Ubuntu 20.04.2 未检测到 HDMI 显示器

解决方案是:

  • sudo ubuntu-drivers autoinstall
    
  • 关闭
  • 打开

取自:ubuntu 20.04,未检测到 HDMI 端口上的第二个显示器

当我运行时sudo ubuntu-drivers autoinstall,我没有更新任何内容:

No drivers found for installation.

尽管我希望这能改变一些事情,但我又遇到了同样的问题。

错误:显示器无法从睡眠状态唤醒

[Bug 1916573] 回复:显示器无法从睡眠状态唤醒。

这个看起来非常相似的错误已通过将 DP 电缆替换为 HDMI 电缆来修复,因此它不使用两个显示器。此外,我经常检查不同的电缆(HDMI 适配器到 DVI 到 DVI 到 HDMI 适配器、HDMI 到 DVI、HDMI 到 HDMI 和 DP/DisplayPort 到 HDMI),主要问题似乎是 HDMI 端口,DP 通常较少丢失屏幕。长时间移动电缆或机器后,通常甚至会失去两个显示器的性能。因此,这不仅仅是 HDMI 或 DP 的问题,更可能是由于过早停止自动检测而导致崩溃。

LSPCON 补丁

几乎相同的错误可以在以下位置找到:原始屏幕分辨率无法通过 HDMI LSPCON (i915) 正常工作

它经过调试步骤并最终给出一个补丁,该补丁应该也能解决 i5 第 7 代英特尔显卡的问题。

我可能需要一个类似的补丁,该补丁适用于该型号。这是另一个型号的最新补丁,称为[v2] drm/i915:增加 LSPCON 超时。我尝试运行它source v2-drm-i915-Increase-LSPCON-timeout.patch但它不适用于我的设置。

我正在寻找解决其他补丁的核心问题的解决方案:

100 毫秒不足以让英特尔 NUC 设备上的 LSPCON 适配器稳定下来。这会导致启动或屏幕重新配置时显示模式丢失。经验测试可以重现错误,最长可达 190 毫秒的超时时间。200 毫秒的基本启动和压力测试尚未失败。

将超时时间增加到 400 毫秒以获得一些误差幅度。

补丁代码:

diff --git a/drivers/gpu/drm/i915/intel_lspcon.c b/drivers/gpu/drm/i915/intel_lspcon.c
index 8ae8f42f430a..6b6758419fb3 100644
--- a/drivers/gpu/drm/i915/intel_lspcon.c
+++ b/drivers/gpu/drm/i915/intel_lspcon.c
@@ -74,7 +74,7 @@ static enum drm_lspcon_mode lspcon_wait_mode(struct intel_lspcon *lspcon,
    DRM_DEBUG_KMS("Waiting for LSPCON mode %s to settle\n",
              lspcon_mode_name(mode));
 
-   wait_for((current_mode = lspcon_get_current_mode(lspcon)) == mode, 100);
+   wait_for((current_mode = lspcon_get_current_mode(lspcon)) == mode, 400);
    if (current_mode != mode)
        DRM_ERROR("LSPCON mode hasn't settled\n");

关闭睡眠模式不会改变它

由于睡眠模式似乎失去了显示器,我使用以下方法将其关闭如何禁止我的系统进入睡眠状态?

sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

但即便如此,经过较长时间(不只是几分钟)后再次登录,您似乎会失去 HDMI 显示器。因此,仅注销似乎就足以触发此错误。

答案1

您似乎专注于软件解决方案,而这似乎是一个复杂的硬件问题。您确定所有电缆都已牢固连接、未损坏且电源已接地吗?此外,廉价电缆也可能导致这种情况。PC 或显示器视频端口上的一个流氓/弯曲针脚可能会导致这种情况。我会尝试在 BIOS/UEFI/内置诊断程序中重现该问题,以确认它是否是硬件问题。接地不足、廉价、松散或损坏的电缆/端口可能会产生静电,甚至看到本 SU 问答

答案2

更新(有帮助)

避免在大多数情况下丢失显示器的技巧

这应该是最后一次更新,因为它解决了 95% 的问题。

如果您将机器放在一堆纸上,例如纸块或书本上,并且注意电缆不接触地面,它将不再受到地面的静态负载。这就是公认的答案从一开始就说的。它有效。有了这个,显示器在这次改变之后大概每两周就会丢失一次,测试了一两个月。如果发生这种情况,请参阅下面的更新。但这种情况很少发生。

更新(有帮助)

恢复显示器的解决方法

  1. 把有问题的显示器的数据线拔掉。
  2. 触摸计算机机壳以接地。您可能会受到轻微的电击,这是好事,因为这会使电压再次低于电缆连接的阈值。将手机壳放在非静电衬垫上后,这些电击再也没有发生过。我使用了普通的 100 页书写板,或者使用书籍等其他东西。仅这一点就可以大大减少监控问题。
  3. 在“挂起”模式下关闭系统电源。
  4. 从“挂起”模式唤醒。
  5. 插入显示器电缆。

重复上述步骤,直到显示器恢复正常。第一次尝试时,显示器可能仍是黑色或分辨率较低,然后重复 1.-5。这通常比系统重启花费的时间和精力更少,因为系统重启可能存在同样的问题。

之所以有效,是因为计算机是静态加载的,正如另一个答案所说。每次我取出显示器电缆时触摸计算机机箱时,我都会感到轻微的电击。你甚至可以在房间里清楚地听到这个声音。

(更新:将机器放在一堆纸上后,正如上面的更新中所说,我再也没有触电过)。

如果您随后暂停并重新启动,这就像完全刷新了该显示器连接。显示器驱动程序的失真程度较低,可能会给该显示器一个新的机会。它似乎比关闭电源再打开电源效果更好。

20220712 更新 几个月后它又回来了,也许是因为电缆在地上,因为在把所有电缆(任何东西,甚至是放在地上的显示器电源适配器)都接上后,在尝试了 20 米的“暂停”技巧后,“暂停”技巧(见上文)又起作用了。我经常甚至看不到两个显示器了。然后,您可以尝试登录并按下Ctrl+Alt+T终端并输入,systemctl suspend而不是单击“暂停”。如果您不确定是否已进入“暂停”模式,请插入您的手机。每当它加载时,计算机仍在运行,然后“暂停技巧”将不起作用。

旧版(以下所有内容):

如果您让显示器保持黑色和闪烁状态,然后继续工作。屏幕可能会恢复正常。我不想重新启动,一两天后它又恢复了,有两次是在下面提到的糟糕的 1024x768 分辨率下。

首次尝试解决方法

第一个解决方法是将显示器空白时间更改为Never。这应该已经有所改变,至少就我的情况而言,问题消失了一周。

设置-->电源-->空白屏幕-->下拉菜单:Never

在此处输入图片描述

然而,本周之后,同样的问题再次出现,即使显示器黑屏时间已到Never

或许是更有希望的解决办法

因此,到目前为止更新已经成功。

添加一个名为~/.xinitrc:的新文件

setterm -blank 0 -powersave off -powerdown 0
xset s off

取自:

Linux 禁用屏幕消隐,即防止屏幕变黑

在网上搜索“linux never blank screen command line”找到

现在,经过数周对上述两种解决方法的测试,它大约每周出现一次,两次是在夜间挂起模式之后,一次是在我把键盘拉近时,它的电缆碰到了一些电源线(所以另一个答案显然为这里的真正原因铺平了道路)。两次在空白之后,我在触摸小桌面(不仅仅是电缆)时得到了电脉冲(一次强度足以让你听到它)。这足以说明这种电脉冲与空白直接相关——这也是另一个答案所说的(将电缆分开) 以及我接受它的原因。

使用这两个答案来进一步了解。不再有空白显示器并不好,你总是需要在离开办公桌时关闭它们,但这似乎也有帮助。欢迎有其他经验和想法的人。

每次发生时的应急计划

由于即使采用变通方法,这种情况大约每周都会发生一次,因此您可以采取以下措施来避免显示器变黑时打开的文件。仅拔掉电缆是不够的,您还必须从显示设置中将其拔掉,而您通常可能看不到它。相反,您可以:

  • 按下Super键(=Windows键)选择一个打开的窗口 - 或者使用++ Super(也许前面还有+ )将打开的窗口切换到另一个屏幕。Shiftarror left/rightAltTab

可能无法完全修复

我还得到消息说,当另一台同型号的机器仍在保修期内时,服务公司来更换主板时,也出现过这个问题。

相关内容