Linuxで追加のフレームバッファデバイスを追加するには?

Linuxで追加のフレームバッファデバイスを追加するには?

XなしでUbuntu 12.04 LTSをホームNASサーバーとして実行しています。最近、これをビデオ再生メディアデバイスとして適用し始めました。この時点でXをインストールする方が簡単かもしれませんが、フレームバッファの再生を使ってmplayerを試してみることにしました。動作し、すべてが正常です。

しかし、好奇心とおそらく実際の結果のために、フレームバッファの考えを止めることはできません。フレームバッファ装置は1つだけのようです/dev/fb0。 (btw。私はvesafsドライバを使用しています。)フレームバッファを使用して複数のプログラムを実行すると混乱が発生します。たとえば、fbtermでmplayerを実行すると、競合のみが発生します。奇妙なことに、FBIイメージビューアは何とか画像を見ることができます。明らかに、プログラムはデバイスを共有できず、最終的にWindowsシステムもありません。

もしそうなら、(vesa) fb デバイスの数はハードウェア表示デバイスに制限されますか?それとも、原則として複数のttyのように多くを持つことができますか?より多くのヘルプを追加して、それを使用するソフトウェアを同時に実行できますか?どうやって追加できますか?

さらに、フレームバッファがttyにどのように接続されるかについてのロジックは明確ではありません。たとえば、mplayerは各ttyにビデオフレームを表示しますが、fbiはそうではありません。また、Ubuntuのメインコンソール(fbcon?)がビデオオーバーレイの後ろに表示されていて、奇妙だと思いました。どうなりますか?

答え1

まだ誰も回答していないので、数時間の退屈なインターネット検索とテストを経て、そのトピックについてある程度の知識を得たので、回答いたします。

フレームバッファデバイスインターフェイスはかなり一般的なインターフェイスであるため、原則としてより多くのFBデバイスがある可能性があります。しかし、私が使用しているVESAドライバは、特定のハードウェアデバイスとフレームバッファデバイスファイルを直接接続する機能を提供するため、実際のデバイス数よりも多くのデバイスを保持することは意味がありません。

仮想フレームバッファデバイスであるvfb用のドライバがあります。 (注:X用の仮想フレームバッファであるxvfbとは異なり)直接テストしませんでしたが、仮想デバイスを使用すると、FBデバイスを必要な数だけ持つことができます。また、仮想デバイスをハードウェアフレームバッファデバイスに接続してフレームバッファマルチプレクサを構成することを原則的に防止する方法はないと考える。

フレームバッファとttyの間の接続について:空です。フレームバッファは何も無視し、単に画面に描画します。

最初に私を混乱させたのはFBIイメージビューアの行動でした。実行中のttyが開いていることを賢く確認し、それに応じてフレームバッファを描くことがわかりました。 (これがmplayerとは異なり、SSHを介した実行を拒否する理由です。疑似端末を許可しません)。

複数のプロセスがフレームバッファに書き込む場合彼らはお互いを止めません。。以前に複数のfbプログラムを同時に使用したときに経験した問題(衝突など)は、フレームバッファとはまったく関係がないことがわかりました。 fbterm端末を使用してそこからmplayerを実行してください。問題ありません。 fbtermおよびfbcon端末とFBIイメージビューアはコンテンツを更新したときにのみバッファに表示されるため、mplayerはほぼ100%の画面を支配します。ただし、両方のmplayerを実行しようとすると、競合状態でバッファに描画しようとすると、1フレームと別のフレームが点滅する画面が表示されます。

便利なリンク:

http://moi.vonos.net/linux/framebuffer-drivers/

https://www.kernel.org/doc/Documentation/fb/framebuffer.txt

関連情報