Linuxが利用可能なディスプレイデバイス(ビデオ出力)を検出する方法と、各デバイスに表示する内容を決定する方法を理解したいと思います。
例:シリアルラインとHDMIポートを備えた内蔵デバイスがある場合、シリアルコンソールの代わりにHDMIディスプレイにコンソールが表示されるようにするにはどうすればよいですか。
また、ビデオドライバに関連付けられた単純なOpenGLアプリケーションを使用したい場合、OpenGLはHDMIポートに描画するためにどのインターフェイスを使用しますか?
正しいドキュメントへのポインタがあればいいでしょう。
答え1
ほとんどのシステムでは、出力が処理される画面デバイスは、GPUまたは他のビデオディスプレイコントローラによって異なります。システムのビデオデバイスとのすべてのインタフェースは、Direct Render Manager(DRM)とカーネルモード設定(KMS)カーネルサブシステムによって密接に関連して処理されます。
~からウィキペディアページトピックについて:
コンピューティングでは、LinuxカーネルのサブシステムであるDRM(Direct Render Manager)が最新のグラフィックカードのGPUとインターフェースします。 DRMは、ユーザー空間プログラムがコマンドとデータをGPUに送信し、表示モード設定の構成などの操作を実行するために使用できるAPIを公開します。 DRMはもともとX Serverの直接レンダリングインフラストラクチャのカーネル空間コンポーネントとして開発されていましたが、その後Waylandなどの他のグラフィックスタックの代替案で使用されました。
ユーザ空間プログラムは、DRM APIを使用して、ハードウェアアクセラレーションの3Dレンダリングとビデオデコードだけでなく、GPGPU計算のためにGPUにコマンドを発行できます。
公式のLinuxドキュメントはソースリポジトリにありますDocumentation/gpu
。ここあなたの便宜のためのgithubリンクです。
また、ウィキペディアの記事はかなり広いようです。目標に応じて、このリソースで十分である可能性があり、公式文書よりもはっきりと読みやすく、技術的レベルが低くなります。