Linuxはハードウェア情報をキャッシュしますか?

Linuxはハードウェア情報をキャッシュしますか?

質問

Linuxはブート間にハードウェア情報を保存しますか? (例:EDID)

では、キャッシュされたコンテンツを構成できますか?


背景

私が尋ねる理由は、現在2台目のモニタを設定しようとしていますが、そのモニタにVGA(モニタ) - DisplayPort(グラフィックカード)パッシブコンバータがあるからです(これは悪い考えであり、私ではないことを知っています)。私が知っているように、パッシブコンバータを使用するには、信号をモニタに正しく送信するためにグラフィックカードがいくつかのタスクを実行する必要があります。

モニターを操作することはできますが、モニターまたはコンピューターを強制的にオフにすると再びオンにすると動作が停止します。これまで私の解決策は非常に成功していました。グラフィックカードからディスプレイポートを取り外し、システムを再起動し、ディスプレイポートを再接続して再起動すると、正常に動作します。ただし、この構成を使用するコンピューターが多いため、これはやや面倒な作業です。

電源を切ってから再投入すると、2台目のモニターのEDIDが異なります。


アイデア

最初の直感は、グラフィックカードがモニタからいくつかの情報を受け取り、パッシブアダプタによって最終的なEDIDを生成するために追加のタスクを実行していることです。カードがこれを行うため、EDIDは電源を入れ直しても一貫性がありません。

2番目の直感は、Linux(特にRHEL 7.0)がハードウェア情報をキャッシュし(通常静的であるため)、キャッシュされたEDIDが現在のEDIDと競合すると、モニターが機能しなくなることです。

私の解決策はこれを確認しました。モニターを取り外して起動すると、ハードウェアを再検出するのに十分な大きな変化(ディスプレイポートにハードウェアなし)になり、ディスプレイポートを接続して起動するとディスプレイが新しいハードウェアとして処理され、新しく検出されます。この回避策は、デフォルトで対応するディスプレイキャッシュをフラッシュする方法のように見えます。

ベストアンサー1

EDIDデータはどこにもキャッシュされていないようですが、sudo ddccontrol -pいつでもVGAケーブルのi2cバスを介して読み取ることができることを確認できます。バラより文書

xrandrまた、モニターを制御するためにも使用できます。グラフィックカードのどのポートが接続されているかをリストし、その設定を使用できるようにする必要があります。

Xorgデフォルトでは、サーバーはオーバーレイファイルがないと起動時に接続された画面を動的に確認しようとしますxorg.confsudo X -configureXが実行されず、モニタが正常に動作している間にこれらのファイルを作成できます。バラよりアーキテクチャLinuxいくつかの例を見てください。

おすすめ記事