web-dev-qa-db-ja.com

Linuxの起動中に、物理的に再接続されるまで画面が切断されます

AsrockJ4105メインボードを持っています

起動中、systemdのある時点で、HDMIケーブルを取り外して接続し直すまで、画面が真っ暗になります(信号がないことを示します)。これを修正したいと思います。 PC側と画面側のどちらのケーブルを外しても構いません

画面が古いLG TV。メインボードはHDMI2.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ライブUSB
  4. UbuntuGnomeライブUSB
  5. Fedora 28ライブUSB(ウェイランド)

    そして、それらはすべてまったく同じ動作を示します。

  6. さらに、nomodesetオプションを使用した起動は機能しますが、video = LVDS-1:d、video = HDMI1:d、vga = askは機能しませんでした

  7. テレビの電源を入れたり切ったりする

  8. そしてveryめったにランダムに機能しない

  9. VGAケーブルは機能します(ただし、より良い画質とcec機能が必要です...)

  10. 画面がオフのときにコンソールにログインし、ログインマネージャーなしでxrandrを使用すると、「ディスプレイを開けません」と表示されます。

  11. 起動中に「TPMセルフテストに失敗しました」と表示された後、画面が真っ暗になります

  12. テレビのhdmiは、Raspberry Pi 3Bで使用しているときは常に機能していました。

  13. 画面がまだ切断されているときにstartxを使用しても、解決されません

私が知っているのはそれだけです。私が試したいのは別のグラフィックスドライバーを使用することですが、「intal vulkanmesadriver」などがインストールされているものはたくさんあります。

このようなものを列挙することによって、潜在的な答えがより簡単に書かれることを願っています。

読んでくれてありがとう。答えやヒントを楽しみにしています。いくつかのログ出力を見たい場合は、喜んで提供します。どちらが適切かわかりません。

よろしく、トビ


注:これを読んだ人がvideo = 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_men そして、起動プロセス中に高度な起動オプションを選択すると、この「grub2」メニューに入ることができます。これらのオプションは、GRUB_CMDLINE_LINUX_DEFAULTに追加することで、/ etc/default/grubで永続的に設定できます。

1
Tuaafooo

修正するために必要と思われる手順:

  • grubでvideo = 1280x720モード(またはおそらく他のサポートされている解像度)を使用する(@grawityに感謝します)
  • ネットワークから「Sudomhwd-a pcinonfree0300」コマンドを使用してドライバーをインストールする
  • 次回記憶されるように画面の解像度を設定します。 (実際には、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

モードラインを生成し、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-s1280x720」がある
  • / etc/default/grubで「GRUB_TERMINAL_OUTPUT = console」のコメントが解除されている
  • / etc/default/grubに「GRUB_GFXPAYLOAD_LINUX = keep」のコメントがあります

代替案:

  • hdmiの代わりにvgaを使用する(同じテレビでテスト済み)

まだテストされていません:

  • hdmiの代わりにdviを使用
2
Tuaafooo