在Linux引导过程中,屏幕断开连接,直到重新物理连接


1

我有一个华擎J4105主板

在引导过程中,在systemd中的某个时候,屏幕变黑(表示无信号),直到我拿起HDMI电缆并拔下并重新插入。这是我要修复的问题。拔掉PC或屏幕侧的电缆都没关系

我的屏幕是旧的LG电视。主板仅支持HDMI 2.0,仅支持UEFI,不支持传统设备。我检查了在线更新功能,了解BIOS是最新的。该电缆相当古老,来自亚马逊的基础知识。

我努力了:

  1. Manjaro与内核:
    • 4.18.5-1
    • 4.14.67-1(我对其进行了所有其他测试)
    • 4.4.153-1
    • 3.16.57-1(无法加载GUI)
  2. 没有登录/显示管理器的Manjaro
  3. Xubuntu live usb
  4. Ubuntu Gnome Live USB
  5. Fedora 28 Live USB(维兰)

    它们都表现出完全相同的行为。

  6. 此外,使用nomodeset选项进行引导有效,而video = LVDS-1:d,video = HDMI1:d,vga = ask不起作用

  7. 打开和关闭电视

  8. 而且非常罕见,它只是随机的工作原理

  9. VGA电缆可以工作(但我想拥有更好的图像质量和cec功能...)

  10. 在屏幕关闭的情况下登录控制台并在没有登录管理器的情况下使用xrandr,它只会显示“无法打开显示”

  11. 在启动过程中,屏幕显示“ TPM自检失败”后变黑

  12. 当我将其与树莓派3 B一起使用时,电视上的HDMI始终可以正常工作。

  13. 在屏幕仍断开连接的情况下使用startx不能解决问题

这就是我所知道的。我想尝试的是使用其他图形驱动程序,但其中仅安装了很多东西,例如“ intal vulkan mesa驱动程序”。

我希望通过列举这些东西,可以更容易地写出潜在答案。

感谢您的阅读,我期待得到答案或提示。如果您想查看一些日志输出,我将很乐意提供它们。我只是不知道哪一个是相关的。

亲切的问候,托比


注意:如果任何人读到此视频后想知道哪个视频= LVDS-1:d,那么可以在这里配置它:https : //access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide / sec-making_temporary_changes_to_a_grub_2_menu,通过在启动过程中选择高级启动选项,可以进入“ grub2”菜单。通过将这些选项添加到GRUB_CMDLINE_LINUX_DEFAULT,可以在/ etc / default / grub中永久设置这些选项。


您尝试过其他显示器吗?您可以尝试使用引导video=1024x768吗?
grawity

我没有另一个HDMI显示器。使用video = 1024x768将使我进入登录终端以及lightdm,但是登录时,屏幕上显示“ No Signal”(无信号),并且重新插入将无法解决该问题。尽管当我使用电源按钮关闭屏幕时,屏幕还是可见的(由于一些不重要的消息框,因此可以防止关闭)。
Tuaafooo

也许有一些奇怪的东西正在自动检测到错误的分辨率?在先前修复了视频模式之后,通过xfce会话尝试再次检测到错误的视频模式。mjmwired.net/kernel/Documentation/fb/modedb.txt的文档说,有一个标准视频模式的数据库。也许我可以以某种方式将屏幕设置永久保留为所需的1280x720分辨率。非常感谢
Tuaafooo

现在突然不起作用了。即使我将video设置为1024x768,也会出现旧结果。在有效与无效之间,我玩了这个线程中的内容:askubuntu.com/questions/377937/…–
Tuaafooo

我也曾尝试将lightdm的显示模式设置为askubuntu.com/questions/73804/wrong-login-screen-resolution/…没有成功
Tuaafooo

Answers:


2

解决该问题所需的步骤:

  • 在grub中具有video = 1280x720模式(或其他可能支持的其他分辨率)(感谢@grawity)
  • 从网络使用“ sudo mhwd -a pci nonfree 0300”命令安装驱动程序
  • 设置屏幕的分辨率,以备下次使用。(实际上,只要不拔出HDMI电缆,标准的manjaro“显示”设置就可以使用)

/etc/X11/xorg.conf.d/10-monitor.conf:

 Section "Monitor"
    Identifier      "External HDMI"
    Modeline        "1280x720_60.00"   74.50  1280 1344 1472 1664  720 723 728 748 -hsync +vsync
    Option          "PreferredMode" "1280x1024_60.00"
EndSection

Section "Device"
    Identifier      "Intel UHD 600"
    Driver          "intel"
EndSection

Section "Screen"
    Identifier      "Primary Screen"
    Device          "Intel UHD 600"
    DefaultDepth    24
    SubSection "Display"
        Depth           24
        Modes   "1280x720"
    EndSubSection
EndSection

Section "ServerLayout"
        Identifier      "Default Layout"
        Screen          "Primary Screen"
EndSection

驱动程序名称“ intel”(来源:https : //www.freebsd.org/doc/handbook/x-config.html

在xorg.conf中设置分辨率https://wiki.ubuntu.com/X/Config/Resolution

生成modeline时,我使用了cvt:https : //www.reddit.com/r/linux/comments/67282a/is_cvt_or_gtf_better_for_creating_a_48hz_modeline/

由于有了此配置文件,重新连接屏幕时分辨率默认为1280x720(例如,因为我想清洁电视并避免在gui上进行进一步的重新配置步骤以返回到所需的分辨率)

该错误似乎是由于默认设置为1920x1080 60hz分辨率而引起的,即使手动设置,该分辨率也会使电视变黑。

其他内容:

使用hdmi-> vga D / A转换器不会引起问题,因此电视和驱动程序之间似乎有点愚蠢的不兼容。

lightdm对我也适用,现在始终设置为1280x720分辨率,并且无需使用显示管理器即可通过控制台和“ startx”命令登录。

在我恢复正常工作之后,执行不受影响的步骤:

  • 在./.xprofile中具有“ xrandr -s 1280x720”
  • 在/ etc / default / grub中未注释“ GRUB_TERMINAL_OUTPUT =控制台”
  • 在/ etc / default / grub中注释了“ GRUB_GFXPAYLOAD_LINUX = keep”

备择方案:

  • 使用vga代替hdmi(在同一台电视上测试)

尚未测试:

  • 使用dvi代替hdmi

1
监视器通过EDID报告虚假支持的分辨率实际上并不少见,有时人们甚至不得不生成伪造的EDID,因为监视器上的错误是完全错误的。我有一个LCD屏幕,没有报告其支持的原始分辨率(因此无论您选择什么,它都被拉伸和模糊)。
grawity
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.